c語(yǔ)言課程設(shè)計(jì)-學(xué)生信息管理系統(tǒng)設(shè)計(jì)報(bào)告_第1頁(yè)
已閱讀1頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  C語(yǔ)言課程設(shè)計(jì)</b></p><p>  題 目:學(xué)生成績(jī)管理系統(tǒng)</p><p>  完成時(shí)間:2010年6月24號(hào)</p><p><b>  一、設(shè)計(jì)目的</b></p><p>  1、通過(guò)課程設(shè)計(jì)全面掌握《C語(yǔ)言程序設(shè)計(jì)》關(guān)鍵知識(shí)點(diǎn),掌握C語(yǔ)言中數(shù)組、

2、指針、結(jié)構(gòu)體、文件等方面的基本知識(shí)。</p><p>  2、通過(guò)課程設(shè)計(jì)了解并掌握C語(yǔ)言程序設(shè)計(jì)的方法,熟悉C程序設(shè)計(jì)的開(kāi)發(fā)環(huán)境及C程序的調(diào)試過(guò)程。</p><p>  3、培養(yǎng)學(xué)生查閱參考資料、手冊(cè)的自學(xué)能力,通過(guò)獨(dú)立思考深入鉆研有關(guān)問(wèn)題,學(xué)會(huì)自己分析、解決問(wèn)題的方法。</p><p><b>  二、設(shè)計(jì)內(nèi)容</b></p>

3、<p>  設(shè)計(jì)一個(gè)學(xué)生成績(jī)管理系統(tǒng),對(duì)上學(xué)期的本班的學(xué)習(xí)成績(jī)進(jìn)行管理,具有查詢(xún)和檢索功能,并且能夠?qū)χ付ㄎ募僮?,也可將多個(gè)文件組成一個(gè)文件。</p><p><b>  主要功能:</b></p><p><b>  1、鍵入學(xué)生信息</b></p><p><b>  2、查看錄入的信息<

4、/b></p><p><b>  3、按姓名查看信息</b></p><p><b>  4、按學(xué)號(hào)查看信息</b></p><p><b>  5、按平均成績(jī)排序</b></p><p><b>  6、刪除信息</b></p>&

5、lt;p><b>  7、保存信息</b></p><p><b>  8、讀取文件</b></p><p><b>  9、我的個(gè)人信息</b></p><p><b>  0、退出</b></p><p><b>  三、系統(tǒng)流程圖&l

6、t;/b></p><p><b>  (見(jiàn)下一頁(yè))</b></p><p>  四、函數(shù)主要功能說(shuō)明:</p><p>  1、輸入學(xué)生的信息函數(shù)功能:type函數(shù)通過(guò)循環(huán)向結(jié)構(gòu)體中輸入學(xué)生的學(xué)號(hào)、姓名、性別、英語(yǔ)成、數(shù)學(xué)成績(jī)、語(yǔ)文成績(jī)。</p><p><b>  Type函數(shù)流程圖</b>

7、;</p><p>  2、查看輸入的信息功能:通過(guò)look函數(shù)以一個(gè)循環(huán)的形式輸出所要查看的信息。</p><p>  3、查詢(xún)功能:通查詢(xún)信息,過(guò)search_name函數(shù)和search_number函數(shù)來(lái)進(jìn)行比較查找,找到后輸出該學(xué)生信息</p><p><b>  查找函數(shù)的流程圖</b></p><p>  4

8、、排序功能:對(duì)數(shù)據(jù)進(jìn)行排序,通過(guò)order函數(shù)對(duì)數(shù)據(jù)按平均分進(jìn)行排序,排序結(jié)束后調(diào)用save函數(shù)保存。</p><p>  5、刪除功能:刪除信息,通過(guò)del函數(shù)實(shí)現(xiàn),刪除后調(diào)用save函數(shù)對(duì)數(shù)據(jù)保存。</p><p>  6、保存功能:對(duì)數(shù)據(jù)進(jìn)行保存,用save函數(shù)向文件中寫(xiě)入數(shù)據(jù)實(shí)現(xiàn)該功能。</p><p><b>  7、退出程序</b>

