C語(yǔ)言課程設(shè)計(jì)(成績(jī)管理系統(tǒng))_第1頁(yè)
C語(yǔ)言課程設(shè)計(jì)(成績(jī)管理系統(tǒng))_第2頁(yè)
C語(yǔ)言課程設(shè)計(jì)(成績(jī)管理系統(tǒng))_第3頁(yè)
C語(yǔ)言課程設(shè)計(jì)(成績(jī)管理系統(tǒng))_第4頁(yè)
C語(yǔ)言課程設(shè)計(jì)(成績(jī)管理系統(tǒng))_第5頁(yè)
已閱讀5頁(yè),還剩41頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、C語(yǔ)言課程設(shè)計(jì)(成績(jī)管理系統(tǒng))一、課程設(shè)計(jì)的內(nèi)容(1)信息維護(hù):要求:學(xué)生信息數(shù)據(jù)要以文件的形式保存,能實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)。此模塊包括子模塊有:增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息(2)信息查詢:要求:查詢時(shí)可實(shí)現(xiàn)按姓名查詢、按學(xué)號(hào)查詢(3)成績(jī)統(tǒng)計(jì):要求:A輸入任意的一個(gè)課程名(如數(shù)學(xué))和一個(gè)分?jǐn)?shù)段(如60-70),統(tǒng)計(jì)出在此分?jǐn)?shù)段的學(xué)生情況。(4)排序:能對(duì)用戶指定的任意課程名,按成績(jī)升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果(使用表格的形式顯示排序后的輸出結(jié)果)(使用多種方法排序者,加分)(二)其它要求:(1)只能使用ac+語(yǔ)言,源程序要有適當(dāng)?shù)淖⑨?,使程序容易閱讀(2)至少采用文本菜

2、單界面(如果能采用圖形菜單界面更好)(3)學(xué)生可自動(dòng)增加新功能模塊(視情況可另外加分)(4)寫出課程設(shè)計(jì)報(bào)告,具體要求見相關(guān)說(shuō)明文檔二、課程設(shè)計(jì)的要求與數(shù)據(jù)1、進(jìn)一步掌握和利用c語(yǔ)言進(jìn)行程設(shè)計(jì)的能力;2、進(jìn)一步理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思想和方法;3、初步掌握開發(fā)一個(gè)小型實(shí)用系統(tǒng)的基本方法;4、學(xué)會(huì)調(diào)試一個(gè)較長(zhǎng)程序的基本方法;5、學(xué)會(huì)利用流程圖或N-S圖表示算法;6、掌握書寫程序設(shè)計(jì)開發(fā)文檔的能力。三、課程設(shè)計(jì)應(yīng)完成的工作1、編寫完成相應(yīng)題目的程序;2、編寫課程設(shè)計(jì)報(bào)告,課程設(shè)計(jì)報(bào)告的內(nèi)容應(yīng)包括以下6個(gè)部分:1)需求分析:包括設(shè)計(jì)題目、設(shè)計(jì)要求以及系統(tǒng)功能需求分析;2)總體設(shè)計(jì):包括系統(tǒng)總體設(shè)

3、計(jì)框架和系統(tǒng)功能模塊圖;3)詳細(xì)設(shè)計(jì):包括主要功能模塊的算法設(shè)計(jì)思路以及對(duì)應(yīng)的工作流程圖;4)調(diào)試分析過(guò)程描述:包括測(cè)試數(shù)據(jù)、測(cè)試輸出結(jié)果,以及對(duì)程序調(diào)試過(guò)程中存在問題的思考(列出主要問題的出錯(cuò)現(xiàn)象、出錯(cuò)原因、解決方法及效果等,適當(dāng)?shù)陌Y(jié)果截圖);5)總結(jié):課程設(shè)計(jì)完成了哪些功能,有沒有什么擴(kuò)展功能?還有哪些地方需要改進(jìn)?課程設(shè)計(jì)過(guò)程中的學(xué)習(xí)體會(huì)與收獲、對(duì)本次課程設(shè)計(jì)的認(rèn)識(shí)以及自己的建議等內(nèi)容;6)附錄:主要源程序代碼,含必要的注釋。3、答辯:在實(shí)驗(yàn)室建立程序運(yùn)行的環(huán)境,并在指導(dǎo)教師的監(jiān)督下,獨(dú)立解決問題、運(yùn)行程序和回答教師提出的問題。目錄1設(shè)計(jì)目的與要求P42總體設(shè)計(jì)P43詳細(xì)設(shè)計(jì)P53.

