版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> C語言課程設(shè)計報告</b></p><p> 題 目: 學(xué)生成績管理系統(tǒng)設(shè)計</p><p> 設(shè) 計 者: </p><p> 專業(yè)班級: 電子信息工程(2)班</p><p> 學(xué) 號: </p><p><b>
2、指導(dǎo)教師: </b></p><p> 完成日期: 6月21日</p><p> 學(xué)生成績管理系統(tǒng)課程設(shè)計</p><p><b> 報 告</b></p><p><b> 目錄</b></p><p> 一.系統(tǒng)軟件環(huán)境………………………………
3、……………………(3)</p><p> 二.課程設(shè)計目的……………………………………………………(3)</p><p> 三.內(nèi)容與要求………………………………………………………(3)</p><p> 四.程序主要功能……………………………………………………(4)</p><p> 五.系統(tǒng)功能設(shè)計…………………………………………
4、…………(4)</p><p> 六.函數(shù)實現(xiàn)功能說明………………………………………………(5)</p><p> 七.調(diào)試分析…………………………………………………………(6)</p><p> 八.心得與體會………………………………………………………(6)</p><p> 九.各功能模塊的實現(xiàn)及其程序清單………………………………
5、(7)</p><p> 十、附頁源程序清單…………………………………………………(11)</p><p> 學(xué)生成績管理系統(tǒng)課程設(shè)計</p><p><b> 報 告</b></p><p><b> 一.系統(tǒng)軟件環(huán)境:</b></p><p> 本程序主要運(yùn)行在
6、:Visual C++ 6.0(主要)</p><p> Turbo C/C++ 3.0</p><p> Turbo C 2.</p><p><b> 二.課程設(shè)計目的:</b></p><p> 本課程設(shè)計的系統(tǒng)是早已在很多領(lǐng)域均有應(yīng)用,是一個很不錯的教學(xué)管理系統(tǒng),而且其功能更是相當(dāng)強(qiáng)大、界面更加友好的應(yīng)用
7、型軟件。</p><p> 而現(xiàn)在我的設(shè)計并非是重走舊路,而我的設(shè)計主要目的在于學(xué)習(xí)并深刻地掌握對C語言的基礎(chǔ)知識以及其實踐經(jīng)驗,更好地在以后的學(xué)習(xí)中能夠更好地運(yùn)用學(xué)習(xí)。特別是像這種比較多運(yùn)用</p><p> 到一些課本上沒有教的知識,比如說,像清屏函數(shù)CLRSCR、菜單函數(shù)MENU等。許多都是一開始就沒有涉及到的知識,在自已的設(shè)計中得到了提升,更加重要的一點(diǎn)就是增加了自已的實踐操作
8、能力。</p><p><b> 三.內(nèi)容與要求:</b></p><p><b> 設(shè)計內(nèi)容:</b></p><p> 成績信息,內(nèi)容如下:</p><p> 例:現(xiàn)有學(xué)生成績信息,包含</p><p> 姓名 學(xué)號 語文 數(shù)學(xué)
9、 英語 </p><p> 張明明 01 67 78 82</p><p> 李成友 02 78 91 88</p><p> 張輝燦 03 68 82 56</p><p> 王露 04 56 45 77</p>
10、<p> 陳明 05 67 38 47</p><p><b> ………………</b></p><p> 請用C/C++編寫一系統(tǒng),實現(xiàn)學(xué)生信息管理,軟件的入口界面應(yīng)包括如下幾個方面:</p><p><b> ?。ǘ┕δ芤螅?lt;/b></p><p><b> (1
11、)信息輸入:</b></p><p><b> (2)信息查詢:</b></p><p> 要求:查詢時可實現(xiàn)按姓名查詢、按學(xué)號查詢</p><p><b> (3)成績統(tǒng)計:</b></p><p> 要求:A輸入任意的一個課程名(如數(shù)學(xué))和一個分?jǐn)?shù)段(如60--70),統(tǒng)計出
12、在此分?jǐn)?shù)段的學(xué)生情況。</p><p> ?。?)可選功能:實現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)??砂ǎ涸黾訉W(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息</p><p> ?。ㄆ渌螅簩W(xué)生信息數(shù)據(jù)以結(jié)構(gòu)體數(shù)組組織;或以鏈表形式組織;或以文件形式保存(可加分)</p><p> 2、 插入記錄――在一個特定序號處插入一條記錄 </p><p><b>
13、; 3、 刪除記</b></p><p><b> 4、 修改記―關(guān)鍵</b></p><p> 可選增強(qiáng)功能:統(tǒng)計錄――修改特定記錄 </p><p> 5、 查詢記錄―。(可對記錄分)</p><p> 6、 排序――按學(xué)號、姓名、出生年月、家庭住址、郵編、電話等進(jìn)行排序 </p>
14、<p> 7、 系統(tǒng)維護(hù)――退出系統(tǒng)時關(guān)閉所有文件</p><p><b> 四.程序主要功能:</b></p><p> 本系統(tǒng)的主要功能有如下:</p><p> (1)、新輸入學(xué)生的詳細(xì)信息(包括:學(xué)號、姓名、語文成績、數(shù)學(xué)成績、英語成績)</p><p> (2)、增加學(xué)生的信息</p
15、><p> ?。?)、刪除學(xué)生的信息</p><p> ?。?)、查詢學(xué)生的信息</p><p> ?。?)、統(tǒng)計學(xué)生的成績</p><p> 注:由于本人能力有限,不能完全地將所有的功能模塊做出來;但我相信我能夠再接再厲,繼續(xù)開發(fā)下去的,并向人性化發(fā)展。</p><p><b> 五.系統(tǒng)功能設(shè)計:<
16、/b></p><p> ?。ㄒ唬┍鞠到y(tǒng)的總體框架圖:</p><p> (二)、本系統(tǒng)的總體流程圖:</p><p> 注:此圖為概圖、程序較多無法一一展示。</p><p> 六.函數(shù)實現(xiàn)功能說明:</p><p> ?。?)、MENU函數(shù)是定義一個菜單函數(shù),其功能在于輸出菜單界面供使用者選擇。<
17、/p><p> ?。?)、CREAT函數(shù)是定義用于創(chuàng)建新的鏈表,并帶回一個指向鏈表頭的指針。其功能是輸入最初的學(xué)生信息。</p><p> ?。?)、ADD函數(shù)是定義用于再次輸入學(xué)生信息,并將所有的學(xué)生信息按學(xué)號排序。</p><p> (4)、DEL函數(shù)是定義用于刪除學(xué)生信息。</p><p><b> :</b>&l
18、t;/p><p> ?。?)、SEARCH函數(shù)是定義義用于查詢學(xué)生信息,主要是學(xué)號的查詢。</p><p><b> :</b></p><p> ?。?)、TAXIS函數(shù)是定義用于統(tǒng)計學(xué)生的成績信息,采用排序函數(shù)的方式對學(xué)號/數(shù)學(xué)等的排序。</p><p><b> ?。?lt;/b></p>
19、<p><b> 七.調(diào)試分析:</b></p><p> 因在不同的環(huán)境中運(yùn)行是有不同的結(jié)果,以下分兩種環(huán)境中說明:</p><p> ?。?)、在Turbo C 2.0 </p><p> 在這個環(huán)境下運(yùn)行警告之處比較多,在調(diào)試時采用的圖象處理函數(shù)在其它兩個環(huán)境中不能運(yùn)行。</p><p> 例
20、如:在原程序中加入</p><p> #include “graphics.h”</p><p> { int gdtiver=DETECT,gmode;</p><p> Initgraph(&gdriver,&gmode,“圖象處理函數(shù)的路徑”);</p><p> Cleardevice();</p>
21、<p> Setbkcolor(顏色值);</p><p><b> }</b></p><p> **在Turbo C/C++ 3.0 中的Error提示是:</p><p> Undefined symboc _c closegraph in module ……</p><p> 原因在于:T
22、C 3.0中對圖象的處理函數(shù)有不足之處。</p><p> **在Visual C++ 6.0 中的Error提示是:</p><p> BGI Error:Graghics not initialized (use’initgraph’)</p><p> Cannot open includefile:”graphics.h”</p><
23、;p> No such file or diretory</p><p> 原因在于:VC 6.0中對圖象處量理的函數(shù)與TC中的不一樣。</p><p> ?。?)、在Turbo C/C++ 3.0 </p><p> 在這個環(huán)境中運(yùn)行到輸入學(xué)生姓名時就出錯:</p><p> Error:(在用戶窗口中可以看到)</p&
24、gt;<p> Scanf:floating point formats not linked </p><p> Ab mormal program termination</p><p> **原因在于:連接浮點(diǎn)庫錯誤。</p><p> **解決辦法:在主函數(shù)中加入:fioat arg,*pointer=&arg;</p&g
25、t;<p><b> 即可運(yùn)行</b></p><p><b> 。</b></p><p><b> 八.心得與體會:</b></p><p> ?。?)、通過本次對C語言的深入學(xué)習(xí),讓我對C語言有了更多的了解并撐握更多的知識,成功地運(yùn)用各類函數(shù)、循環(huán)變量、結(jié)構(gòu)化的程序設(shè)計,以及
26、結(jié)構(gòu)體、指針的使用。</p><p> (2)、但在學(xué)習(xí)中發(fā)現(xiàn),編程確實不是很好做的,并非是你想要就能完成的,它需要的是認(rèn)真、仔細(xì)地對待每一個程序塊,特別是在對指針的使用時更加困難,那些指針指來指去,一不小心就會看錯,編譯不出來。</p><p> ?。?)、由于學(xué)生的我只是大一而已,沒能夠完完全全地把程序做出來,而且程序中有許多不足之處不能夠正確地將它改正,但總體上是可以運(yùn)行的。<
27、;/p><p> 九.各功能模塊的實現(xiàn)及其程序清單:</p><p> (1)、各功能模塊的實現(xiàn)(請參照第六點(diǎn):函數(shù)實現(xiàn)功能說明)</p><p> ?。?)、程序清單(請見附頁)</p><p><b> 參考文獻(xiàn):</b></p><p> [1] 譚浩強(qiáng)編著.C程序設(shè)計第三版.北京:清華
28、大學(xué)出版社,2005</p><p> [2] 林瑞仲等編著.C語言實例解析精粹.北京:人民郵電出版社,2005</p><p><b> 附頁:</b></p><p> 學(xué)生成績管理系統(tǒng)源程序清單</p><p> #include<stdio.h></p><p> #
29、include<string.h></p><p> #include<stdlib.h></p><p> #include<conio.h></p><p> #define M 3</p><p> /*定義結(jié)構(gòu)體變量*/</p><p> typedef struc
30、t students</p><p> { char name[20];</p><p> char num[15];</p><p> float score[M];</p><p> float average;</p><p> float total;</p><p><
31、b> }MESSA;</b></p><p> MESSA stu[20];int S;</p><p><b> /*函數(shù)聲明*/</b></p><p> void menu(void);</p><p> void choose(void);</p><p>
32、void input(void);</p><p> void savescore(void);</p><p> void loadscore(void); </p><p> void choosec(void);</p><p> void average(void);</p><p> void to
33、tal(void);</p><p> void name(void);</p><p> void number(void);</p><p> void show(void);</p><p> void excellent(void);</p><p> void passing(void);</
34、p><p> void personal(void);</p><p> void Exit();</p><p><b> /*主函數(shù)調(diào)用*/</b></p><p> void main()</p><p><b> { menu();</b></p>
35、<p><b> choose();</b></p><p><b> }</b></p><p><b> /*菜單系統(tǒng)*/</b></p><p> void menu(void)</p><p><b> {</b></p
36、><p> system("CLS");</p><p> printf("\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");</p><p> printf("\t^*
37、 *^\n");</p><p> printf("\t^* 。。。。。。歡迎使用這個成績管理系統(tǒng)。。。。。。。 *^\n");</p><p> printf("\t^* *^\n&
38、quot;);</p><p> printf("\t^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^*^\n");</p><p> printf("\n");</p><p> printf("\t 以下這個菜單由余銷云制作,詳情請看:\
39、n\n");</p><p> printf("\t#########################################################\n");</p><p> printf("\t# 請輸入學(xué)生的分?jǐn)?shù).....................1 #\n");</p&
40、gt;<p> printf("\t# 搜索學(xué)生分?jǐn)?shù) ....................2 #\n");</p><p> printf("\t# 搜索學(xué)生的優(yōu)秀通過率.................3 #\n");</p><p> printf(&qu
41、ot;\t# 搜索學(xué)生的通過狀況...................4 #\n");</p><p> printf("\t# 搜索個人個門成績分?jǐn)?shù).................5 #\n");</p><p> printf("\t# 離開..............
42、...................6 #\n");</p><p> printf("\t#########################################################\n");</p><p> printf("\n\t請選擇:\n");</p><p>
43、;<b> }</b></p><p><b> /*菜單選擇*/</b></p><p> void choose(void)</p><p><b> {</b></p><p> int x,flag=0;</p><p> while
44、(flag==0)</p><p><b> {</b></p><p> fflush(stdin);</p><p> scanf("%d",&x);</p><p> getchar();</p><p><b> switch(x)</
45、b></p><p> { case 1:input();savescore();loadscore();menu();choose();flag=1;break;</p><p> case 2:choosec();flag=1;break;</p><p> case 3:excellent();flag=1;break;</p>&l
46、t;p> case 4:passing();flag=1;break;</p><p> case 5:personal();flag=1;break;</p><p> case 6:Exit();flag=1;</p><p> default:printf("\tSorry,your choose doesn't exist!
47、please choose again!\n");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /*輸入學(xué)生成績*/</p><p> void
48、input(void)</p><p><b> {</b></p><p> int flag=1,j,i;char k;float pp=0;</p><p> for(i=0;flag==1;i++)</p><p><b> {</b></p><p> p
49、rintf("\t請輸入第N.%hd個學(xué)生的成績信息:\n",i+1);</p><p> puts("姓名:");</p><p> fflush(stdin);</p><p> gets(stu[i].name);</p><p> fflush(stdin);</p>&l
50、t;p> puts("學(xué)號:");</p><p> fflush(stdin);</p><p> gets(stu[i].num);</p><p> puts("\t分?jǐn)?shù):\t語文\t數(shù)學(xué)\t英語");</p><p> for(j=0;j<M;j++)</p>
51、<p> scanf("%f",&stu[i].score[j]);</p><p> puts("\t你想要繼續(xù)么?(Y/N)");</p><p><b> while(1)</b></p><p> { puts("\t請選擇.......");&l
52、t;/p><p> fflush(stdin);</p><p> scanf("%c",&k);</p><p> if(k!='N'&&k!='Y')</p><p> puts("\t出錯了,哈哈,再輸一次吧!");</p>
53、<p> else if(k=='N')</p><p><b> {</b></p><p> flag=0;S=i;break;</p><p><b> }</b></p><p> else break;</p><p><
54、b> }</b></p><p><b> }</b></p><p> for(i=0;i<=S;i++)</p><p><b> {</b></p><p> for(j=0,stu[i].total=0.0;j<M;j++)</p>&l
55、t;p> stu[i].total+=stu[i].score[j];</p><p> stu[i].average=stu[i].total/M;</p><p><b> }</b></p><p><b> }</b></p><p><b> /*保存數(shù)據(jù)*/&
56、lt;/b></p><p> void savescore(void)</p><p><b> { </b></p><p> int i,flag=1;FILE *fp;char m;</p><p> puts("\t你想要保存這些數(shù)據(jù)么?(Y/N)");</p>
57、<p><b> while(1)</b></p><p><b> {</b></p><p> fflush(stdin);</p><p> scanf("%c",&m);</p><p> if(m=='Y')</p&g
58、t;<p><b> {</b></p><p> if((fp=fopen("D:\score.txt","w"))==NULL)</p><p><b> {</b></p><p> printf("\t對不起哦,無法打開這個表單....\n&q
59、uot;);</p><p><b> exit(0);</b></p><p><b> }</b></p><p> for(i=0;i<=S;i++)</p><p> if(fwrite(&stu[i],sizeof(struct students),1,fp)!=1)
60、</p><p><b> {</b></p><p> puts("\t對不起,表單書寫錯誤了!");</p><p><b> flag=0;</b></p><p><b> }</b></p><p> if(fla
61、g==1)</p><p> for(i=0;i<=S;i++)</p><p> printf("\t好了,第N.%d個學(xué)生的數(shù)據(jù)已經(jīng)被保存了哦!!!\n",i+1);</p><p> fclose(fp);</p><p><b> break; </b></p>
62、<p><b> }</b></p><p> else if(m!='N'&&m!='Y')</p><p> puts("\t對不起,你輸入錯誤,請重新輸入一次吧!");</p><p><b> else</b></p>
63、<p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> /*讀取文件中保存的數(shù)據(jù)*/</p><p> void loadscore(void)</p><
64、p><b> {</b></p><p> FILE *fp;char n;MESSA restu[20];int i,j,flag=0;</p><p> char read[5][10]={"學(xué)號","姓名","語文","數(shù)學(xué)","英語"};</p
65、><p> puts("\t你想要立刻讀取這些數(shù)據(jù)么?(Y/N)");</p><p><b> while(1)</b></p><p><b> {</b></p><p> fflush(stdin);</p><p> scanf("
66、;%c",&n);</p><p> if(n=='Y')</p><p><b> {</b></p><p> if((fp=fopen("D:\score.txt","r"))==NULL)</p><p><b> {&l
67、t;/b></p><p> fprintf(stderr,"\tOpen %s error!!!\n","score.txt");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> fo
68、r(i=0;i<=S;i++)</p><p> fread(&restu[i],sizeof(struct students),1,fp);</p><p> system("CLS");</p><p> puts("\t成績信息讀取中.................");</p>&l
69、t;p> printf("\t好的,表單已經(jīng)被讀取!...........\n");</p><p> printf("\n");</p><p> printf("\t$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$\n");</p
70、><p> printf("\t$**$ $**$\n\t");</p><p> printf("$**$ ");</p><p> for(i=0;i<5;i++)</p><p&
71、gt; printf("%-10s",read[i]);</p><p> printf(" $**$");</p><p> printf("\n");</p><p> for(i=0;i<=S;i++)</p><p> { printf("\t
72、$**$ ");</p><p> printf("%-10s%-10s",restu[i].num,restu[i].name);</p><p> for(j=0;j<3;j++)</p><p> printf("%-10.2f",restu[i].score[j]);</p>
73、<p> printf(" $**$\n");</p><p><b> }</b></p><p> printf("\t$**$ $**$");</p><p> prin
74、tf("\n\t$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$\n");</p><p> fclose(fp);</p><p><b> break;</b></p><p><b> }</b></p>
75、<p> else if(n=='N')</p><p><b> break;</b></p><p><b> else</b></p><p> printf("\t對不起,出現(xiàn)錯誤了,再來一次吧,相信你會成功的!\n");</p><p&g
76、t;<b> }</b></p><p> puts("\t輸入任意鍵回到主菜單..............\n");</p><p> getchar();</p><p> getchar();</p><p><b> }</b></p><p
77、> /*選擇查分的子菜單及子菜單選擇*/</p><p> void choosec(void)</p><p><b> {</b></p><p> int biao,i,flag=0;FILE *fp;</p><p> if((fp=fopen("D:\\score.txt",
78、"r"))==NULL)</p><p><b> {</b></p><p> printf("\t對不起,你無法輸入任何成績信息! 無法打開這個表單!\n\n\n");</p><p> printf("\t輸入任意鍵回到主菜單!!\n");</p><p
79、> getchar();</p><p> getchar();</p><p><b> menu();</b></p><p><b> choose();</b></p><p><b> }</b></p><p> for(i
80、=0;i<=S;i++)</p><p> fread(&stu[i],sizeof(struct students),1,fp);</p><p> fclose(fp);</p><p> system("CLS");</p><p> printf("\t以下是第二個菜單:\n&quo
81、t;);</p><p> printf("\n");</p><p> printf("\t%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$\n");</p><p> pri
82、ntf("\t%%$ 按平均分由高到低..............................1 %%$\n");</p><p> printf("\t%%$ 按總分由高到低................................2 %%$\n");</p><p> printf("\t%%$ 按學(xué)號降
83、序....................................3 %%$\n");</p><p> printf("\t%%$ 按姓名降序....................................4 %%$\n");</p><p> printf("\t%%$ 回到主菜單.................
84、...................5 %%$\n");</p><p> printf("\t%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$%%$\n");</p><p> printf("\n\t請選
85、擇輸入方式:\n");</p><p> while(flag==0)</p><p><b> {</b></p><p> fflush(stdin);</p><p> scanf("%d",&biao);</p><p> getchar()
86、;</p><p> switch(biao)</p><p> { case 1:flag=1;average();show();break;</p><p> case 2:flag=1;total();show();break;</p><p> case 3:flag=1;number();show();break;
87、 </p><p> case 4:flag=1;name();show();break;</p><p> case 5:flag=1;menu();choose();break;</p><p> default:printf("\t對不起,你的操作無法進(jìn)行! 請重新做出正確操作!\n");</p><p>
88、;<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> /*顯示分?jǐn)?shù)*/</b></p><p> void show(void)</p><p>&l
89、t;b> { </b></p><p> int i,j,n,flag=0;</p><p> char head[7][10]={"學(xué)號","姓名","語文","數(shù)學(xué)","英語","總分","平均分"};</p>
90、<p> system("CLS");</p><p> puts("\t讀取信息中.................");</p><p> printf("\n");</p><p> printf("\t$**$**$**$**$**$**$**$**$**$**$**
91、$**$**$**$**$**$**$**$**$**$**$**$**$\n\n\t");</p><p> for(i=0;i<7;i++)</p><p> printf("%-10s",head[i]);</p><p> printf("\n\t");</p><p>
92、 for(i=0;i<=S;i++)</p><p><b> {</b></p><p> printf("%-10s%-10s",stu[i].num,stu[i].name);</p><p> for(j=0;j<3;j++)</p><p> printf("%
93、-10.2f",stu[i].score[j]);</p><p> printf("%-10.2f",stu[i].total);</p><p> printf("%-10.2f",stu[i].average);</p><p> printf("\n\t");</p>
94、<p><b> }</b></p><p> printf("\n\t$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$**$\n");</p><p> printf("\nYou want :(1 or 2)\n");<
95、;/p><p> puts("\t1.回到第二個菜單!\n");</p><p> puts("\t2.回到主菜單!\n");</p><p> while(flag==0)</p><p><b> {</b></p><p> fflush(std
96、in);</p><p> scanf("%d",&n);</p><p> getchar();</p><p><b> switch(n)</b></p><p> { case 1:flag=1;choosec();break;</p><p>
97、 case 2:flag=1;menu();choose();break;</p><p> default:printf("\t出錯了,請再次輸入!\n");</p><p><b> }</b></p><p><b> }</b></p><p><b>
98、 }</b></p><p> /*按平均分由高到低*/</p><p> void average(void)</p><p><b> {</b></p><p> int i,j,k;MESSA t;</p><p> for(i=0;i<S;i++)</
99、p><p><b> {</b></p><p><b> k=i;</b></p><p> for(j=i+1;j<=S;j++)</p><p> if(stu[k].average<stu[j].average)</p><p><b>
100、k=j;</b></p><p><b> if(k!=i)</b></p><p><b> {</b></p><p><b> t=stu[k];</b></p><p> stu[k]=stu[i];</p><p><
101、b> stu[i]=t;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> /*按總分由高到低*/</p><p> void tot
102、al(void)</p><p><b> {</b></p><p> int i,j,k;MESSA t;</p><p> for(i=0;i<S;i++)</p><p><b> {</b></p><p><b> k=i;</b&
103、gt;</p><p> for(j=i+1;j<=S;j++)</p><p> if(stu[k].total<stu[j].total)</p><p><b> k=j;</b></p><p><b> if(k!=i)</b></p><p>
104、<b> {</b></p><p><b> t=stu[k];</b></p><p> stu[k]=stu[i];</p><p><b> stu[i]=t;</b></p><p><b> }</b></p><
105、p><b> }</b></p><p><b> }</b></p><p><b> /*按學(xué)號降序*/</b></p><p> void number(void)</p><p><b> { </b></p>&
106、lt;p> int i,j,k;MESSA t;</p><p> for(i=0;i<S;i++)</p><p><b> { </b></p><p><b> k=i;</b></p><p> for(j=i+1;j<=S;j++)</p><
107、;p> if(strcmp(stu[k].num,stu[j].num)<0)</p><p><b> k=j;</b></p><p><b> if(k!=i)</b></p><p><b> {</b></p><p><b> t=s
108、tu[k];</b></p><p> stu[k]=stu[i];</p><p><b> stu[i]=t;</b></p><p><b> }</b></p><p><b> }</b></p><p><b>
109、 }</b></p><p><b> /*按姓名降序*/</b></p><p> void name(void)</p><p><b> { </b></p><p> int i,j,k;MESSA t;</p><p> for(i=0;
110、i<S;i++)</p><p><b> { </b></p><p><b> k=i;</b></p><p> for(j=i+1;j<=S;j++)</p><p> if(strcmp(stu[k].name,stu[j].name)<0)</p>
111、<p><b> k=j;</b></p><p><b> if(k!=i)</b></p><p><b> {</b></p><p><b> t=stu[k];</b></p><p> stu[k]=stu[i];<
112、/p><p><b> stu[i]=t;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> /*優(yōu)秀率*/</
113、b></p><p> void excellent(void)</p><p><b> {</b></p><p> int i,j,k,w,flag=0;float m;FILE *fp;</p><p> char head2[3][10]={"數(shù)學(xué)","語文"
114、;,"英語"};</p><p> if((fp=fopen("D:\\score.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("\t對不起,你無法輸入任何信息! 找不到該表單!\n\n\n");&
115、lt;/p><p> printf("\t輸入任意鍵回到主菜單!!\n");</p><p> getchar();</p><p> getchar();</p><p><b> menu();</b></p><p><b> choose();</
116、b></p><p><b> }</b></p><p> for(i=0;i<=S;i++)</p><p> fread(&stu[i],sizeof(struct students),1,fp);</p><p> fclose(fp);</p><p> s
117、ystem("CLS");</p><p> for(i=0;i<M;i++)</p><p><b> {</b></p><p> printf("\tThe excellent students in %s is following:\n",head2[i]);</p>&
118、lt;p> for(j=0,k=0;j<=S;j++)</p><p> if(stu[j].score[i]>=85.00)</p><p><b> { k++;</b></p><p> printf("\t%s\t%s",stu[j].num,stu[j].name);</p>
119、;<p> printf("\t%.2f\n",stu[j].score[i]);</p><p><b> }</b></p><p> m=(k*1.0/(S+1))*100;</p><p> printf("\tThe excellent rate is %.2f%%\n",
120、m);</p><p><b> }</b></p><p> printf("\n\n");</p><p> puts("\t你想要繼續(xù)操作么?\n");</p><p> printf("\t1.離開系統(tǒng)!\n");</p><
121、p> printf("\t2.回到主菜單!\n");</p><p> printf("\t3.回到第二個菜單!\n");</p><p> puts("\t請選擇:\n");</p><p> while(flag==0)</p><p><b> {
122、 </b></p><p> fflush(stdin);</p><p> scanf("%d",&w);</p><p> getchar();</p><p><b> switch(w)</b></p><p> { case 1:
123、Exit();flag=1;</p><p> case 2:menu();choose();flag=1;break;</p><p> case 3:choosec();flag=1;break;</p><p> default:printf("\t對不起,操作無法進(jìn)行! 請重新選擇!\n"); </p><p&
124、gt;<b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> /*及格率*/</b></p><p> void passing(void)</p><p&g
125、t;<b> {</b></p><p> int i,j,k,w,flag=0;float m;FILE *fp;</p><p> char head2[3][10]={"數(shù)學(xué)","語文","英語"};</p><p> if((fp=fopen("D:\\sco
126、re.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("\t對不起,你不能輸入任何信息! 無法找到該表單!\n\n\n");</p><p> printf("\t輸入任意鍵回到主菜單!!\n");</p&
127、gt;<p> getchar();</p><p> getchar();</p><p><b> menu();</b></p><p><b> choose();</b></p><p><b> }</b></p><p&
128、gt; for(i=0;i<=S;i++)</p><p> fread(&stu[i],sizeof(struct students),1,fp);</p><p> fclose(fp);</p><p> system("CLS");</p><p> for(i=0;i<M;i++)&
129、lt;/p><p><b> {</b></p><p> printf("\tThe passing students in %s is following:\n",head2[i]);</p><p> for(j=0,k=0;j<=S;j++)</p><p> if(stu[j].s
130、core[i]>=60.0)</p><p><b> { k++;</b></p><p> printf("\t%s\t%s",stu[j].num,stu[j].name);</p><p> printf("\t%.2f\n",stu[j].score[i]);</p>
131、<p><b> }</b></p><p> m=(k*1.0/(S+1))*100;</p><p> printf("\tThe passing rate is %.2f%%\n",m);</p><p><b> }</b></p><p> pr
132、intf("\n\n");</p><p> puts("\t是否繼續(xù)操作?\n");</p><p> printf("\t1.離開系統(tǒng)!\n");</p><p> printf("\t2.回到主菜單!\n");</p><p> printf(&qu
133、ot;\t3.回到第二個菜單!\n");</p><p> puts("\t請選擇:\n");</p><p> while(flag==0)</p><p><b> { </b></p><p> fflush(stdin);</p><p> sc
134、anf("%d",&w);</p><p> getchar();</p><p><b> switch(w)</b></p><p> { case 1:Exit();flag=1;</p><p> case 2:menu();choose();flag=1;break;
135、</p><p> case 3:choosec();flag=1;break;</p><p> default:printf("\t對不起,你的操作無法進(jìn)行! 請重新選擇!\n"); </p><p><b> }</b></p><p><b> }</b><
136、;/p><p><b> }</b></p><p> /*個人學(xué)生成績查詢*/</p><p> void personal(void)</p><p><b> {</b></p><p> int i,j,f,w,flag=0;char b[10],a;FILE
137、*fp;</p><p> char head3[7][10]={"學(xué)號","姓名","語文","數(shù)學(xué)","英語","總分","平均分"};</p><p> if((fp=fopen("D:\\score.txt","
138、;r"))==NULL)</p><p><b> {</b></p><p> printf("\t對不起,無法輸入任何信息! 無法找到該表單!\n\n\n");</p><p> printf("\t輸入任意鍵回到主菜單!!\n");</p><p> get
139、char();</p><p> getchar();</p><p><b> menu();</b></p><p><b> choose();</b></p><p><b> }</b></p><p> for(i=0;i<=
140、S;i++)</p><p> fread(&stu[i],sizeof(struct students),1,fp);</p><p> fclose(fp);</p><p> puts("\t請輸入你想要搜索的學(xué)生成績信息:\n");</p><p> puts("\t學(xué)生成績信息如下...
141、......\n");</p><p> for(i=0;i<=S;i++)</p><p> printf("\t%s",stu[i].name);</p><p> puts("\t\nYour choose is :\n");</p><p><b> while
142、(1)</b></p><p><b> {</b></p><p> fflush(stdin);</p><p><b> gets(b);</b></p><p> for(i=0;i<=S;i++)</p><p> if(strcmp(b
143、,stu[i].name)==0)</p><p><b> {</b></p><p> printf("\t該生學(xué)生成績信息%s?(Y/N)\n",stu[i].name);</p><p><b> f=i;</b></p><p><b> }</
144、b></p><p> fflush(stdin);</p><p> scanf("%c",&a);</p><p> if(a=='Y')</p><p><b> { </b></p><p> system("CLS&
145、quot;);</p><p> puts("\t成績信息讀取中.................");</p><p> printf("\n");</p><p> printf("\t************************************************\n\n\t")
146、;</p><p> for(i=0;i<7;i++)</p><p> printf("%-10s",head3[i]);</p><p> printf("\n\t");</p><p> printf("%-10s%-10s",stu[f].num,stu[f].
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計報告--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計報告----學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計報告--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計報告-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計報告學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計報告--學(xué)生成績管理系統(tǒng)
- 課程設(shè)計報告(學(xué)生成績管理系統(tǒng)c語言)
- c語言課程設(shè)計--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計----學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計-學(xué)生成績管理系統(tǒng)
- c語言學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- c語言學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- c語言課程設(shè)計-學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)--c語言課程設(shè)計
- c語言課程設(shè)計--學(xué)生成績管理系統(tǒng)
評論
0/150
提交評論