學(xué)生信息管理系統(tǒng)實(shí)訓(xùn)報(bào)告_第1頁
學(xué)生信息管理系統(tǒng)實(shí)訓(xùn)報(bào)告_第2頁
學(xué)生信息管理系統(tǒng)實(shí)訓(xùn)報(bào)告_第3頁
學(xué)生信息管理系統(tǒng)實(shí)訓(xùn)報(bào)告_第4頁
學(xué)生信息管理系統(tǒng)實(shí)訓(xùn)報(bào)告_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(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)教師:葉 雷二O四年十二月三十日項(xiàng)目小組任務(wù)分配表組員姓名學(xué)號(hào)組員任務(wù)劉永強(qiáng)課題研究的意義,需求分析 開發(fā)總結(jié),整理相關(guān)文檔劉強(qiáng)27各模塊功能實(shí)現(xiàn)項(xiàng)強(qiáng)33編碼實(shí)現(xiàn)吳盛林26主函數(shù)設(shè)計(jì),模塊詳細(xì)設(shè)計(jì)瞿孟孟系統(tǒng)功能和性能分析,可行性分析管豫冀系統(tǒng)設(shè)計(jì),結(jié)構(gòu)設(shè)計(jì)和模塊設(shè)計(jì)徐兵35系統(tǒng)測試與維護(hù)、八、亠前言隨著科學(xué)技術(shù)的不斷提高 , 計(jì)算機(jī)科學(xué)日漸成熟 ,其強(qiáng)大的功能已為人們深 刻認(rèn)識(shí), 它已進(jìn)入人類社會(huì)的各個(gè)領(lǐng)域并發(fā)揮著越來越重要的作用。作為計(jì)算機(jī)應(yīng)用的一部分 , 使用計(jì)算機(jī)

2、對學(xué)生信息進(jìn)行管理 , 具有手工管理 所無法比擬的優(yōu)點(diǎn)。例如 : 檢索迅速、查找方便、可靠性高、存儲(chǔ)量大、保密性 好、壽命長、成本低等。這些優(yōu)點(diǎn)能夠極大地提高學(xué)生檔案管理的效率, 也是進(jìn)行科學(xué)化、正規(guī)化管理,與世界接軌的重要條件。隨著國家對于教育的重視逐漸加大,學(xué)校正向著大型化、規(guī)?;l(fā)展,而對 于大中型學(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 章 緒論 什么是學(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é)生檔案管理管理功能,方便管理員對學(xué)生信息的添加、修改、刪除、查詢 等操作。本系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)學(xué)生信息管理的系統(tǒng)化、規(guī)范化、自動(dòng)化、達(dá)到 提高學(xué)生信息管理效率的目的。 課題研究的意義隨著我國教育產(chǎn)業(yè)化的飛速發(fā)展,社會(huì)對教育水平和教學(xué)管理軟硬件的要求日益提 高,尤其是對一個(gè)學(xué)校能夠具有一整套完善的教學(xué)管理軟件提出了更多的要求。為了適 應(yīng)這種形式,教育系

4、統(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)代化的水平。隨著國家對于教育的重視逐漸加大,學(xué)校正向著大型化、規(guī)?;l(fā)展,而對于大中 型學(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)分析 需求分析學(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é)生成績排名功能 根據(jù)學(xué)生的總分成績,

6、來進(jìn)行排名,將排名后的成績保存到磁盤文件 本軟件系統(tǒng)各種特點(diǎn)決定了系統(tǒng)需要具有以下幾個(gè)主要特性:(1) 多樣性?,F(xiàn)在,計(jì)算機(jī)語言越來越普及,用戶面臨的選擇越來越多。想要保證 對用戶的吸引力,就必須要在多樣性上下功夫了。所以,系統(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ù)雜度。 可行性分析 技術(shù)可行性本系統(tǒng)主要采用Struts2框架開發(fā)。Struts2是一個(gè)成熟的MVC匡架,它的功能非 常強(qiáng)大,包括請求轉(zhuǎn)發(fā)、數(shù)據(jù)校驗(yàn)、文件上傳下載等等,再加上 jsp 作為展示層,完全 可以滿足本系統(tǒng)的開發(fā)需要,因此技術(shù)上是可行的。 經(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ì)上是可行的。 社會(huì)可行性該系統(tǒng)為完全獨(dú)立開發(fā)。開發(fā)工具選的是及GCC開發(fā)技術(shù)多是用的開源的框架和工具,因此不存在侵權(quán)問題。第3章系統(tǒng)設(shè)計(jì)在

