版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、嵌入式linux應用與開發(fā)課程大作業(yè)題目:學生信息管理系統(tǒng)專業(yè):姓名:學號:成績:2015年 7 月1任務書大作業(yè)6:學生信息管理系統(tǒng)(單人獨立完成)功能需求:本系統(tǒng)用于對學生信息的管理,要求必須對數(shù)據(jù)庫進行操作,建立至少三個數(shù)據(jù)表,并提供“登陸驗證界面”、“添加學生信息”、“查詢某個學生信息”、“統(tǒng)計目前學生人數(shù)”、“刪除某個學生信息”、“退出”等功能,界面設計美觀,布局合理,并下載移植到arm2440s嵌入式開發(fā)板上。具體功能要求:1、 學生信息查詢功能1) 按姓名查詢 2) 按學號名查詢 2、 學生信息修改與刪除3、 學生信息添加功能4、 統(tǒng)計當前學生人數(shù)5、 登錄驗證功能提示:系統(tǒng)可采
2、用qt界面+mysql數(shù)據(jù)庫實現(xiàn)摘要本設計是嵌入式linux應用程序開發(fā)的典型例程,采用qt-creater編寫的基于數(shù)據(jù)庫支持的學生信息管理系統(tǒng),移植到armtq2440開發(fā)板運行。貫通了嵌入式應用程序開發(fā)的全過程。此系統(tǒng)實現(xiàn)了數(shù)據(jù)庫的數(shù)據(jù)表的查詢、插入、刪除、更新操作。系統(tǒng)的編譯采用了常用的linux操作系統(tǒng)、qt-creater -opensource-5.4.2、arm-linux-gcc-4.3.3交叉編譯器。采用超級終端securecrt工具將編譯好的工程可執(zhí)行文件移植到開發(fā)。本系統(tǒng)在嵌入式的應用前景廣大,各學校擁有這樣的便攜式信息系統(tǒng),可以隨時隨地的對學生信息進行查詢,便于對學生
3、的管理。關鍵字:嵌入式linux應用程序開發(fā) 學生信息管理系統(tǒng) armtq2440 qtcreater目錄1 設計題目的內(nèi)容、任務及具體要求12 總體設計思路22.1 開發(fā)環(huán)境22.1.1 編寫語言22.1.2 開發(fā)環(huán)境22.1.3 運行環(huán)境22.2 系統(tǒng)詳細設計22.2.1 系統(tǒng)數(shù)據(jù)結構設計22.2.2 系統(tǒng)界面設計33 功能模塊的具體設計63.1 登陸驗證模塊設計63.2 查詢學生信息模塊設計73.3 學生信息修改和刪除模塊設計93.4 添加學生信息模塊設計143.5 統(tǒng)計目前學生人數(shù)模塊設計164 功能模塊的調(diào)試及測試17總結20致謝21參考資料22iii1 設計題目的內(nèi)容、任務及具體要
4、求本課程是嵌入式linux應用程序開發(fā),所以在本次課程中我們應該熟悉掌握應用程序開發(fā)的具體流程,所以本次課題選擇用qt5.4.2編寫一個簡易的基于數(shù)據(jù)庫操作的學生信息管理系統(tǒng),由于qt5版本支持數(shù)據(jù)庫,所以就不用再用其他的數(shù)據(jù)庫開發(fā)軟件了,免除了數(shù)據(jù)庫的連接及移植操作。系統(tǒng)任務:本系統(tǒng)主要用于對學生信息的管理,提供“登陸驗證界面”、“添加學生信息”、“查詢某個學生信息”、“統(tǒng)計目前學生人數(shù)”、“刪除某個學生信息”、“退出”等功能,界面設計美觀,布局合理,并下載移植到arm2440s嵌入式開發(fā)板上。具體功能要求:1、學生信息查詢功能1) 按姓名查詢 2) 按學號名查詢 2、學生信息修改與刪除3、
5、學生信息添加功能4、統(tǒng)計當前學生人數(shù)5、登錄驗證功能2 總體設計思路2.1 開發(fā)環(huán)境2.1.1 編寫語言本設計使用基于c+的圖形用戶界面軟件qt軟件編寫。qt應用程序框架由奇趣科技公司開發(fā)(現(xiàn)屬諾基亞公司),是一種基于c+語言的面向用戶的圖形界面語言,可以構建出工業(yè)級的跨平臺應用程序。在源代碼不經(jīng)任何修改的情況下,程序即可流暢的運行于windows、linux/unix、mac os x和嵌入式linux上,“一次編寫,隨處編譯”,具有較強的可移植性。2.1.2 開發(fā)環(huán)境本設計在linux操作系統(tǒng)下,使用qt-creator-win-opensource-5.4.2程序編寫。2.1.3 運行環(huán)
6、境在linux下安裝arm-linux-gcc-4.3.3交叉編譯器,通過qmake、make操作生成arm開發(fā)板可執(zhí)行的文件。然后將此文件移植到開發(fā)板運行即可。本設計采用的是armtq2440開發(fā)板。2.2 系統(tǒng)詳細設計2.2.1 系統(tǒng)數(shù)據(jù)結構設計本系統(tǒng)通過qsqldatabase定義了一個qsqlite類型的數(shù)據(jù)庫。在數(shù)據(jù)庫中創(chuàng)建了兩個數(shù)據(jù)表user、student,分別存儲用戶登錄信息和學生具體信息。table user(id int primary key, password varchar)table student(id int primary key,name varchar,s
7、ex varchar,ageint,course varchar)2.2.2 系統(tǒng)界面設計本系統(tǒng)根據(jù)功能共設計了6個界面,分別有用戶登錄界面、功能菜單界面、信息查詢功能界面、信息修改與刪除功能界面、信息添加功能界面、學生信息統(tǒng)計功能界面。各界面具體設計如圖所示:圖 2.1 用戶登錄界面圖 2.2 功能菜單界面圖 2.3 信息查詢功能界面圖 2.4 信息修改與刪除功能界面圖 2.5 信息添加功能界面圖 2.6 信息統(tǒng)計功能界面各界面中使用到的控件有l(wèi)able、line edit、group box、push button、check box等。界面form統(tǒng)一大小400x270。背景顏色為紫色。
8、3 功能模塊的具體設計3.1 登陸驗證模塊設計操作說明:輸入正確的用戶信息,點擊“登錄”按鈕就會跳轉到下一個菜單界面,并且關閉登錄界面。如果輸入的信息不正確,如圖3.1所示,會提示錯誤。如果點擊“退出”按鈕,就會關閉界面,退出系統(tǒng)。圖 3.1 用戶登錄界面本模塊主要實現(xiàn)用戶登錄驗證功能。通過數(shù)據(jù)庫查詢操作,將line text輸入的數(shù)據(jù)與user表中的數(shù)據(jù)進行比較。然后做出相應的操作。具體程序設計如下:voidinit_interface:on_pb_enter_clicked()qstringid=ui-lineedit_userid-text();qstringpassword=ui-li
9、needit_password-text();qsqlqueryquery;query.exec(select*fromuser);while(query.next()inttmp1=id.toint();qstringtmp2=password;intr1=query.value(0).toint();qstringr2=query.value(1).tostring();intx=qstring:compare(tmp2,r2,qt:caseinsensitive);if(tmp1=r1&x=0)this-close();menu*m=newmenu();m-show();elseui-l
10、abel_error-settext(qstring:fromutf8(用戶名或密碼錯誤!);3.2 查詢學生信息模塊設計操作說明:本模塊提供學號查詢以及姓名查詢兩種查詢方式,如果勾選學號查詢,然后輸入學號,如果有此相關信息,便會顯示出這個學生的信息,如圖3.2。姓名查詢與學號查詢操作一樣,如圖3.3。點擊“返回上級”可返回菜單界面。點擊“退出”可關閉界面,退出系統(tǒng)。圖 3.2 學號查詢圖 3.3 姓名查詢本模塊主要實現(xiàn)數(shù)據(jù)庫查詢功能,通過條件查詢顯示出相關信息,具體程序設計如下:voidrefer:on_pb_selectok_clicked()if(flag=1)qstringname=u
11、i-lineedit_refercondition-text();qsqlqueryquery;query.exec(qstring(selectid,name,sex,age,coursefromstudentwherename=%1).arg(name);while(query.next()intid=query.value(0).toint();qstringname=query.value(1).tostring();qstringsex=query.value(2).tostring();qstringage=query.value(3).tostring();qstringcour
12、se=query.value(4).tostring();/qdebug()idnamesexagelabel_stuid-settext(qstring(%1).arg(id);ui-label_stuname-settext(qstring(%1).arg(name);ui-label_stusex-settext(qstring(%1).arg(sex);ui-label_stuage-settext(qstring(%1).arg(age);ui-label_stuclass-settext(qstring(%1).arg(course);if(flag=2)qstringid=ui-
13、lineedit_refercondition-text();qsqlqueryquery;query.exec(qstring(selectid,name,sex,age,coursefromstudentwhereid=%1).arg(id);while(query.next()intid=query.value(0).toint();qstringname=query.value(1).tostring();qstringsex=query.value(2).tostring();qstringage=query.value(3).tostring();qstringcourse=que
14、ry.value(4).tostring();/qdebug()idnamesexagelabel_stuid-settext(qstring(%1).arg(id);ui-label_stuname-settext(qstring(%1).arg(name);ui-label_stusex-settext(qstring(%1).arg(sex);ui-label_stuage-settext(qstring(%1).arg(age);ui-label_stuclass-settext(qstring(%1).arg(course);程序中定義了標志量flag,當姓名查詢被勾選時,flag=
15、1,當學號查詢被勾選時,flag=2。3.3 學生信息修改和刪除模塊設計操作說明:首先輸入相關學號,然后點擊“確認”,如果有相關信息,則顯示,如果沒有,則提示沒有相關信息。如果顯示了相關信息,點擊“刪除信息”,則會刪除此條信息;如若需要修改,在文本框中修改信息后,點擊“保存修改”,則會保存修改后的信息。點擊“返回”可返回菜單界面。點擊“退出”可關閉界面,退出系統(tǒng)。刪除例子:輸入學號“2012442201”,點擊“確認”,結果如圖3.4所示;然后點擊“刪除信息”,提示刪除成功!,結果如圖3.5。然后再點擊確認查詢“2012442201”這條相關信息,此時提示沒有相關信息,如圖3.6所示。圖 3.
16、4圖 3.5圖 3.6信息修改例子:輸入學號“2012442202”,點擊“確認”,結果如圖3.7,然后將年齡修改為“22”,專業(yè)班級修改為“計算機科學與技術1201”,點擊“保存修改”,如圖3.8,提示修改成功。然后再點擊“確認”,結果顯示如圖3.9,信息已經(jīng)被成功修改。圖 3.7圖 3.8圖 3.9具體程序設計如下:voidmodifyanddelete:on_pb_referok_clicked()intflag=0;qstringid=ui-lineedit_referid-text();qsqlqueryquery;query.exec(qstring(selectid,name,s
17、ex,age,coursefromstudentwhereid=%1).arg(id);while(query.next()flag=1;intid=query.value(0).toint();qstringname=query.value(1).tostring();qstringsex=query.value(2).tostring();qstringage=query.value(3).tostring();qstringcourse=query.value(4).tostring();/qdebug()idnamesexagelineedit_mdid-settext(qstring
18、(%1).arg(id);ui-lineedit_mdname-settext(qstring(%1).arg(name);ui-lineedit_mdsex-settext(qstring(%1).arg(sex);ui-lineedit_mdage-settext(qstring(%1).arg(age);ui-lineedit_mdcourse-settext(qstring(%1).arg(course);ui-label_mdflag-clear();if(flag=0)ui-label_mdflag-settext(qstring:fromutf8(沒有相關信息!);voidmod
19、ifyanddelete:on_pb_modideledelete_clicked()qstringid=ui-lineedit_mdid-text();qsqlqueryquery;query.exec(qstring(deletefromstudentwhereid=%1).arg(id);ui-lineedit_mdid-clear();ui-lineedit_mdname-clear();ui-lineedit_mdsex-clear();ui-lineedit_mdage-clear();ui-lineedit_mdcourse-clear();ui-label_mdflag-set
20、text(qstring:fromutf8(刪除成功!);voidmodifyanddelete:on_pb_modidelesave_clicked()qstringid1=ui-lineedit_referid-text();qstringid=ui-lineedit_mdid-text();qstringname=ui-lineedit_mdname-text();qstringsex=ui-lineedit_mdsex-text();qstringage=ui-lineedit_mdage-text();qstringcourse=ui-lineedit_mdcourse-text()
21、;qsqlqueryquery;if(id.toint()!=id1.toint()query.exec(qstring(deletefromstudentwhereid=%1).arg(id1);query.prepare(insertintostudent(id,name,sex,age,course)values(:id,:name,:sex,:age,:course);intidvalue=id.toint();qstringnamevalue=name;qstringsexvalue=sex;qstringagevalue=age;qstringcoursevalue=course;
22、query.bindvalue(:id,idvalue);query.bindvalue(:name,namevalue);query.bindvalue(:sex,sexvalue);query.bindvalue(:age,agevalue);query.bindvalue(:course,coursevalue);query.exec();ui-lineedit_mdid-clear();ui-lineedit_mdname-clear();ui-lineedit_mdsex-clear();ui-lineedit_mdage-clear();ui-lineedit_mdcourse-c
23、lear();elsequery.exec(qstring(updatestudentsetname=%1,sex=%2,age=%3,course=%4whereid=%5).arg(name).arg(sex).arg(age).arg(course).arg(id1);ui-lineedit_mdid-clear();ui-lineedit_mdname-clear();ui-lineedit_mdsex-clear();ui-lineedit_mdage-clear();ui-lineedit_mdcourse-clear();ui-label_mdflag-settext(qstri
24、ng:fromutf8(修改成功!);信息修改功能有兩種情況,一是學號沒有修改,只需用update更新數(shù)據(jù);另一個是學號被修改,那么首先先刪除原來學號的相關信息,然后再用insert插入一條新的數(shù)據(jù)。3.4 添加學生信息模塊設計操作說明:本模塊具體實現(xiàn)信息插入,在文本框中輸入需要插入的數(shù)據(jù),然后點擊“添加”。圖 3.10 添加成功具體程序設計:voidadd:on_pb_addok_clicked()qstringid=ui-lineedit_addid-text();qstringname=ui-lineedit_addname-text();qstringsex=ui-lineedit_a
25、ddsex-text();qstringage=ui-lineedit_addage-text();qstringcourse=ui-lineedit_addcourse-text();qsqlqueryquery;query.prepare(insertintostudent(id,name,sex,age,course)values(:id,:name,:sex,:age,:course);intidvalue=id.toint();qstringnamevalue=name;qstringsexvalue=sex;qstringagevalue=age;qstringcoursevalu
26、e=course;query.bindvalue(:id,idvalue);query.bindvalue(:name,namevalue);query.bindvalue(:sex,sexvalue);query.bindvalue(:age,agevalue);query.bindvalue(:course,coursevalue);query.exec();ui-label_flag-settext(qstring:fromutf8(添加成功!);voidadd:on_pb_addokgoon_clicked()ui-lineedit_addid-clear();ui-lineedit_
27、addname-clear();ui-lineedit_addsex-clear();ui-lineedit_addage-clear();ui-lineedit_addcourse-clear();ui-label_flag-clear();3.5 統(tǒng)計目前學生人數(shù)模塊設計本模塊實現(xiàn)統(tǒng)計當前系統(tǒng)學生人數(shù),點擊”統(tǒng)計”即可顯示具體人數(shù)。圖 3.11 統(tǒng)計具體程序設計:voidcount:on_pb_countok_clicked()intcount=0;qstringm;qsqlqueryquery;query.exec(select*fromstudent);while(query.next()count+;/qdebug()label_count-settext(qstring(%1).arg(count);4 功能模塊的調(diào)試
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 沈陽理工大學《電工與電子技術》2021-2022學年期末試卷
- 海南省房屋買賣合同
- 合同成立時間有關的案例
- 2024年隔斷房屋租賃合同范本
- 專題04 賞析描寫或修辭手法-2022-2023學年小升初語文記敘文知識點銜接(部編版)
- 2024報社廣告合同范文
- 聚眾淫亂罪的迷思與匡正-以南京副教授換偶
- 2024木質框廣告制作安裝合同
- 2024新委托代理合同樣本
- 沈陽城市學院《婚姻繼承法》2023-2024學年第一學期期末試卷
- 《城市軌道交通應急處理》項目三課件
- 機場航站樓及跑道擴建工程施工組織設計方案
- 高速公路綠化設計方案
- 數(shù)胎動那些事兒胎動與胎兒安全孕婦學校課件PPT
- 商業(yè)發(fā)票 國際貿(mào)易商業(yè)發(fā)票模板
- 2021繼續(xù)教育《國家職業(yè)教育改革實施方案》解讀 試題
- 護士讀書分享《喚醒護理》
- 凈水廠自動化監(jiān)控系統(tǒng)技術方案
- 群落的結構課件【高效備課精研+知識精講提升】高二上學期生物人教版選擇性必修2
- 銀行紀檢委員紀檢工作報告
- 2022版小學道德與法治課程標準測試題
評論
0/150
提交評論