4、1 功能模塊設(shè)計(jì)P53.1.1 XX功能模塊(可選)P53.1.2 YY功能模塊(可選)P63.1.3 ZZ功能模塊(可選)P73.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)P84調(diào)試分析P94.1 結(jié)構(gòu)體P94.2 鏈表P115遇到的問題及解決方法分析P126總結(jié)P137源文件P137.1 鏈表P137.2 結(jié)構(gòu)體P281、目的與要求目的:編制一程序?qū)崿F(xiàn)對(duì)學(xué)生成績(jī)的管理,讓自己既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐,將課本上的理論知識(shí)和實(shí)際應(yīng)用問題進(jìn)行有機(jī)結(jié)合,鍛煉自己分析、解決實(shí)際問題的能力,提高自身項(xiàng)目開發(fā)及程序調(diào)試能力。要求:1、整個(gè)系統(tǒng)均用砥言實(shí)現(xiàn);2、利用指針、結(jié)構(gòu)體、鏈表來(lái)實(shí)現(xiàn)學(xué)生成績(jī)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì);3、系統(tǒng)具有輸入、顯

5、示、查詢(查詢時(shí)可實(shí)現(xiàn)按姓名查詢、按學(xué)號(hào)查詢)、刪除、排序、插入,保存、讀取基本功能;4、系統(tǒng)的各個(gè)功能模塊都用函數(shù)的形式來(lái)實(shí)現(xiàn);5、學(xué)生信息數(shù)據(jù)要以文件的形式保存,能實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)。此模塊包括子模塊有:增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息;6、可以輸入任意的一個(gè)課程名(如數(shù)學(xué))和一個(gè)分?jǐn)?shù)段(如60-70),統(tǒng)計(jì)出在此分?jǐn)?shù)段的學(xué)生情況;7、能對(duì)用戶指定的任意課程名,按成績(jī)升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果;8、可自動(dòng)增加新功能模塊;9、可以將學(xué)生信息從文件中讀取出來(lái)。2總體設(shè)計(jì)1、主函數(shù)main()利用if-else,While循環(huán)語(yǔ)句和switch()實(shí)現(xiàn)各函數(shù)的調(diào)用,系統(tǒng)根據(jù)

6、輸入的數(shù)字選項(xiàng)來(lái)調(diào)用相應(yīng)的函數(shù)。2、菜單選擇函數(shù)voidmenu();這是一個(gè)無(wú)參函數(shù),主要實(shí)現(xiàn)“功能選擇”的界面,在這個(gè)界面里有顯示系統(tǒng)的13大功能,根據(jù)每個(gè)功能前面的序號(hào)進(jìn)行選擇。等執(zhí)行完每一個(gè)函數(shù)功能后,按任'0'鍵回到主界面也要通過(guò)這個(gè)函數(shù)提示來(lái)實(shí)現(xiàn)!3自定義函數(shù)voidprintstart()、voidWrong()、voidNofind()、voidprintc()、voidprinte(Node*p)用voidWrong()來(lái)提示輸入錯(cuò)誤)用voidNofind()提示沒有找到學(xué)生資料,用voidprintc()來(lái)輸出中文)用voidprinte(Node*p)來(lái)

