程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)記錄薄設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  課程設(shè)計(jì)(大作業(yè))報(bào)告</p><p>  課程名稱:程序設(shè)計(jì)基礎(chǔ) </p><p>  設(shè)計(jì)題目:學(xué)生成績(jī)記錄薄設(shè)計(jì) </p><p>  院 系:信息技術(shù)學(xué)院 </p><p><b>  班 級(jí):</b></p>

2、;<p>  設(shè) 計(jì) 者: </p><p>  學(xué) 號(hào): </p><p>  指導(dǎo)教師: </p><p>  設(shè)計(jì)時(shí)間:2013.7 8.-2013.7.13 </p><p>  課程設(shè)計(jì)(大作業(yè))任務(wù)書<

3、/p><p>  姓 名: 院(系):信息技術(shù)學(xué)院</p><p>  專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù) 學(xué) 號(hào):</p><p>  任務(wù)起止日期:2013.7 .8-2013.7.13 </p><p><b>  課程設(shè)計(jì)題目:</b></p><p>

4、;<b>  學(xué)生成績(jī)記錄薄設(shè)計(jì)</b></p><p><b>  課程設(shè)計(jì)要求:</b></p><p>  通過課程設(shè)計(jì),進(jìn)一步掌握C語(yǔ)言的語(yǔ)法結(jié)構(gòu),基本流程,更加深入和全面理解所學(xué)的基本概念、基本原理和基本方法。</p><p>  獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來,鍛煉學(xué)生的分析解決實(shí)際問題

5、的能力。提高程序編制、程序調(diào)試及綜合應(yīng)用的能力</p><p>  (3)明確課程設(shè)計(jì)的目的,通過布置具有一定難度的,能綜合運(yùn)用所學(xué)知識(shí)的程序設(shè)計(jì)題目。</p><p>  (4)程序設(shè)計(jì)經(jīng)過需求分析,明確程序設(shè)計(jì)題目要求,進(jìn)行合理的設(shè)計(jì),編碼階段編出的程序易讀、易懂并具有良好的交互性,界面清晰。測(cè)試階段應(yīng)指導(dǎo)學(xué)生編寫測(cè)試用例,盡量多地找出程序中的錯(cuò)誤,進(jìn)行調(diào)試。</p>&

6、lt;p><b>  工作計(jì)劃及安排: </b></p><p>  第一天的,兩個(gè)人合作選定題目,建立起程序的構(gòu)思圖形,了解題目意思,確立程序的方向,并且查閱一些資料開始構(gòu)建程序。</p><p>  第二天,兩人商量分工合作,確定誰(shuí)寫那段函數(shù),并且在總體思路的框架下,逐步寫程序,并確保證程序無誤。</p><p>  第三天,將小程序

7、合并,進(jìn)行調(diào)試,對(duì)里面出現(xiàn)的問題協(xié)商合作共同解決。</p><p>  第四天,開始寫實(shí)驗(yàn)報(bào)告,對(duì)每次失敗原因進(jìn)行總結(jié),并且整合兩人思想纂寫報(bào)告。</p><p>  第五天,實(shí)訓(xùn)課也接近尾聲,和班上的同學(xué)交流心得體會(huì)。</p><p>  指導(dǎo)教師簽字 </p><p>  2013年 7 月 8日

8、 </p><p>  課程設(shè)計(jì)(大作業(yè))成績(jī)</p><p>  學(xué)號(hào): 姓名: 指導(dǎo)教師:</p><p><b>  課程設(shè)計(jì)題目: </b></p><p><b>  學(xué)生成績(jī)記錄薄設(shè)計(jì)</b></p><p><b>  總結(jié):</b&

9、gt;</p><p>  通過一周C語(yǔ)言課程設(shè)計(jì),不僅增加了我對(duì)C語(yǔ)言學(xué)習(xí)的興趣,還讓我對(duì)C語(yǔ)言有了更深的了解。在這次的實(shí)訓(xùn)中,我們通過自己動(dòng)手查找資料,并自己設(shè)計(jì)程序,還上機(jī)運(yùn)行驗(yàn)證我們的程序。雖然在上機(jī)調(diào)試過程中,我遇到了很多的困難,(比如:很難理解一些邏輯思維上的東西)但通過自己不斷的重新理解和修正,最終還是成功的完成了程序的設(shè)計(jì)。那種喜悅感難以用言語(yǔ)來表達(dá),這讓我感覺到學(xué)習(xí)也可以是快樂的。在這次設(shè)計(jì)我不