8、對整個(gè)軟件系統(tǒng)進(jìn)行開發(fā)之前,要對整個(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ù)與工具的選擇等等。本章主 要對這些內(nèi)容進(jìn)行詳細(xì)的介紹。系統(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)文件一起連接。對于任何一種操作系統(tǒng)環(huán)境, C函數(shù)的ABI(Application Bin aryl nteface)與匯編語言的子過程(rout in e/procedure )的ABI 一定是完全兼容的)。盡管 C語言提供

9、了許多低級(jí)處理的功能,但仍然保持著良好跨平臺(tái)的特性,以一個(gè)標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在許多電腦平臺(tái)上進(jìn)行編譯,甚至包含一些嵌入式處理器(單片機(jī)或稱MCU以及超級(jí)電腦等作業(yè)平臺(tái)。圖系統(tǒng)結(jié)構(gòu)圖系統(tǒng)功能模塊設(shè)計(jì)本軟件系統(tǒng)主要可分為8大功能模塊,包括了錄入學(xué)生信息模塊、查詢學(xué)生信息模 塊,、刪除學(xué)生信息模塊、修改學(xué)生信息模塊、插入學(xué)生信息木塊、學(xué)生成績排名模塊、 學(xué)生人數(shù)統(tǒng)計(jì)模塊和顯示學(xué)生信息模塊功能結(jié)構(gòu)如圖所示。系統(tǒng)結(jié)構(gòu)體定義sumdouble8無對于一個(gè)應(yīng)用程序而言,結(jié)構(gòu)體的定義好壞尤為重要。一個(gè)設(shè)計(jì)結(jié)構(gòu)體,可以使系 統(tǒng)功能實(shí)現(xiàn)變得更加簡單,也會(huì)使系統(tǒng)的執(zhí)行速度更快,性能更高更穩(wěn)定??偡殖煽兿到y(tǒng)函

10、數(shù)定義列含義類型in()錄入學(xué)生成績信息voidshow()顯示學(xué)生信息voidorder()按總分排序voiddel()刪除學(xué)生成績信息voidmodify。修改學(xué)生成績信息voidmen u()主菜單voidin sert()插入學(xué)生信息voidtotal()計(jì)算總?cè)藬?shù)Voidsearch()查找學(xué)生信息voidmai n()主函數(shù)int第4章系統(tǒng)實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)界面展示模塊及實(shí)現(xiàn)主界面主界面列表顯示的是各個(gè)功能的顯示信息,包括退出系統(tǒng)、輸入學(xué)生信息、查詢學(xué) 生信息、刪除學(xué)生信息、修改學(xué)生信息、插入學(xué)生信息、總成績排名、統(tǒng)計(jì)學(xué)生人數(shù)、 顯示學(xué)生信息。界面用戶進(jìn)入列表展示界面后,可以輸入

11、選項(xiàng)選擇相應(yīng)的功能展示功能模塊界面代碼實(shí)現(xiàn):void menu()/*自定義函數(shù)實(shí)現(xiàn)菜單功能*/system(cls);prin tf(nnnnn);printf(tt|STUDENT|n);prin tf(tt|t 0.退出|n);prin tf(tt|t 1.輸入數(shù)據(jù)|n);prin tf(tt|t 2.搜索數(shù)據(jù)|n);prin tf(tt|t 3.刪除數(shù)據(jù)|n);prin tf(tt|t 4.修改數(shù)據(jù)|n);prin tf(tt|t 5.插入數(shù)據(jù)|n);prin tf(tt|t 6.總分排序|n);prin tf(tt|t 7.學(xué)生人數(shù)|n);prin tf(tt|t 8.查看|n);p