7、輸出中文。main()voidAdd(Linkl)_voidMaths(Link|l)voidChinese(Linkl)voidprinte(Node*p)3詳細(xì)設(shè)計(jì)3.1 功能模塊設(shè)計(jì)3.1.1 排序數(shù)學(xué)成績(jī)功能模塊函數(shù)voidMaths(Linkl)該函數(shù)用于對(duì)數(shù)學(xué)成績(jī)進(jìn)行降序,ll=(Link)malloc(sizeof(Node)用于做新的鏈表連接,如果原鏈表為空的話,返回;不為空的話,p=l->next;建立接點(diǎn)用于保存信息,對(duì)指定鏈表地址進(jìn)行排序。流程圖如圖所示:Linkllll=(Link)malloc(sizeof(Node)用于做新的連表rr->next->

8、;data.mgrade>=p->data.mgrade)rr->next=NULLrr->next=ss->neXt=rr->next;rr->next=sp=p->nextl->next=ll->next(排序完成)3.1.2 顯示學(xué)生資料功能模塊函數(shù)voidDisp(Linkl)該函數(shù)負(fù)責(zé)顯示學(xué)生資料,這是一個(gè)不返回值函數(shù)。算法:先將p結(jié)點(diǎn)的指針指向第一個(gè)結(jié)點(diǎn),將p結(jié)點(diǎn)(即第一個(gè)結(jié)點(diǎn))的數(shù)據(jù)輸出。然后再將p結(jié)點(diǎn)的指針指向p指針的的指針(即下一結(jié)點(diǎn)),將p結(jié)點(diǎn)(即第一結(jié)點(diǎn))的數(shù)據(jù)輸出。重復(fù)執(zhí)行此步聚直到p指針指向NULL為止。流程

9、圖如圖所示:否提示沒有p指向下一結(jié)點(diǎn)資料可以p=p->next輸出p指向的結(jié)點(diǎn),即學(xué)生信息returnp指向下一結(jié)點(diǎn)p=p->next3.1.3 刪除資料功能模塊函數(shù)voidDel(Linkl)該函數(shù)用于有選擇地刪除學(xué)生資料,如果原來(lái)的鏈表為空的話,會(huì)返回;不為空的話,選擇用按哪種類型刪除,如果按學(xué)號(hào)刪除,就輸入學(xué)號(hào),后判斷是否取得地址,取得就執(zhí)行刪除;按名字刪除就輸入名字,運(yùn)行同學(xué)號(hào)一樣。流程圖如圖所示:是否否是Returnr指向卜一Nofind()Nofind()r指向卜一結(jié)點(diǎn)結(jié)占八、執(zhí)行free(p)執(zhí)行free(p)3.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)(可選)一個(gè)結(jié)構(gòu)體變量中可以存放一組數(shù)

10、據(jù)(如一個(gè)學(xué)生的學(xué)號(hào)、姓名、成績(jī)等數(shù)據(jù))。一個(gè)結(jié)構(gòu)體變量的指針就是該變量所占據(jù)的內(nèi)存段起始地址??梢栽O(shè)一個(gè)指針變量,用來(lái)指向一結(jié)構(gòu)體變量,此時(shí)指針變量的值是結(jié)構(gòu)體的起始地址。指針量變也可以用來(lái)指向一結(jié)構(gòu)體數(shù)組中的元素。structstudentcharnum10;/*學(xué)號(hào)*/charname20;charsex4;intcgrade;intmgrade;integrade;inttotle;intave;charneartime10;/*最近更新時(shí)間*/;typedefstructnodestructstudentdata;structnode*next;Node,*Link;6總結(jié)經(jīng)過(guò)一個(gè)多

