2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩50頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  報告目錄</b></p><p>  一、課程設(shè)計目的 ………………………………………………………………3</p><p>  二、實習(xí)內(nèi)容及要求 ……………………………………………………………3 </p><p>  三、需求分析 ……………………………………………………………………3</p>

2、<p>  四、總體分析 ……………………………………………………………………3</p><p>  五、詳細設(shè)計 ……………………………………………………………………4</p><p>  5.0 頭文件及結(jié)構(gòu)體 ……………………………………………………………4</p><p>  5.1 主函數(shù)……………………………………………………………………

3、…5</p><p>  5.2 菜單模塊……………………………………………………………………5</p><p>  5.3 添加模塊……………………………………………………………………6</p><p>  5.4 修改模塊……………………………………………………………………10 </p><p>  5.5 瀏覽模塊 ……………

4、……………………………………………………14 </p><p>  5.6 查詢模塊 ………………………………………………………………… 15</p><p>  5.6.1 按學(xué)號查詢 ……………………………………………………………15</p><p>  5.6.2 按名字查詢 ……………………………………………………………16</p><

5、p>  5.6.3 按班級查詢 ……………………………………………………………17</p><p>  5.7 統(tǒng)計模塊 …………………………………………………………………18</p><p>  5.7.1 男生信息………………………………………………………………19</p><p>  5.7.2 女生信息……………………………………………………………

6、…21</p><p>  5.7.3 全體學(xué)生信息 …………………………………………………………23 </p><p>  5.8 刪除模塊 …………………………………………………………………23</p><p>  六、上機操作 ……………………………………………………………………26 </p><p>  6.1 系統(tǒng)說明

7、 …………………………………………………………………26</p><p>  6.2 系統(tǒng)測試 …………………………………………………………………26 </p><p>  七、總結(jié) ……………………………………………………………………32</p><p>  八、源代碼 …………………………………………………………………32</p><

8、p><b>  一、課程設(shè)計目的</b></p><p>  通過實踐,學(xué)會編制結(jié)構(gòu)清晰、風(fēng)格良好、數(shù)據(jù)結(jié)構(gòu)適當(dāng)?shù)腃語言程序,加深對C語言基礎(chǔ)知識的理解和掌握,進一步鞏固C語言編程實踐能力,鍛煉思維邏輯和解決綜合性實際問題的能力。</p><p><b>  二、實習(xí)內(nèi)容及要求</b></p><p>  1、用C語

9、言編寫一個學(xué)生證管理系統(tǒng),該系統(tǒng)具有以下功能:</p><p>  (1)錄入某位學(xué)生的學(xué)生證信息;</p><p> ?。?)給定學(xué)號,顯示某位學(xué)生的學(xué)生證信息;</p><p> ?。?)給定某個班級的班號,顯示該班所有學(xué)生的學(xué)生證信息;</p><p> ?。?)給定某位學(xué)生的學(xué)號,修改該學(xué)生的學(xué)生證信息;</p><

10、;p> ?。?)給定某位學(xué)生的學(xué)號,刪除該學(xué)生的學(xué)生證信息;</p><p> ?。?)提供一些統(tǒng)計各類信息的功能;</p><p>  (7)提供瀏覽所有學(xué)生的學(xué)生證信息的功能。</p><p><b>  2、輸入要求</b></p><p>  應(yīng)用程序運行后,在屏幕上顯示一個菜單;用戶可以根據(jù)要求,選定相應(yīng)

11、的操作項目;進入某個操作后,根據(jù)應(yīng)用程序的提示,從鍵盤輸入相應(yīng)的信息。</p><p><b>  3、輸出要求</b></p><p> ?。?)應(yīng)用程序運行后,要在屏幕上顯示一個菜單;</p><p> ?。?)要求用戶輸入數(shù)據(jù)時,給出清晰、明確的提示信息,包括輸入的數(shù)據(jù)內(nèi)容、格式</p><p><b>