12、rintf(tt|nn);prin tf(ttt選擇(0-8):);具有輸入數(shù)字選擇功能的代碼是寫在主函數(shù)中的void mai n()/* 主函數(shù) */ int n;menu();scanf(%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: in sert();break;case 6: order();break;case 7: total();break;case 8: s

13、how();break;default:break;getch();menu();/*執(zhí)行完功能再次顯示菜單界面*/scan f(%d,&n);錄入學(xué)生信息模塊- 1n nz 0 s _b 0 ? 0 - 居yl IS oo 7 1- 呆#A -旨 飆入4嗔課課課車“嗔課課課 沒請沁姓選實(shí)必能望IrtlA姓選冥必/ 2卯(0-8 4 G-9671I 芝冃??;: 自e在主界面中輸入數(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在錄入學(xué)生

14、信息模塊中將學(xué)生的信息進(jìn)行保留,當(dāng)程序運(yùn)行結(jié)束,關(guān)閉程序,下此 運(yùn)行程序時(shí)錄入的信息任然保留。因此在該模塊中應(yīng)用文件讀寫操作,對錄入的信息保 存到存到磁盤文件中,下次運(yùn)行程序時(shí),可以從磁盤文件中將存儲(chǔ)讀出并顯示。代碼實(shí)現(xiàn)void in()/*錄入學(xué)生信息*/ int i,m=0;/*m是記錄的條數(shù)*/char ch2;FILE *fp;/*定義文件指針*/if(fp=fopen(,a+)=NULL)/*打開指定文件 */printf( 不能打開 n);return;while(!feof(fp)if(fread(&stum丄 EN,1,fp)=1)m+;/*統(tǒng)計(jì)當(dāng)前記錄條數(shù)*/fclose(f

15、p);if(m=0)printf( 沒有數(shù)據(jù) n);elsesystem(cls);show();/*調(diào)用show函數(shù),顯示原有信息*/if(fp=fope n( ,wb)=NULL)printf( 不能打開 n);return;for(i=0;im;i+)fwrite(&stui ,LEN,1,fp);/* 向指定的磁盤文件寫入信息 */printf( 請輸入 (y/n):);scanf(%s,ch);while(strcmp(ch,Y)=0|strcmp(ch,y)=0)/* 判斷是否要錄入新信息 */ printf(number:);scanf(%d,&stum.num);/* 輸入學(xué)生

16、學(xué)號(hào) */for(i=0;im;i+)if(stui.num=stum.num)printf(the number 正在運(yùn)行 , 按任意鍵繼續(xù) );getch();fclose(fp);return;printf(姓名 :);輸入學(xué)生姓名 */輸入選修課成績 */輸入實(shí)驗(yàn)課成績 */輸入必修課成績 */scanf(%s,);/* printf( 選修課 :); scanf(%lf,&stum.elec);/* printf( 實(shí)驗(yàn)課 :);scanf(%lf,&stum.expe);/* printf( 必修課 :);計(jì)算出總成績 */scanf(%lf,&stum.requ

17、);/*stum.sum=stum.elec+stum.expe+stum.requ;/*if(fwrite(&stum,LEN,1,fp)!=1)/* 將新錄入的信息寫入指定的磁盤文件 */printf(不能保存 !);getch();elseprintf(%s 保存 n,);m+;printf( 是否繼續(xù) ?(y/n):);/* 詢問是否繼續(xù) */scanf(%s,ch);fclose(fp);printf(OK!n); 查詢學(xué)生信息模塊查詢學(xué)生信息模塊的主要功能時(shí)根據(jù)輸入的學(xué)生學(xué)號(hào)對學(xué)生信息進(jìn)行搜索,若查找 到該學(xué)生學(xué)號(hào)對學(xué)生信息進(jìn)行搜索,若查找到該學(xué)生,則選擇是否顯示

18、該學(xué)生信息,輸 入 2 時(shí),進(jìn)入查詢狀態(tài),運(yùn)行效果如圖所示。由于學(xué)生信息都及時(shí)存儲(chǔ)到磁盤文件中,因此想要查找學(xué)生的信息首先需要對文件進(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(,rb)=NULL) printf(不能打開 n);return;while(!feof(fp) if(fread(&stum,LEN,1,fp)=1) m+;fclose(fp);

19、if(m=0) printf(沒有數(shù)據(jù)!n);return;printf(請輸入學(xué)號(hào):);scan f(%d,&sn um);for(i=0;im;i+)if(s num=stui. num)/*查找輸入的學(xué)號(hào)是否在記錄中*/ prin tf(找到學(xué)生,是否顯示?(y/n);sca nf(%s,ch);if(strcmp(ch,Y)=0|strcmp(ch,y)=0)printf( 學(xué)號(hào) 姓名選修課 實(shí)驗(yàn)課 必修課 總分tn);prin tf(FORMATQATA);/*將查找出的結(jié)果按指定格式輸出*/break;if(i=m) printf(不能找到學(xué)生n);/* 未找到要查找的信息*/刪除

20、學(xué)生信息模塊刪除學(xué)生信息模塊的主要功能是從磁盤文件中將學(xué)生信息讀取出來,從讀出的信息 中查找到將要?jiǎng)h除的學(xué)生的信息,然后將該學(xué)生的信息節(jié)點(diǎn)與鏈表斷開,即將其所有信 息刪除,將更改后的信息再寫入到磁盤文件。在主界面中輸入3時(shí),調(diào)用刪除功能函數(shù),運(yùn)行效果如圖功能實(shí)現(xiàn):(2)根據(jù)輸10003匹配查找。當(dāng)查找到與該學(xué)號(hào)匹配的學(xué)生信息時(shí),根據(jù)提示,輸入是否對該學(xué)生進(jìn)行刪除操 作;3) 若進(jìn)行刪除操作,則使用如下代碼對學(xué)生信息進(jìn)行刪除,并將刪除后的學(xué)生信息重新寫入磁盤文件中代碼實(shí)現(xiàn):void del()/* 自定義刪除函數(shù) */FILE *fp;int snum,i,j,m=0;char ch2;if(f

21、p=fopen(,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;printf( 請輸入學(xué)號(hào) :); scanf(%d,&snum);for(i=0;im;i+)if(snum=stui.num)break;printf( 找到學(xué)生,是否刪除? (y/n);scanf(%s,ch);if(strcmp(ch,Y)=0|strcmp(ch,y)=0)/* 判斷是否要進(jìn)行刪除 */ for(j=i;jm;j

22、+)stuj=stuj+1;/* 將后一個(gè)記錄移到前一個(gè)記錄的位置 */ m-;/*記錄的總個(gè)數(shù)減 1*/if(fp=fopen(,wb)=NULL) printf(不能打開 n);return;for(j=0;jm;j+)/* 將更改后的記錄重新寫入指定的磁盤文件中 */if(fwrite(&stuj ,LEN,1,fp)!=1) printf( 不能保存! n);getch();fclose(fp);printf( 成功刪除 n); 插入學(xué)生信息模塊插入學(xué)生信息模塊的主要功能是在需要的位置插入新的學(xué)生信息, 輸入 5 時(shí),進(jìn)入 插入學(xué)生信息模塊,效果如圖:功能實(shí)現(xiàn):( 1) 因?yàn)樵撓到y(tǒng)的學(xué)

23、生信息都及時(shí)的存儲(chǔ)在磁盤文件中, 所以每次操作都要先將 數(shù)據(jù)從文件中讀取出來。(2) 輸入需要插入信息的位置, 即可需要插入在哪個(gè)學(xué)生的學(xué)號(hào)后面, 然后查找 該學(xué)號(hào),從最后一條信息開始均向后移動(dòng)一位, 為新插入的信息提供位置。(3) 設(shè)置好可以要輸入的位置后, 向該位置錄入新學(xué)生的信息。 然后該學(xué)生的信 息寫入到磁盤文件中。代碼實(shí)現(xiàn):void insert()/* 自定義插入函數(shù) */ FILE *fp;int i,j,k,m=0,snum;if(fp=fopen(,r+)=NULL) printf( 不能打開 n);return;while(!feof(fp)if(fread(&stum,L

24、EN,1,fp)=1) m+;if(m=0) printf( 沒有數(shù)據(jù) !n);fclose(fp);return;printf( 請輸入你想插入的位置 ( 輸入學(xué)號(hào) )n); scanf(%d,&snum);/* 輸入要插入的位置 */ for(i=0;ii;j-)stuj+1=stuj;/*從最后一條記錄開始均向后移一位 */printf( 現(xiàn)在請輸入新的信息n);printf(學(xué)號(hào):);scanf(%d,&stui+1.num);for(k=0;km;k+)if(stuk.num=stum.num)printf( 學(xué)生人數(shù)正在退出, 按任意鍵繼續(xù) );getch();fclose(fp)

25、;return;printf(姓名 :);scanf(%s,);/*輸入名字 */printf(選修課:);scanf(%lf,&stui.elec);/*輸入選修課成績*/printf(實(shí)驗(yàn)課 :);scanf(%lf,&stui.expe);/*輸入實(shí)驗(yàn)課成績*/printf(必修課:);scanf(%lf,&stui.requ);/*輸入必修課成績*/printf( 修改成功 );stui.sum=stui.elec+stui.expe+stui.requ;if(fp=fopen(,wb)=NULL) printf(can not openn);return;for(k

26、=0;k=m;k+)if(fwrite(&stuk ,LEN,1,fp)!=1)/* 將修改后的記錄寫入磁盤文件中 */ printf(不能保存 ); getch(); fclose(fp);學(xué)生成績排名模塊根據(jù)學(xué)生的總成績將所有學(xué)生的信息按照從高到低進(jìn)行排序,將排序后的信息寫入 到磁盤文件中保存。如圖所示為排序后現(xiàn)實(shí)出來的效果再在主界面中輸入數(shù)字 8,就會(huì)把保存的排序輸出出來如圖:這里應(yīng)用比較穩(wěn)定簡單的交換發(fā)排序?qū)W(xué)生的成績進(jìn)行比較交換。學(xué)生成績排名的實(shí)現(xiàn)過程是 首先需要將錄入的學(xué)生信息從磁盤文件中讀取,然后將讀出的學(xué)生信息按照成績進(jìn)行比較交換,從 高到低排序,為學(xué)生排名次,然后再將拍好名次

27、的學(xué)生信息保存寫入到磁盤文件中。代碼實(shí)現(xiàn):void order()/* 自定義排序函數(shù) */ FILE *fp;struct student t;int i=0,j=0,m=0;if(fp=fopen(,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(,wb)=NULL)printf( 不能打開 n);return;for(i=0;im-1;i+)for(j=i+1;jm;j+)

28、/* 雙重循環(huán)實(shí)現(xiàn)成績比較并交換 */ if(stui.sumstuj.sum) t=stui;stui=stuj;stuj=t; if(fp=fopen(,wb)=NULL) printf(不能打開 n);return;for(i=0;im;i+)/* 將重新排好序的內(nèi)容重新寫入指定的磁盤文件中 */ if(fwrite(&stui ,LEN,1,fp)!=1)printf(%s 不能保存 !n);getch();fclose(fp);printf( 保存成功 n);當(dāng)在主界面輸入 7 時(shí),可以對學(xué)生的人數(shù)進(jìn)行統(tǒng)計(jì),顯示出統(tǒng)計(jì)的人數(shù)。運(yùn)行效果如圖代碼實(shí)現(xiàn):void total() FILE

29、*fp;int m=0; if(fp=fopen(,r+)=NULL) printf(不能打開 n);return;while(!feof(fp)if(fread(&stum,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 章 軟件測試 軟件測試辦法主題內(nèi)容為保證軟件的可靠性和安全性,從技術(shù)角度對工程軟件測試辦法作出規(guī)定測試目的提供系統(tǒng)化、規(guī)范化、實(shí)用化的測試技術(shù)規(guī)范,盡早發(fā)現(xiàn)故障,減少交付系統(tǒng)聯(lián) 試前軟件中的殘留差錯(cuò)。測試方法本軟件測

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論