11、星期的C語(yǔ)言課程設(shè)計(jì),感覺自己收獲不少!首先是:要達(dá)到這樣的功能,使用鏈表相當(dāng)方便,但不容易理解,所以在這方面我很了很多的時(shí)間看課本,使C語(yǔ)言的知識(shí)強(qiáng)化了不少。其次,在做課程設(shè)計(jì)的過(guò)程中,發(fā)現(xiàn)了平時(shí)很多沒有注意到的問題,例如:返回信函數(shù)和不返回信函數(shù)兩者在主函數(shù)中的調(diào)用是不同的更重要的是,這次課程設(shè)計(jì)雖然花了我不少時(shí)間,但正是這些時(shí)間,讓我見識(shí)到了C語(yǔ)言的重要性。這個(gè)學(xué)生成績(jī)管理系統(tǒng)都是在自己知識(shí)范圍內(nèi)完成的,所以界面清晰簡(jiǎn)單,可能不是很好看,但絕對(duì)實(shí)用!從這里我也得到一個(gè)體會(huì),做一個(gè)程序,或者開發(fā)一個(gè)軟件,應(yīng)該著重從它的后臺(tái)制作入手,不能做出一個(gè)中看不中用的程序或者軟件。相信這次的課程設(shè)計(jì)使

12、我的C語(yǔ)言知識(shí)扎實(shí)了很多。由于這是第一次進(jìn)行設(shè)計(jì),寫文檔,難免會(huì)寫得不好!7源程序7.1鏈表#include"stdio.h"#include"stdlib.h"#include"string.h"intshoudsave=0;/*/structstudentcharnum10;/*學(xué)號(hào)*/charname20;charsex4;intcgrade;intmgrade;integrade;inttotle;intave;charneartime10;/*最近更新時(shí)間*/;typedefstructnodestructstudentda