12、  及結(jié)束方式等。</b></p><p><b>  三、需求分析</b></p><p>  根據(jù)題目要求,學(xué)生信息要從文本文件中存取,所以本程序應(yīng)該提供讀寫文件,顯示、</p><p>  統(tǒng)計、查詢、修改記錄,保存文件等操作,此外,還應(yīng)該提供鍵盤式選擇菜單實現(xiàn)功能。</p><p><b>

13、  四、總體設(shè)計</b></p><p>  根據(jù)需求分析,可以把這個系統(tǒng)的設(shè)計分為添加、修改、查詢、瀏覽、統(tǒng)計、刪除六大</p><p>  模塊,其中查詢模塊可以分為三個子模塊,統(tǒng)計模塊可以分為三個子模塊,子模塊下面還有子</p><p>  函數(shù);系統(tǒng)功能模塊圖如下所示:</p><p><b>  五、詳細設(shè)計&

14、lt;/b></p><p>  5.0 頭文件及結(jié)構(gòu)體</p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<string.h></p><p>  #define N 100&

15、lt;/p><p>  struct Class //班級</p><p><b>  {</b></p><p>  char Cname[20]; //班名</p><p>  char Cno[20];//班號</p><p><b>

16、;  };</b></p><p>  struct Student //學(xué)生</p><p><b>  {</b></p><p>  char Sname[20]; //姓名</p><p>  char Sex[10];//性別</p>

17、<p>  char Sno[20];//學(xué)號</p><p>  int Age;//年齡</p><p>  struct Class CInfo; //嵌套結(jié)構(gòu)體,表示班級信息</p><p>  }StuInfo[N]; //結(jié)構(gòu)體數(shù)組,用作

18、讀取和存放臨時數(shù)據(jù)</p><p><b>  5.1 主函數(shù)</b></p><p>  void main()</p><p><b>  {</b></p><p>  menu(); //菜單</p><p>  getchar()

19、;</p><p><b>  }</b></p><p><b>  5.2 菜單</b></p><p>  void menu() </p><p><b>  {</b></p><p>  int chose;</p&

20、gt;<p>  int right;</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\n\t\t\t\t學(xué)生證管理系統(tǒng)\n");</p><p>  printf("·&#

21、183;····································

22、··");</p><p>  printf(" 菜單:\t1-添加\t2-修改\t3-瀏覽全部\t4-查詢\t5-統(tǒng)計\t6-刪除\t7-退出\n");</p><p>  printf("···········

23、83;····························");</p><p>  printf("請輸入數(shù)字

24、選擇:");</p><p>  scanf("%d",&chose);</p><p>  if(chose<1||chose>8)</p><p><b>  {</b></p><p><b>  right=1;</b></p>

25、<p>  printf("輸入錯誤,請重新輸入!\n");</p><p>  getchar();</p><p><b>  }</b></p><p>  else right=0;</p><p>  }while(right==1);</p><p> 

26、 switch(chose)</p><p><b>  {</b></p><p>  case 1:add(); break; //添加模塊</p><p>  case 2:modify(); break; //修改模塊</p><p>  case 3:bro

27、wse(); break; //瀏覽模塊</p><p>  case 4:quiry(); break; //查詢模塊</p><p>  case 5:stastic(); break; //統(tǒng)計模塊</p><p>  case 6:Delete(); break;

28、 //刪除模塊</p><p>  case 7:exit(0); //退出</p><p><b>  } </b></p><p><b>  }</b></p><p><b>  5.3 添加模塊</b></

29、p><p>  void add() </p><p><b>  {</b></p><p>  int num; //表示記錄數(shù)</p><p><b>  int i;</b></p><p>  int age;

30、 //臨時變量,用于驗證輸入的性別是否滿足條件</p><p>  char sno[20]; //臨時變量,用于驗證輸入的學(xué)號是否滿足條件</p><p>  char sex[20]; //臨時變量,用于驗證輸入的性別是否滿足條件</p><p>  char cno[20]; //臨時變量,用于驗證輸入的班號是否滿足條件</p><

31、p>  int right;</p><p><b>  FILE*fp;</b></p><p>  if((fp=fopen("StuInfo.txt","r+"))==NULL) //以讀寫方式打開</p><p><b>  {</b></p>&l

32、t;p>  if((fp=fopen("StuInfo.txt","w"))==NULL) //文件不存在就創(chuàng)建文件</p><p><b>  {</b></p><p>  printf("\n文件不存在且創(chuàng)建失敗,返回!\n");</p><p><b>  m

33、enu();</b></p><p><b>  }</b></p><p>  printf("\n請按照提示輸入學(xué)生信息:\n\n");</p><p>  printf("姓名:");</p><p>  scanf("%s",&Stu

34、Info[0].Sname);</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\n性別(男或女):");</p><p>  scanf("%s",sex);</p><

35、;p>  if((strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0))</p><p><b>  { </b></p><p>  printf("輸入錯誤,請輸入男或女!\n");</p><p><b>  ri

36、ght=1;</b></p><p>  getchar();</p><p><b>  }</b></p><p>  else right=0;</p><p>  }while(right==1);</p><p>  strcpy(StuInfo[0].Sex,sex);&l

