c語言課程設(shè)計(jì)-學(xué)生成績管理系統(tǒng)1_第1頁
已閱讀1頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論