13、ta;structnode*next;Node,*Link;voidmenu()prints*、);printf("t1登記學(xué)生資料ttttt2刪除學(xué)生資料n");printf("t3查詢學(xué)生資料ttttt4修改學(xué)生資料n");printf("t5顯示學(xué)生資料ttttt6統(tǒng)計(jì)學(xué)生資料n");printf("t7排序語(yǔ)文成績(jī)ttttt8排序數(shù)學(xué)成績(jī)n");printf("t9排序英語(yǔ)成績(jī)ttttt10選出分段分?jǐn)?shù)n");printf("t11保存學(xué)生資料ttttt12幫助信息ttn&qu

14、ot;);printf("皿退出系統(tǒng)gttttttn");printf("*n");voidprintstart()printf("-n");voidWrong()printf("n=>提示:輸入錯(cuò)誤!n");voidNofind()printf("n=>提示:沒有找到該學(xué)生!n");voidprintc()/*本函數(shù)用于輸出中文*/printf("學(xué)號(hào)t姓名t性別語(yǔ)文成績(jī)數(shù)學(xué)成績(jī)英語(yǔ)成績(jī)總分平均分n");voidprinte(Node*p)/*本函數(shù)用于輸出英文

15、*/printf("%-12s%st%st%dt%dt%dt%dt%dn”,p->data.num,p->,p->data.sex,p->data.egrade,p->data.mgrade,p->data.cgrade,p->data.totle,p->data.ave);Node*Locate(Linkl,charfindmess,charnameornum口)/*該函數(shù)用于定位連表中符合要求的接點(diǎn),并返回該指針*/Node*r;if(strcmp(nameornum,"num")=0)/*按學(xué)

16、號(hào)查詢*/r=l->next;while(r!=NULL)if(strcmp(r->data.num,findmess)=0)returnr;r=r->next;elseif(strcmp(nameornum,"name")=0)/*按姓名查詢*/r=l->next;while(r!=NULL)if(strcmp(r->,findmess)=0)returnr;r=r->next;return0;voidAdd(Linkl)/*增加學(xué)生*/Node*p,*r,*s;charnum10;r=l;s=l->next;w

17、hile(r->next!=NULL)r=r->next;/*將指針置于最末尾*/while(1)printf(“請(qǐng)你輸入學(xué)號(hào)(以'0'返回上一級(jí)菜單:)”);scanf("%s”,num);if(strcmp(num,"0")=0)break;while(s)if(strcmp(s->data.num,num)=0)printf("提示:學(xué)號(hào)為%s'的學(xué)生已經(jīng)存在,若要修改請(qǐng)你選擇4修改'!n",num);printstart();printc();printe(s);printstart()

18、;printf("n");return;s=s->next;p=(Node*)malloc(sizeof(Node);strcpy(p->data.num,num);printf("請(qǐng)你輸入姓名:”);scanf("%s”,p->);getchar();printf(“請(qǐng)你輸入性別:");scanf("%s”,p->data.sex);getchar();printf("請(qǐng)你輸入語(yǔ)文成績(jī):”);scanf("%d”,&p->data.cgrade);getch

19、ar();printf("請(qǐng)你輸入數(shù)學(xué)成績(jī):");scanf("%d”,&p->data.mgrade);getchar();printf("請(qǐng)你輸入英語(yǔ)成績(jī):");scanf("%d”,&p->data.egrade);getchar();p->data.totle=p->data.egrade+p->data.cgrade+p->data.mgrade;p->data.ave=p->data.totle/3;/*信息輸入已經(jīng)完成*/p->next=NULL;r-

20、>next=p;r=p;shoudsave=1;voidQur(Linkl)/*查詢學(xué)生*/intsel;charfindmess20;Node*p;if(!l->next)printf("n=>提示:沒有資料可以查詢!n");return;printf("n=>1按學(xué)號(hào)查找n=>2按姓名查找n");scanf("%d”,&sel);if(sel=1)/*學(xué)號(hào)*/printf(“請(qǐng)你輸入要查找的學(xué)號(hào):”);scanf("%s",findmess);p=Locate(l,findmess,

21、"num");if(p)printf("tttt查找結(jié)果n");printstart();printc();printe(p);printstart();elseNofind();elseif(sel=2)/*姓名*/printf("請(qǐng)你輸入要查找的姓名:”);scanf("%s”,findmess);p=Locate(l,findmess,"name");if(p)printf("tttt查找結(jié)果n");printstart();printc();printe(p);printstart();

22、elseNofind();elseWrong();voidDel(Linkl)/*刪除*/intsel;Node*p,*r;charfindmess20;if(!l->next)printf("n=>提示:沒有資料可以刪除!n");return;)printf("n=>1按學(xué)號(hào)刪除n=>2按姓名刪除n");scanf("%d”,&sel);if(sel=1)printf("請(qǐng)你輸入要?jiǎng)h除的學(xué)號(hào):”);scanf("%s”,findmess);p=Locate(l,findmess,"

23、num");if(p)r=l;while(r->next!=p)r=r->next;r->next=p->next;free(p);printf("n=>提示:該學(xué)生已經(jīng)成功刪除!n");shoudsave=1;elseNofind();elseif(sel=2)printf("請(qǐng)你輸入要?jiǎng)h除的姓名:");scanf("%s”,findmess);p=Locate(l,findmess,"name");if(p)r=l;while(r->next!=p)r=r->next;

