版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上實(shí)訓(xùn)報(bào)告二一四年十二月三十日題目: 學(xué)生信息管理系統(tǒng)學(xué)院: 信 息 工 程 學(xué) 院專業(yè): 嵌 入 式1班項(xiàng)目組長: 劉永強(qiáng)項(xiàng)目成員: 劉強(qiáng) 項(xiàng)強(qiáng) 吳盛林瞿孟孟 管豫冀 徐兵指導(dǎo)教師: 葉 雷項(xiàng)目小組任務(wù)分配表組員姓名學(xué)號(hào)組員任務(wù)劉永強(qiáng)課題研究的意義,需求分析開發(fā)總結(jié),整理相關(guān)文檔劉強(qiáng)各模塊功能實(shí)現(xiàn)項(xiàng)強(qiáng)編碼實(shí)現(xiàn)吳盛林主函數(shù)設(shè)計(jì),模塊詳細(xì)設(shè)計(jì)瞿孟孟系統(tǒng)功能和性能分析,可行性分析管豫冀系統(tǒng)設(shè)計(jì),結(jié)構(gòu)設(shè)計(jì)和模塊設(shè)計(jì)徐兵系統(tǒng)測試與維護(hù)專心-專注-專業(yè)前 言隨著科學(xué)技術(shù)的不斷提高,計(jì)算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識(shí),它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用
2、。作為計(jì)算機(jī)應(yīng)用的一部分,使用計(jì)算機(jī)對(duì)學(xué)生信息進(jìn)行管理,具有手工管理所無法比擬的優(yōu)點(diǎn)。例如:檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生檔案管理的效率,也是進(jìn)行科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。隨著國家對(duì)于教育的重視逐漸加大,學(xué)校正向著大型化、規(guī)?;l(fā)展,而對(duì)于大中型學(xué)校,跟學(xué)生信息管理有關(guān)的信息隨之急劇增加。在這種情況下單靠人工來處理員工的工資不但顯得力不從心,而且極容易出錯(cuò)。該系統(tǒng)就是設(shè)計(jì)一個(gè)學(xué)生信息數(shù)據(jù)庫管理系統(tǒng),由計(jì)算機(jī)代替人工執(zhí)行一系列諸如增加新學(xué)生,刪除舊學(xué)生,學(xué)生信息修改,查詢,維護(hù)及打印等操作。這樣就使學(xué)生部門管理人員可
3、以輕松快捷地完成學(xué)生信息管理的任務(wù)。目錄第1章 緒論§1.1 什么是學(xué)生信息管理系統(tǒng)學(xué)生信息管理系統(tǒng)是校園網(wǎng)絡(luò)中一個(gè)重要的應(yīng)用系統(tǒng),它大大改善了學(xué)校教學(xué)、科研與管理的基礎(chǔ)環(huán)境,在一定程度上反映出學(xué)校管理現(xiàn)代化的水平。信息管理系統(tǒng)提供了強(qiáng)大的學(xué)生檔案管理管理功能,方便管理員對(duì)學(xué)生信息的添加、修改、刪除、查詢等操作。本系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)學(xué)生信息管理的系統(tǒng)化、規(guī)范化、自動(dòng)化、達(dá)到提高學(xué)生信息管理效率的目的。§1.2 課題研究的意義隨著我國教育產(chǎn)業(yè)化的飛速發(fā)展,社會(huì)對(duì)教育水平和教學(xué)管理軟硬件的要求日益提高,尤其是對(duì)一個(gè)學(xué)校能夠具有一整套完善的教學(xué)管理軟件提出了更多的要求。為了
4、適應(yīng)這種形式,教育系統(tǒng)尤其是大學(xué)不僅首先要有堅(jiān)實(shí)的硬件基礎(chǔ),還要有一整套完善的教學(xué)管理軟件管理系統(tǒng)。而要實(shí)現(xiàn)這一功能,就要求學(xué)校管理者配備一套高效的教育管理網(wǎng)絡(luò)系統(tǒng),以便在學(xué)校內(nèi)實(shí)施良好的一整套完善的管理且以最快地速度響應(yīng)教師和學(xué)生的需求,及時(shí)為他們提供服務(wù),為他們提供一個(gè)高效、便捷的環(huán)境。學(xué)生信息管理系統(tǒng)是校園網(wǎng)絡(luò)中一個(gè)重要的應(yīng)用系統(tǒng),它大大改善了學(xué)校教學(xué)、科研與管理的基礎(chǔ)環(huán)境,在一定程度上反映出學(xué)校管理現(xiàn)代化的水平。隨著國家對(duì)于教育的重視逐漸加大,學(xué)校正向著大型化、規(guī)?;l(fā)展,而對(duì)于大中型學(xué)校,跟學(xué)生信息管理有關(guān)的信息隨之急劇增加。在這種情況下單靠人工來處理員工的工資不但顯得力不從心,而且
5、極容易出錯(cuò)。該系統(tǒng)就是設(shè)計(jì)一個(gè)學(xué)生信息數(shù)據(jù)庫管理系統(tǒng),由計(jì)算機(jī)代替人工執(zhí)行一系列諸如增加新學(xué)生,刪除舊學(xué)生,學(xué)生信息修改,查詢,維護(hù)及打印等操作。這樣就使學(xué)生部門管理人員可以輕松快捷地完成學(xué)生信息管理的任務(wù)。第2章 系統(tǒng)分析§2.1 需求分析§2.1.1功能需求學(xué)生管理系統(tǒng)的幾個(gè)主要功能如下:(1)提供學(xué)生錄入信息功能可以輸入學(xué)生的姓名,學(xué)號(hào),選修課,實(shí)驗(yàn)課,必修課和總分。(2)查詢學(xué)生信息功能根據(jù)學(xué)生學(xué)號(hào)來查詢學(xué)生信息。(3)刪除學(xué)生信息功能提供學(xué)號(hào),查找是否有此人信息,然后選擇刪除學(xué)生信息。(4)插入學(xué)生信息功能輸入學(xué)生學(xué)號(hào),插入該學(xué)生的學(xué)號(hào)的后面(5)學(xué)生成績排名功能
6、根據(jù)學(xué)生的總分成績,來進(jìn)行排名,將排名后的成績保存到磁盤文件§2.1.2性能需求本軟件系統(tǒng)各種特點(diǎn)決定了系統(tǒng)需要具有以下幾個(gè)主要特性: (1)多樣性?,F(xiàn)在,計(jì)算機(jī)語言越來越普及,用戶面臨的選擇越來越多。想要保證對(duì)用戶的吸引力,就必須要在多樣性上下功夫了。所以,系統(tǒng)的多樣性、功能的多樣性一直都是軟件系統(tǒng)開發(fā)的重點(diǎn)。(2)安全性。數(shù)據(jù)是軟件的靈魂,如何保證數(shù)據(jù)的安全性,是系統(tǒng)開發(fā)時(shí)必須考慮的一個(gè)重要問題。開發(fā)者應(yīng)避免程序出現(xiàn)漏洞,防止黑客進(jìn)行攻擊,及時(shí)進(jìn)行數(shù)據(jù)備份,建立一個(gè)完善的多層次的安全保障體系,保障系統(tǒng)的安全。(3)可擴(kuò)展性。需求變更一直是開發(fā)中難以避免的問題。系統(tǒng)在進(jìn)行設(shè)計(jì)時(shí)應(yīng)充
7、分考慮到需求變更的可能性,降低系統(tǒng)擴(kuò)展功能時(shí)的復(fù)雜度。§2.2 可行性分析§2.2.1 技術(shù)可行性本系統(tǒng)主要采用Struts2框架開發(fā)。Struts2是一個(gè)成熟的MVC框架,它的功能非常強(qiáng)大,包括請(qǐng)求轉(zhuǎn)發(fā)、數(shù)據(jù)校驗(yàn)、文件上傳下載等等,再加上jsp作為展示層,完全可以滿足本系統(tǒng)的開發(fā)需要,因此技術(shù)上是可行的。§2.2.2 經(jīng)濟(jì)可行性本系統(tǒng)為自主開發(fā),耗時(shí)1周,經(jīng)濟(jì)成本低;開發(fā)完成后可以在網(wǎng)上找一些免費(fèi)的應(yīng)用托管商;當(dāng)系統(tǒng)部署成功后通過不斷更新高質(zhì)量,增加軟件的知名度,通過廣告獲得收益。綜合來看在經(jīng)濟(jì)上是可行的。§2.2.3 社會(huì)可行性該系統(tǒng)為完全獨(dú)立開發(fā)。
8、開發(fā)工具選的是VC6.0及GCC,開發(fā)技術(shù)多是用的開源的框架和工具,因此不存在侵權(quán)問題。第3章 系統(tǒng)設(shè)計(jì)在對(duì)整個(gè)軟件系統(tǒng)進(jìn)行開發(fā)之前,要對(duì)整個(gè)系統(tǒng)進(jìn)行必要的設(shè)計(jì)與規(guī)劃。包括系統(tǒng)的總體架構(gòu)、系統(tǒng)的功能結(jié)構(gòu)、系統(tǒng)的運(yùn)行環(huán)境、開發(fā)技術(shù)與工具的選擇等等。本章主要對(duì)這些內(nèi)容進(jìn)行詳細(xì)的介紹。§3.1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)本系統(tǒng)是提供一種能以簡易的方式編譯、處理低級(jí)存儲(chǔ)器、產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。C語言也很適合搭配匯編來使用(往往可以通過內(nèi)聯(lián)匯編語言或與匯編語言目標(biāo)文件一起連接。對(duì)于任何一種操作系統(tǒng)環(huán)境,C函數(shù)的ABI(Application BinaryInterf
9、ace)與匯編語言的子過程(routine/procedure)的ABI一定是完全兼容的)。盡管C語言提供了許多低級(jí)處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱MCU)以及超級(jí)電腦等作業(yè)平臺(tái)。圖3.1 系統(tǒng)結(jié)構(gòu)圖§3.2 系統(tǒng)功能模塊設(shè)計(jì)本軟件系統(tǒng)主要可分為8大功能模塊,包括了錄入學(xué)生信息模塊、查詢學(xué)生信息模塊,、刪除學(xué)生信息模塊、修改學(xué)生信息模塊、插入學(xué)生信息木塊、學(xué)生成績排名模塊、學(xué)生人數(shù)統(tǒng)計(jì)模塊和顯示學(xué)生信息模塊功能結(jié)構(gòu)如圖3.2所示。學(xué)生信息管理系統(tǒng)顯示學(xué)生信息模塊學(xué)生人數(shù)統(tǒng)計(jì)模塊學(xué)生
10、信息排名模塊插入學(xué)生信息模塊修改學(xué)生信息模塊刪除學(xué)生信息模塊查詢學(xué)生信息模塊錄入學(xué)生信息模塊§3.3 系統(tǒng)結(jié)構(gòu)體定義對(duì)于一個(gè)應(yīng)用程序而言,結(jié)構(gòu)體的定義好壞尤為重要。一個(gè)設(shè)計(jì)結(jié)構(gòu)體,可以使系統(tǒng)功能實(shí)現(xiàn)變得更加簡單,也會(huì)使系統(tǒng)的執(zhí)行速度更快,性能更高更穩(wěn)定。必修課成績總分成績實(shí)驗(yàn)課成績選修課成績姓名學(xué)生成績結(jié)構(gòu)體學(xué)號(hào) studen結(jié)構(gòu)體定義表列含義類型長度缺省值允許空num學(xué)號(hào)int4無否name姓名char15無是elec選修課成績double8無是expe實(shí)驗(yàn)課成績double8無是requ必修課成績double8無是sum總分成績double8無是§3.3 系統(tǒng)函數(shù)定義列
11、含義類型in()錄入學(xué)生成績信息voidshow()顯示學(xué)生信息voidorder()按總分排序voiddel()刪除學(xué)生成績信息voidmodify()修改學(xué)生成績信息voidmenu()主菜單voidinsert()total()search()main()插入學(xué)生信息計(jì)算總?cè)藬?shù)查找學(xué)生信息主函數(shù)void Voidvoidint第4章 系統(tǒng)實(shí)現(xiàn)§4.1學(xué)生信息管理系統(tǒng)界面展示模塊及實(shí)現(xiàn)§4.1.1 主界面主界面列表顯示的是各個(gè)功能的顯示信息,包括退出系統(tǒng)、輸入學(xué)生信息、查詢學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息、插入學(xué)生信息、總成績排名、統(tǒng)計(jì)學(xué)生人數(shù)、顯示學(xué)生信息。界面用
12、戶進(jìn)入列表展示界面后,可以輸入選項(xiàng)選擇相應(yīng)的功能展示功能模塊界面代碼實(shí)現(xiàn):void menu()/*自定義函數(shù)實(shí)現(xiàn)菜單功能*/ system("cls"); printf("nnnnn"); printf("tt|-STUDENT-|n"); printf("tt|t 0. 退出 |n"); printf("tt|t 1. 輸入數(shù)據(jù) |n"); printf("tt|t 2. 搜索數(shù)據(jù) |n"); printf("tt|t 3. 刪除數(shù)據(jù) |n"); pr
13、intf("tt|t 4. 修改數(shù)據(jù) |n"); printf("tt|t 5. 插入數(shù)據(jù) |n"); printf("tt|t 6. 總分排序 |n"); printf("tt|t 7. 學(xué)生人數(shù) |n"); printf("tt|t 8. 查看 |n"); printf("tt|-|nn"); printf("ttt選擇(0-8):");具有輸入數(shù)字選擇功能的代碼是寫在主函數(shù)中的void main()/*主函數(shù)*/ int n; menu(); sca
14、nf("%d",&n);/*輸入選擇功能的編號(hào)*/ while(n) switch(n) case 1: in();break; case 2: search();break; case 3: del();break; case 4: modify();break; case 5: insert();break; case 6: order();break; case 7: total();break; case 8: show();break; default:break; getch(); menu();/*執(zhí)行完功能再次顯示菜單界面*/ scanf("
15、;%d",&n);§4.1.2 錄入學(xué)生信息模塊在主界面中輸入數(shù)字1,即可進(jìn)入到錄入學(xué)生信息狀態(tài)。當(dāng)磁盤文件有存儲(chǔ)記錄時(shí),可以向文件中添加學(xué)生信息,運(yùn)行效果如圖1當(dāng)磁盤文件沒有學(xué)生信息記錄時(shí),系統(tǒng)界面會(huì)提示沒有記錄,然后根據(jù)提示決定是否輸入信息,運(yùn)行效果如圖2圖1圖2在錄入學(xué)生信息模塊中將學(xué)生的信息進(jìn)行保留,當(dāng)程序運(yùn)行結(jié)束,關(guān)閉程序,下此運(yùn)行程序時(shí)錄入的信息任然保留。因此在該模塊中應(yīng)用文件讀寫操作,對(duì)錄入的信息保存到存到磁盤文件中,下次運(yùn)行程序時(shí),可以從磁盤文件中將存儲(chǔ)讀出并顯示。代碼實(shí)現(xiàn)void in()/*錄入學(xué)生信息*/ int i,m=0;/*m是記錄的條數(shù)
16、*/ char ch2; FILE *fp;/*定義文件指針*/ if(fp=fopen("data.txt","a+")=NULL)/*打開指定文件*/ printf("不能打開n"); return; while(!feof(fp) if(fread(&stum ,LEN,1,fp)=1) m+;/*統(tǒng)計(jì)當(dāng)前記錄條數(shù)*/ fclose(fp); if(m=0) printf("沒有數(shù)據(jù)n"); else system("cls"); show();/*調(diào)用show函數(shù),顯示原有信息*
17、/ if(fp=fopen("data.txt","wb")=NULL) printf("不能打開n"); return; for(i=0;i<m;i+) fwrite(&stui ,LEN,1,fp);/*向指定的磁盤文件寫入信息*/ printf("請(qǐng)輸入(y/n):"); scanf("%s",ch);while(strcmp(ch,"Y")=0|strcmp(ch,"y")=0)/*判斷是否要錄入新信息*/ printf("
18、number:");scanf("%d",&stum.num);/*輸入學(xué)生學(xué)號(hào)*/ for(i=0;i<m;i+) if(stui.num=stum.num) printf("the number 正在運(yùn)行,按任意鍵繼續(xù)"); getch(); fclose(fp); return; printf("姓名:"); scanf("%s",);/*輸入學(xué)生姓名*/ printf("選修課:"); scanf("%lf",&stu
19、m.elec);/*輸入選修課成績*/ printf("實(shí)驗(yàn)課:"); scanf("%lf",&stum.expe);/*輸入實(shí)驗(yàn)課成績*/ printf("必修課:"); scanf("%lf",&stum.requ);/*輸入必修課成績*/ stum.sum=stum.elec+stum.expe+stum.requ;/*計(jì)算出總成績*/ if(fwrite(&stum,LEN,1,fp)!=1)/*將新錄入的信息寫入指定的磁盤文件*/ printf("不能保存!"
20、); getch(); else printf("%s 保存n",); m+; printf("是否繼續(xù)?(y/n):");/*詢問是否繼續(xù)*/ scanf("%s",ch); fclose(fp); printf("OK!n");§4.1.3 查詢學(xué)生信息模塊查詢學(xué)生信息模塊的主要功能時(shí)根據(jù)輸入的學(xué)生學(xué)號(hào)對(duì)學(xué)生信息進(jìn)行搜索,若查找到該學(xué)生學(xué)號(hào)對(duì)學(xué)生信息進(jìn)行搜索,若查找到該學(xué)生,則選擇是否顯示該學(xué)生信息,輸入2時(shí),進(jìn)入查詢狀態(tài),運(yùn)行效果如圖所示。圖(4.1.3)-1由于學(xué)生信息都及時(shí)存儲(chǔ)
21、到磁盤文件中,因此想要查找學(xué)生的信息首先需要對(duì)文件進(jìn)行操作,打開文件,讀取文件中的數(shù)據(jù),在關(guān)閉文件,根據(jù)輸入的需要查找學(xué)生的學(xué)號(hào)進(jìn)行信息匹配,當(dāng)查找到學(xué)生的信息時(shí)將其顯示出來。代碼實(shí)現(xiàn):void search()/*自定義查找函數(shù)*/ FILE *fp; int snum,i,m=0; char ch2; if(fp=fopen("data.txt","rb")=NULL) printf("不能打開n");return; while(!feof(fp) if(fread(&stum,LEN,1,fp)=1) m+; fclos
22、e(fp); if(m=0) printf("沒有數(shù)據(jù)!n");return; printf("請(qǐng)輸入學(xué)號(hào):"); scanf("%d",&snum); for(i=0;i<m;i+) if(snum=stui.num)/*查找輸入的學(xué)號(hào)是否在記錄中*/ printf("找到學(xué)生,是否顯示?(y/n)"); scanf("%s",ch); if(strcmp(ch,"Y")=0|strcmp(ch,"y")=0) printf("學(xué)
23、號(hào) 姓名 選修課 實(shí)驗(yàn)課 必修課 總分tn"); printf(FORMAT,DATA);/*將查找出的結(jié)果按指定格式輸出*/ break; if(i=m) printf("不能找到學(xué)生n");/*未找到要查找的信息*/§4.1.4刪除學(xué)生信息模塊刪除學(xué)生信息模塊的主要功能是從磁盤文件中將學(xué)生信息讀取出來,從讀出的信息中查找到將要?jiǎng)h除的學(xué)生的信息,然后將該學(xué)生的信息節(jié)點(diǎn)與鏈表斷開,即將其所有信息刪除,將更改后的信息再寫入到磁盤文件。在主界面中輸入3時(shí),調(diào)用刪除功能函數(shù),運(yùn)行效果如圖圖(4.1.4)-1功能實(shí)現(xiàn):(1) 將磁盤文件中的學(xué)生信息讀取出來,以便
24、對(duì)其進(jìn)行查找刪除等操作;(2) 根據(jù)輸入的想要?jiǎng)h除的學(xué)生學(xué)號(hào)與讀取出來的學(xué)生信息進(jìn)行匹配查找。當(dāng)查找到與該學(xué)號(hào)匹配的學(xué)生信息時(shí),根據(jù)提示,輸入是否對(duì)該學(xué)生進(jìn)行刪除操作;(3) 若進(jìn)行刪除操作,則使用如下代碼對(duì)學(xué)生信息進(jìn)行刪除,并將刪除后的學(xué)生信息重新寫入磁盤文件中代碼實(shí)現(xiàn):void del()/*自定義刪除函數(shù)*/FILE *fp; int snum,i,j,m=0; char ch2; if(fp=fopen("data.txt","r+")=NULL) printf("不能打開n");return; while(!feof(fp)
25、 if(fread(&stum,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf("沒有數(shù)據(jù)n"); return; printf("請(qǐng)輸入學(xué)號(hào):"); scanf("%d",&snum); for(i=0;i<m;i+) if(snum=stui.num) break; printf("找到學(xué)生,是否刪除?(y/n)"); scanf("%s",ch); if(strcmp(ch,"Y")=0|strcmp(ch,
26、"y")=0)/*判斷是否要進(jìn)行刪除*/ for(j=i;j<m;j+) stuj=stuj+1;/*將后一個(gè)記錄移到前一個(gè)記錄的位置*/ m-;/*記錄的總個(gè)數(shù)減1*/ if(fp=fopen("data.txt","wb")=NULL) printf("不能打開n");return; for(j=0;j<m;j+)/*將更改后的記錄重新寫入指定的磁盤文件中*/ if(fwrite(&stuj ,LEN,1,fp)!=1) printf("不能保存!n"); getch()
27、; fclose(fp); printf("成功刪除n");§4.1.5 插入學(xué)生信息模塊 插入學(xué)生信息模塊的主要功能是在需要的位置插入新的學(xué)生信息,輸入5時(shí),進(jìn)入插入學(xué)生信息模塊,效果如圖:圖(4.1.5)-1功能實(shí)現(xiàn):(1) 因?yàn)樵撓到y(tǒng)的學(xué)生信息都及時(shí)的存儲(chǔ)在磁盤文件中,所以每次操作都要先將數(shù)據(jù)從文件中讀取出來。(2) 輸入需要插入信息的位置,即可需要插入在哪個(gè)學(xué)生的學(xué)號(hào)后面,然后查找該學(xué)號(hào),從最后一條信息開始均向后移動(dòng)一位,為新插入的信息提供位置。(3) 設(shè)置好可以要輸入的位置后,向該位置錄入新學(xué)生的信息。然后該學(xué)生的信息寫入到磁盤文件中。代碼實(shí)現(xiàn):void
28、 insert()/*自定義插入函數(shù)*/ FILE *fp; int i,j,k,m=0,snum; if(fp=fopen("data.txt","r+")=NULL) printf("不能打開n");return; while(!feof(fp) if(fread(&stum,LEN,1,fp)=1) m+; if(m=0) printf("沒有數(shù)據(jù)!n"); fclose(fp); return; printf("請(qǐng)輸入你想插入的位置(輸入學(xué)號(hào))n"); scanf("%
29、d",&snum);/*輸入要插入的位置*/ for(i=0;i<m;i+) if(snum=stui.num) break; for(j=m-1;j>i;j-) stuj+1=stuj;/*從最后一條記錄開始均向后移一位*/ printf("現(xiàn)在請(qǐng)輸入新的信息n"); printf("學(xué)號(hào):"); scanf("%d",&stui+1.num); for(k=0;k<m;k+) if(stuk.num=stum.num) printf("學(xué)生人數(shù)正在退出,按任意鍵繼續(xù)"
30、); getch(); fclose(fp); return; printf("姓名:"); scanf("%s",);/*輸入名字*/ printf("選修課:"); scanf("%lf",&stui.elec);/*輸入選修課成績*/ printf("實(shí)驗(yàn)課:"); scanf("%lf",&stui.expe);/*輸入實(shí)驗(yàn)課成績*/ printf("必修課:"); scanf("%lf",&a
31、mp;stui.requ);/*輸入必修課成績*/ printf("修改成功"); stui.sum=stui.elec+stui.expe+stui.requ; if(fp=fopen("data.txt","wb")=NULL) printf("can not openn");return; for(k=0;k<=m;k+) if(fwrite(&stuk ,LEN,1,fp)!=1)/*將修改后的記錄寫入磁盤文件中*/ printf("不能保存"); getch(); fcl
32、ose(fp); §4.1.6學(xué)生成績排名模塊根據(jù)學(xué)生的總成績將所有學(xué)生的信息按照從高到低進(jìn)行排序,將排序后的信息寫入到磁盤文件中保存。如圖所示為排序后現(xiàn)實(shí)出來的效果圖(4.1.6)-2圖(4.1.6)-1再在主界面中輸入數(shù)字8,就會(huì)把保存的排序輸出出來如圖:這里應(yīng)用比較穩(wěn)定簡單的交換發(fā)排序?qū)W(xué)生的成績進(jìn)行比較交換。學(xué)生成績排名的實(shí)現(xiàn)過程是首先需要將錄入的學(xué)生信息從磁盤文件中讀取,然后將讀出的學(xué)生信息按照成績進(jìn)行比較交換,從高到低排序,為學(xué)生排名次,然后再將拍好名次的學(xué)生信息保存寫入到磁盤文件中。代碼實(shí)現(xiàn):void order()/*自定義排序函數(shù)*/ FILE *fp; struc
33、t student t; int i=0,j=0,m=0; if(fp=fopen("data.txt","r+")=NULL) printf("不能打開!n"); return; while(!feof(fp) if(fread(&stum ,LEN,1,fp)=1) m+; fclose(fp); if(m=0) printf("沒有數(shù)據(jù)!n"); return; if(fp=fopen("data.txt","wb")=NULL) printf("不能
34、打開n"); return; for(i=0;i<m-1;i+) for(j=i+1;j<m;j+)/*雙重循環(huán)實(shí)現(xiàn)成績比較并交換*/ if(stui.sum<stuj.sum) t=stui;stui=stuj;stuj=t; if(fp=fopen("data.txt","wb")=NULL) printf("不能打開n");return; for(i=0;i<m;i+)/*將重新排好序的內(nèi)容重新寫入指定的磁盤文件中*/ if(fwrite(&stui ,LEN,1,fp)!=1) pri
35、ntf("%s 不能保存!n"); getch(); fclose(fp); printf("保存成功n");§4.1.6學(xué)生人數(shù)統(tǒng)計(jì)模塊當(dāng)在主界面輸入7時(shí),可以對(duì)學(xué)生的人數(shù)進(jìn)行統(tǒng)計(jì),顯示出統(tǒng)計(jì)的人數(shù)。運(yùn)行效果如圖圖(4.1.6)-1代碼實(shí)現(xiàn):void total() FILE *fp; int m=0; if(fp=fopen("data.txt","r+")=NULL) printf("不能打開n");return; while(!feof(fp) if(fread(&st
36、um,LEN,1,fp)=1) m+;/*統(tǒng)計(jì)記錄個(gè)數(shù)即學(xué)生個(gè)數(shù)*/ if(m=0) printf("沒有記錄!n");fclose(fp);return; printf("這個(gè)班級(jí)有 %d 個(gè)學(xué)生n",m);/*將統(tǒng)計(jì)的個(gè)數(shù)輸出*/ fclose(fp); 第5章 軟件測試§5.1 軟件測試辦法§5.1.1主題內(nèi)容為保證軟件的可靠性和安全性,從技術(shù)角度對(duì)工程軟件測試辦法作出規(guī)定§5.1.2測試目的提供系統(tǒng)化、規(guī)范化、實(shí)用化的測試技術(shù)規(guī)范,盡早發(fā)現(xiàn)故障,減少交付系統(tǒng)聯(lián)試前軟件中的殘留差錯(cuò)。§5.1.3測試方法本軟件
37、測試將通過單元測試和系統(tǒng)測試,黑盒測試以及白盒測試,幾種測試方法相結(jié)合更能方便的找出系統(tǒng)中出現(xiàn)的bug§5.1.4適用范圍主要適用于系統(tǒng)中各組成部分的軟件測試工作,其它軟件開發(fā)工程中的軟件測試工作也可以參照。 本辦法可用于新開發(fā)的或修改、更新的軟件測試。本辦法的使用對(duì)象可以是開發(fā)人員、測試人員、交辦單位委托的第三方測試人員。§5.2 單元/系統(tǒng)測試§5.2.1 單元定義void in()/錄入學(xué)生信息void show()/顯示學(xué)生信息void order()/按總分排序void del()/刪除學(xué)生信息void modify()/修改學(xué)生成績信息void men
38、u()/主菜單void insert()/插入學(xué)生信息void total()/計(jì)算總?cè)藬?shù)void search()/查找學(xué)生信息§5.2.2 測試每一個(gè)單元都運(yùn)行正常,沒有出現(xiàn)BUG。§5.2.3 系統(tǒng)測試在進(jìn)行單元性和模塊性的測試之后,我們需要對(duì)整個(gè)系統(tǒng)進(jìn)行測試,測試整個(gè)系統(tǒng)運(yùn)行的流暢度,并積極發(fā)現(xiàn)問題。不能因?yàn)榈綔y試的最后一步而掉以輕心,避免有錯(cuò)誤的程序交到客戶或用戶手中。§5.3黑盒測試與白盒測試白盒測試:已知產(chǎn)品的內(nèi)部工作過程,可以通過測試驗(yàn)證每種內(nèi)部操作是否符合設(shè)計(jì)規(guī)格要求,所有內(nèi)部成分是否已經(jīng)經(jīng)過檢查。黑盒測試:已知產(chǎn)品的功能設(shè)計(jì)規(guī)格和用戶手冊(cè),可以
39、進(jìn)行測試驗(yàn)證每個(gè)功能是否實(shí)現(xiàn),每個(gè)實(shí)現(xiàn)了的功能是否符合要求,以及產(chǎn)品的性能是否滿足用戶的要求。針對(duì)以上對(duì)兩種測試方法的介紹,結(jié)合本系統(tǒng)的情況,只采用黑盒測試就能夠滿足要求。§5.3.1測試過程為了測試的有效性和高效性,應(yīng)該制定嚴(yán)格的測試計(jì)劃,并按照計(jì)劃實(shí)施。首先要按模塊來設(shè)計(jì)各個(gè)模塊的測試用例,測試用例是測試執(zhí)行的最小實(shí)體,是為特定的目的而設(shè)計(jì)的一組測試輸入、執(zhí)行條件和預(yù)期的結(jié)果。然后執(zhí)行測試用例,當(dāng)測試結(jié)果和預(yù)期不符時(shí),就要標(biāo)示問題,并建立bug跟蹤記錄,直到bug被修復(fù)為止。最后對(duì)已修復(fù)的bug進(jìn)行回歸測試,避免出現(xiàn)新的bug???結(jié)作為一個(gè)完整的學(xué)生信息管理系統(tǒng),本系統(tǒng)的主要實(shí)
40、現(xiàn)的功能包括用戶登錄、列表展示、文章管理、評(píng)論管理、相冊(cè)管理等,基本上可以滿足大部分用戶的需求。本系統(tǒng)的亮點(diǎn)之處在于系統(tǒng)的擴(kuò)展性很強(qiáng)。當(dāng)需要為博客系統(tǒng)添加新的功能時(shí),只需要改動(dòng)極少的代碼甚至無需改動(dòng)就可以實(shí)現(xiàn)。各模塊獨(dú)立性很高,模塊之間的耦合性很低,使得修改代碼、添加功能變得簡單可行。本系統(tǒng)的不足之處在于功能稍顯簡單。由于作者的時(shí)間和精力有限,系統(tǒng)的功能總體來看比較少,只能在以后根據(jù)需求慢慢增加了。在開發(fā)本系統(tǒng)的過程中遇到了一些問題,主要是一些技術(shù)不太了解。最終通過查閱相關(guān)資料還是一一解決了這些問題。另外有些功能還沒有完全的實(shí)現(xiàn),比如用戶登錄的功能,目前沒有此項(xiàng)功能,如果要實(shí)現(xiàn)此功能,在后期會(huì)
41、相繼的慢慢完善。通過這次的設(shè)項(xiàng)目實(shí)訓(xùn),我學(xué)到了很多知識(shí)。深刻體會(huì)到了前期的設(shè)計(jì)對(duì)后期實(shí)現(xiàn)時(shí)的影響,如果在項(xiàng)目前期不能進(jìn)行很好的設(shè)計(jì),在后期開發(fā)時(shí)就會(huì)造成很多麻煩。另外,這次的項(xiàng)目也讓我明白了數(shù)據(jù)結(jié)構(gòu)知識(shí)的重要性,今后要加強(qiáng)數(shù)據(jù)結(jié)構(gòu)相關(guān)知識(shí)的學(xué)習(xí)。致 謝在這最后的時(shí)刻,我要特別感謝我的指導(dǎo)老師葉雷老師,他從論文開始的課題選擇,到初期的資料準(zhǔn)備,到中期的寫作,到后期的修改都給予了我非常耐心、負(fù)責(zé)的指導(dǎo)和建議,在這里我要對(duì)彭老師無私的付出表示誠摯的謝意。其次,我要感謝我的室友,我的同學(xué)們。在平時(shí)的學(xué)習(xí)中,每當(dāng)我遇到了困難,你們總是默默的鼓勵(lì)我,給我克服困難的勇氣,給我熱情的幫助,謝謝你們。最后,我要
42、感謝大學(xué)期間所有教過我的老師們。在這兩年中,你們教會(huì)了我很多知識(shí),也教會(huì)了我很多做人的道理。對(duì)于一個(gè)馬上就要踏入社會(huì)的人來說,這些知識(shí)和道理使我受益匪淺,我會(huì)銘記一生。學(xué)生信息管理系統(tǒng)心得體會(huì)經(jīng)過一個(gè)星期的課程設(shè)計(jì),收獲頗多。也明白了自己在c+語言上自己存在的一些問題,也解決了一些一直困惱我的問題。以前自己覺得程序很簡單,不放在心上。經(jīng)過課程設(shè)計(jì)才使我明白做程序需要的東西是很多的,你既要懂程序而且還要有耐心和恒心。課程設(shè)計(jì)是對(duì)我的一次全面的測試,它既鍛煉了我的動(dòng)手的能力也磨練了我的心理素質(zhì)。設(shè)計(jì)這個(gè)系統(tǒng),我們復(fù)習(xí)鞏固C語言的基礎(chǔ)知識(shí),進(jìn)一步加深對(duì)C語言編程的理解和掌握。 了解深入C語言編程的方
43、法和環(huán)境,基本掌握面向程序設(shè)計(jì)的基本思路和方法,提高學(xué)生自主思考的能力。利用所學(xué)知識(shí),把理論和實(shí)際結(jié)合,利用資源,采用模塊化的結(jié)構(gòu),學(xué)會(huì)使用模仿、修改、自主設(shè)計(jì)相結(jié)合的方法。通過設(shè)計(jì)學(xué)生成績管理系統(tǒng),掌握結(jié)構(gòu)化的程序設(shè)計(jì)思想,實(shí)現(xiàn)系統(tǒng)的正常運(yùn)行,并且提高學(xué)生綜合分析問題的素質(zhì)和解決實(shí)際問題的編程能力。培養(yǎng)學(xué)生在項(xiàng)目開發(fā)中的求知精神、團(tuán)隊(duì)合作精神、創(chuàng)新意識(shí)以及實(shí)戰(zhàn)能力。剛開始拿到課程設(shè)計(jì)題目學(xué)生信息管理系統(tǒng)的時(shí)候,自己好高興應(yīng)為我們以前做過,覺得很容易就可以做好了但是我仔細(xì)的看了一下設(shè)計(jì)要求。我發(fā)現(xiàn)還有些難度的。在這次課程設(shè)計(jì)過程中遇到了問題,我就找資料,看例題。在這種情況下,我才知道什么叫做“
44、書到用時(shí),方恨少”的道理。以后,我要多看看有關(guān)自己專業(yè)的書了。在設(shè)計(jì)過程中,我發(fā)現(xiàn)了我的一些缺點(diǎn),比如馬虎、沒耐心等等。我想程序設(shè)計(jì)最忌諱的就是馬虎。但我相信,從現(xiàn)在開始我會(huì)認(rèn)真的改正這些缺點(diǎn),以便更好的學(xué)習(xí)專業(yè)知識(shí)。作為C語言課程結(jié)課設(shè)計(jì),驗(yàn)證自身的學(xué)習(xí)效果,同時(shí)希望利用所學(xué)的基本知識(shí)和技能,進(jìn)行簡單數(shù)據(jù)庫應(yīng)用程序設(shè)計(jì)。在這一個(gè)星期的課程設(shè)計(jì)中,也讓我看到了一些c+程序設(shè)計(jì)方面薄弱的地方,在接下來的時(shí)間里我要好好的鞏固這些方面的知識(shí),爭取學(xué)好這一門課程,熟練掌握c+。 我相信只要自己努力一定會(huì)成功的!學(xué)號(hào): 劉永強(qiáng) 2014年12月31日學(xué)生信息管理系統(tǒng)心得體會(huì)在這個(gè)學(xué)期的期末,我們迎來了一
45、個(gè)學(xué)期一次的實(shí)訓(xùn),我們非常珍惜這次實(shí)訓(xùn),對(duì)于我來說,這是一次對(duì)我一個(gè)學(xué)期以來所學(xué)知識(shí)的一次總結(jié)。也是對(duì)這個(gè)學(xué)期所學(xué)知識(shí)的回顧,讓我更加對(duì)知識(shí)熟悉的掌握、了解。通過這個(gè)實(shí)訓(xùn)也讓我發(fā)現(xiàn)對(duì)哪些方面的不足和哪些方面有優(yōu)勢,這也是對(duì)我將來的發(fā)展方向至關(guān)重要的。經(jīng)過這四天的實(shí)訓(xùn),對(duì)于程序,我有自己的了解,利用學(xué)到的一點(diǎn)知識(shí),并在此基礎(chǔ)上,自己查詢資料了解學(xué)生信息管理系統(tǒng)的C語言代碼,并且在這基礎(chǔ)上加以修改,完善,増氣做到完美。我們小組獨(dú)立完成的,各小組獨(dú)立完成、分配各人的任務(wù)自己完成,分工合作獨(dú)到好處,也讓我們體會(huì)到團(tuán)隊(duì)合作的重要性與強(qiáng)大的能力。在這個(gè)學(xué)生信息管理系統(tǒng)中該系統(tǒng)完成了基本的信息查看、修改、添
46、加、刪除,其中的查找能很好的利用各個(gè)信息進(jìn)行查找該系統(tǒng)還有很多可以完善的地方。在老師的指導(dǎo)下,解決一些自己無法解決的問題,使得整個(gè)程序變得容易起來,這使得我自己更有自信,能讓這個(gè)程序順利進(jìn)行下去。團(tuán)隊(duì)合作的重要性,也為我們以后工作打下良好的基礎(chǔ),因?yàn)樵诤笃诠ぷ髦械教幰獔F(tuán)隊(duì)合作,分工處理就顯得尤其重要。所有的大程序都是獨(dú)立的模塊所組成,所以我們不能畏懼大程序,要勇敢向其邁進(jìn),才會(huì)更順利完成項(xiàng)目。在這,我對(duì)我這兩天參與的實(shí)訓(xùn)來做一個(gè)簡單的陳述:第一點(diǎn),是程序的關(guān)鍵所在,就是我們需要設(shè)計(jì)一個(gè)什么樣的程序,我們只有樹立一個(gè)明確的目標(biāo),我們才能進(jìn)行下一步的程序編碼;第二,程序?qū)崿F(xiàn),我們既然明確了我們的目的,當(dāng)然也要想辦法去實(shí)現(xiàn)它;第三,程序測試,測試這一關(guān)是每個(gè)程序必須經(jīng)過的過程,在這個(gè)過程中,需要百分百的將身心投入到測試中去,盡你所能去做好每一個(gè)細(xì)節(jié)性的測試,如果在測試中發(fā)現(xiàn)問題,我們應(yīng)該找到錯(cuò)誤代碼所在的那一行并標(biāo)記錯(cuò)。發(fā)現(xiàn)的bug時(shí),要以團(tuán)隊(duì)最快速度找出bug。實(shí)訓(xùn)是每個(gè)大學(xué)生在大學(xué)必須擁有的一段經(jīng)歷,他是我在實(shí)踐中了解事情解決方法,讓我學(xué)到了很多課堂上根本就學(xué)不到的知識(shí),也開闊了視野,增長了見識(shí),
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)文化資本傳播機(jī)制-洞察分析
- 水環(huán)境保護(hù)與可持續(xù)發(fā)展-洞察分析
- 驗(yàn)碼系統(tǒng)安全性分析-洞察分析
- 2025年滬科版八年級(jí)化學(xué)下冊(cè)階段測試試卷含答案
- 2025年滬教版七年級(jí)地理上冊(cè)階段測試試卷含答案
- 2025年北師大版六年級(jí)數(shù)學(xué)下冊(cè)月考試卷含答案
- 二零二五年度新能源汽車充電樁建設(shè)與運(yùn)營履約保函擔(dān)保合同4篇
- 2025年度民間借貸風(fēng)險(xiǎn)控制與委托管理服務(wù)合同4篇
- 酸調(diào)控機(jī)制在環(huán)境保護(hù)中的應(yīng)用研究-洞察分析
- 2025年人教A新版七年級(jí)地理下冊(cè)階段測試試卷
- 人教版(2025新版)七年級(jí)下冊(cè)英語:寒假課內(nèi)預(yù)習(xí)重點(diǎn)知識(shí)默寫練習(xí)
- 【公開課】同一直線上二力的合成+課件+2024-2025學(xué)年+人教版(2024)初中物理八年級(jí)下冊(cè)+
- 高職組全國職業(yè)院校技能大賽(嬰幼兒照護(hù)賽項(xiàng))備賽試題庫(含答案)
- 2024年公安部直屬事業(yè)單位招聘筆試參考題庫附帶答案詳解
- NB-T 47013.15-2021 承壓設(shè)備無損檢測 第15部分:相控陣超聲檢測
- SJG 05-2020 基坑支護(hù)技術(shù)標(biāo)準(zhǔn)-高清現(xiàn)行
- 汽車維修價(jià)格表
- 10KV供配電工程施工組織設(shè)計(jì)
- 終端攔截攻略
- 藥物外滲處理及預(yù)防【病房護(hù)士安全警示教育培訓(xùn)課件】--ppt課件
評(píng)論
0/150
提交評(píng)論