9、</p><p>  五、調(diào)試方法以及測(cè)試過(guò)程中的問(wèn)題及解決方法</p><p>  調(diào)試方法:逐條的對(duì)程序中的錯(cuò)誤進(jìn)行修改;修改程序中的變量、聲明新函數(shù)以及聲明頭文件對(duì)函數(shù)進(jìn)行調(diào)試。</p><p>  測(cè)試過(guò)程中遇到的問(wèn)題:</p><p>  1、刪除學(xué)生信息功能不能實(shí)現(xiàn)。</p><p>  問(wèn)題描述:在選擇刪

10、除功能后不能把選擇的學(xué)生信息刪除,而總是刪除其他學(xué)生的信息。</p><p>  解決辦法:出現(xiàn)這個(gè)問(wèn)題肯定是數(shù)據(jù)覆蓋的時(shí)候出現(xiàn)了錯(cuò)誤,也就是循環(huán)出現(xiàn)了錯(cuò)誤。檢查循環(huán)程序后發(fā)現(xiàn),循環(huán)體內(nèi)數(shù)據(jù)交換出現(xiàn)了錯(cuò)誤,沒(méi)有定義結(jié)構(gòu)體變量。重新定義結(jié)構(gòu)體變量后問(wèn)題解決了。</p><p>  2、顯示結(jié)果時(shí)候出錯(cuò)</p><p>  問(wèn)題描述:每一個(gè)功能在現(xiàn)實(shí)結(jié)果現(xiàn)實(shí)的信息部完整

11、,部分信息部能現(xiàn)實(shí)或被覆蓋。</p><p>  解決辦法:現(xiàn)實(shí)出錯(cuò)也就是printf語(yǔ)句中的結(jié)構(gòu)沒(méi)有排列好所導(dǎo)致的。檢查所有的Printf語(yǔ)句后發(fā)現(xiàn)所有的printf語(yǔ)句中少輸出了以個(gè)語(yǔ)文成績(jī),且它們不能完全對(duì)齊。在增加了“語(yǔ)文”,修改了轉(zhuǎn)義字符以及空格后,問(wèn)題解決了。</p><p>  3、在查詢(xún)信息的時(shí)候出錯(cuò)</p><p>  問(wèn)題描述:在輸入不在文件中保

12、存的姓名、學(xué)號(hào)時(shí),沒(méi)有信息提示。</p><p>  解決辦法:出現(xiàn)此問(wèn)題說(shuō)明if語(yǔ)句后少了一條else語(yǔ)句,加上該語(yǔ)句后,顯示的結(jié)果正確了。</p><p><b>  4、打開(kāi)文件出錯(cuò)</b></p><p>  問(wèn)題描述:當(dāng)顯示保存成功后關(guān)閉程序。重新打開(kāi)程序選擇打開(kāi)文件后,文件不能正常打開(kāi),或打開(kāi)文件后沒(méi)有顯示結(jié)果。</p>

13、<p>  解決辦法:查看文件文件中有數(shù)據(jù),說(shuō)明文件在保存的是后沒(méi)有出錯(cuò)。再仔細(xì)觀察運(yùn)行結(jié)果后,發(fā)現(xiàn)該函數(shù)在執(zhí)行到循環(huán)輸出的時(shí)候把該循環(huán)跳了過(guò)去沒(méi)有執(zhí)行。出現(xiàn)此問(wèn)題是因?yàn)檠h(huán)的終止條件改變了。將openl函數(shù)該為有返回值函數(shù)之后,重新定義了一個(gè)see函數(shù)來(lái)調(diào)用openl函數(shù),并在see函數(shù)中用循環(huán)輸出已經(jīng)打開(kāi)的文件中的數(shù)據(jù)。重新定義一個(gè)函數(shù)后保存的文件可以成功的打開(kāi)。</p><p>  5、在排序