24、r->next=p->next;free(p);printf("n=>提示:該學(xué)生已經(jīng)成功刪除!n");shoudsave=1;elseNofind();elseWrong();voidModify(Linkl)Node*p;charfindmess20;if(!l->next)printf("n=>提示:沒有資料可以修改!n");return;printf(“請(qǐng)你輸入要修改的學(xué)生學(xué)號(hào):”);scanf("%s”,findmess);p=Locate(l,findmess,"num");if(p

25、)printf("請(qǐng)你輸入新學(xué)號(hào)(原來(lái)是s):",p->data.num);scanf("%s”,p->data.num);printf(“請(qǐng)你輸入新姓名(原來(lái)>1:%s):",p->);scanf("%s”,p->);getchar();printf("請(qǐng)你輸入新性別(原來(lái)>1:%s):",p->data.sex);scanf("%s”,p->data.sex);printf("請(qǐng)你輸入新的語(yǔ)文成績(jī)(原來(lái)是d分):”,p

26、->data.cgrade);scanf("%d”,&p->data.cgrade);getchar();printf("請(qǐng)你輸入新的數(shù)學(xué)成績(jī)(原來(lái)是d分):”,p->data.mgrade);scanf("%d”,&p->data.mgrade);getchar();printf("請(qǐng)你輸入新的英語(yǔ)成績(jī)(原來(lái)是d分):”,p->data.egrade);scanf("%d”,&p->data.egrade);p->data.totle=p->data.egrade+p-&

27、gt;data.cgrade+p->data.mgrade;p->data.ave=p->data.totle/3;printf("n=>提示:資料修改成功!n");shoudsave=1;elseNofind();voidDisp(Linkl)intcount=0;Node*p;p=l->next;if(!p)printf("n=>提示:沒有資料可以顯示!n");return;printf("tttt顯示結(jié)果n");printstart();printc();printf("n"

28、;);while(p)printe(p);p=p->next;printstart();printf("n");)voidTongji(Linkl)Node*pm,*pe,*pc,*pt,*pa;/*用于指向分?jǐn)?shù)最高的接點(diǎn)*/Node*r=l->next;if(!r)(printf("n=>提示:沒有資料可以統(tǒng)計(jì)!n");return;pm=pe=pc=pt=pa=r;while(r!=NULL)(if(r->data.cgrade>=pc->data.cgrade)pc=r;if(r->data.mgrade&

29、gt;=pm->data.mgrade)pm=r;if(r->data.egrade>=pe->data.egrade)pe=r;if(r->data.totle>=pt->data.totle)pt=r;if(r->data.ave>=pa->data.ave)pa=r;r=r->next;printf("統(tǒng)計(jì)結(jié)果-n");printf(“總分最高者:t%s%d分n",pt->,pt->data.totle);printf(“平均分最高者:t%s%d分n",

30、pa->,pa->data.ave);printf("英語(yǔ)最高者:t%s%d分n",pe->,pe->data.egrade);printf(“數(shù)學(xué)最高者:t%s%d分n",pm->,pm->data.mgrade);printf(“語(yǔ)文最高者:t%s%d分n",pc->,pc->data.cgrade);printstart();voidChinese(Linkl)Linkll;Node*p,*rr,*s;ll=(Link)mallo

31、c(sizeof(Node);/*用于做新的連表*/ll->next=NULL;if(l->next=NULL)printf("n=>提示:沒有資料可以排序!n");return;p=l->next;while(p)s=(Node*)malloc(sizeof(Node);/*新建接點(diǎn)用于保存信息*/s->data=p->data;s->next=NULL;rr=ll;while(rr->next!=NULL&&rr->next->data.egrade>=p->data.egrade)

32、rr=rr->next;if(rr->next=NULL)rr->next=s;elses->next=rr->next;rr->next=s;p=p->next;free(l);l->next=ll->next;printf("n=>提示:排序已經(jīng)完成!n");voidMaths(Linkl)/*對(duì)數(shù)學(xué)排序*/Linkll;Node*p,*rr,*s;ll=(Link)malloc(sizeof(Node);/*用于做新的連表*/ll->next=NULL;if(l->next=NULL)printf

33、("n=>提示:沒有資料可以排序八n");return;p=l->next;while(p)s=(Node*)malloc(sizeof(Node);/*新建接點(diǎn)用于保存信息*/s->data=p->data;s->next=NULL;rr=ll;while(rr->next!=NULL&&rr->next->data.mgrade>=p->data.mgrade)rr=rr->next;if(rr->next=NULL)rr->next=s;elses->next=rr-&

34、gt;next;rr->next=s;p=p->next;free(l);l->next=ll->next;printf("n=>提示:排序已經(jīng)完成!n");voidEnglish(Linkl)/*對(duì)英語(yǔ)排序*/Linkll;Node*p,*rr,*s;ll=(Link)malloc(sizeof(Node);/*用于做新的連表*/ll->next=NULL;if(l->next=NULL)(printf("n=>提示:沒有資料可以排序!n");return;)p=l->next;while(p)(s

35、=(Node*)malloc(sizeof(Node);/*新建接點(diǎn)用于保存信息*/s->data=p->data;s->next=NULL;rr=ll;while(rr->next!=NULL&&rr->next->data.cgrade>=p->data.cgrade)rr=rr->next;if(rr->next=NULL)rr->next=s;elses->next=rr->next;rr->next=s;p=p->next;free(l);l->next=ll->ne

36、xt;printf("n=>提示:排序已經(jīng)完成!n");)voidselect(Linkl)inti;intj,k;Node*pc=l;用于指向分?jǐn)?shù)最高的接點(diǎn)Node*r=l->next;if(!r)提示:沒有資料可以篩printf("n=選!n");return;printf("輸入課程名1.語(yǔ)文2.數(shù)學(xué)3.英語(yǔ)”);scanf("%d",&i);if(i=1)printf("請(qǐng)輸入篩選分?jǐn)?shù)的上限:");scanf("%d",&j);printf(“請(qǐng)輸入

37、篩選分?jǐn)?shù)的下限:”);scanf("%d",&k);printf("篩選結(jié)果-n");printf("學(xué)號(hào)t姓名t性別語(yǔ)文成績(jī)數(shù)學(xué)成績(jī)英語(yǔ)成績(jī)總分平均分n");printstart();while(r!=NULL)if(k<=(r->data.egrade)&&(r->data.egrade)<j)printe(r);r=r->next;elseif(i=2)printf("請(qǐng)輸入篩選分?jǐn)?shù)的上限:”);scanf("%d",&j);printf

38、(“請(qǐng)輸入篩選分?jǐn)?shù)的下限:”);scanf("%d",&k);篩選結(jié)果printf("-n");printf(“學(xué)號(hào)讓姓名t性別語(yǔ)文成績(jī)數(shù)學(xué)成績(jī)英語(yǔ)成績(jī)總分平均分n");printstart();while(r!=NULL)if(k<=(r->data.mgrade)&&(r->data.mgrade)<j)printe(r);r=r->next;elseif(i=3)printf("請(qǐng)輸入篩選分?jǐn)?shù)的上限:”);scanf("%d",&j);printf