37、t;/p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\n學(xué)號(11位):");</p><p>  scanf("%s",sno);</p><p>  if(strlen

38、(sno)!=11)</p><p><b>  { </b></p><p>  printf("輸入錯誤,學(xué)號長度應(yīng)為11位數(shù)!\n");</p><p><b>  right=1;</b></p><p>  getchar();</p><p&g

39、t;<b>  }</b></p><p>  else right=0;</p><p>  }while(right==1);</p><p>  strcpy(StuInfo[0].Sno,sno);</p><p><b>  do</b></p><p><b

40、>  {</b></p><p>  printf("\n年齡:");</p><p>  scanf("%d",&age);</p><p>  if(age<=0||age>100)</p><p><b>  { </b></p

41、><p>  printf("年齡應(yīng)在0-100之間,請重新輸入年齡!\n");</p><p><b>  right=1;</b></p><p>  getchar();</p><p><b>  }</b></p><p>  else right=

42、0;</p><p>  }while(right==1);</p><p>  StuInfo[0].Age=age;</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\n班號(6位):&quo

43、t;);</p><p>  scanf("%s",cno);</p><p>  if(strlen(cno)!=6)</p><p><b>  { </b></p><p>  printf("輸入錯誤,班號長度應(yīng)為6位數(shù)!\n");</p><p&g

44、t;<b>  right=1;</b></p><p>  getchar();</p><p><b>  }</b></p><p>  else right=0;</p><p>  }while(right==1);</p><p>  strcpy(StuInfo

45、[0].CInfo.Cno,cno);</p><p>  printf("\n班名:");</p><p>  scanf("%s",&StuInfo[0].CInfo.Cname); </p><p>  fprintf(fp,"\n%s\t%s\t%s\t%d\t%s\t%s",Stu

46、Info[0].Sname,StuInfo[0].Sex,StuInfo[0].Sno,StuInfo[0].Age,StuInfo[0].CInfo.Cno,StuInfo[0].CInfo.Cname);</p><p>  fclose(fp);</p><p>  printf("\n保存成功!\n");</p><p>  printf

47、("\n請按enter鍵返回主菜單!\n");</p><p>  getchar();</p><p>  getchar();</p><p><b>  menu();</b></p><p>  } //以上的輸入是以寫的方式輸入,下面是以讀寫的方式輸入數(shù)據(jù)</p><

48、;p>  for(i=0;!feof(fp);i++) </p><p><b>  { </b></p><p>  fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i]

49、.Age,&StuInfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname);</p><p><b>  }</b></p><p>  num=i; //記錄數(shù)</p><p>  if(num==N)</p><p><b>  {</b><

50、/p><p>  printf("\n保存記錄數(shù)超出結(jié)構(gòu)體數(shù)組數(shù)的大小,請先修改N的值!\n");</p><p>  printf("\n請按enter鍵返回主菜單!\n");</p><p>  getchar();</p><p>  getchar();</p><p>&l

51、t;b>  menu();</b></p><p><b>  }</b></p><p>  printf("\n請按照提示輸入學(xué)生信息:\n\n");</p><p>  printf("姓名:");</p><p>  scanf("%s"

52、;,&StuInfo[num].Sname);</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\n性別(男或女):");</p><p>  scanf("%s",sex);<