14、后沒(méi)有保存文件</p><p>  解決辦法:在order函數(shù)后邊加上了</p><p>  printf("是否保存?(y or n)");</p><p>  getchar();</p><p>  scanf("%c",&a);</p><p>  if(a==&

15、#39;y') </p><p><b>  save();</b></p><p><b>  else</b></p><p>  printf("退出");語(yǔ)句后可以選擇是否保存排序后的文件。</p><p><b>  六、設(shè)計(jì)心得</b>

16、</p><p>  通過(guò)一個(gè)星期的課程設(shè)計(jì),我更深刻的了解了C語(yǔ)言中每個(gè)函數(shù)的含義,領(lǐng)會(huì)了算法是C語(yǔ)言的靈魂這句話的真諦。一個(gè)好的算法可以使程序簡(jiǎn)潔,運(yùn)行速度更快。同時(shí)也對(duì)C語(yǔ)言中的循環(huán),函數(shù)的調(diào)用有了更深的理解。</p><p>  雖然這次的課程設(shè)計(jì),老師已經(jīng)給出了程序讓我們改錯(cuò)??雌饋?lái)比較容易,但是要讓程序?qū)崿F(xiàn)要求的幾個(gè)功能卻不是很容易。而且要看懂每一個(gè)函數(shù)也不是十分的容易。在修改

17、程序的過(guò)程中也收獲了很多以前忽略的東西。在修改的過(guò)程中鞏固了基礎(chǔ),認(rèn)識(shí)了自已以前常犯得錯(cuò)誤,也發(fā)現(xiàn)了自己的不足之處。</p><p>  在程序編寫(xiě)中,我認(rèn)識(shí)編寫(xiě)一個(gè)系統(tǒng)不僅僅要有良好的用戶(hù)界面,良好的程序編寫(xiě)風(fēng)格也是相當(dāng)重要的。只有良好的種程序編寫(xiě)風(fēng)格,程序代碼的可讀性才會(huì)好,開(kāi)發(fā)的復(fù)雜度才能大大減少,檢查錯(cuò)誤、修改代碼時(shí)才會(huì)更加容易下手。</p><p>  通過(guò)實(shí)際操作,學(xué)會(huì) C語(yǔ)言

18、程序編程的基本步驟、基本方法,開(kāi)發(fā)了自己的邏輯思維能力,培養(yǎng)了分析問(wèn)題、解決問(wèn)題的能力。深刻體會(huì)到了團(tuán)隊(duì)協(xié)作的重要性。</p><p><b>  七、程序代碼</b></p><p>  #include"stdio.h"</p><p>  #include"conio.h"</p>&

19、lt;p>  #include"string.h"</p><p>  #include"stdlib.h"</p><p>  void look(); /*聲明查看函數(shù)*/</p><p>  void save(); /*聲明保存函數(shù)*/</p><p>  void search_

20、name(); /*聲明按姓名查看函數(shù)*/</p><p>  void search_number(); /*聲明按學(xué)號(hào)查看函數(shù)*/</p><p>  void order(); /*聲明排序函數(shù)*/</p><p>  void del(); /*聲明刪除函數(shù)*/</p><p>  int openl(); /*聲明

21、打開(kāi)函數(shù)*/</p><p>  void welcome(); /*聲明我的個(gè)人信息函數(shù)*/</p><p>  void type(); /*聲明輸入函數(shù)*/</p><p>  void see(); /*聲明打開(kāi)并查看文件函數(shù)*/</p><p>  struct student /*定義學(xué)生信息的結(jié)構(gòu)體類(lèi)型*/

22、</p><p><b>  {</b></p><p>  char num[15]; /*學(xué)號(hào)*/</p><p>  char name[20]; /*姓名*/</p><p>  char sex[4]; /*性別*/</p><p>  int english; /*英語(yǔ)成績(jī)

23、*/</p><p>  int math; /*數(shù)學(xué)成績(jī)*/</p><p>  int chinese; /*語(yǔ)文成績(jī)*/</p><p>  float aver; /*平均成績(jī)*/</p><p>  float sum; /*總成績(jī)*/</p><p>  }stu[100];&l