39、("請(qǐng)輸入篩選分?jǐn)?shù)的下限:”);scanf("%d",&k);printf("篩選結(jié)果-n");printf("學(xué)號(hào)t姓名t性別語(yǔ)文成績(jī)數(shù)學(xué)成績(jī)英語(yǔ)成績(jī)總分平均分n");printstart();while(r!=NULL)if(k<=(r->data.cgrade)&&(r->data.cgrade)<j)printe(r);r=r->next;elseWrong();voidSave(Linkl)FILE*fp;Node*p;intflag=1,count=0;fp=

40、fopen("c:student","wb");if(fp=NULL)printf("n=>提示:重新打開文件時(shí)發(fā)生錯(cuò)誤!n");exit(1);p=l->next;while(p)if(fwrite(p,sizeof(Node),1,fp)=1)p=p->next;count+;elseflag=0;break;if(flag)printf("n=>提示:文件保存成功.(有d條記錄已經(jīng)保存.)n”,count);shoudsave=0;fclose(fp);voidmain()Linkl;/*連表*

41、/FILE*fp;/*文件指針*/intsel;charch;charjian;intcount=0;Node*p,*r;printf("tttt學(xué)生成績(jī)管理系統(tǒng)nttt06自動(dòng)化2班蔡曉慶3106000849ttttn");l=(Node*)malloc(sizeof(Node);l->next=NULL;r=l;fp=fopen("C:student","wb");loop:menu();printf("請(qǐng)你選擇操作:”);scanf("%d”,&sel);if(sel=0)if(shoudsave=1)getchar();printf("n=提示:資料已經(jīng)改動(dòng),是否將改動(dòng)保存到文件中(y/n)?n");

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論