53、;/p><p>  if((strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0))</p><p><b>  { </b></p><p>  printf("輸入錯誤,請輸入男或女!\n");</p><p>&

54、lt;b>  right=1;</b></p><p>  getchar();</p><p><b>  }</b></p><p>  else right=0;</p><p>  }while(right==1);</p><p>  strcpy(StuInfo[nu

55、m].Sex,sex);</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\n學(xué)號(11位):");</p><p>  scanf("%s",sno);</p><p&

56、gt;  if(strlen(sno)!=11)</p><p><b>  { </b></p><p>  printf("輸入錯誤,學(xué)號長度應(yīng)為11位數(shù)!\n");</p><p><b>  right=1;</b></p><p>  getchar();</

57、p><p><b>  }</b></p><p>  else right=0;</p><p>  for(i=0;i<num;i++)</p><p><b>  {</b></p><p>  if(strcmp(sno,StuInfo[i].Sno)==0) &l

58、t;/p><p><b>  {</b></p><p>  printf("該學(xué)號已經(jīng)存在,請重新輸入!\n");</p><p><b>  right=1;</b></p><p>  getchar();</p><p><b>  }<

59、;/b></p><p><b>  }</b></p><p>  }while(right==1);</p><p>  strcpy(StuInfo[num].Sno,sno);</p><p><b>  do</b></p><p><b>  {&

60、lt;/b></p><p>  printf("\n年齡:");</p><p>  scanf("%d",&age);</p><p>  if(age<=0||age>100)</p><p><b>  { </b></p>&l

61、t;p>  printf("年齡應(yīng)在0-100之間,請重新輸入年齡!\n");</p><p><b>  right=1;</b></p><p>  getchar();</p><p><b>  }</b></p><p>  else right=0;</p

62、><p>  }while(right==1);</p><p>  StuInfo[num].Age=age;</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\n班號(6位):");&l

63、t;/p><p>  scanf("%s",cno);</p><p>  if(strlen(cno)!=6)</p><p><b>  { </b></p><p>  printf("輸入錯誤,班號長度應(yīng)為6位數(shù)!\n");</p><p><

64、b>  right=1;</b></p><p>  getchar();</p><p><b>  }</b></p><p>  else right=0;</p><p>  }while(right==1);</p><p>  strcpy(StuInfo[num].

65、CInfo.Cno,cno);</p><p>  printf("\n班名:");</p><p>  scanf("%s",&StuInfo[num].CInfo.Cname);</p><p>  //把該記錄寫到文件末尾 </p><p>  fprintf(fp,"\n%s\

66、t%s\t%s\t%d\t%s\t%s",StuInfo[num].Sname,StuInfo[num].Sex,StuInfo[num].Sno,StuInfo[num].Age,StuInfo[num].CInfo.Cno,StuInfo[num].CInfo.Cname);</p><p>  fclose(fp);</p><p>  printf("\n保存成

67、功!\n");</p><p>  printf("\n請按enter鍵返回主菜單!\n");</p><p>  getchar();</p><p>  getchar();</p><p><b>  menu();</b></p><p><b> 

68、 }</b></p><p><b>  5.4 修改模塊</b></p><p>  void modify()</p><p><b>  {</b></p><p><b>  int num;</b></p><p><b

69、>  int i;</b></p><p>  int right;</p><p><b>  int age;</b></p><p>  char sex[20];</p><p>  char cno[20];</p><p>  char sno[20];</p&

70、gt;<p>  int found=-1;</p><p>  char StuNO[20];</p><p>  FILE*fpr,*fpw;</p><p>  if((fpr=fopen("StuInfo.txt","r"))==NULL)</p><p><b>  {

71、</b></p><p>  printf("文件打不開!\n");</p><p><b>  menu();</b></p><p><b>  }</b></p><p>  for(i=0;!feof(fpr);i++) /&l

72、t;/p><p><b>  { </b></p><p>  fscanf(fpr,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].Age,&StuInfo[i].CInfo.Cno,&St

73、uInfo[i].CInfo.Cname);</p><p><b>  }</b></p><p><b>  num=i;</b></p><p>  fclose(fpr);</p><p>  printf("\n請輸入學(xué)號選擇要修改的記錄:");</p>

