版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> C 語言課程設(shè)計(jì)</b></p><p><b> 學(xué)生成績管理系統(tǒng)</b></p><p> 學(xué)院:機(jī)械與電子工程</p><p><b> 專業(yè):電子信息工程</b></p><p><b> 班級:xxxxx</b&g
2、t;</p><p><b> 學(xué)號:xxxxx</b></p><p><b> 姓名:xxx</b></p><p><b> 指導(dǎo)老師:xxx</b></p><p><b> 2011.6.1</b></p><p>
3、;<b> 說 明</b></p><p><b> 1.設(shè)計(jì)目的</b></p><p> ?。?)復(fù)習(xí)鞏固C語言的基礎(chǔ)知識,進(jìn)一步加深對C語言編程的理解和掌握;</p><p> ?。?)利用所學(xué)知識,理論和實(shí)際結(jié)合,利用資源,采用模塊化的結(jié)構(gòu),使用模仿修改自主設(shè)計(jì)相結(jié)合的方法,鍛煉學(xué)生綜合分析解決實(shí)際問題的編程
4、能力;</p><p> ?。?)培養(yǎng)學(xué)生在項(xiàng)目開發(fā)中團(tuán)隊(duì)合作精神、創(chuàng)新意識及實(shí)戰(zhàn)能力。</p><p><b> 2.設(shè)計(jì)任務(wù) </b></p><p> 假設(shè)某門課程一學(xué)期要考試兩次,其中考試占30%,平時作業(yè)占20%,期末考試占50%(滿分100分)</p><p> 該課程應(yīng)該具有下列功能:</p&g
5、t;<p> 通過鍵盤輸入學(xué)生考試、平時作業(yè)的分?jǐn)?shù);</p><p> 給定序號,顯示某學(xué)生總評成績;</p><p> 給定某班的班號,顯示該班的所有總評成績信息;</p><p> 給定某班學(xué)生的學(xué)號,修改該學(xué)生的信息。</p><p><b> 設(shè)計(jì)要求與設(shè)計(jì)報(bào)</b></p>
6、<p><b> 要求:</b></p><p> (1)為各項(xiàng)操作功能設(shè)計(jì)一個菜單。應(yīng)用程序運(yùn)行后,顯示這個菜單,然后用戶通過菜單單項(xiàng)選擇希望進(jìn)行的操作項(xiàng)目;</p><p> ?。?)學(xué)生信息按學(xué)號或姓名查詢或刪除,排序功能按學(xué)號或姓名排列。</p><p> (3)要求以上功能分別用函數(shù)實(shí)現(xiàn)。并要求用C語言的文件操作語句
7、將以上結(jié)果保存在XXX。Out。</p><p> ?。?)要求用戶輸入數(shù)據(jù)時,要給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容、格式及結(jié)束方式等。</p><p><b> 小組成員</b></p><p> xxx、xxx、xxx、xxx、xxx</p><p><b> 課程設(shè)計(jì)時間</b>
8、;</p><p> 2011年5月23號~ 2011年5月30號(第十五周)</p><p> 2011.6.2 于東華理工大學(xué)</p><p><b> 目 錄</b></p><p> 設(shè)計(jì)緒論……………………5</p><p> 總體設(shè)計(jì)……………………5</p>
9、<p> 詳細(xì)設(shè)計(jì)……………………6</p><p> 調(diào)試與測試…………………6</p><p> 源代碼與注釋………………7</p><p> 運(yùn)行結(jié)果截圖………………19</p><p> 總結(jié)與體會…………………20</p><p> 參考文獻(xiàn)……………………20</p>
10、<p><b> 一、設(shè)計(jì)緒論</b></p><p> 1.設(shè)計(jì)名稱:學(xué)生成績管理系統(tǒng)</p><p> 2.設(shè)計(jì)目的:靈活使用C語言進(jìn)行程序編寫,鞏固有關(guān)語句,指針,結(jié)構(gòu)體,鏈表,文件操作等概念和方法。提高調(diào)試程序的技能,提高軟件編寫的能力。</p><p> 3.設(shè)計(jì)環(huán)境:軟件:Win—TC</p><
11、;p><b> 硬件:PC機(jī)</b></p><p><b> 4.設(shè)計(jì)說明:</b></p><p> 1)程序運(yùn)行情況:程序的大致情形是:程序由一個主函</p><p> 控制,當(dāng)程序運(yùn)行時,主函數(shù)將文件打開,將數(shù)據(jù)導(dǎo)入內(nèi)存,并關(guān)閉文件,接著由用戶選擇相應(yīng)操作。</p><p>
12、 主函數(shù)中可調(diào)用添加,刪除,查找,修改等函數(shù)來執(zhí)行相應(yīng)的操作。</p><p> 2)程序功能:本程序根據(jù)一般成績管理系統(tǒng)應(yīng)具備的功能進(jìn)行設(shè)計(jì),具有的功能有:</p><p><b> 添加數(shù)據(jù)</b></p><p><b> 刪除數(shù)據(jù)</b></p><p><b> 查找數(shù)據(jù)
13、</b></p><p><b> 修改數(shù)據(jù)</b></p><p><b> 顯示全部數(shù)據(jù)</b></p><p><b> 保存數(shù)據(jù)</b></p><p><b> 對數(shù)據(jù)進(jìn)行排序</b></p><p>
14、<b> 對數(shù)據(jù)進(jìn)行統(tǒng)計(jì)</b></p><p> 另外,因時間關(guān)系,沒能設(shè)計(jì)出幫助功能,這是本程序有待擴(kuò)充、改進(jìn)的地方之一。</p><p> 3)測試計(jì)劃:程序中需輸入的學(xué)號最多10位數(shù),輸入完成按回車鍵。輸入姓名拼音時應(yīng)使拼音連在一起輸入,中間不要留空。輸入姓別時的內(nèi)容最多4個字符,否則輸出時會出現(xiàn)誤差。成績的輸入均為整形。</p><
15、p> 4)增加的功能:通過參考資料和請教他人我們增加了統(tǒng)計(jì)學(xué)生信息、自動保存、自動清屏及人性化的提示等功能。</p><p> 5)尚未解決的問題:由于掌握的知識有限,未能實(shí)現(xiàn)輸入班號該班學(xué)生所有學(xué)生信息總評成績、未能設(shè)計(jì)出設(shè)想增加幫助菜單函數(shù)供使用者使用的功能,程序中的輸入學(xué)生成 績沒有使用輸入小數(shù)。</p><p> 總體設(shè)計(jì)流程圖如下:</p><p&
16、gt;<b> 詳細(xì)設(shè)計(jì)</b></p><p> 輸入學(xué)生成績信息:其中包括學(xué)生的學(xué)號、性別、姓名、期中考試成績、平時作業(yè)成績及期末考試成績,可定義通過結(jié)構(gòu)體struct student將學(xué)生信息一組一組的輸入,可用函數(shù)Add(l)實(shí)現(xiàn)。</p><p> 刪除學(xué)生成績信息:可用Del(l)函數(shù)實(shí)現(xiàn),通過if語句選擇按學(xué)號刪除或姓名刪除。</p>
17、<p> 查找某個學(xué)生成績信息:通過函數(shù)Qur(Link l)實(shí)現(xiàn)。</p><p> 修改學(xué)生信息:通過函數(shù)Modify(Link l)實(shí)現(xiàn)。</p><p> 排序?qū)W生成績:通過函數(shù)sort(Link l)實(shí)現(xiàn)。</p><p> 保存學(xué)生信息:通過函數(shù)Save(Link l)實(shí)現(xiàn)。</p><p> 顯示(統(tǒng)計(jì))所
18、有學(xué)生成績信息:通過函數(shù)Tongji(Link l)實(shí)現(xiàn)。</p><p> 幫助(新增):未實(shí)現(xiàn)。</p><p> 退出系統(tǒng):可用函數(shù)exit()來實(shí)現(xiàn),首先將信息保存到文件中,釋放創(chuàng)建的內(nèi)存空間,再退出系統(tǒng)。</p><p><b> 測試與測試</b></p><p> 源代碼和本人負(fù)責(zé)部分注釋</
19、p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> #include<string.h></p><p> #include<conio.h></p><p> #define Longest
20、30</p><p> #define Numlong 11</p><p> #define Sexlong 5</p><p> int shoudsave=0;</p><p> struct student</p><p><b> {</b></p><p&
21、gt; char num[Numlong];</p><p> char name[25];</p><p> char sex[Sexlong];</p><p> int test; …………………………………/*期末考試成績*/</p><p> int middle; …………………………………/*期中考試成績*/</
22、p><p> int dayly; …………………………………/*平時作業(yè)成績*/</p><p> int total; …………………………………/*總評成績*/</p><p> int average; …………………………………/*平均成績*/</p><p> char neartime[10];</p><
23、;p><b> };</b></p><p> typedef struct node</p><p><b> {</b></p><p> struct student data;</p><p> struct node *next;</p><p>
24、 }Node,*Link;</p><p> void menu()</p><p><b> {</b></p><p> printf("\t\t\tStudent Score System\n\t\t\t\t\tEast China Institute of Technology\n\t\t\t\t\t Ele
25、ctronic Information Management\n\t\t\t\t\t\t Num:1020610212 Hebobo\n\t\t\t\t\t\t Email:1183023611@qq.com\n");</p><p> printf("*******************************************************************
26、*******\n");</p><p> printf("*\t1>Add Records 2>Delete Records \t\t\t *\n");</p><p> printf("*\t3>Find Out 4>Modify Records \t\t\t *\n"
27、;);</p><p> printf("*\t5>Sort Records 6>Save Records \t\t\t\t *\n");</p><p> printf("*\t7>Display Records 8>Tongji \t\t\t\t *\n");</p><p
28、> printf("*\t9>Help 0>Exit System \t\t\t\t *\n");</p><p> printf("**************************************************************************\n");</p><
29、;p><b> }</b></p><p> void printstart()</p><p><b> {</b></p><p> printf("-------------------------------------------------------------------------
30、-\n");</p><p><b> }</b></p><p> void Wrong()</p><p><b> {</b></p><p> printf("=====>Input error!\n");</p><p>
31、<b> }</b></p><p> void Continue()</p><p><b> {</b></p><p> printf("=====>Please press any key to continue.\n");</p><p><b>
32、; getch();</b></p><p><b> }</b></p><p> void Nofind()</p><p><b> {</b></p><p> printf("\n=====>Not find records !\n");&l
33、t;/p><p><b> }</b></p><p> void printc()</p><p><b> {</b></p><p> printf(" number name sex dayly middle test t
34、otal aver\n");</p><p><b> }</b></p><p> void printe(Node *p)</p><p><b> {</b></p><p> printf("%-10s %-25s%-5s%5d %5d %5d %5d %5d\
35、n",p->data.num,p->data.name,p->data.sex,p->data.dayly,p->data.middle,p->data.test,p->data.total,p->data.average);</p><p><b> }</b></p><p> Node* Locate
36、(Link l,char findmess[],char nameornum[])</p><p><b> {</b></p><p><b> Node *r;</b></p><p> if(strcmp(nameornum,"num")==0)</p><p>&l
37、t;b> {</b></p><p> r=l->next;</p><p> while(r!=NULL)</p><p><b> {</b></p><p> if(strcmp(r->data.num,findmess)==0)</p><p>&l
38、t;b> return r;</b></p><p> r=r->next;</p><p><b> }</b></p><p><b> }</b></p><p> else if(strcmp(nameornum,"name")==0)&
39、lt;/p><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)
40、</p><p><b> return r;</b></p><p> r=r->next;</p><p><b> }</b></p><p><b> }</b></p><p><b> return 0;</b
41、></p><p><b> }</b></p><p> void Add(Link l) …………………………/*定義輸入(添加)學(xué)生記錄的函數(shù)*/</p><p><b> { </b></p><p> Node *p,*r,*s;…………………………………/*定義指針變量*/
42、</p><p> char num[Numlong]; …………………………………/*提示用戶是否輸入或添加*/</p><p><b> r=l;</b></p><p> s=l->next;</p><p> while(r->next!=NULL) …………/*提示用戶是否輸入或添加,選擇判
43、斷確認(rèn)添加*/</p><p> r=r->next;</p><p><b> while(1)</b></p><p><b> {</b></p><p> printf("Please input 10 number(Input '0' to exit
44、.):");…/*輸出提示添加學(xué)號*/</p><p> scanf("%s",num); …………………………………………………/*接收學(xué)號信息*/</p><p> if(strcmp(num,"0")==0)…………………………………/*判斷學(xué)號是否輸入正確*/</p><p><b> {&l
45、t;/b></p><p> Continue();</p><p><b> break;</b></p><p><b> }</b></p><p> while(s)…………………………………………………/*判斷輸入學(xué)號是否存在*/</p><p>&l
46、t;b> {</b></p><p> if(strcmp(s->data.num,num)==0)………………………/*判斷輸入學(xué)號存在*/</p><p><b> {</b></p><p> printf("=====>The number '%s' is in the f
47、ile.(Input '4' to modify !)\n",num);/*提示輸入學(xué)號存在*/</p><p> printstart();</p><p><b> printc();</b></p><p> printe(s);</p><p> printstart();<
48、;/p><p> Continue();</p><p><b> return;</b></p><p><b> }</b></p><p> s=s->next;………………………………………………/*判斷確定添加學(xué)生信息*/</p><p><b>
49、; }</b></p><p> p=(Node *)malloc(sizeof(Node));</p><p> strcpy(p->data.num,num);………………………………/*接收輸入的學(xué)號*/</p><p> printf("Please input name:");…………………………/*打印提示輸
50、入學(xué)生姓名*/</p><p> scanf("%s",p->data.name);………………………………/*接收輸入的學(xué)生姓名*/</p><p> printf("Please input sex(boy/girl):");………………/*打印提示輸入學(xué)生性別*/</p><p> scanf("%
51、s",p->data.sex);………………………………/*接收輸入的學(xué)生姓名*/</p><p> printf("Please input test score:");………………/*打印提示輸入學(xué)生期末成績*/</p><p> scanf("%d",&p->data.test);…………………………/*接收輸
52、入的學(xué)生期末成績*/</p><p> printf("Please input middle score!:");…………/*打印提示輸入學(xué)生期中成績*/</p><p> scanf("%d",&p->data.middle);………………………/*接收輸入的學(xué)生期中成績*/</p><p> prin
53、tf("Please input dayly score!:");………/*打印提示輸入學(xué)生平時作業(yè)成績*/</p><p> scanf("%d",&p->data.dayly);……………………/*接收輸入的學(xué)生平時作業(yè)成績*/</p><p> p->data.total=(p->data.dayly)/5+(p-
54、>data.test)/2+(p->data.middle)*3/10;/*計(jì)算總評成績*/</p><p> p->data.average=p->data.total/3;…………………………………/*計(jì)算平均成績*/</p><p> p->next=NULL;</p><p> r->next=p;</p>
55、;<p><b> r=p;</b></p><p> shoudsave=1;………………………………………………/*保存輸入的學(xué)生信息*/</p><p><b> }</b></p><p> void Qur(Link l)………………………………………………………/*定義查找函數(shù)*/<
56、/p><p><b> {</b></p><p><b> int sel;</b></p><p> char findmess[Longest];</p><p><b> Node *p;</b></p><p> if(!l->ne
57、xt)…………………………………………………………/*判斷沒有查到*/</p><p><b> {</b></p><p> printf("\n=====>Cannot find anything !\n");………………/*打印提示沒有查到*/</p><p> Continue();</p>
58、<p><b> return;</b></p><p><b> }</b></p><p> printf("=====> 1> Number.\n=====> 2> Name.\n");………/*打印按學(xué)號或姓名查找*/</p><p> scanf(&
59、quot;%d",&sel);…………………………………………………/*接收輸入的選項(xiàng)*/</p><p> if(sel==1)…………………………………………………/*判斷選項(xiàng)是“1”*/</p><p><b> {</b></p><p> printf("input the number:"
60、);…………………………………/*打印提示輸入學(xué)號*/</p><p> scanf("%s",findmess);…………………………………………/*接收輸入的學(xué)號*/</p><p> p=Locate(l,findmess,"num");…………………………/*查找要查找的內(nèi)容的位置*/</p><p> if(p
61、)……………………………………/*判斷輸入的學(xué)號對應(yīng)的信息是否存在*/</p><p><b> {</b></p><p> printf("\t\t\t\tRESULT\n");…………………………………/*打印查找的結(jié)果*/</p><p> printstart();</p><p>&
62、lt;b> printc();</b></p><p> printe(p);</p><p> printstart();</p><p> Continue();</p><p><b> } </b></p><p> else…………………………………………
63、/*判斷輸入的學(xué)號對應(yīng)的信息不存在*/</p><p><b> { </b></p><p><b> Nofind();</b></p><p> Continue();</p><p><b> }</b></p><p><b>
64、; }</b></p><p> else if(sel==2)………………………………………………/*判斷選項(xiàng)是“1”*/</p><p><b> {</b></p><p> printf("input the name:");……………………………………/*打印提示輸入姓名*/</p>
65、<p> scanf("%s",findmess);…………………………………………/*接收輸入的姓名*/</p><p> p=Locate(l,findmess,"name");………………………/*查找要查找的內(nèi)容的位置*/</p><p> if(p)……………………………………/*判斷輸入的姓名對應(yīng)的信息是否存在*/&l
66、t;/p><p><b> {</b></p><p> printf("\t\t\t\tRESULT\n");…………………………………/*打印查找的結(jié)果*/</p><p> printstart();</p><p><b> printc();</b></p&g
67、t;<p> printe(p);</p><p> printstart();</p><p> Continue();</p><p><b> }</b></p><p> else…………………………………………/*判斷輸入的學(xué)號對應(yīng)的信息不存在*/</p><p>
68、;<b> {</b></p><p><b> Nofind();</b></p><p> Continue();</p><p><b> }</b></p><p><b> }</b></p><p><b
69、> else</b></p><p><b> {</b></p><p><b> Wrong();</b></p><p> Continue();</p><p><b> }</b></p><p><b>
70、 }</b></p><p> void Del(Link l)………………………………………………………/*定義刪除函數(shù)*/</p><p><b> {</b></p><p><b> int sel;</b></p><p> Node *p,*r;</p>
71、<p> char findmess[Longest];</p><p> if(!l->next)……………………………………………/*判斷要刪除的內(nèi)容不存在*/</p><p><b> {</b></p><p> printf("\n=====>Nothing can delete !\n&q
72、uot;);…………/*提示要刪除的內(nèi)容不存在*/</p><p> Continue();</p><p><b> return;</b></p><p><b> }</b></p><p> printf("=====>1 Number\n=====>2 Nam
73、e\n");……/*打印選擇查找刪除信息的方式*/</p><p> scanf("%d",&sel);…………………………………/*接收選擇查找刪除信息的方式*/</p><p> if(sel==1)……………………………………………………/*判斷按學(xué)號刪除*/</p><p><b> {</b>
74、;</p><p> printf("Please input the number:");…………………………/*打印提示輸入學(xué)號*/</p><p> scanf("%s",findmess);…………………………………………/*接收輸入的學(xué)號*/</p><p> p=Locate(l,findmess,"
75、;num");……………………………/*查找要刪除信息的位置*/</p><p> if(p)……………………………………………………/*判斷要刪除內(nèi)容的存在*/</p><p><b> {</b></p><p><b> r=l;</b></p><p> while(r-&
76、gt;next!=p)………………………………………………………/*確認(rèn)刪除/</p><p> r=r->next;</p><p> r->next=p->next;</p><p><b> free(p);</b></p><p> printf("=====>Delet
77、e success!\n");………………………/*打印提示刪除成功*/</p><p> Continue();</p><p> shoudsave=1;………………………………………………………/*保存數(shù)據(jù)*/</p><p><b> }</b></p><p> else……………………………
78、…………………………/*判斷沒找到要刪除內(nèi)容*/</p><p><b> {</b></p><p><b> Nofind();</b></p><p> Continue();</p><p><b> }</b></p><p><
79、b> }</b></p><p> else if(sel==2)……………………………………………………/*判斷按姓名刪除*/</p><p><b> {</b></p><p> printf("Please input the name:");…………………………/*打印提示輸入姓名*/&l
80、t;/p><p> scanf("%s",findmess);…………………………………………/*接收輸入的姓名*/</p><p> p=Locate(l,findmess,"name");………………………/*查找要刪除信息的位置*/</p><p> if(p)……………………………………………………/*判斷要刪除內(nèi)容
81、的存在*/</p><p><b> {</b></p><p><b> r=l;</b></p><p> while(r->next!=p)………………………………………………………/*確認(rèn)刪除/</p><p> r=r->next;</p><p&g
82、t; r->next=p->next;</p><p><b> free(p);</b></p><p> printf("=====>Delete success!\n");………………………/*打印提示刪除成功*/</p><p> Continue();</p><p&g
83、t; shoudsave=1;………………………………………………………/*保存數(shù)據(jù)*/</p><p><b> }</b></p><p> else………………………………………………………/*判斷沒找到要刪除內(nèi)容*/</p><p><b> {</b></p><p><b&
84、gt; Nofind();</b></p><p> Continue();</p><p><b> }</b></p><p><b> }</b></p><p> else………………………………………………………/*判斷輸入錯誤*/</p><p&
85、gt;<b> {</b></p><p><b> Wrong();</b></p><p> Continue();</p><p><b> }</b></p><p><b> }</b></p><p> vo
86、id Modify(Link l)</p><p><b> {</b></p><p><b> Node *p;</b></p><p> char findmess[Longest];</p><p> if(!l->next)</p><p><b
87、> {</b></p><p> printf("\n=====>Nothing can modify!\n");</p><p> Continue();</p><p><b> return;</b></p><p><b> }</b>&
88、lt;/p><p> printf("input the number:");</p><p> scanf("%s",findmess);</p><p> p=Locate(l,findmess,"num");</p><p><b> if(p)</b>
89、;</p><p><b> {</b></p><p> printf("new number(the old is %s):",p->data.num);</p><p> scanf("%s",p->data.num);</p><p> printf(&
90、quot;new name(the old is %s):",p->data.name);</p><p> scanf("%s",p->data.name);</p><p> printf("new sex(the old is %s):",p->data.sex);</p><p> s
91、canf("%s",p->data.sex);</p><p> printf("new test score(the old is %d):",p->data.test);</p><p> scanf("%d",&p->data.test);</p><p> print
92、f("new middle score(the old is %d):",p->data.middle);</p><p> scanf("%d",&p->data.middle);</p><p> printf("new dayly score(the old is %d):",p->data.d
93、ayly);</p><p> scanf("%d",&p->data.dayly);</p><p> p->data.total=p->data.dayly+p->data.test+p->data.middle;</p><p> p->data.average=p->data.tot
94、al/3;</p><p> printf("\n=====>Modify success !\n");</p><p> Continue();</p><p> shoudsave=1;</p><p><b> }</b></p><p><b>
95、 else</b></p><p><b> {</b></p><p><b> Nofind();</b></p><p> Continue();</p><p><b> }</b></p><p><b> }
96、</b></p><p> void Display(Link l)</p><p><b> {</b></p><p> int page=0;</p><p><b> Node *p;</b></p><p> p=l->next;<
97、/p><p><b> if(!p)</b></p><p><b> {</b></p><p> printf("\n=====>Nothing !\n");</p><p> Continue();</p><p><b> r
98、eturn;</b></p><p><b> }</b></p><p><b> while(p)</b></p><p><b> {</b></p><p> if(page%20==0)</p><p><b>
99、 {</b></p><p> printf("\nGo to next page?");</p><p><b> getch();</b></p><p> system("CLS"); </p><p> printf("\t\t\tRESULT
100、\n");</p><p> printstart();</p><p><b> printc();</b></p><p><b> }</b></p><p> printe(p);</p><p> p=p->next;</p>
101、<p><b> page++;</b></p><p><b> }</b></p><p> printstart();</p><p> Continue();</p><p><b> }</b></p><p> voi
102、d Tongji(Link l)</p><p><b> {</b></p><p> Node *pm,*pe,*pc,*pt,*pa;</p><p> Node *r=l->next;</p><p><b> if(!r)</b></p><p>&l
103、t;b> {</b></p><p> printf("\n=====>Nothing to tongji!\n");</p><p> Continue();</p><p><b> return ;</b></p><p><b> }</b&g
104、t;</p><p> pm=pe=pc=pt=pa=r;</p><p> while(r!=NULL)</p><p><b> {</b></p><p> if(r->data.test>=pc->data.test)</p><p><b> pc=
105、r;</b></p><p> if(r->data.middle>=pm->data.middle)</p><p><b> pm=r;</b></p><p> if(r->data.dayly>=pe->data.dayly)</p><p><b>
106、; pe=r;</b></p><p> if(r->data.total>=pt->data.total)</p><p><b> pt=r;</b></p><p> if(r->data.average>=pa->data.average)</p><p>
107、<b> pa=r;</b></p><p> r=r->next;</p><p><b> }</b></p><p> printf("------------------------------ RESULT --------------------------------\n")
108、;</p><p> printf("highest total:\t%s %d\n",pt->data.name,pt->data.total);</p><p> printf("highest average:\t%s %d\n",pa->data.name,pa->data.average);</p>
109、<p> printf("highest dayly:\t%s %d\n",pe->data.name,pe->data.dayly);</p><p> printf("highest middle:\t%s %d\n",pm->data.name,pm->data.middle);</p><p> pr
110、intf("highest test:\t%s %d\n",pc->data.name,pc->data.test);</p><p> printstart();</p><p> Continue();</p><p><b> }</b></p><p> void Sort
111、(Link l)</p><p><b> {</b></p><p><b> Link ll;</b></p><p> Node *p,*rr,*s;</p><p> ll=(Link)malloc(sizeof(Node));</p><p> ll-&g
112、t;next=NULL;</p><p> if(l->next==NULL)</p><p><b> {</b></p><p> printf("\n=====>Nothing can sort!\n");</p><p> Continue();</p>&l
113、t;p><b> return ;</b></p><p><b> }</b></p><p> p=l->next;</p><p><b> while(p)</b></p><p><b> {</b></p>
114、<p> s=(Node*)malloc(sizeof(Node));</p><p> s->data=p->data;</p><p> s->next=NULL;</p><p><b> rr=ll;</b></p><p> while(rr->next!=NULL&
115、amp;&rr->next->data.total>=p->data.total)</p><p> rr=rr->next;</p><p> if(rr->next==NULL)</p><p> rr->next=s;</p><p><b> else</b&g
116、t;</p><p><b> {</b></p><p> s->next=rr->next;</p><p> rr->next=s;</p><p><b> }</b></p><p> p=p->next;</p>&
117、lt;p><b> }</b></p><p><b> free(l);</b></p><p> l->next=ll->next;</p><p> printf("=====>Sort success!\n");</p><p> Con
118、tinue();</p><p><b> }</b></p><p> void Save(Link l)</p><p><b> {</b></p><p><b> FILE* fp;</b></p><p><b> Nod
119、e *p;</b></p><p> int flag=1,count=0;</p><p> fp=fopen("C.TXT","wb");</p><p> if(fp==NULL)</p><p><b> {</b></p><p&g
120、t; printf("\n=====>Open file error!\n");</p><p> Continue();</p><p><b> exit(1);</b></p><p><b> }</b></p><p> p=l->next;<
121、;/p><p><b> while(p)</b></p><p><b> {</b></p><p> if(fwrite(p,sizeof(Node),1,fp)==1)</p><p><b> {</b></p><p> p=p->
122、;next;</p><p><b> count++;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b>
123、flag=0;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> if(flag)</b></p><p&g
124、t;<b> {</b></p><p> printf("=====>Congratulate,%d records have been saved !\n",count);</p><p><b> getch();</b></p><p> shoudsave=0;</p>
125、;<p><b> }</b></p><p> fclose(fp);</p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p><b>
126、Link l;</b></p><p><b> FILE *fp;</b></p><p><b> int sel;</b></p><p><b> char ch;</b></p><p> char jian;</p><p&g
127、t; int count=0;</p><p> Node *p,*r;</p><p> system("CLS");</p><p> l=(Node*)malloc(sizeof(Node));</p><p> l->next=NULL;</p><p><b>
128、 r=l;</b></p><p> fp=fopen("C.TXT","rb");</p><p> if(fp==NULL)</p><p><b> {</b></p><p> printf("\n=====>No file,open a
129、 new one?(y/n)\n");</p><p> scanf("%c",&jian);</p><p> if(jian=='y'||jian=='Y')</p><p> fp=fopen("C.TXT","wb");</p>
130、<p> else exit(0);</p><p><b> }</b></p><p> while(!feof(fp))</p><p><b> {</b></p><p> p=(Node*)malloc(sizeof(Node));</p><p&
131、gt; if(fread(p,sizeof(Node),1,fp))</p><p><b> {</b></p><p> p->next=NULL;</p><p> r->next=p;</p><p><b> r=p;</b></p><p>
132、<b> count++;</b></p><p><b> }</b></p><p><b> }</b></p><p> fclose(fp);</p><p><b> while(1)</b></p><p>
133、<b> {</b></p><p> system("CLS");</p><p><b> menu();</b></p><p> printf("Please input your choice:");</p><p> scanf(&quo
134、t;%d",&sel);</p><p> if(sel==0)</p><p><b> {</b></p><p> if(shoudsave==1)</p><p><b> {</b></p><p> printf("=====
135、>File has been modify,save or not (y/n)?\n");</p><p> ch=getch();</p><p> if(ch=='y'||ch=='Y')</p><p><b> Save(l);</b></p><p><
136、;b> }</b></p><p> printf("=====>good bye!\n");</p><p><b> getch();</b></p><p><b> break;</b></p><p><b> }</b
137、></p><p> switch(sel)</p><p><b> {</b></p><p> case 1:);break;</p><p> case 2:Del(l);break;</p><p> case 3:Qur(l);break;</p><
138、;p> case 4:Modify(l);break;</p><p> case 5:Sort(l);break;</p><p> case 6:Save(l);break;</p><p> case 7:Display(l);break;</p><p> case 8:Tongji(l);break;</p&g
139、t;<p> case 9:printf("\t\t\t========== help ==========\n");Continue();break;</p><p> default: Wrong();getch();break;</p><p><b> }</b></p><p><b>
140、; }</b></p><p><b> }</b></p><p><b> 運(yùn)行結(jié)果截圖</b></p><p><b> 主菜單效果截圖</b></p><p> 輸入(添加)學(xué)生信息運(yùn)行效果截圖</p><p> 刪除學(xué)生
141、信息運(yùn)行效果截圖</p><p><b> 總結(jié)與體會</b></p><p> C程序課程設(shè)計(jì)是在課程結(jié)束后通過老師、班干協(xié)調(diào)分組分工合作完成一項(xiàng)程序設(shè)計(jì)來解決實(shí)際問題,在課程設(shè)計(jì)周之前我們小組明確分工并開始構(gòu)思,按分模塊的思想,一個函數(shù)對應(yīng)一個功能,然后畫流程圖、些代碼。通過查課本及參考資料和問他人來解決碰到的問題,在課程設(shè)計(jì)周我們開始輸入代碼、調(diào)試、修改;當(dāng)
142、獨(dú)立調(diào)試成功后由組長藍(lán)遠(yuǎn)輝主導(dǎo)各成員討論綜合鏈接,基本完成任務(wù)后我們再對程序進(jìn)行優(yōu)化,添加了一些人性化的判斷和提示并通過參考課外資料加了一些實(shí)用的功能.。在這個過程不僅鞏固并升華了所學(xué)知識,還培養(yǎng)了我們的團(tuán)隊(duì)合作精神。深深體會在理論用于實(shí)踐的重要性和困難,其實(shí)我們正是經(jīng)歷了一個程序軟件開發(fā)的整個過程!</p><p> 我體會到C語言的實(shí)質(zhì)就是以一定的語法規(guī)范為準(zhǔn),通過對數(shù)據(jù)量的復(fù)雜結(jié)構(gòu)運(yùn)算,完成一定功能的程序
143、,是一門計(jì)算機(jī)基礎(chǔ)語言,我們通過這一學(xué)期的學(xué)習(xí),對于其特點(diǎn)和算法有了一定程度的了解。這周的課程設(shè)計(jì)正是讓我們鞏固以前的知識并在此基礎(chǔ)上能夠有所突破。</p><p><b> 八、參考文獻(xiàn)</b></p><p> 教材:C程序設(shè)計(jì)(第四版)譚浩強(qiáng) 著 清華大學(xué)出版社</p><p> C程序設(shè)計(jì)(第四版)學(xué)習(xí)輔導(dǎo)譚浩強(qiáng) 著 清華大學(xué)出版
溫馨提示
- 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è)計(jì)---學(xué)生成績管理1
- c語言課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)----學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- 學(xué)生成績管理系統(tǒng)--c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)--學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)———學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)---學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)_學(xué)生成績管理系統(tǒng)
- c語言課程設(shè)計(jì)學(xué)生成績管理系統(tǒng)設(shè)計(jì)
評論
0/150
提交評論