版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 《C語言程序設(shè)計》</b></p><p><b> 課程設(shè)計報告</b></p><p><b> 信息科學(xué)與工程學(xué)院</b></p><p> 課題名稱:學(xué)生成績管理系統(tǒng)</p><p><b> 目 錄</b>
2、;</p><p> 1 課程設(shè)計的目的1</p><p> 2 設(shè)計內(nèi)容與要求1</p><p> 3 主要技術(shù)指標及特點2</p><p> 3.1 登錄界面顯示2</p><p> 3.2 登記學(xué)生資料3</p><p> 3.3保存學(xué)生資料4</p&g
3、t;<p> 3.4 刪除學(xué)生資料4</p><p> 3.5修改學(xué)生資料6</p><p> 3.6 查詢學(xué)生資料7</p><p> 3.6統(tǒng)計學(xué)生資料7</p><p> 3.8對學(xué)生資料進行排序9</p><p> 3.9程序主要代碼10</p>
4、<p><b> 4 設(shè)計小結(jié)31</b></p><p><b> 成績管理系統(tǒng)</b></p><p><b> 1 課程設(shè)計的目的</b></p><p> 1.加深對《C語言程序設(shè)計》課程知識的理解,掌握C語言應(yīng)用程序的開發(fā)方法和步驟;</p><p&g
5、t; 2.進一步掌握和利用C語言進行程設(shè)計的能力;</p><p> 3.進一步理解和運用結(jié)構(gòu)化程序設(shè)計的思想和方法;</p><p> 4.初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;</p><p> 5.學(xué)會調(diào)試一個較長程序的基本方法;</p><p> 6.學(xué)會利用流程圖或N-S圖表示算法;</p><p&g
6、t; 7.掌握書寫程設(shè)計開發(fā)文檔的能力(書寫課程設(shè)計報告)。</p><p><b> 2 設(shè)計內(nèi)容與要求</b></p><p> 設(shè)計內(nèi)容:成績管理系統(tǒng)</p><p> 現(xiàn)有學(xué)生成績信息,內(nèi)容如下:</p><p> 姓名 學(xué)號 C 數(shù)學(xué) 英語 </p>
7、<p> shuchang 12 99 98 99</p><p> jiutian 32 87 68 87</p><p> changzi 33 98 89 99</p><p> jiutia 13 7 43 45</p&g
8、t;<p><b> 設(shè)計要求:</b></p><p> 封面(參見任務(wù)書最后一頁)</p><p> 系統(tǒng)描述:分析和描述系統(tǒng)的基本要求和內(nèi)容; </p><p> 功能模塊結(jié)構(gòu):包括如何劃分功能模塊,各功能模塊之間的結(jié)構(gòu)圖,以及各模塊的功能描述;</p><p> 數(shù)據(jù)結(jié)構(gòu)設(shè)計:設(shè)計數(shù)據(jù)結(jié)構(gòu)
9、以滿足系統(tǒng)的功能要求,并加以注釋說明;</p><p> 主要模塊的算法說明:即實現(xiàn)該模塊的思路;</p><p> 運行結(jié)果:包括典型的界面、輸入和輸出數(shù)據(jù)等;</p><p> 總結(jié):包括C語言程序設(shè)計實踐中遇到的問題,解決問題的過程及體會、收獲、對程序開發(fā)的認識與思考等。</p><p> 附錄:包括主要程序清單,要有適當?shù)淖⑨?/p>
10、,使程序容易閱讀。</p><p> 3 主要技術(shù)指標及特點</p><p><b> 程序流程圖如下:</b></p><p> 3.1 登錄界面顯示</p><p> 此登錄界面是預(yù)先設(shè)定好作為菜單來顯示的,在主函數(shù)中以menu()來實現(xiàn)的,在函數(shù)中,是通過switch……case來實現(xiàn)選擇功能的,用戶可以
11、通過需要進行選擇,方便了用戶的使用,非常人性化。</p><p><b> 登記學(xué)生資料</b></p><p> 當系統(tǒng)中沒有保存學(xué)生信息時,就會提示沒有學(xué)生記錄!也就是說不能從文件中導(dǎo)出,這時就需要用戶進行學(xué)生資料的導(dǎo)入,當輸入的學(xué)號已經(jīng)存在時,系統(tǒng)會提示用戶重新輸入一個未被占用的學(xué)號信息,否則就重新分配內(nèi)存空間。</p><p>&l
12、t;b> 保存學(xué)生資料</b></p><p> 該操作是將用戶輸入的學(xué)生信息進行保存,用文件的方法進行調(diào)試,當用戶輸入對象的個數(shù)超過0時,顯示保存成功,否則提示,系統(tǒng)連接為空。</p><p> 3.4 刪除學(xué)生資料</p><p> 這里又是通過switch……case函數(shù)的調(diào)用,讓用戶進行選擇,共有兩種方法:1.按照學(xué)號 2.按照姓
13、名,操作完成后,系統(tǒng)會自動提示,該學(xué)生已經(jīng)成功刪除,當再次顯示的時候,函數(shù)中的鏈表就不再指向該學(xué)號,從而起到刪除的作用。刪除完成后,再次保存一下學(xué)生資料,不然系統(tǒng)仍然默認為原始人數(shù)。</p><p><b> 修改學(xué)生資料</b></p><p> 通過選擇到達修改界面:此時將呈現(xiàn)出現(xiàn)有的學(xué)生資料,按照要求將新的信息輸入其中,再保存資料,如果輸入的學(xué)號系統(tǒng)中未顯示
14、,那么系統(tǒng)則提示沒有資料可以修改。</p><p><b> 這個為修改完的圖片</b></p><p> 3.6 查詢學(xué)生資料</p><p> 按照選擇,則會呈現(xiàn)出用戶需要查找的所有信息,每次呈現(xiàn)出來的時候都要用之前定義的printheader()函數(shù),這個很好地將數(shù)據(jù)按照格式化的形式顯現(xiàn)出來。此為按照學(xué)號查找的例子,按照姓名查找是
15、同樣道理。</p><p> 統(tǒng)計學(xué)生資料(自加功能)</p><p> 統(tǒng)計學(xué)生資料主要還是用的switch……case函數(shù),通過選擇,用printheader(),printdata(r),printf(END)等函數(shù)用表格的形式將符合條件的學(xué)生信息全部顯示出來,不過唯一不足的就是所有的學(xué)生信息沒有能夠連貫起來,每個學(xué)生信息前面都有表頭,沒處理好。</p><p
16、><b> 對學(xué)生資料進行排序</b></p><p> 該圖顯示的是按照語文成績排序完的結(jié)果,用鏈表將數(shù)據(jù)進行一個接一個的比較,按照降序?qū)W(xué)生信息排列下來,最后提示排序已經(jīng)完成,并將所有結(jié)果按照用戶要求顯示出來。</p><p><b> 程序主要代碼 </b></p><p><b> 主函數(shù)
17、</b></p><p> #include "stdio.h" /*標準輸入輸出函數(shù)庫*/</p><p> #include "stdlib.h" /*標準函數(shù)庫*/</p><p> #include "string.h" /*字符串函數(shù)庫*/</p><
18、p> #include "conio.h" /*屏幕操作函數(shù)庫*/</p><p> #define HEADER1 " ----------------------------student's information---------------------------- \n"</p><p> #defin
19、e HEADER2 " | Number | Name |C|Math|English| Total | Average | \n"</p><p> #define HEADER3 " |---------------|---------------|----|----|----|--------|-------|&quo
20、t;</p><p> #define FORMAT " | %-10s |%-15s|%4d|%4d|%4d| %4d | %.2f |\n"</p><p> #define DATA p->data.num,p->data.name,p->data.egrade,p->data.mgrade,p-&
21、gt;data.cgrade,p->data.total,p->data.ave</p><p> #define END " -------------------------------------------------------------- \n"</p><p> int shoudsave=0; /* */</p
22、><p> struct student</p><p><b> {</b></p><p> char num[10];/* Number */</p><p> char name[20];</p><p> char sex[4];</p><p> int
23、 cgrade;</p><p> int mgrade;</p><p> int egrade;</p><p> int total;</p><p> float ave;</p><p> char neartime[10];/* 最近更新時間 */</p><p><
24、b> };</b></p><p> typedef struct node</p><p><b> {</b></p><p> struct student data;</p><p> struct node *next;</p><p> }Node,*Li
25、nk;</p><p><b> 菜單函數(shù)</b></p><p> void menu()</p><p><b> {</b></p><p> system("cls"); /*調(diào)用DOS命令,清屏.與clrscr()功能相同*/</p><
26、p> cprintf("\n");</p><p> printf("@@@@@Students' performance management system@@@@@@\n\n");</p><p> printf("@@@@@@@@@@@@@@@@@@@@@@@Menu@@@@@@@@@@@@@@@@@@@@@@@@
27、\n");</p><p> printf(" *1 input 2 delete *\n");</p><p> printf(" *3 search 4 modify *\n");</p><
28、p> printf(" *5 insert 6 count *\n");</p><p> printf(" *7 sort 8 save *\n");</p><p> printf("
29、 *9 dispaly 0 exit *\n");</p><p> printf("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");</p><p> /*cprintf()送格式化輸出至文本窗口屏幕中*/</p><p&
30、gt;<b> }</b></p><p> void printheader() /*格式化輸出表頭*/</p><p><b> {</b></p><p> printf(HEADER1);</p><p> printf(HEADER2);</p><p>
31、 printf(HEADER3);</p><p><b> }</b></p><p> void printdata(Node *pp) /*格式化輸出表中數(shù)據(jù)*/</p><p><b> {</b></p><p><b> Node* p;</b></
32、p><p><b> p=pp;</b></p><p> printf(FORMAT,DATA);</p><p><b> }</b></p><p> void Wrong()</p><p><b> {</b></p>&l
33、t;p> printf("\n=====>error!\n");</p><p><b> }</b></p><p> void Nofind()</p><p><b> {</b></p><p> printf("\n=====>No
34、 record now!Please press Enter\n");</p><p><b> }</b></p><p> void Disp(Link l) /*顯示單鏈表l中存儲的學(xué)生記錄,內(nèi)容為student結(jié)構(gòu)中定義的內(nèi)容*/</p><p><b> {</b></p><
35、p><b> Node *p;</b></p><p> p=l->next; /*l存儲的是單鏈表中頭結(jié)點的指針,該頭結(jié)點沒有存儲學(xué)生信息,指針域指向的后繼結(jié)點才有學(xué)生信息*/</p><p> if(!p) /*p==NULL,NUll在stdlib中定義為0*/</p><p><b> {</b>
36、;</p><p> printf("\n=====>No record now!Please press Enter\n");</p><p> getchar();</p><p><b> return;</b></p><p><b> }</b></
37、p><p> printf("\n\n");</p><p> printheader(); /*輸出表格頭部*/</p><p> while(p) /*逐條輸出鏈表中存儲的學(xué)生信息*/</p><p><b> {</b></p><p> printdata(
38、p);</p><p> p=p->next; /*移動直下一個結(jié)點*/</p><p> printf(HEADER3);</p><p><b> }</b></p><p> getchar();</p><p><b> }</b></p>
39、<p> /*************************************************************</p><p> 作用:用于定位鏈表中符合要求的節(jié)點,并返回指向該節(jié)點的指針</p><p> 參數(shù):findmess[]保存要查找的具體內(nèi)容; nameornum[]保存按什么查找;</p><p><b
40、> 在單鏈表l中查找;</b></p><p> **************************************************************/</p><p> Node* Locate(Link l,char findmess[],char nameornum[]) /* 該函數(shù)用于定位連表中符合要求的接點,并返回該指針 */&l
41、t;/p><p><b> {</b></p><p><b> Node *r;</b></p><p> if(strcmp(nameornum,"num")==0) /* 按Number查詢 */</p><p><b> {</b></p&
42、gt;<p> r=l->next;</p><p> while(r!=NULL)</p><p><b> {</b></p><p> if(strcmp(r->data.num,findmess)==0)</p><p><b> return r;</b>
43、;</p><p> r=r->next;</p><p><b> }</b></p><p><b> }</b></p><p> else if(strcmp(nameornum,"name")==0) /* 按Name查詢 */</p>&l
44、t;p><b> {</b></p><p> r=l->next;</p><p> while(r!=NULL)</p><p><b> {</b></p><p> if(strcmp(r->data.name,findmess)==0)</p>&
45、lt;p><b> return r;</b></p><p> r=r->next;</p><p><b> }</b></p><p><b> }</b></p><p><b> return 0;</b></p>
46、;<p><b> }</b></p><p> /*增加學(xué)生記錄*/</p><p> void Add(Link l)</p><p><b> {</b></p><p> Node *p,*r,*s; /*實現(xiàn)添加操作的臨時的結(jié)構(gòu)體指針變量*/</p>
47、<p> char ch,flag=0,num[10];</p><p><b> r=l;</b></p><p> s=l->next;</p><p> system("cls");</p><p> Disp(l); /*先打印出已有的學(xué)生信息*/</p>
48、<p> while(r->next!=NULL)</p><p> r=r->next; /*將指針移至于鏈表最末尾,準備添加記錄*/</p><p> while(1) /*一次可輸入多條記錄,直至輸入Number為0的記錄結(jié)點添加操作*/</p><p><b> {</b></p><
49、;p> while(1) /*輸入Number,保證該Number沒有被使用,若輸入Number為0,則退出添加記錄操作*/</p><p><b> {</b></p><p> printf("please input the Number(press'o'to upper level):");</p>
50、<p> scanf("%s",num);</p><p><b> flag=0;</b></p><p> if(strcmp(num,"0")==0) /*輸入為0,則退出添加操作,返回主界面*/</p><p><b> {return;}</b><
51、/p><p> s=l->next;</p><p> while(s) /*查詢該Number是否已經(jīng)存在,若存在則要求重新輸入一個未被占用的Number*/</p><p><b> {</b></p><p> if(strcmp(s->data.num,num)==0)</p>&l
52、t;p><b> {</b></p><p><b> flag=1;</b></p><p><b> break;</b></p><p><b> }</b></p><p> s=s->next;</p><
53、;p><b> }</b></p><p> if(flag==1) /*提示用戶是否重新輸入*/</p><p> { getchar();</p><p> printf("=====>Number %s existed already!Please press Enter.input again?(y/n):
54、",num);</p><p> scanf("%c",&ch);</p><p> if(ch=='y'||ch=='Y')</p><p><b> continue;</b></p><p><b> else</b>
55、;</p><p><b> return;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {break;}</b></p><p><b>
56、 }</b></p><p> p=(Node *)malloc(sizeof(Node)); /*申請內(nèi)存空間*/</p><p><b> if(!p)</b></p><p><b> {</b></p><p> printf("\n Allocate memo
57、ry failure "); /*如沒有申請到,打印提示信息*/</p><p> return ; /*返回主界面*/</p><p><b> }</b></p><p> strcpy(p->data.num,num); /*將字符串num拷貝到p->data.num中*/</p&
58、gt;<p> printf("please input the Name:");</p><p> scanf("%s",p->data.name);</p><p> getchar();</p><p> printf("please input the score of C:&qu
59、ot;);</p><p> scanf("%d",&p->data.cgrade);</p><p> getchar();</p><p> printf("please input the score of Math:");</p><p> scanf("%d&q
60、uot;,&p->data.mgrade);</p><p> getchar();</p><p> printf("please input the score of English:");</p><p> scanf("%d",&p->data.egrade);</p>
61、<p> p->data.total=p->data.egrade+p->data.cgrade+p->data.mgrade;</p><p> p->data.ave=p->data.total / 3;</p><p> getchar();</p><p> /* 信息輸入已經(jīng)完成 */</p>
62、;<p> p->next=NULL;</p><p> r->next=p;</p><p><b> r=p;</b></p><p> shoudsave=1;</p><p><b> }</b></p><p><b>
63、 }</b></p><p><b> 查詢函數(shù)</b></p><p> void Qur(Link l) /*按Number或Name,查詢學(xué)生記錄*/</p><p><b> {</b></p><p> int sel; /*1:按Number查,2:按Name查,其
64、他:返回主界面(菜單)*/</p><p> char findmess[20]; /*保存用戶輸入的查詢內(nèi)容*/</p><p><b> Node *p;</b></p><p> if(!l->next)/*若鏈表為空*/</p><p><b> {</b></p>
65、<p> system("cls");</p><p> printf("\n=====>No record now!Please press Enter\n");</p><p><b> return;</b></p><p><b> }</b>&l
66、t;/p><p> system("cls");</p><p> printf("\n=====>1Search by Number\n=====>2Search by Name\n");</p><p> printf(" select[1,2]:");</p>&
67、lt;p> scanf("%d",&sel);</p><p> if(sel==1)/* Number */</p><p><b> {</b></p><p> printf("please input the Number you want to search:");<
68、/p><p> scanf("%s",findmess);</p><p> p=Locate(l,findmess,"num");/*在l中查找Number為searchinput值的節(jié)點,并返回節(jié)點的指針*/</p><p> if(p)/*若p!=NULL*/</p><p><b>
69、 {</b></p><p> printheader();</p><p> printdata(p);</p><p> printf(END);</p><p> printf("press any key to back");</p><p> getchar();&
70、lt;/p><p><b> }</b></p><p><b> else</b></p><p><b> Nofind();</b></p><p> getchar();</p><p><b> }</b></
71、p><p> else if(sel==2) /* Name */</p><p><b> {</b></p><p> printf("please input the Name you want to search:");</p><p> scanf("%s",find
72、mess);</p><p> p=Locate(l,findmess,"name");</p><p><b> if(p)</b></p><p><b> {</b></p><p> printheader();</p><p> pri
73、ntdata(p);</p><p> printf(END);</p><p> printf("press any key to back");</p><p> getchar();</p><p><b> }</b></p><p><b> el
74、se</b></p><p><b> Nofind();</b></p><p> getchar();</p><p><b> }</b></p><p><b> else</b></p><p><b> Wro
75、ng();</b></p><p><b> }</b></p><p><b> 刪除函數(shù)</b></p><p> /*刪除學(xué)生記錄:先找到保存該學(xué)生記錄的節(jié)點,然后刪除該節(jié)點*/</p><p> void Del(Link l) /* 刪除 */</p>&
76、lt;p><b> {</b></p><p><b> int sel;</b></p><p> Node *p,*r;</p><p> char findmess[20];</p><p> if(!l->next)</p><p><b&
77、gt; {</b></p><p> printf("\n=====>no record!\n");</p><p> getchar();</p><p><b> return;</b></p><p><b> }</b></p>
78、<p> printf("\n=====>1Delete by Number\n=====>2Delete by Name\n");</p><p> scanf("%d",&sel);</p><p> if(sel==1)</p><p><b> {</b>&l
79、t;/p><p> printf("please input the Number you want to delete:");</p><p> scanf("%s",findmess);</p><p> p=Locate(l,findmess,"num");</p><p>
80、<b> if(p)</b></p><p><b> {</b></p><p><b> r=l;</b></p><p> while(r->next!=p)</p><p> r=r->next;</p><p> r-&
81、gt;next=p->next;</p><p><b> free(p);</b></p><p> printf("\n=====>Delete successful!\n");</p><p> getchar();</p><p> shoudsave=1;</p&g
82、t;<p><b> }</b></p><p><b> else</b></p><p><b> Nofind();</b></p><p><b> }</b></p><p> else if(sel==2)</p&
83、gt;<p><b> {</b></p><p> printf("please input the Name you want to delete:");</p><p> scanf("%s",findmess);</p><p> p=Locate(l,findmess,&q
84、uot;name");</p><p><b> if(p)</b></p><p><b> {</b></p><p><b> r=l;</b></p><p> while(r->next!=p)</p><p> r=
85、r->next;</p><p> r->next=p->next;</p><p><b> free(p);</b></p><p> printf("\n=====>Delete successful!\n");</p><p> getchar();</p
86、><p> shoudsave=1;</p><p><b> }</b></p><p><b> else</b></p><p><b> Nofind();</b></p><p> getchar();</p><p&
87、gt;<b> }</b></p><p><b> else</b></p><p><b> Wrong();</b></p><p> getchar();</p><p><b> }</b></p><p>&l
88、t;b> 修改函數(shù)</b></p><p> /*修改學(xué)生記錄。先按輸入的Number查詢到該記錄,然后提示用戶修改Number之外的值,Number不能修改*/</p><p> void Modify(Link l)</p><p><b> {</b></p><p><b>
89、 Node *p;</b></p><p> char findmess[20];</p><p> if(!l->next)</p><p> { system("cls");</p><p> printf("\n=====>no record!\n");</p
90、><p> getchar();</p><p><b> return;</b></p><p><b> }</b></p><p> system("cls");</p><p> printf("modify the informa
91、tion");</p><p><b> Disp(l);</b></p><p> printf("please input the Number you want to modify:");</p><p> scanf("%s",findmess);</p><p
92、> p=Locate(l,findmess,"num");</p><p><b> if(p)</b></p><p><b> {</b></p><p> printf("please input the new Number(which was %s):",p-
93、>data.num);</p><p> scanf("%s",p->data.num);</p><p> printf("please input the new Name(which was %s):",p->data.name);</p><p> scanf("%s",p-
94、>data.name);</p><p> getchar();</p><p> printf("please input the new C score(which was %d):",p->data.cgrade);</p><p> scanf("%d",&p->data.cgrade)
95、;</p><p> getchar();</p><p> printf("please input the new Math score(which was%d):",p->data.mgrade);</p><p> scanf("%d",&p->data.mgrade);</p>
96、<p> getchar();</p><p> printf("please input the new English score(which was%d):",p->data.egrade);</p><p> scanf("%d",&p->data.egrade);</p><p>
97、; p->data.total=p->data.egrade+p->data.cgrade+p->data.mgrade;</p><p> p->data.ave=p->data.total/3;</p><p> printf("\n=====>modify successful!\n");</p>&l
98、t;p> shoudsave=1;</p><p> getchar();</p><p><b> }</b></p><p><b> else</b></p><p><b> Nofind();</b></p><p> get
99、char();</p><p><b> }</b></p><p><b> 插入函數(shù)</b></p><p> /*插入記錄:按Number查詢到要插入的節(jié)點的位置,然后在該Number之后插入一個新節(jié)點。*/</p><p> void Insert(Link l)</p>
100、<p><b> {</b></p><p> Link p,v,newinfo; /*p指向插入位置,newinfo指新插入記錄*/</p><p> char ch,num[10],s[10]; /*s[]保存插入點位置之前的Number,num[]保存輸入的新記錄的Number*/</p><p> int flag
101、=0;</p><p> v=l->next;</p><p> system("cls");</p><p><b> Disp(l);</b></p><p><b> while(1)</b></p><p> { printf(&q
102、uot;please input the Number you want to insert:\n");</p><p> scanf("%s",num);</p><p> flag=0;v=l->next;</p><p> while(v) /*查詢該Number是否存在,flag=1表示該Number存在*/<
103、/p><p><b> {</b></p><p> if(strcmp(v->data.num,s)==0) {flag=1;break;}</p><p> v=v->next;</p><p><b> }</b></p><p> if(flag==
104、1)</p><p> break; /*若Number存在,則進行插入之前的新記錄的輸入操作*/</p><p><b> else</b></p><p> { getchar();</p><p> printf("\n=====>Number %s no record,try again?
105、(y/n):",s);</p><p> scanf("%c",&ch);</p><p> if(ch=='y'||ch=='Y')</p><p> {continue;}</p><p><b> else</b></p>
106、<p><b> {return;}</b></p><p><b> }</b></p><p><b> }</b></p><p> /*以下新記錄的輸入操作與Add()相同*/</p><p> printf("please input t
107、he Number you want yo add:\n");</p><p> scanf("%s",num);</p><p> v=l->next;</p><p><b> while(v)</b></p><p><b> {</b></p
108、><p> if(strcmp(v->data.num,num)==0)</p><p><b> {</b></p><p> printf("=====>sorry,new Number:'%s'!existing already\n",num);</p><p>
109、 printheader();</p><p> printdata(v);</p><p> printf("\n");</p><p> getchar();</p><p><b> return;</b></p><p><b> }</b&g
110、t;</p><p> v=v->next;</p><p><b> }</b></p><p> newinfo=(Node *)malloc(sizeof(Node));</p><p> if(!newinfo)</p><p><b> {</b>&
111、lt;/p><p> printf("\n Failed to allocate resources "); /*如沒有申請到,打印提示信息*/</p><p> return ; /*返回主界面*/</p><p><b> }</b></p><p> strcpy(n
112、ewinfo->data.num,num);</p><p> printf("please input the Name:\n");</p><p> scanf("%s",newinfo->data.name);</p><p> printf("please input the C score
113、[0-100]:\n");</p><p> scanf("%s",newinfo->data.cgrade);</p><p> printf("please input the Math score[0-100]:\n");</p><p> scanf("%s",newinfo-
114、>data.mgrade);</p><p> printf("please input the English score[0-100]:\n");</p><p> scanf("%s",newinfo->data.egrade);</p><p> newinfo->data.total=newi
115、nfo->data.egrade+newinfo->data.cgrade+newinfo->data.mgrade;</p><p> newinfo->data.ave=(float)(newinfo->data.total/3);</p><p> newinfo->next=NULL;</p><p> shouds
116、ave=1; /*在main()有對該全局變量的判斷,若為1,則進行存盤操作*/</p><p> /*將指針賦值給p,因為l中的頭節(jié)點的下一個節(jié)點才實際保存著學(xué)生的記錄*/</p><p> p=l->next;</p><p><b> while(1)</b></p><p><b> {&
117、lt;/b></p><p> if(strcmp(p->data.num,s)==0) /*在鏈表中插入一個節(jié)點*/</p><p><b> {</b></p><p> newinfo->next=p->next;</p><p> p->next=newinfo;</p
118、><p><b> break;</b></p><p><b> }</b></p><p> p=p->next;</p><p><b> }</b></p><p><b> Disp(l);</b></p
119、><p> printf("\n\n");</p><p> getchar();</p><p><b> }</b></p><p><b> 統(tǒng)計函數(shù)</b></p><p> void Tongji(Link l)</p>&l
120、t;p><b> {</b></p><p> Node *pm,*pe,*pc,*pt,*pa; /* 用于指向分數(shù)最高的接點 */</p><p> Node *r=l->next;</p><p> int num1=0,num2=0,num3=0,num4=0,num5=0;</p><p>
121、 int select;</p><p><b> if(!r)</b></p><p><b> {</b></p><p> printf("\n=====>no record!\n");</p><p><b> return ;</b>
122、;</p><p><b> }</b></p><p> system("cls");</p><p> pm=pe=pc=pt=pa=r;</p><p> printf("select the subject you want to count:1.C 2.Math 3.Eng
123、lish\n");</p><p> scanf("%d",&select);</p><p> switch(select)</p><p><b> {</b></p><p> case 1:printf("select the band:1.0--60 2
124、.60--70 3.70--80 4.80--90 5.90--100\n");</p><p> scanf("%d",&select);</p><p> switch(select)</p><p><b> {</b></p><p><b> ca
125、se 1:{</b></p><p> while(r!=NULL)</p><p><b> {</b></p><p> {if(r->data.cgrade<60)</p><p><b> {num1++;</b></p><p>
126、printheader();</p><p> printdata(r);</p><p> printf(END);</p><p><b> }</b></p><p> }r=r->next;}</p><p> printf("there are %d stude
127、nts\n",num1);</p><p> }break;</p><p><b> case 2:{</b></p><p> while(r!=NULL)</p><p><b> {</b></p><p> {if(r->data.
128、cgrade>=60&&r->data.cgrade<70)</p><p><b> {num1++;</b></p><p> printheader();</p><p> printdata(r);</p><p> printf(END);</p><
129、;p><b> }</b></p><p> }r=r->next;}</p><p> printf("there are %d students\n",num1);</p><p><b> }break;</b></p><p><b> c
130、ase 3:{</b></p><p> while(r!=NULL)</p><p><b> {</b></p><p> {if(r->data.cgrade>=70&&r->data.cgrade<80)</p><p><b> {num1+
131、+;</b></p><p> printheader();</p><p> printdata(r);</p><p> printf(END);</p><p><b> }</b></p><p> }r=r->next;}</p><p&g
132、t; printf("there are %d students\n",num1);</p><p><b> }break;</b></p><p><b> case 4:{</b></p><p> while(r!=NULL)</p><p><b>
133、 {</b></p><p> {if(r->data.cgrade>=80&&r->data.cgrade<90)</p><p><b> {num1++;</b></p><p> printheader();</p><p> printdata(r);
134、</p><p> printf(END);</p><p><b> }</b></p><p> }r=r->next;}</p><p> printf("there are %d students\n",num1);</p><p> }break;
135、</p><p><b> case 5:{</b></p><p> while(r!=NULL)</p><p><b> {</b></p><p> {if(r->data.cgrade>=90&&r->data.cgrade<100)&l
136、t;/p><p><b> {num1++;</b></p><p> printheader();</p><p> printdata(r);</p><p> printf(END);</p><p><b> }</b></p><p>
137、 }r=r->next;}</p><p> printf("there are %d students\n",num1);</p><p><b> }break;}</b></p><p><b> break;</b></p><p> case 2:pri
138、ntf("select the band:1.0--60 2.60--70 3.70--80 4.80--90 5.90--100\n");</p><p> scanf("%d",&select);</p><p> switch(select)</p><p><b> {</b&g
139、t;</p><p><b> case 1:{</b></p><p> while(r!=NULL)</p><p><b> {</b></p><p> {if(r->data.mgrade<60)</p><p><b> {num1
140、++;</b></p><p> printheader();</p><p> printdata(r);</p><p> printf(END);</p><p><b> }</b></p><p> }r=r->next;}</p><p&
141、gt; printf("there are %d students\n",num1);</p><p><b> }break;</b></p><p><b> case 2:{</b></p><p> while(r!=NULL)</p><p><b>
142、 {</b></p><p> {if(r->data.mgrade>=60&&r->data.mgrade<70)</p><p><b> {num1++;</b></p><p> printheader();</p><p> printdata(r)
143、;</p><p> printf(END);</p><p><b> }</b></p><p> }r=r->next;}</p><p> printf("there are %d students\n",num1);</p><p><b>
144、 }break;</b></p><p><b> case 3:{</b></p><p> while(r!=NULL)</p><p><b> {</b></p><p> {if(r->data.mgrade>=70&&r->data.
145、mgrade<80)</p><p><b> {num1++;</b></p><p> printheader();</p><p> printdata(r);</p><p> printf(END);</p><p><b> }</b></p
146、><p> }r=r->next;}</p><p> printf("there are %d students\n",num1);</p><p><b> }break;</b></p><p><b> case 4:{</b></p><p
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- 課程設(shè)計報告-學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- 學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- 課程設(shè)計報告--學(xué)生成績管理系統(tǒng)
- 課程設(shè)計報告---學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- 學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- 學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- 《學(xué)生成績管理系統(tǒng)》課程設(shè)計報告
- vb學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- java課程設(shè)計報告---學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)課程設(shè)計報告 (2)
- java學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- java學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- 學(xué)生成績管理系統(tǒng)課程設(shè)計報告 (3)
- c課程設(shè)計報告--學(xué)生成績管理系統(tǒng)
- java學(xué)生成績管理系統(tǒng)課程設(shè)計報告
- 學(xué)生成績管理系統(tǒng)課程設(shè)計報告.doc
- vfp課程設(shè)計報告---學(xué)生成績管理系統(tǒng)
評論
0/150
提交評論