10、單單學(xué)習(xí)到了C語(yǔ)言的知識(shí),也學(xué)到了許多計(jì)算機(jī)應(yīng)用基礎(chǔ)知識(shí),對(duì)計(jì)算機(jī)的機(jī)體也有了一個(gè)大體的了解。有許多知識(shí),光靠老師上課所講的和自己看書得到的,還遠(yuǎn)遠(yuǎn)不夠,C語(yǔ)言主要是通過上機(jī)來熟悉并且運(yùn)用的,這次的實(shí)訓(xùn)課讓我深刻的明白了這一點(diǎn)。所以在以后的學(xué)習(xí)生活中,我要經(jīng)常寫程序并上機(jī)進(jìn)行調(diào)試,不斷從中學(xué)習(xí)新的知識(shí)。還有一點(diǎn)就是:不懂就問。遇到難題實(shí)在解決不了的,問老師同學(xué),和同學(xué)共同討論,有合作精神也是很重要的。希望以后還有更多的實(shí)訓(xùn)機(jī)會(huì),讓我得到

11、鍛煉。</p><p><b>  指導(dǎo)教師評(píng)語(yǔ):</b></p><p><b>  成績(jī):</b></p><p>  填表時(shí)間:指導(dǎo)教師簽名</p><p><b>  學(xué)生成績(jī)記錄薄設(shè)計(jì)</b></p><p>  一、課程設(shè)計(jì)目的

12、與要求</p><p><b>  1.課程設(shè)計(jì)目的</b></p><p> ?。?)綜合運(yùn)用之前所學(xué)知識(shí)(選擇控制,循環(huán)控制,數(shù)組,函數(shù),指針,結(jié)構(gòu)體和文件等)來完成一個(gè)簡(jiǎn)單的信息管理程序的設(shè)計(jì)。</p><p> ?。?)充分體現(xiàn)和體會(huì)函數(shù)在程序設(shè)計(jì)中的必要性和實(shí)用性,并反映主函數(shù)main()在程序設(shè)計(jì)中的實(shí)現(xiàn)思路和方法。</p&g

13、t;<p><b>  2. 課程設(shè)計(jì)要求</b></p><p>  設(shè)計(jì)一個(gè)簡(jiǎn)易學(xué)生成績(jī)記錄簿設(shè)計(jì),其中包括:姓名,學(xué)號(hào),C語(yǔ)言成績(jī);</p><p><b>  具體功能:</b></p><p>  1.系統(tǒng)以菜單方式工作</p><p>  2. 創(chuàng)建學(xué)生成績(jī)信息并以磁盤文件

14、保存;</p><p>  3. 讀取磁盤文件并顯示輸出所有學(xué)生的成績(jī);</p><p><b>  4. 查詢學(xué)生成績(jī)</b></p><p> ?。?)按學(xué)號(hào)查詢成績(jī)</p><p> ?。?)學(xué)號(hào)姓名查詢成績(jī)</p><p><b>  5.添加成績(jī)記錄;</b><

15、;/p><p>  6.修改指定姓名或?qū)W號(hào)的學(xué)生的成績(jī)并可存盤;</p><p>  7.顯示輸出60分以下、60~79、80~89、90分以上各分?jǐn)?shù)段的學(xué)生信息。</p><p><b>  總體設(shè)計(jì)</b></p><p>  根據(jù)系統(tǒng)的要求,系統(tǒng)總體設(shè)計(jì)如圖1所示。</p><p><b&

16、gt;  圖1 系統(tǒng)總體結(jié)構(gòu)</b></p><p><b>  三、詳細(xì)設(shè)計(jì)</b></p><p><b>  1、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p>  #include<stdio.h></p><p>  #include<stdlib.h></

17、p><p>  #include<string.h></p><p>  #include<windows.h></p><p><b>  int n=4;</b></p><p>  struct student</p><p><b>  {</b>

18、</p><p>  int num; /*學(xué)號(hào)*/</p><p>  char name[10]; /*姓名*/</p><p>  float score[3]; /*成績(jī)*/</p><p><b>  }</b></p><p><b>  2.函數(shù)說明<