24、t;/p><p>  int n; /*聲明一個(gè)全局變量*/</p><p>  void main() /*主函數(shù)即用戶(hù)的操作界面*/</p><p><b>  { </b></p><p>  system("color 1E"); /*設(shè)計(jì)文本顏色*

25、/</p><p>  int b,flag=0; /*聲明局部變量*/</p><p>  while(1) /*循環(huán)輸出以下信息*/</p><p><b>  {</b></p><p>  printf("\n\t\t\t歡迎來(lái)到學(xué)生成績(jī)管理系統(tǒng)!

26、\n");</p><p>  printf("\n\t\t\t\t 郗綠陽(yáng)制作\n");</p><p>  printf("\t\t\t-------------------------------\n");</p><p>  printf("\t\t\t1.鍵入學(xué)生的信息\n\n");

27、 /*鍵入學(xué)生的信息*/</p><p>  printf("\t\t\t2.查看錄入的學(xué)生信息\n\n"); /*查看錄入的學(xué)生信息*/</p><p>  printf("\t\t\t3.按姓名查看學(xué)生的信息\n\n"); /*按姓名查看學(xué)生的信息*/</p><p>  printf("\t\t\t4.

28、按學(xué)號(hào)查看學(xué)生的信息\n\n"); /*按學(xué)號(hào)查看學(xué)生的信息*/</p><p>  printf("\t\t\t5.按平均成績(jī)排序\n\n"); /*排序*/</p><p>  printf("\t\t\t6.刪除學(xué)生信息\n\n"); /*刪除學(xué)生信息*/</p><p>  printf("\

29、t\t\t7.保存學(xué)生信息\n\n"); /*保存*/</p><p>  printf("\t\t\t8.打開(kāi)文件\n\n"); /*打開(kāi)文件*/</p><p>  printf("\t\t\t9.我的個(gè)人信息\n\n"); /*我的個(gè)人信息*/</p><p>  printf("\t\t\t

30、0.退出\n\n"); /*退出*/</p><p>  printf("\t\t\t請(qǐng)輸入你的選擇:");</p><p>  scanf("%d",&b);</p><p><b>  switch(b)</b></p><p><b>  {&l

31、t;/b></p><p>  case 1:type();break; /*調(diào)用鍵入學(xué)生信息函數(shù)*/</p><p>  case 2:look();break; /*調(diào)用查看函數(shù)*/</p><p>  case 3:search_name();break; /*調(diào)用姓名查看函數(shù)*/</p><p>  case 4:search

32、_number();break; /*調(diào)用學(xué)號(hào)查看函數(shù)*/</p><p>  case 5:order();break; /*調(diào)用排序函數(shù)*/</p><p>  case 6:del();break;/*調(diào)用刪除函數(shù)*/</p><p>  case 7:save();break;/*調(diào)用保存函數(shù)*/</p><p>  case 8:

33、see();break;/*調(diào)用打開(kāi)文件函數(shù)*/</p><p>  case 9:welcome();break;/*調(diào)用我的個(gè)人信息函數(shù)*/</p><p>  case 0:flag=1;break;/*退出SWITCH語(yǔ)句*/</p><p>  default :printf("錯(cuò)誤!");</p><p>&l

34、t;b>  }</b></p><p>  if(flag) break; /*如果選擇0就退出循環(huán)*/</p><p><b>  }</b></p><p><b>  }</b></p><p>  void welcome() /*我的個(gè)人信息函數(shù)*/</p>

35、;<p><b>  {</b></p><p>  system("CLS");</p><p>  printf("\n\n\t\t------------個(gè)人信息------------"); /*在屏幕上輸出一下信息*/</p><p>  printf("\n\n\n\

36、n\t\t姓名:郗綠陽(yáng)");</p><p>  printf("\t\t\tSex:男\(zhòng)n");</p><p>  printf("\t\t年齡:20\n");</p><p>  printf("\n\t\t\t--------學(xué)習(xí)經(jīng)歷--------\n\n\n");</p>

37、<p>  printf("\t\t小學(xué):北大小學(xué)\n\n");</p><p>  printf("\t\t初中:禹州市神垕一中\(zhòng)n\n");</p><p>  printf("\t\tS高中:禹州五高\(yùn)n\n");</p><p>  printf("\t\t大學(xué):洛陽(yáng)理工學(xué)院\

38、n\n");</p><p>  printf("\n\n\t\t按任意鍵返回歡迎屏幕!");</p><p>  getch(); /*按任意鍵返回主函數(shù)*/</p><p><b>  }</b></p><p>  void type() /*定義鍵入學(xué)生信息函數(shù)*/</

39、p><p><b>  {</b></p><p>  system("CLS");</p><p>  int i; /*定義局部變量*/</p><p>  printf("\t\t輸出你想輸入的學(xué)生信息個(gè)數(shù):");</p><p>  scanf(

40、"%d",&n);</p><p>  for(i=0;i<n;i++) /*輸入每個(gè)學(xué)生的信息*/</p><p><b>  {</b></p><p>  printf("\n\t\t\t----------------\n");</p><p>  

41、printf("\t\t\t學(xué)號(hào):");</p><p>  scanf("%s",&stu[i].num); /*輸入學(xué)號(hào)*/</p><p>  printf("\t\t\t姓名:");</p><p>  scanf("%s",&stu[i].name); /

42、*輸入姓名*/</p><p>  printf("\t\t\t性別:");</p><p>  scanf("%S",&stu[i].sex); /*輸入性別*/</p><p>  printf("\t\t\t英語(yǔ):");</p><p>  scanf("

43、%d",&stu[i].english); /*輸入英語(yǔ)成績(jī)*/</p><p>  printf("\t\t\t數(shù)學(xué):");</p><p>  scanf("%d",&stu[i].math); /*輸入數(shù)學(xué)成績(jī)*/</p><p>  printf("\t\t\t語(yǔ)文:"

44、;);</p><p>  scanf("%d",&stu[i].chinese); /*輸入語(yǔ)文成績(jī)*/</p><p>  stu[i].aver=((float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese)/3;/*計(jì)算平均成績(jī)*/</p><p>  stu[i

45、].sum=(float)stu[i].english+(float)stu[i].math+(float)stu[i].chinese;/*計(jì)算總成績(jī)*/</p><p>  printf("\t\t\t平均成績(jī)=%4.1f\n",stu[i].aver); /*輸出平均成績(jī)*/</p><p>  printf("\t\t\t總成績(jī)=%4.1f\n&qu

46、ot;,stu[i].sum); /*輸出總成績(jī)*/</p><p><b>  }</b></p><p>  printf("\n\n\t\t\t按任意鍵返回菜單!!");</p><p><b>  getch();</b></p><p><b>  sa

47、ve();</b></p><p><b>  }</b></p><p>  void save() /*建立保存文件函數(shù)*/</p><p><b>  {</b></p><p>  system("CLS");</p><p>  

48、FILE *fp; /*定義文件型指針*/</p><p><b>  int i;</b></p><p>  if((fp=fopen("student.txt","wb"))==NULL) /*打開(kāi)輸出文件*/</p><p><b>  {</b></p>

49、;<p>  printf("不能打開(kāi)文件!\n"); </p><p>  return; /*終止程序*/</p><p><b>  }</b></p><p>  for(i=0;i<n;i++) /*向student文件中寫(xiě)入信息

50、*/</p><p>  if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)</p><p>  printf("文件寫(xiě)入錯(cuò)誤\n");</p><p>  fclose(fp); /*關(guān)閉文件*/</p><p>  printf("\n\n\

51、n\n\t\t\t學(xué)生信息保存成功!\n");</p><p>  printf("\n\n\n\n\t\t\t按任意鍵返回菜單!!");</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  void loo

52、k() /*定義查看函數(shù)*/</p><p><b>  {</b></p><p>  system("CLS");</p><p><b>  int i;</b></p><p>  //n=openl(); /*調(diào)用openl函數(shù)*/</p>&

53、lt;p>  printf("\t學(xué)號(hào)\t姓名\t性別\t英語(yǔ)\t數(shù)學(xué)\t語(yǔ)文\t平均成績(jī)\t總成績(jī)\n");</p><p>  for(i=0;i<n;i++) /*輸出所有的學(xué)生信息*/</p><p><b>  {</b></p><p>  printf("%10s\t%s\t%2s\

54、t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,</p><p>  stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);</p><p><b>  }</b></p><p&

55、gt;  printf("\n\n\n\t\t\t按任意鍵返回菜單");</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  void search_name() /*按姓名查看函數(shù)*/</p><p><b&

56、gt;  {</b></p><p>  system("CLS");</p><p><b>  int i;</b></p><p>  char name[20]; /*聲明字符數(shù)組*/</p><p>  printf("\t\t\t請(qǐng)輸入學(xué)生姓名:\n")

57、;</p><p>  scanf("%s",name);</p><p>  printf("\t學(xué)號(hào)\t姓名\t性別\t英語(yǔ)\t數(shù)學(xué)\t語(yǔ)文\t平均成績(jī)\t總成績(jī)\n");</p><p>  for(i=0;i<n;i++)</p><p>  if(strcmp(stu[i].name,n

58、ame)==0) /*將輸入的姓名與結(jié)構(gòu)體中的姓名進(jìn)行比較*/</p><p><b>  {</b></p><p>  printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,</p><p>  stu[i].sex,

59、stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);</p><p>  printf("\n\n\n\t\t\t按任意鍵返回菜單");</p><p><b>  }</b></p><p><b>  getch();</b&

60、gt;</p><p><b>  }</b></p><p>  void search_number() /*定義按學(xué)號(hào)查看函數(shù)*/</p><p><b>  {</b></p><p>  system("CLS");</p><p><

61、b>  int i;</b></p><p>  char number[15]; /*聲明字符數(shù)組*/</p><p>  printf("\t\t\t請(qǐng)輸入學(xué)號(hào):\n");</p><p>  scanf("%s",number);</p><p>  printf(&quo

62、t;\t學(xué)號(hào)\t姓名\t性別\t英語(yǔ)\t數(shù)學(xué)\t語(yǔ)文\t平均成績(jī)\t總成績(jī)\n");</p><p>  for(i=0;i<n;i++)</p><p>  if(strcmp(stu[i].num,number)==0) /*將輸入的學(xué)號(hào)與結(jié)構(gòu)體中的學(xué)號(hào)進(jìn)行比較*/</p><p>  printf("%10s\t%s\t%2s\

63、t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,</p><p>  stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);</p><p>  printf("\n\n\n\t\t\t按任意鍵返回菜單"

64、;);</p><p><b>  getch();</b></p><p><b>  }</b></p><p>  void order() /*定義排序函數(shù)*/</p><p><b>  {</b></p><p>  system(&quo

65、t;CLS");</p><p><b>  int i,j;</b></p><p><b>  char a;</b></p><p>  struct student temp; /*聲明結(jié)構(gòu)體變量*/</p><p>  printf("\t學(xué)號(hào)\t姓名\t性別\t

66、英語(yǔ)\t數(shù)學(xué)\t語(yǔ)文\t平均成績(jī)\t總成績(jī)\n");</p><p>  for(i=0;i<n;i++) /*對(duì)數(shù)據(jù)進(jìn)行排序*/</p><p><b>  {</b></p><p>  for(j=i+1;j<n;j++)</p><p>  if(stu[i].sum<stu[j].

67、sum)</p><p><b>  {</b></p><p>  temp=stu[i];</p><p>  stu[i]= stu[j];</p><p>  stu[j]=temp;</p><p><b>  }</b></p><p> 

68、 printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,</p><p>  stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);</p><p><b>  }

69、</b></p><p><b>  getch();</b></p><p>  printf("是否保存?(y or n)");</p><p>  getchar();</p><p>  scanf("%c",&a);</p><p&

70、gt;  if(a=='y') /*是否保存排序后的文件*/</p><p><b>  save();</b></p><p><b>  else</b></p><p>  printf("退出");</p><p><b>  getch();

71、</b></p><p><b>  }</b></p><p>  void del() /*定義刪除學(xué)生信息函數(shù)*/</p><p><b>  {</b></p><p><b>  int i;</b></p><p><b&g

72、t;  char a;</b></p><p>  char name[20];</p><p>  system("CLS");</p><p>  printf("\t\t\t輸入學(xué)生名字:\n");</p><p>  scanf("%s",name);</p

73、><p>  system("CLS");</p><p>  printf("\t學(xué)號(hào)\t姓名\t性別\t英語(yǔ)\t數(shù)學(xué)\t語(yǔ)文\t平均成績(jī)\t總成績(jī)\n");</p><p>  for(i=0;i<n;i++)</p><p>  if(strcmp(stu[i].name,name)==0)&l

74、t;/p><p><b>  {</b></p><p>  printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n",stu[i].num,stu[i].name,</p><p>  stu[i].sex,stu[i].english,stu[i].math,stu[i].ch

75、inese,stu[i].aver,stu[i].sum);</p><p><b>  getch();</b></p><p>  printf("真的刪除?(y or n)");</p><p>  getchar();</p><p>  scanf("%c",&a

76、);</p><p>  if(a=='y') /*是否刪除該信息*/</p><p><b>  {</b></p><p>  for(;i<n;i++)</p><p>  stu[i]=stu[i+1];</p><p><b>  n=n-1;</

77、b></p><p>  printf("你已經(jīng)刪除信息");</p><p><b>  }</b></p><p><b>  else</b></p><p>  printf("退出");</p><p><b>

78、;  getch();</b></p><p><b>  }</b></p><p><b>  save();</b></p><p><b>  }</b></p><p>  int openl() /*定義打開(kāi)文件函數(shù)*/</p><

79、p><b>  {</b></p><p>  system("CLS");</p><p><b>  int i;</b></p><p><b>  FILE *fp;</b></p><p>  if((fp=fopen("stud

80、ent.txt","rb"))==NULL)</p><p><b>  {</b></p><p>  printf("Cannot open file.\n");</p><p><b>  exit(0);</b></p><p><b&

81、gt;  }</b></p><p>  for(i=0;!feof(fp);i++)</p><p>  fread(&stu[i],sizeof(struct student),1,fp);</p><p>  fclose(fp);</p><p>  return(i-1);</p><p>

82、;<b>  }</b></p><p>  void see() /*打開(kāi)并查看文件*/</p><p><b>  {</b></p><p>  system("CLS");</p><p><b>  int i;</b></p>

83、<p>  n=openl();</p><p>  printf("文件打開(kāi)成功!\n");</p><p>  printf("按任意鍵查看!\n");</p><p><b>  getch();</b></p><p>  printf("\t學(xué)號(hào)\t

84、姓名\t性別\t英語(yǔ)\t數(shù)學(xué)\t語(yǔ)文\t平均成績(jī)\t總成績(jī)\n");</p><p>  for(i=0;i<n;i++) /*輸出所有的學(xué)生信息*/</p><p><b>  {</b></p><p>  printf("%10s\t%s\t%2s\t%d\t%d\t%d\t%3.1f\t\t%6.1f\n

85、",stu[i].num,stu[i].name,</p><p>  stu[i].sex,stu[i].english,stu[i].math,stu[i].chinese,stu[i].aver,stu[i].sum);</p><p><b>  }</b></p><p>  printf("\n\n\n\t\t\

86、t按任意鍵返回菜單");</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  八、運(yùn)行結(jié)果</b></p><p><b>  菜單屏幕</b></p><

87、p><b>  輸入學(xué)生信息</b></p><p><b>  查看學(xué)生信息</b></p><p><b>  按姓名查詢(xún)</b></p><p><b>  按學(xué)號(hào)查詢(xún)</b></p><p><b>  按平均成績(jī)排序</b&

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論