版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> C 語言課程設計</b></p><p><b> 學生成績管理系統(tǒng)</b></p><p> 學院:機械與電子工程</p><p><b> 專業(yè):電子信息工程</b></p><p><b> 班級:xxxxx</b&g
2、t;</p><p><b> 學號:xxxxx</b></p><p><b> 姓名:xxx</b></p><p><b> 指導老師:xxx</b></p><p><b> 2011.6.1</b></p><p>
3、;<b> 說 明</b></p><p><b> 1.設計目的</b></p><p> ?。?)復習鞏固C語言的基礎知識,進一步加深對C語言編程的理解和掌握;</p><p> ?。?)利用所學知識,理論和實際結合,利用資源,采用模塊化的結構,使用模仿修改自主設計相結合的方法,鍛煉學生綜合分析解決實際問題的編程
4、能力;</p><p> ?。?)培養(yǎng)學生在項目開發(fā)中團隊合作精神、創(chuàng)新意識及實戰(zhàn)能力。</p><p><b> 2.設計任務 </b></p><p> 假設某門課程一學期要考試兩次,其中考試占30%,平時作業(yè)占20%,期末考試占50%(滿分100分)</p><p> 該課程應該具有下列功能:</p&g
5、t;<p> 通過鍵盤輸入學生考試、平時作業(yè)的分數(shù);</p><p> 給定序號,顯示某學生總評成績;</p><p> 給定某班的班號,顯示該班的所有總評成績信息;</p><p> 給定某班學生的學號,修改該學生的信息。</p><p><b> 設計要求與設計報</b></p>
6、<p><b> 要求:</b></p><p> ?。?)為各項操作功能設計一個菜單。應用程序運行后,顯示這個菜單,然后用戶通過菜單單項選擇希望進行的操作項目;</p><p> ?。?)學生信息按學號或姓名查詢或刪除,排序功能按學號或姓名排列。</p><p> ?。?)要求以上功能分別用函數(shù)實現(xiàn)。并要求用C語言的文件操作語句
7、將以上結果保存在XXX。Out。</p><p> ?。?)要求用戶輸入數(shù)據(jù)時,要給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內容、格式及結束方式等。</p><p><b> 小組成員</b></p><p> xxx、xxx、xxx、xxx、xxx</p><p><b> 課程設計時間</b>
8、;</p><p> 2011年5月23號~ 2011年5月30號(第十五周)</p><p> 2011.6.2 于東華理工大學</p><p><b> 目 錄</b></p><p> 設計緒論……………………5</p><p> 總體設計……………………5</p>
9、<p> 詳細設計……………………6</p><p> 調試與測試…………………6</p><p> 源代碼與注釋………………7</p><p> 運行結果截圖………………19</p><p> 總結與體會…………………20</p><p> 參考文獻……………………20</p>
10、<p><b> 一、設計緒論</b></p><p> 1.設計名稱:學生成績管理系統(tǒng)</p><p> 2.設計目的:靈活使用C語言進行程序編寫,鞏固有關語句,指針,結構體,鏈表,文件操作等概念和方法。提高調試程序的技能,提高軟件編寫的能力。</p><p> 3.設計環(huán)境:軟件:Win—TC</p><
11、;p><b> 硬件:PC機</b></p><p><b> 4.設計說明:</b></p><p> 1)程序運行情況:程序的大致情形是:程序由一個主函</p><p> 控制,當程序運行時,主函數(shù)將文件打開,將數(shù)據(jù)導入內存,并關閉文件,接著由用戶選擇相應操作。</p><p>
12、 主函數(shù)中可調用添加,刪除,查找,修改等函數(shù)來執(zhí)行相應的操作。</p><p> 2)程序功能:本程序根據(jù)一般成績管理系統(tǒng)應具備的功能進行設計,具有的功能有:</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ù)進行排序</b></p><p>
14、<b> 對數(shù)據(jù)進行統(tǒng)計</b></p><p> 另外,因時間關系,沒能設計出幫助功能,這是本程序有待擴充、改進的地方之一。</p><p> 3)測試計劃:程序中需輸入的學號最多10位數(shù),輸入完成按回車鍵。輸入姓名拼音時應使拼音連在一起輸入,中間不要留空。輸入姓別時的內容最多4個字符,否則輸出時會出現(xiàn)誤差。成績的輸入均為整形。</p><
15、p> 4)增加的功能:通過參考資料和請教他人我們增加了統(tǒng)計學生信息、自動保存、自動清屏及人性化的提示等功能。</p><p> 5)尚未解決的問題:由于掌握的知識有限,未能實現(xiàn)輸入班號該班學生所有學生信息總評成績、未能設計出設想增加幫助菜單函數(shù)供使用者使用的功能,程序中的輸入學生成 績沒有使用輸入小數(shù)。</p><p> 總體設計流程圖如下:</p><p&
16、gt;<b> 詳細設計</b></p><p> 輸入學生成績信息:其中包括學生的學號、性別、姓名、期中考試成績、平時作業(yè)成績及期末考試成績,可定義通過結構體struct student將學生信息一組一組的輸入,可用函數(shù)Add(l)實現(xiàn)。</p><p> 刪除學生成績信息:可用Del(l)函數(shù)實現(xiàn),通過if語句選擇按學號刪除或姓名刪除。</p>
17、<p> 查找某個學生成績信息:通過函數(shù)Qur(Link l)實現(xiàn)。</p><p> 修改學生信息:通過函數(shù)Modify(Link l)實現(xiàn)。</p><p> 排序學生成績:通過函數(shù)sort(Link l)實現(xiàn)。</p><p> 保存學生信息:通過函數(shù)Save(Link l)實現(xiàn)。</p><p> 顯示(統(tǒng)計)所
18、有學生成績信息:通過函數(shù)Tongji(Link l)實現(xiàn)。</p><p> 幫助(新增):未實現(xiàn)。</p><p> 退出系統(tǒng):可用函數(shù)exit()來實現(xiàn),首先將信息保存到文件中,釋放創(chuàng)建的內存空間,再退出系統(tǒng)。</p><p><b> 測試與測試</b></p><p> 源代碼和本人負責部分注釋</
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) …………………………/*定義輸入(添加)學生記錄的函數(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、斷確認添加*/</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、.):");…/*輸出提示添加學號*/</p><p> scanf("%s",num); …………………………………………………/*接收學號信息*/</p><p> if(strcmp(num,"0")==0)…………………………………/*判斷學號是否輸入正確*/</p><p><b> {&l
45、t;/b></p><p> Continue();</p><p><b> break;</b></p><p><b> }</b></p><p> while(s)…………………………………………………/*判斷輸入學號是否存在*/</p><p>&l
46、t;b> {</b></p><p> if(strcmp(s->data.num,num)==0)………………………/*判斷輸入學號存在*/</p><p><b> {</b></p><p> printf("=====>The number '%s' is in the f
47、ile.(Input '4' to modify !)\n",num);/*提示輸入學號存在*/</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;………………………………………………/*判斷確定添加學生信息*/</p><p><b>
49、; }</b></p><p> p=(Node *)malloc(sizeof(Node));</p><p> strcpy(p->data.num,num);………………………………/*接收輸入的學號*/</p><p> printf("Please input name:");…………………………/*打印提示輸
50、入學生姓名*/</p><p> scanf("%s",p->data.name);………………………………/*接收輸入的學生姓名*/</p><p> printf("Please input sex(boy/girl):");………………/*打印提示輸入學生性別*/</p><p> scanf("%
51、s",p->data.sex);………………………………/*接收輸入的學生姓名*/</p><p> printf("Please input test score:");………………/*打印提示輸入學生期末成績*/</p><p> scanf("%d",&p->data.test);…………………………/*接收輸
52、入的學生期末成績*/</p><p> printf("Please input middle score!:");…………/*打印提示輸入學生期中成績*/</p><p> scanf("%d",&p->data.middle);………………………/*接收輸入的學生期中成績*/</p><p> prin
53、tf("Please input dayly score!:");………/*打印提示輸入學生平時作業(yè)成績*/</p><p> scanf("%d",&p->data.dayly);……………………/*接收輸入的學生平時作業(yè)成績*/</p><p> p->data.total=(p->data.dayly)/5+(p-
54、>data.test)/2+(p->data.middle)*3/10;/*計算總評成績*/</p><p> p->data.average=p->data.total/3;…………………………………/*計算平均成績*/</p><p> p->next=NULL;</p><p> r->next=p;</p>
55、;<p><b> r=p;</b></p><p> shoudsave=1;………………………………………………/*保存輸入的學生信息*/</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");………/*打印按學號或姓名查找*/</p><p> scanf(&
59、quot;%d",&sel);…………………………………………………/*接收輸入的選項*/</p><p> if(sel==1)…………………………………………………/*判斷選項是“1”*/</p><p><b> {</b></p><p> printf("input the number:"
60、);…………………………………/*打印提示輸入學號*/</p><p> scanf("%s",findmess);…………………………………………/*接收輸入的學號*/</p><p> p=Locate(l,findmess,"num");…………………………/*查找要查找的內容的位置*/</p><p> if(p
61、)……………………………………/*判斷輸入的學號對應的信息是否存在*/</p><p><b> {</b></p><p> printf("\t\t\t\tRESULT\n");…………………………………/*打印查找的結果*/</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、/*判斷輸入的學號對應的信息不存在*/</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)………………………………………………/*判斷選項是“1”*/</p><p><b> {</b></p><p> printf("input the name:");……………………………………/*打印提示輸入姓名*/</p>
65、<p> scanf("%s",findmess);…………………………………………/*接收輸入的姓名*/</p><p> p=Locate(l,findmess,"name");………………………/*查找要查找的內容的位置*/</p><p> if(p)……………………………………/*判斷輸入的姓名對應的信息是否存在*/&l
66、t;/p><p><b> {</b></p><p> printf("\t\t\t\tRESULT\n");…………………………………/*打印查找的結果*/</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…………………………………………/*判斷輸入的學號對應的信息不存在*/</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)……………………………………………/*判斷要刪除的內容不存在*/</p><p><b> {</b></p><p> printf("\n=====>Nothing can delete !\n&q
72、uot;);…………/*提示要刪除的內容不存在*/</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)……………………………………………………/*判斷按學號刪除*/</p><p><b> {</b>
74、;</p><p> printf("Please input the number:");…………………………/*打印提示輸入學號*/</p><p> scanf("%s",findmess);…………………………………………/*接收輸入的學號*/</p><p> p=Locate(l,findmess,"
75、;num");……………………………/*查找要刪除信息的位置*/</p><p> if(p)……………………………………………………/*判斷要刪除內容的存在*/</p><p><b> {</b></p><p><b> r=l;</b></p><p> while(r-&
76、gt;next!=p)………………………………………………………/*確認刪除/</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、…………………………/*判斷沒找到要刪除內容*/</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)……………………………………………………/*判斷要刪除內容
81、的存在*/</p><p><b> {</b></p><p><b> r=l;</b></p><p> while(r->next!=p)………………………………………………………/*確認刪除/</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………………………………………………………/*判斷沒找到要刪除內容*/</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> 運行結果截圖</b></p><p><b> 主菜單效果截圖</b></p><p> 輸入(添加)學生信息運行效果截圖</p><p> 刪除學生
141、信息運行效果截圖</p><p><b> 總結與體會</b></p><p> C程序課程設計是在課程結束后通過老師、班干協(xié)調分組分工合作完成一項程序設計來解決實際問題,在課程設計周之前我們小組明確分工并開始構思,按分模塊的思想,一個函數(shù)對應一個功能,然后畫流程圖、些代碼。通過查課本及參考資料和問他人來解決碰到的問題,在課程設計周我們開始輸入代碼、調試、修改;當
142、獨立調試成功后由組長藍遠輝主導各成員討論綜合鏈接,基本完成任務后我們再對程序進行優(yōu)化,添加了一些人性化的判斷和提示并通過參考課外資料加了一些實用的功能.。在這個過程不僅鞏固并升華了所學知識,還培養(yǎng)了我們的團隊合作精神。深深體會在理論用于實踐的重要性和困難,其實我們正是經歷了一個程序軟件開發(fā)的整個過程!</p><p> 我體會到C語言的實質就是以一定的語法規(guī)范為準,通過對數(shù)據(jù)量的復雜結構運算,完成一定功能的程序
143、,是一門計算機基礎語言,我們通過這一學期的學習,對于其特點和算法有了一定程度的了解。這周的課程設計正是讓我們鞏固以前的知識并在此基礎上能夠有所突破。</p><p><b> 八、參考文獻</b></p><p> 教材:C程序設計(第四版)譚浩強 著 清華大學出版社</p><p> C程序設計(第四版)學習輔導譚浩強 著 清華大學出版
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設計---學生成績管理1
- c語言課程設計--學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計----學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)--c語言課程設計
- c語言課程設計--學生成績管理系統(tǒng)
- c語言課程設計--學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
- c語言課程設計-學生成績管理系統(tǒng)
- c語言課程設計———學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)
- c語言課程設計---學生成績管理系統(tǒng)
- c語言課程設計_學生成績管理系統(tǒng)
- c語言課程設計學生成績管理系統(tǒng)設計
評論
0/150
提交評論