19、;/b></p><p><b>  1.主函數(shù)</b></p><p>  main()允許用戶通過菜單進(jìn)行功能選擇,使用相應(yīng)的功能代碼來調(diào)用對(duì)應(yīng)的函數(shù)功能。</p><p>  2.其他部分功能函數(shù)包括</p><p>  (1) 將學(xué)生成績(jī)信息保存為文件void save(); </p><

20、;p><b>  算法思想:</b></p><p> ?、俣x指向文件的指針變量;</p><p>  ②輸入保存路徑及文件名,打開文件,若不能打開文件給出提示信息;</p><p> ?、蹖⒋嬗袑W(xué)生成績(jī)信息的結(jié)構(gòu)體數(shù)組信息依次保存到文件中。</p><p>  (2) 學(xué)生成績(jī)信息錄入函數(shù)void input(

21、)</p><p><b>  算法思想:</b></p><p>  ①依次錄入結(jié)構(gòu)體數(shù)組中所包含的各個(gè)成員;</p><p> ?、谥钡捷斎氲慕Y(jié)構(gòu)體成員中信息為4,數(shù)據(jù)輸入結(jié)束;</p><p> ?、鄯祷貙?shí)際錄入的學(xué)生成績(jī)信息數(shù)。</p><p>  (3)從文件中讀出學(xué)生成績(jī)信息void

22、output(); </p><p><b>  算法思想:</b></p><p> ?、俣x指向結(jié)構(gòu)體變量的指針和指向文件的指針;</p><p> ?、谳斎胛募穆窂剑蜷_文件,若不能打開文件給出提示信息;</p><p>  ③將文件中的信息依次讀出,最后結(jié)構(gòu)體的指針為NULL。</p><