74、<p>  scanf("%s",StuNO);</p><p>  for(i=0;i<num;i++)</p><p><b>  {</b></p><p>  if(strcmp(StuNO,StuInfo[i].Sno)==0)</p><p><b>  {<

75、;/b></p><p><b>  found=i;</b></p><p>  printf("\n你要修改的學(xué)生信息為:\n\n");</p><p>  printf("姓名 性別 學(xué)號 年齡 班號 班名\n"); </p><p&

76、gt;  printf("%s\t%s\t%s\t%d\t%s\t%s\n",StuInfo[i].Sname,StuInfo[i].Sex,StuInfo[i].Sno,StuInfo[i].Age,StuInfo[i].CInfo.Cno,StuInfo[i].CInfo.Cname);</p><p>  printf("\n請按照提示輸入學(xué)生的新信息:\n");&l

77、t;/p><p>  printf("姓名:");</p><p>  scanf("%s",&StuInfo[found].Sname);</p><p><b>  do</b></p><p><b>  {</b></p><p

78、>  printf("\n性別(男或女):");</p><p>  scanf("%s",sex);</p><p>  if((strcmp(sex,"男")!=0)&&(strcmp(sex,"女")!=0))</p><p><b>  { &

79、lt;/b></p><p>  printf("輸入錯誤,請輸入男或女!\n");</p><p><b>  right=1;</b></p><p>  getchar();</p><p><b>  }</b></p><p>  else

80、 right=0;</p><p>  }while(right==1);</p><p>  strcpy(StuInfo[found].Sex,sex);</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf(

81、"\n學(xué)號(11位):");</p><p>  scanf("%s",sno);</p><p>  if(strlen(sno)!=11)</p><p><b>  { </b></p><p>  printf("輸入錯誤,學(xué)號長度應(yīng)為11位數(shù)!\n"

82、;);</p><p><b>  right=1;</b></p><p>  getchar();</p><p><b>  }</b></p><p>  else right=0;</p><p>  for(i=0;i<num;i++)</p>

83、<p><b>  {</b></p><p>  if((i!=found)&&(strcmp(sno,StuInfo[i].Sno)==0))</p><p><b>  {</b></p><p>  printf("該學(xué)號已經(jīng)存在,請重新輸入!\n");</p&

84、gt;<p><b>  right=1;</b></p><p>  getchar();</p><p><b>  }</b></p><p><b>  }</b></p><p>  }while(right==1);</p><p&

85、gt;  strcpy(StuInfo[found].Sno,sno);</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\n年齡:");</p><p>  scanf("%d",&

86、;age);</p><p>  if(age<=0||age>100)</p><p><b>  { </b></p><p>  printf("年齡應(yīng)在0-100之間,請重新輸入年齡!\n");</p><p><b>  right=1;</b><

87、/p><p>  getchar();</p><p><b>  }</b></p><p>  else right=0;</p><p>  }while(right==1);</p><p>  StuInfo[found].Age=age;</p><p><b

88、>  do</b></p><p><b>  {</b></p><p>  printf("\n班號(6位):");</p><p>  scanf("%s",cno);</p><p>  if(strlen(cno)!=6)</p><

89、p><b>  { </b></p><p>  printf("輸入錯誤,班號長度應(yīng)為6位數(shù)!\n");</p><p><b>  right=1;</b></p><p>  getchar();</p><p><b>  }</b><

90、;/p><p>  else right=0;</p><p>  }while(right==1);</p><p>  strcpy(StuInfo[found].CInfo.Cno,cno);</p><p>  printf("\n班名:");</p><p>  scanf("%s&

91、quot;,&StuInfo[found].CInfo.Cname);</p><p>  if((fpw=fopen("StuInfo.txt","w"))==NULL)</p><p><b>  {</b></p><p>  printf("文件打不開,保存失??!\n"

92、);</p><p><b>  menu();</b></p><p><b>  }</b></p><p>  for(i=0;i<num;i++) //保存文件</p><p><b>  { </b></p>

93、<p>  fprintf(fpw,"\n%s\t%s\t%s\t%d\t%s\t%s",StuInfo[i].Sname,StuInfo[i].Sex,StuInfo[i].Sno,StuInfo[i].Age,StuInfo[i].CInfo.Cno,StuInfo[i].CInfo.Cname);</p><p><b>  }</b></p&g

94、t;<p>  fclose(fpw);</p><p>  printf("\n修改成功!\n");</p><p>  printf("\n請按enter鍵返回主菜單!\n");</p><p>  getchar();</p><p>  getchar();</p>

95、<p><b>  menu();</b></p><p><b>  } </b></p><p><b>  }</b></p><p>  if(found<0)</p><p><b>  {</b></p><

96、;p>  printf("\n沒有找到該學(xué)號的記錄:\n");</p><p>  printf("\n請按enter鍵返回主菜單!\n");</p><p>  getchar();</p><p>  getchar();</p><p><b>  menu();</b>

97、;</p><p><b>  }</b></p><p><b>  } </b></p><p><b>  5.5 瀏覽模塊 </b></p><p>  void browse()</p><p><b>  {</b>

98、</p><p><b>  int num;</b></p><p><b>  int i;</b></p><p>  FILE*fp; </p><p>  if((fp=fopen("StuInfo.txt","

99、r"))==NULL) </p><p><b>  {</b></p><p>  printf("文件打不開!\n");</p><p><b>  menu();</b></p><p><b>  }</b></p>&l

100、t;p>  for(i=0;!feof(fp);i++) </p><p><b>  { </b></p><p>  fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,&StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[

101、i].Age,&StuInfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname);</p><p><b>  }</b></p><p>  fclose(fp); </p><p><b>  num=i;</b></

102、p><p>  printf("\n已添加%d個學(xué)生信息\n\n",num);</p><p>  printf("姓名 性別 學(xué)號 年齡 班號 班名\n"); </p><p>  for(i=0;i<num;i++) </p><

103、;p><b>  { </b></p><p>  printf("%s\t%s\t%s\t%d\t%s%s\n",StuInfo[i].Sname,StuInfo[i].Sex,StuInfo[i].Sno,StuInfo[i].Age,StuInfo[i].CInfo.Cno,StuInfo[i].CInfo.Cname);</p>&l

104、t;p><b>  }</b></p><p>  printf("\n請按enter鍵返回主菜單!\n");</p><p>  getchar();</p><p>  getchar();</p><p><b>  menu();</b></p>&l

105、t;p><b>  }</b></p><p><b>  5.6 查詢模塊</b></p><p>  void quiry() </p><p><b>  {</b></p><p>  int chose;</p><p> 

106、 int right; </p><p><b>  do</b></p><p><b>  {</b></p><p>  printf("\n1-按學(xué)號查詢\t2-按姓名</p><p>  查詢\t3-某班學(xué)生信息\t4-返回\n"); </p><

107、p>  printf("\n請輸入數(shù)字選擇:");</p><p>  scanf("%d",&chose);</p><p>  if(chose<1||chose>4)</p><p><b>  {</b></p><p><b>  ri

108、ght=1;</b></p><p>  getchar();</p><p><b>  }</b></p><p>  else right=0;</p><p>  }while(right==1);</p><p>  switch(chose)</p><

109、p><b>  {</b></p><p>  case 1:bySno();break;</p><p>  case 2:bySname();break;</p><p>  case 3:byCno();break;</p><p>  case 4:menu();</p><p>

110、<b>  } </b></p><p><b>  }</b></p><p>  5.6.1 根據(jù)學(xué)號查找某學(xué)生的學(xué)生證信息:</p><p>  void bySno() </p><p><b>  {</b></p><p>  

111、int found=-1;</p><p><b>  int num;</b></p><p><b>  int i;</b></p><p>  char no[20];</p><p><b>  FILE*fp;</b></p><p>  i

112、f((fp=fopen("StuInfo.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("文件打不開!\n");</p><p><b>  menu();</b></p><p&

113、gt;<b>  }</b></p><p>  for(i=0;!feof(fp);i++) </p><p><b>  {</b></p><p>  fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,</

114、p><p>  &StuInfo[i].Sex,&StuInfo[i].Sno,&StuInfo[i].Age,</p><p>  &StuInfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname);</p><p><b>  }</b></p><p>

115、<b>  num=i;</b></p><p>  fclose(fp);</p><p>  printf("\n請輸入學(xué)生學(xué)號:");</p><p>  scanf("%s",no);</p><p>  for(i=0;i<num;i++)</p>&

116、lt;p><b>  {</b></p><p>  if(strcmp(no,StuInfo[i].Sno)==0)</p><p><b>  {</b></p><p><b>  found=i;</b></p><p>  printf("\n該學(xué)生的

117、信息為:\n\n");</p><p>  printf("姓名 性別 學(xué)號 年齡 班號 班名\n"); printf("%s\t%s\t%s\t%d\t%s\t%s\n",StuInfo[found].Sname,StuInfo[found].Sex,StuInfo[found].Sno,StuInfo[found].A

118、ge,StuInfo[found].CInfo.Cno,StuInfo[found].CInfo.Cname);</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(found<0)</p><p>  printf("\n沒有找

119、到該班號的記錄!\n");</p><p>  printf("\n請按enter鍵返回上級菜單!\n");</p><p>  getchar();</p><p>  getchar();</p><p><b>  quiry();</b></p><p>&l

120、t;b>  }</b></p><p>  5.6.2 根據(jù)姓名查找某學(xué)生的學(xué)生證信息:</p><p>  void bySname() </p><p><b>  {</b></p><p>  int found=-1;</p><p><b> 

121、 int num;</b></p><p><b>  int i;</b></p><p>  char name[20];</p><p><b>  FILE*fp;</b></p><p>  if((fp=fopen("StuInfo.txt","

122、r"))==NULL)</p><p><b>  {</b></p><p>  printf("文件打不開!\n");</p><p><b>  menu();</b></p><p><b>  }</b></p><p

123、>  for(i=0;!feof(fp);i++) </p><p><b>  {</b></p><p>  fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,</p><p>  &StuInfo[i].Sex,&

124、;StuInfo[i].Sno,&StuInfo[i].Age,</p><p>  &StuInfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname);</p><p><b>  }</b></p><p><b>  num=i;</b></p><

125、;p>  fclose(fp);</p><p>  printf("\n請輸入學(xué)生姓名:");</p><p>  scanf("%s",name);</p><p>  for(i=0;i<num;i++)</p><p><b>  {</b></p>

126、<p>  if(strcmp(name,StuInfo[i].Sname)==0)</p><p><b>  {</b></p><p><b>  found=i;</b></p><p>  printf("\n該學(xué)生的信息為:\n\n");</p><p>

127、;  printf("姓名 性別 學(xué)號 年齡 班號 班名\n"); printf("%s\t%s\t%s\t%d\t%s\t%s\n",StuInfo[found].Sname,StuInfo[found].Sex,StuInfo[found].Sno,StuInfo[found].Age,StuInfo[found].CInfo.Cno,StuInfo[found].CInfo.Cname)

128、;</p><p><b>  }</b></p><p><b>  }</b></p><p>  if(found<0)</p><p>  printf("\n沒有找到該班號的記錄!\n");</p><p>  printf("\

129、n請按enter鍵返回上級菜單!\n");</p><p>  getchar();</p><p>  getchar();</p><p><b>  quiry();</b></p><p><b>  } </b></p><p>  5.6.3 根據(jù)班號查

130、詢某個班級所有學(xué)生的</p><p><b>  學(xué)生證信息:</b></p><p>  void byCno() </p><p><b>  {</b></p><p>  int found=-1;</p><p><b>  int num;

131、</b></p><p><b>  int i;</b></p><p>  char ClaNO[20];</p><p><b>  FILE*fp;</b></p><p>  if((fp=fopen("StuInfo.txt","r")

132、)==NULL)</p><p><b>  {</b></p><p>  printf("文件打不開!\n");</p><p><b>  menu();</b></p><p><b>  }</b></p><p>  fo

133、r(i=0;!feof(fp);i++) </p><p><b>  {</b></p><p>  fscanf(fp,"%s%s%s%d%s%s",&StuInfo[i].Sname,</p><p>  &StuInfo[i].Sex,&StuInfo[i].Sno,

134、&StuInfo[i].Age,</p><p>  &StuInfo[i].CInfo.Cno,&StuInfo[i].CInfo.Cname);</p><p><b>  }</b></p><p><b>  num=i;</b></p><p>  fclose(f

135、p);</p><p>  printf("\n請輸入班號:");</p><p>  scanf("%s",ClaNO);</p><p>  printf("\n該班級的學(xué)生信息為:\n\n");</p><p>  printf("姓名 性別 學(xué)號

136、 年齡 班號 班名\n"); </p><p>  for(i=0;i<num;i++)</p><p><b>  { </b></p><p>  if(strcmp(ClaNO,StuInfo[i].CInfo.Cno)==0)</p><p><b>  {&l

137、t;/b></p><p>  found=i; printf("%s\t%s\t%s\t%d\t%s\t%s\n",StuInfo[found].Sname,StuInfo[found].Sex,StuInfo[found].Sno,StuInfo[found].Age,StuInfo[found].CInfo.Cno,StuInfo[found].CInfo.Cname);<

138、/p><p><b>  }</b></p><p><b>  }</b></p><p>  if(found<0) //found小于0,說明不存在班號的學(xué)生記錄</p><p>  printf("\n沒有找到該班號的

139、記錄!\n");</p><p>  printf("\n請按enter鍵返回上級菜單!\n");</p><p>  getchar();</p><p>  getchar();</p><p><b>  quiry();</b></p><p><b&g

140、t;  }</b></p><p><b>  5.7 統(tǒng)計模塊</b></p><p>  該模塊實現(xiàn)了基本的統(tǒng)計功能,包括</p><p>  分別統(tǒng)計男女生的人數(shù)、平均年齡,以及</p><p>  全體學(xué)生的人數(shù)和基本年齡;</p><p>  void stastic()

141、 </p><p><b>  {</b></p><p>  int chose;</p><p>  int right; </p><p><b>  do</b></p><p><b>  {</b></p>

142、<p>  printf("\n1-全體男生\t2-全體女生</p><p>  \t3-全體學(xué)生\t4-返回\n"); </p><p>  printf("\n請輸入數(shù)字選擇:");</p><p>  scanf("%d",&chose);</p><p&g

143、t;  if(chose<1||chose>4)</p><p><b>  {</b></p><p><b>  right=1;</b></p><p>  getchar();</p><p><b>  }</b></p><p>

144、  else right=0;</p><p>  }while(right==1);</p><p>  switch(chose)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  Male();

145、 //男生的統(tǒng)計信息</p><p>  printf("\n請按enter鍵返回上級菜單!\n");</p><p>  getchar(); getchar();</p><p>  stastic();</p><p><b>  break;</b></p><p>

146、<b>  case 2:</b></p><p>  Female(); //女生的統(tǒng)計信息</p><p>  printf("\n請按enter鍵返回上級菜單!\n");</p><p>  getchar();getchar(); </p><p>  stastic();<

147、;/p><p><b>  break;</b></p><p><b>  case 3:</b></p><p>  StuMsg(); //全體學(xué)生的統(tǒng)計信息</p><p>  printf("\n請按enter鍵返回上級菜單!\n");</p>&l

148、t;p>  getchar();getchar();</p><p>  stastic();</p><p><b>  break;</b></p><p>  case 4:menu();</p><p><b>  } </b></p><p><b&

149、gt;  }</b></p><p>  5.7.1 統(tǒng)計男生信息子模塊</p><p>  void Male()</p><p><b>  {</b></p><p>  int num; //人數(shù)</p><p>  float mg; //平均年齡<

150、;/p><p>  num=MaleNum();</p><p>  mg=MaleMG();</p><p>  printf("\n男生總?cè)藬?shù)為:%d\n平均年</p><p>  齡為:%f\n",num,mg);</p><p><b>  }</b></p>

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論