23、;p><b>  3.函數(shù)設(shè)計(jì)</b></p><p>  (1)主菜單函數(shù)main()</p><p>  功能:函數(shù)返回值為整數(shù),代表所選的菜單項(xiàng) </p><p>  int main ()</p><p><b>  {</b></p><p>  print

24、f(" ********************************************************* \n");</p><p>  printf(" § §\n");</p><p>  pr

25、intf("§<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

26、; §\n");</p><p>  printf(" § >>歡迎進(jìn)入學(xué)生成績(jī)記錄系統(tǒng)<< §\n");</p><p>  printf(" §>>>>>>>>>>>&

27、gt;>>>>>>>>>>>>>>><<<<<<<<<<<<<<<<<<<<<<<< §\n");</p><p>  printf(" §

28、 §\n");</p><p>  printf("§【1】-------------------------- 創(chuàng)建學(xué)生成績(jī)信息 §\n");</p><p>  printf(&qu

29、ot; § §\n");</p><p>  printf("§【2】-------------------------- 顯示所有學(xué)生成績(jī)信息 §\n");</p><p>  p

30、rintf("§ §\n");</p><p>  printf("§【3】-------------------------- 添加學(xué)生成績(jī)信息 §\n");</p>&

31、lt;p>  printf(" § §\n");</p><p>  printf("§【4】-------------------------- 查詢學(xué)生成績(jī)信息 §\n");&l

32、t;/p><p>  printf(" § §\n");</p><p>  printf("§【5】-------------------------- 修改學(xué)生的信息 §

33、\n");</p><p>  printf(" § §\n");</p><p>  printf("§【6】-------------------------- 按分?jǐn)?shù)段顯示學(xué)生的信息

34、 §\n");</p><p>  printf(" § §\n");</p><p>  printf("§【0】-------------------------- 退出

35、 §\n");</p><p>  printf(" § §\n");</p><p>  printf(" ******************************

36、*************************** \n");</p><p>  printf(" 請(qǐng)輸入相應(yīng)菜單編號(hào): ");</p><p><b>  }</b></p><p><b>  我負(fù)責(zé)編寫的程序</b></p><p><b>

37、;  A.添加學(xué)生信息 </b></p><p>  void Addstudent() </p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  struct student s;</p><p>  

38、fp=fopen("stu.dat","ab"); </p><p>  if((fp=fopen("stu.dat","ab"))==NULL) </p><p>  printf("File open error!\n"); </p><p><b> 

39、 else </b></p><p><b>  {</b></p><p>  printf("請(qǐng)輸入所增加學(xué)生的 學(xué)號(hào) 姓名 c語(yǔ)言成績(jī):\n");</p><p>  scanf("%d",&s.num ); </p><p>  scanf(&quo

40、t;%s",s.name);</p><p>  scanf("%f",&s.score[0]);</p><p>  fwrite (&s,sizeof(struct student),1,fp);</p><p>  fclose(fp);/*關(guān)閉文件*/</p><p><b> 

41、 }</b></p><p>  printf("寫入成功!\n"); </p><p>  }//end function Addstudent;</p><p><b>  B.修改學(xué)生成績(jī)</b></p><p>  void modify() </p><p&g

42、t;<b>  {</b></p><p>  int number,i;</p><p>  printf("請(qǐng)輸入要修改信息的學(xué)生學(xué)號(hào):"); </p><p>  scanf("%d",&number); </p><p>  for(i=0;i<n;i++)&

43、lt;/p><p>  if(number==stud[i].num) </p><p>  break;/*查找判斷*/ </p><p>  if(i<n)/*查找判斷*/ </p><p><b>  {</b></p><p>  printf("請(qǐng)輸入修改后的學(xué)生的信息:&q

44、uot;);</p><p>  printf("\n請(qǐng)輸入學(xué)生的c語(yǔ)言成績(jī):"); </p><p>  scanf("%f",&stud[i].score[0]); </p><p><b>  save();</b></p><p><b>  } <

45、/b></p><p><b>  else </b></p><p>  printf("沒找到該學(xué)生的信息\n"); </p><p>  system("paues");system("cls");</p><p><b>  }</

46、b></p><p><b>  C.查詢學(xué)生成績(jī)</b></p><p>  void namecheck(void);</p><p>  void scorecheck(void);</p><p>  void searchmenu()</p><p>  {printf(&quo

47、t; ***** 歡迎進(jìn)入學(xué)生成績(jī)查詢系統(tǒng) ****** \n");</p><p>  printf("* 1------------------按姓名查詢成績(jī) * \n");</p><p>  printf("* 2-----------------按學(xué)號(hào)查詢成績(jī) * \n");</p><p&g

48、t;  printf("* 3-----------------返回上一層 * \n");</p><p>  printf("* 4------------------退出 * \n");</p><p>  printf(" ************************************

49、* \n");</p><p>  printf(" 請(qǐng)輸入相應(yīng)菜單編號(hào): ");</p><p><b>  int m;</b></p><p>  scanf("%d",&m);</p><p>  switch(m)</p>&l

50、t;p><b>  {</b></p><p>  case 1: namecheck();</p><p>  printf("\n");</p><p>  system("PAUSE");</p><p>  system("CLS");<

51、;/p><p><b>  break;</b></p><p>  case 2: scorecheck();</p><p>  printf("\n");</p><p>  system("PAUSE");</p><p>  system(&qu

52、ot;CLS");</p><p><b>  break;</b></p><p>  case 3: main();break;</p><p>  case 4: exit(0); break;</p><p><b>  }</b></p><

53、p><b>  }</b></p><p>  void namecheck()</p><p><b>  { </b></p><p>  char name[10];</p><p>  printf("按照姓名查詢請(qǐng)按\n");</p><p&g

54、t;  printf("\n請(qǐng)輸入姓名:");</p><p>  scanf("%s",&name);</p><p>  printf("查詢結(jié)果\n");</p><p>  printf("學(xué)號(hào) 姓名 c語(yǔ)言成績(jī)\n");</p><p>

55、  if(strcpy(stud[i].name,name))</p><p><b>  { </b></p><p>  printf("%d %s %.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);</p><p><b>  }</b

56、></p><p><b>  }</b></p><p>  void scorecheck()</p><p><b>  { </b></p><p><b>  int b;</b></p><p>  printf("按照學(xué)號(hào)查

57、詢請(qǐng)按\n");</p><p><b>  {</b></p><p>  printf("\n請(qǐng)輸入學(xué)號(hào):");</p><p>  scanf("%d",&b);</p><p>  printf("查詢結(jié)果\n");</p>

58、;<p>  printf("學(xué)號(hào) 姓名 c語(yǔ)言成績(jī)\n");</p><p>  for(i=0;i<n;i++)</p><p>  if(stud[i].num ==b)</p><p><b>  { </b></p><p>  printf("%d

59、 %s %.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  四、程

60、序清單和執(zhí)行結(jié)果</p><p><b>  1.頭文件</b></p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<string.h></p><p>  #i

61、nclude<windows.h></p><p><b>  int n=4;</b></p><p>  struct student</p><p><b>  {</b></p><p>  int num; /*學(xué)號(hào)*/</p><p> 

62、 char name[10]; /*姓名*/</p><p>  float score[3]; /*成績(jī)*/</p><p>  /******以下是函數(shù)原型*******/ </p><p>  void save(void); </p><p>  void input(void); </p&g

63、t;<p>  void output(void); </p><p>  void modify(); /*修改信息*/</p><p>  void searchmenu(void); /*查詢信息*/</p><p>  void namecheck(void); /*按姓名查詢*/</p>

64、<p>  void scorecheck(void); /*按學(xué)號(hào)查詢*/</p><p>  void Addstudent(); /*添加信息*/</p><p>  void sclsearch(); /*成績(jī)按分?jǐn)?shù)段顯示*/</p><p>  函數(shù)源程序代碼與運(yùn)行結(jié)果</p><p>  

65、[1]函數(shù)源程序代碼</p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<string.h></p><p>  #include<windows.h></p><p>&

66、lt;b>  int n=4;</b></p><p>  struct student</p><p><b>  {</b></p><p><b>  int num;</b></p><p>  char name[10];</p><p>  fl

67、oat score[3];</p><p>  }stud[100];</p><p>  int i,choose,a,t=0;</p><p>  long int num;</p><p>  int main ()</p><p><b>  { </b></p><p

68、>  void save(void);</p><p>  void input(void);</p><p>  void output(void);</p><p>  void modify();</p><p>  void searchmenu(void);</p><p>  void Addstud

69、ent();</p><p>  void sclsearch();</p><p><b>  while(1)</b></p><p><b>  {</b></p><p>  printf(" ******************************************

70、*************** \n");</p><p>  printf(" § §\n");</p><p>  printf(" §<<<<<<<<<

71、<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>§\n");</p><

72、p>  printf(" § >>歡迎進(jìn)入學(xué)生成績(jī)記錄系統(tǒng)<< §\n");</p><p>  printf(" §>>>>>>>>>>>>>>>>>>>&g

73、t;>>>>>>><<<<<<<<<<<<<<<<<<<<<<<<<<< §\n");</p><p>  printf(" §

74、 §\n");</p><p>  printf(" §【1】-------------------------- 創(chuàng)建學(xué)生成績(jī)信息 §\n");</p><p>  printf(" §

75、 §\n");</p><p>  printf(" §【2】-------------------------- 顯示所有學(xué)生成績(jī)信息 §\n");</p><p>  printf(" §

76、 §\n");</p><p>  printf(" §【3】-------------------------- 添加學(xué)生成績(jī)信息 §\n");</p><p>  printf(" §

77、 §\n");</p><p>  printf(" §【4】-------------------------- 查詢學(xué)生成績(jī)信息 §\n");</p><p>  printf(" §

78、 §\n");</p><p>  printf(" §【5】-------------------------- 修改學(xué)生的信息 §\n");</p><p>  printf(" §

79、 §\n");</p><p>  printf(" §【6】-------------------------- 按分?jǐn)?shù)段顯示學(xué)生的信息 §\n");</p><p>  printf(" §

80、 §\n");</p><p>  printf(" §【0】-------------------------- 退出 §\n");</p><p>  printf(" §

81、 §\n");</p><p>  printf(" ********************************************************* \n");</p><p>  printf(" 請(qǐng)輸入相應(yīng)菜單編號(hào): ");&l

82、t;/p><p>  scanf("%d",&a);</p><p><b>  switch(a)</b></p><p><b>  {</b></p><p><b>  case 1:</b></p><p><b&

83、gt;  input(); </b></p><p><b>  save();</b></p><p><b>  break;</b></p><p><b>  case 2:</b></p><p><b>  output();</b>

84、;</p><p>  printf("\n");</p><p>  system("PAUSE");</p><p>  system("CLS");</p><p><b>  break; </b></p><p><b&g

85、t;  case 3:</b></p><p>  Addstudent();</p><p>  printf("\n");</p><p>  system("PAUSE");</p><p>  system("CLS");</p><p>

86、<b>  break;</b></p><p><b>  case 4:</b></p><p>  searchmenu();</p><p>  printf("\n");</p><p>  system("PAUSE");</p>&

87、lt;p>  system("CLS");</p><p><b>  break;</b></p><p><b>  case 5:</b></p><p><b>  modify();</b></p><p>  printf("\n

88、");</p><p>  system("PAUSE");</p><p>  system("CLS");</p><p><b>  break;</b></p><p><b>  case 6:</b></p><p&g

89、t;  sclsearch();</p><p>  printf("\n");</p><p>  system("PAUSE");</p><p>  system("CLS");</p><p><b>  break;</b></p>&l

90、t;p>  case 0:exit(0);</p><p>  default: ;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b

91、>  }</b></p><p>  void save()</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p>  if ((fp=fopen("stu.dat","wb"))==

92、NULL)/*以只寫的方式打開文件*/</p><p><b>  {</b></p><p>  printf("無法打開文件!\n");</p><p><b>  return ;</b></p><p><b>  }</b></p>

93、<p>  for(i=0;i<n;i++)</p><p>  if (fwrite (&stud[i],sizeof(struct student),1,fp)!=1)/*寫入字節(jié)為1的信息在文件中*/</p><p>  printf("文件寫入錯(cuò)誤!\n");</p><p>  fclose(fp);/*關(guān)閉文件

94、*/</p><p><b>  }</b></p><p>  void input()//錄入學(xué)生成績(jī)</p><p><b>  {</b></p><p><b>  int i;</b></p><p><b>  char a;&l

95、t;/b></p><p>  for(i=0;i<n;i++) </p><p><b>  {</b></p><p>  printf("\n 請(qǐng)輸入學(xué)生成績(jī)信息:\n");</p><p>  printf("\n請(qǐng)依次輸入 學(xué)號(hào)、姓名、c

96、語(yǔ)言成績(jī):\n");</p><p>  scanf("%d%s%f",&stud[i].num,stud[i].name,&stud[i].score[0]);</p><p>  printf("輸入:y(繼續(xù)),n(終止)!\n");</p><p>  fflush(stdin);</p

97、><p>  scanf("%c",&a);</p><p>  if(a=='n' || a=='N')</p><p><b>  break;</b></p><p><b>  }</b></p><p><

98、;b>  n=i+1;</b></p><p><b>  }</b></p><p>  void Addstudent() </p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p&

99、gt;  struct student s;</p><p>  fp=fopen("stu.dat","ab"); </p><p>  if((fp=fopen("stu.dat","ab"))==NULL) </p><p>  printf("File open err

100、or!\n"); </p><p><b>  else </b></p><p><b>  {</b></p><p>  printf("請(qǐng)輸入所增加學(xué)生的 學(xué)號(hào) 姓名 c語(yǔ)言成績(jī):\n");</p><p>  scanf("%d",&a

101、mp;s.num ); </p><p>  scanf("%s",s.name);</p><p>  scanf("%f",&s.score[0]);</p><p>  fwrite (&s,sizeof(struct student),1,fp);</p><p>  fclos

102、e(fp);/*關(guān)閉文件*/</p><p><b>  }</b></p><p>  printf("寫入成功!\n"); </p><p>  }//end function Addstudent;</p><p>  void output()</p><p><

103、b>  {</b></p><p><b>  int i;</b></p><p>  //float s;</p><p><b>  FILE *fp;</b></p><p>  if((fp=fopen("stu.dat","rb"

104、))==NULL)</p><p><b>  {</b></p><p>  printf("cannot open file\n");</p><p><b>  exit(0);</b></p><p><b>  }</b></p>&

105、lt;p>  printf("\n學(xué)號(hào) 姓名 c語(yǔ)言成績(jī)\n");</p><p>  for(i=0;fread(&stud[i],sizeof(struct student),1,fp)==1;i++)</p><p><b>  {</b></p><p>  printf(&qu

106、ot;%d %10s % 10.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);</p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  n=i;</b></p><p>

107、<b>  }</b></p><p>  void modify() </p><p><b>  {</b></p><p>  int number,i;</p><p>  printf("請(qǐng)輸入要修改信息的學(xué)生學(xué)號(hào):"); </p><p>  

108、scanf("%d",&number); </p><p>  for(i=0;i<n;i++)</p><p>  if(number==stud[i].num) </p><p>  break;/*查找判斷*/ </p><p>  if(i<n)/*查找判斷*/ </p><

109、p><b>  {</b></p><p>  printf("請(qǐng)輸入修改后的學(xué)生的信息:");</p><p>  printf("\n請(qǐng)輸入學(xué)生的c語(yǔ)言成績(jī):"); </p><p>  scanf("%f",&stud[i].score[0]); </p>

110、;<p><b>  save();</b></p><p><b>  } </b></p><p><b>  else </b></p><p>  printf("沒找到該學(xué)生的信息\n"); </p><p>  system(&qu

111、ot;paues");system("cls");</p><p><b>  }</b></p><p>  void namecheck(void);</p><p>  void scorecheck(void);</p><p>  void searchmenu()</p&g

112、t;<p>  {printf(" ***** 歡迎進(jìn)入學(xué)生成績(jī)查詢系統(tǒng) ****** \n");</p><p>  printf("* 1------------------按姓名查詢成績(jī) * \n");</p><p>  printf("* 2-----------------按學(xué)號(hào)查詢成績(jī) * \n&

113、quot;);</p><p>  printf("* 3-----------------返回上一層 * \n");</p><p>  printf("* 4------------------退出 * \n");</p><p>  printf(" ********

114、***************************** \n");</p><p>  printf(" 請(qǐng)輸入相應(yīng)菜單編號(hào): ");</p><p><b>  int m;</b></p><p>  scanf("%d",&m);</p><p&g

115、t;  switch(m)</p><p><b>  {</b></p><p>  case 1: namecheck();</p><p>  printf("\n");</p><p>  system("PAUSE");</p><p> 

116、 system("CLS");</p><p><b>  break;</b></p><p>  case 2: scorecheck();</p><p>  printf("\n");</p><p>  system("PAUSE");</

117、p><p>  system("CLS");</p><p><b>  break;</b></p><p>  case 3: main();break;</p><p>  case 4: exit(0); break;</p><p><b> 

118、 }</b></p><p><b>  }</b></p><p>  void namecheck()</p><p><b>  { </b></p><p>  char name[10];</p><p>  printf("按照姓名查詢請(qǐng)按\

119、n");</p><p>  printf("\n請(qǐng)輸入姓名:");</p><p>  scanf("%s",&name);</p><p>  printf("查詢結(jié)果\n");</p><p>  printf("學(xué)號(hào) 姓名 c語(yǔ)言成績(jī)\n&

120、quot;);</p><p>  if(strcpy(stud[i].name,name))</p><p><b>  { </b></p><p>  printf("%d %s %.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);</p>

121、<p><b>  }</b></p><p><b>  }</b></p><p>  void scorecheck()</p><p><b>  { </b></p><p><b>  int b;</b></p>&

122、lt;p>  printf("按照學(xué)號(hào)查詢請(qǐng)按\n");</p><p><b>  {</b></p><p>  printf("\n請(qǐng)輸入學(xué)號(hào):");</p><p>  scanf("%d",&b);</p><p>  printf(&

123、quot;查詢結(jié)果\n");</p><p>  printf("學(xué)號(hào) 姓名 c語(yǔ)言成績(jī)\n");</p><p>  for(i=0;i<n;i++)</p><p>  if(stud[i].num ==b)</p><p><b>  { </b></p>&

124、lt;p>  printf("%d %s %.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b&g

125、t;</p><p>  void sclsearch()</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  printf("90分以上:\n");</p><p>  printf("

126、學(xué)號(hào) 姓名 c語(yǔ)言成績(jī)\n");</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  if(stud[i].score[0]>=90)</p><p>  printf("%d %s %.2f\n&quo

127、t;,stud[i].num,stud[i].name,stud[i].score[0]);</p><p><b>  }</b></p><p>  printf("80~89:\n");</p><p>  printf("學(xué)號(hào) 姓名 c語(yǔ)言成績(jī)\n");</p><p&

128、gt;  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  if(stud[i].score[0]>=80&&stud[i].score[0]<90)</p><p>  printf("%d %s %.2f\n",stud[i].

129、num,stud[i].name,stud[i].score[0]);</p><p><b>  }</b></p><p>  printf("70~79:\n");</p><p>  printf("學(xué)號(hào) 姓名 c語(yǔ)言成績(jī)\n");</p><p>  for(i=

130、0;i<n;i++)</p><p><b>  {</b></p><p>  if(stud[i].score[0]>=70&&stud[i].score[0]<80)</p><p>  printf("%d %s %.2f\n",stud[i].num,stud[i]

131、.name,stud[i].score[0]);</p><p><b>  }</b></p><p>  printf("60~69:\n");</p><p>  printf("學(xué)號(hào) 姓名 c語(yǔ)言成績(jī)\n");</p><p>  for(i=0;i<n;i+

132、+)</p><p><b>  {</b></p><p>  if(stud[i].score[0]>=60&&stud[i].score[0]<70)</p><p>  printf("%d %s %.2f\n",stud[i].num,stud[i].name,stud[

133、i].score[0]);</p><p><b>  }</b></p><p>  printf("60分以下:\n");</p><p>  printf("學(xué)號(hào) 姓名 c語(yǔ)言成績(jī)\n");</p><p>  for(i=0;i<n;i++)</p>

134、;<p><b>  {</b></p><p>  if(stud[i].score[0]<60)</p><p>  printf("%d %s %.2f\n",stud[i].num,stud[i].name,stud[i].score[0]);</p><p><b> 

135、 }</b></p><p><b>  }</b></p><p>  (1)系統(tǒng)以菜單方式工作</p><p><b> ?。?)學(xué)生成績(jī)錄入</b></p><p>  (3)顯示所有學(xué)生成績(jī)</p><p><b>  (4)查詢學(xué)生成績(jī)<

136、/b></p><p><b>  按姓名查詢</b></p><p><b>  按學(xué)號(hào)查詢</b></p><p><b>  (5)修改學(xué)生成績(jī)</b></p><p>  (6)按分?jǐn)?shù)段顯示學(xué)生成績(jī)</p><p><b>  五

137、、調(diào)試與測(cè)試</b></p><p>  我在調(diào)試我編寫的程序當(dāng)中出現(xiàn)了很多問題,比如,按姓名查詢學(xué)生成績(jī)中if(strcpy(stud[i].name,name)),開始我寫成了stud[i].name=name,怎么改都有錯(cuò)誤,無奈之下請(qǐng)教了同學(xué),最后在同學(xué)的幫助下改對(duì)了,原來這需要使用strcpy函數(shù)才能實(shí)現(xiàn)??梢哉f出的問題還是蠻多的。好不容易改對(duì)了一個(gè),有出現(xiàn)了新的錯(cuò)誤,就是輸入姓名后,所有學(xué)

138、生的成績(jī)都顯示了,還把其他學(xué)生的姓名改成了我輸入的那個(gè),最后人真的檢查了一遍才發(fā)現(xiàn)多謝了一條語(yǔ)句for(i=0;i<n;i++)。這些問題還是給我留下了很深的映象,也提醒了我基礎(chǔ)知識(shí)不踏實(shí)的警鐘,所以期末考試之前我一定要好好復(fù)習(xí)了!</p><p><b>  結(jié)語(yǔ)</b></p><p>  通過一周C語(yǔ)言課程設(shè)計(jì),不僅使我們更加牢固地掌握了程序設(shè)計(jì)的知識(shí),也

139、讓自己深刻的認(rèn)識(shí)到自己的不足與缺點(diǎn),有許多知識(shí)都存在不是完全了解及掌握,這一系列的問題通過自己上機(jī)操作已經(jīng)減少了很多。這我明白光靠書本上學(xué)習(xí)的和老師講的是不夠,有許多知識(shí)是需要我們?nèi)?shí)踐才能學(xué)到的(比如:在調(diào)試的過程中我發(fā)現(xiàn)自己在編程這方面的缺點(diǎn)與不足)這不斷完善了自己,也不斷豐富了自己對(duì)于C語(yǔ)言的了解和掌握。而且這讓自己明白和體會(huì)到了C語(yǔ)言其實(shí)具有語(yǔ)句簡(jiǎn)潔,使用靈活,執(zhí)行效率高等特點(diǎn)。與此同時(shí),還讓我明白了不懂就問的重要性。現(xiàn)在的我們

140、總是太過于要面子,羞于問別人,總覺得這個(gè)問題會(huì)不會(huì)太白癡了,別人會(huì)不會(huì)嘲笑我。其實(shí)這些只是我們自己想太多了而已,老師和同學(xué)都很熱情的,他們都很樂意教我們的。有團(tuán)隊(duì)合作的精神也非常的重要,有些問題光靠自己力量做太過于單薄,團(tuán)隊(duì)合作顯得尤為重要。在這次合作中,我從同伴身上學(xué)到了很多自己身上缺少的優(yōu)點(diǎn),比如細(xì)心,我做事有些太過于粗心,總是在一些小的地方不夠認(rèn)真,使程序出現(xiàn)了許多的小錯(cuò)誤,幸好在同伴的幫助順利的解決了這些問題。</p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論