2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩24頁未讀, 繼續(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>  項(xiàng)目設(shè)計(jì)報(bào)告</b></p><p>  項(xiàng)目名稱: 學(xué)生成績信息管理系統(tǒng) </p><p>  2016年 1月 13日</p><p><b>  目 錄</b&

2、gt;</p><p><b>  1 項(xiàng)目分析1</b></p><p>  1.1 問題描述1</p><p>  1.2 功能需求分析1</p><p><b>  2 系統(tǒng)設(shè)計(jì)2</b></p><p>  2.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)2</p>&l

3、t;p>  2.3部分功能設(shè)計(jì)2</p><p>  3 系統(tǒng)實(shí)現(xiàn)源程序4</p><p>  3.1 主函數(shù)設(shè)計(jì)4</p><p>  3.2 添加學(xué)生信息5</p><p>  3.3 姓名學(xué)號(hào)查詢10</p><p>  3.4 成績查詢12</p><p>  3.5

4、刪除學(xué)生成績信息13</p><p>  3.6 修改學(xué)生成績信息14</p><p><b>  4 功能測試16</b></p><p>  4.1 菜單測試16</p><p>  4.2 系統(tǒng)功能測試16</p><p>  5 系統(tǒng)設(shè)計(jì)遇到的問題及解決方法21</p&g

5、t;<p>  6 項(xiàng)目設(shè)計(jì)總結(jié)22</p><p><b>  1 項(xiàng)目分析</b></p><p><b>  1.1 問題描述</b></p><p>  信息儲(chǔ)存與查詢是計(jì)算機(jī)處理數(shù)據(jù)的優(yōu)勢之一,目前,學(xué)生信息的管理系統(tǒng)已經(jīng)完全走進(jìn)了校園,其中成績信息的儲(chǔ)存是主要部分,本課題使用C語言實(shí)現(xiàn)學(xué)生成績的

6、儲(chǔ)存,查詢,修改,以及刪除等操作。程序中涉及到數(shù)據(jù)塊和文件指針的操作,包括結(jié)構(gòu)體數(shù)據(jù)定義,使用及文件的讀寫,定位,修改等。</p><p>  1.2 功能需求分析</p><p>  學(xué)生成績信息管理系統(tǒng)的主要功能如下:</p><p> ?、偬砑訉W(xué)生信息:錄入學(xué)生的基本信息,如姓名,學(xué)號(hào),成績。</p><p> ?、陲@示所有學(xué)生成績信息

7、:直接顯示已經(jīng)全部錄入學(xué)生的成績信息。</p><p>  ③學(xué)號(hào)或姓名查詢:可以根據(jù)學(xué)生的姓名和學(xué)號(hào)直接查詢該名學(xué)生的成績。</p><p>  ④成績查詢:可以根據(jù)一個(gè)特定的分?jǐn)?shù)來查詢學(xué)生的信息。</p><p> ?、輨h除學(xué)生成績信息:可以直接根據(jù)學(xué)號(hào)確定是否刪除對應(yīng)學(xué)生的成績信息。</p><p> ?、扌薷膶W(xué)生成績信息:直接根據(jù)學(xué)生

8、學(xué)號(hào)來修改學(xué)生的姓名,學(xué)號(hào),成績。</p><p>  圖1-1 系統(tǒng)功能模塊圖</p><p><b>  2 系統(tǒng)設(shè)計(jì)</b></p><p>  2.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</p><p><b>  2.2 函數(shù)設(shè)計(jì)</b></p><p><b>  表1 函數(shù)

9、列表</b></p><p><b>  2.3部分功能設(shè)計(jì)</b></p><p>  1.刪除學(xué)生的信息,輸入學(xué)生的學(xué)號(hào)進(jìn)行刪除操作,如果沒有此人,系統(tǒng)將會(huì)提示無此人,如果找到,系統(tǒng)將會(huì)確認(rèn)你是否需要?jiǎng)h除,流程圖如1-2所示。</p><p>  圖1-2 刪除學(xué)生信息流程圖</p><p>  2.輸入

10、學(xué)號(hào)進(jìn)行查詢對應(yīng)同學(xué)的成績,流程圖如圖1-3所示。</p><p>  圖1-3 查詢功能流程圖</p><p><b>  3 系統(tǒng)實(shí)現(xiàn)源程序</b></p><p><b>  3.1 主函數(shù)設(shè)計(jì)</b></p><p>  void main()</p><p><

11、;b>  {</b></p><p><b>  int x;</b></p><p>  system("cls");/*清屏*/</p><p><b>  do</b></p><p><b>  {</b></p>

12、<p>  printf("\n 歡迎使用學(xué)生成績信息管理系統(tǒng)\n\n\n\n\n"); </p><p>  printf(" 1 ---------添加學(xué)生信息\n\n"); </p><p>  printf("

13、 2 ---------顯示所有學(xué)生成績信息\n\n"); </p><p>  printf(" 3 ---------學(xué)號(hào)或姓名查詢\n\n");</p><p>  printf(" 4 ---------成績查詢\n\n"

14、); </p><p>  printf(" 5 ---------刪除學(xué)生成績信息\n\n");</p><p>  printf(" 6 ---------修改學(xué)生成績信息\n\n");</p><p>  printf(&qu

15、ot; 0 ---------退出");</p><p>  printf(" 請您選擇:");</p><p><b>  choice:</b></p><p>  scanf("%d",&

16、;x);</p><p><b>  switch(x)</b></p><p><b>  {</b></p><p>  case 1:add();break;</p><p>  case 2:printall();break;</p><p>  case 3:sea

17、rch();break;</p><p>  case 4:jgsearch();break;</p><p>  case 5:del();break;</p><p>  case 6:modify();break;</p><p>  case 0:break;</p><p>  default:printf(

18、"\n 錯(cuò)誤的選擇,請重新選擇:");goto choice; </p><p><b>  } </b></p><p><b>  }</b></p><p>  while(x!=0);</p><p>  system(&qu

19、ot;cls");</p><p>  printf("\n\n 歡迎再次使用學(xué)生成績管理系統(tǒng)\n"); </p><p><b>  }</b></p><p>  3.2 添加學(xué)生信息</p><p>  /*學(xué)生成績信息管理系統(tǒng)*/</p&

20、gt;<p>  #include <stdio.h></p><p>  #include <stdlib.h></p><p>  #include <string.h></p><p>  int c,j,t;</p><p>  struct stu/*定義結(jié)構(gòu)體類型*/ <

21、/p><p><b>  {</b></p><p>  char name[10];</p><p>  char num[10];</p><p>  char score[10];</p><p><b>  }</b></p><p>  stud

22、ent[100],</p><p>  newstudent[100];</p><p>  /*添加學(xué)生個(gè)人信息*/ </p><p>  void addnew()</p><p>  {int a,b,k;</p><p>  FILE *fp,*fp1,*fp2; /*FILE類型指針變量的定

23、義形式*/ </p><p>  for(a=0;a<200;a++)</p><p><b>  {</b></p><p>  system("cls");</p><p>  printf(" 歡迎使用學(xué)生成績管理系統(tǒng)\n\n\n");<

24、/p><p>  printf(" 錄入學(xué)生信息\n\n");</p><p>  printf("輸入學(xué)生姓名:");</p><p>  scanf("%s",&student[a].name);</p><p>  printf(&qu

25、ot;輸入學(xué)生學(xué)號(hào):");</p><p>  scanf("%s",&student[a].num);</p><p>  printf("輸入學(xué)生成績:");</p><p>  scanf("%s",&student[a].score);</p><p&g

26、t;  printf("輸入‘1’繼續(xù),‘0’結(jié)束\n");/*判斷輸入是否結(jié)束*/ </p><p>  scanf("%d",&b);</p><p>  if(b==0)</p><p><b>  {</b></p><p><b>  c=a

27、;</b></p><p>  system("cls");</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if((f

28、p1=fopen("Ca1.txt","w"))==NULL)/*文件名,使用文件方式*/ </p><p>  {printf("信息寫入失敗");</p><p><b>  exit(0);</b></p><p><b>  }</b></p&g

29、t;<p>  if((fp2=fopen("Ca2.txt","w"))==NULL)</p><p>  {printf("信息寫入失敗");</p><p><b>  exit(0);</b></p><p><b>  }</b><

30、;/p><p>  if((fp=fopen("Ca3.txt","w"))==NULL)</p><p>  {printf("信息寫入失敗");</p><p><b>  exit(0);</b></p><p><b>  }</b>

31、;</p><p>  j=sizeof(struct stu);</p><p>  for(a=0;a<=c;a++)</p><p>  {if(fwrite(&student[a],j,1,fp)!=1)</p><p>  printf("存入失敗!");</p><p>&

32、lt;b>  }</b></p><p>  for(a=0;a<=c;a++)</p><p>  {if(strcmp(student[a].score,"80")==0)</p><p>  {fwrite(&student[a],j,1,fp1);</p><p><b>

33、  }</b></p><p><b>  else</b></p><p>  {fwrite(&student[a],j,1,fp2);</p><p><b>  }</b></p><p><b>  }</b></p><p&g

34、t;  printf("添加成功!\n\n");</p><p>  printf("請輸入'0'返回\n");</p><p>  scanf("%d",&k);</p><p>  fclose(fp1);</p><p>  fclose(fp2);&l

35、t;/p><p>  fclose(fp);</p><p><b>  if(k==0)</b></p><p>  system("cls");</p><p><b>  }</b></p><p>  /*繼續(xù)添加成員*/</p><

36、;p>  void addold()</p><p><b>  {</b></p><p>  int a,b,k,p,q;</p><p>  char wjm[20];</p><p><b>  FILE *fp;</b></p><p>  j=sizeof(

37、struct stu);</p><p>  system("cls");</p><p>  printf(" 歡迎使用學(xué)生成績信息管理系統(tǒng)\n\n\n");</p><p>  printf(" 錄入學(xué)生信息\n\n");</p&g

38、t;<p>  printf("\n\n存儲(chǔ)文件名有 Ca1.txt Ca2.txt Ca3.txt\n\n");</p><p>  printf("請輸入想繼續(xù)添加的文件名:");</p><p>  scanf("%s",wjm);</p><p>  for(a=0;a<

39、;200;a++)</p><p><b>  {</b></p><p>  printf("輸入學(xué)生姓名:");</p><p>  scanf("%s",&newstudent[a].name);</p><p>  printf("輸入學(xué)生學(xué)號(hào):"

40、;);</p><p>  scanf("%s",&newstudent[a].num);</p><p>  printf("輸入學(xué)生成績:");</p><p>  scanf("%s",&newstudent[a].score);</p><p>  print

41、f("輸入‘1’繼續(xù),‘0’結(jié)束\n");//判斷輸入是否結(jié)束</p><p>  scanf("%d",&b);</p><p>  if(b==0)</p><p><b>  {</b></p><p><b>  c=a;</b>

42、</p><p>  system("cls");</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if((fp=fopen(wjm

43、,"r"))==NULL)</p><p><b>  {</b></p><p>  printf("文件打開失敗!");</p><p><b>  exit(0);</b></p><p><b>  }</b></p&g

44、t;<p><b>  a=0;</b></p><p>  while(!feof(fp))</p><p>  {fread(&student[a],j,1,fp);</p><p><b>  a++;</b></p><p><b>  }</b>

45、</p><p>  fclose(fp);</p><p><b>  t=a-1;</b></p><p>  for(q=0,p=t;q<=c,p<=t+c;q++,p++)</p><p><b>  {</b></p><p>  strcpy(stud

46、ent[p].name,newstudent[q].name);</p><p>  strcpy(student[p].num,newstudent[q].num);</p><p>  strcpy(student[p].score,newstudent[q].score);</p><p><b>  }</b></p>&

47、lt;p>  if((fp=fopen(wjm,"w"))==NULL)</p><p><b>  {</b></p><p>  printf("文件打開失敗!");</p><p><b>  exit(0);</b></p><p><

48、b>  }</b></p><p>  for(a=0;a<=t+c;a++)</p><p>  {if(fwrite(&student[a],j,1,fp)!=1)</p><p>  printf("存入失敗!");</p><p><b>  }</b><

49、/p><p>  printf("添加成功!\n\n");</p><p>  printf("請輸入'0'返回\n");</p><p>  scanf("%d",&k);</p><p>  fclose(fp);</p><p>&l

50、t;b>  if(k==0)</b></p><p>  system("cls");</p><p><b>  }</b></p><p>  void add()</p><p><b>  {int x;</b></p><p>

51、  system("cls");</p><p>  printf(" 歡迎使用學(xué)生成績信息管理系統(tǒng)\n\n\n");</p><p>  printf(" 添加學(xué)生信息\n\n");</p><p>  printf("

52、 1 重新添加信息\n");</p><p>  printf(" 2 繼續(xù)添加信息\n");</p><p>  printf(" 0 返回\n\n\n");</p>

53、<p>  printf(" 請選擇:");</p><p>  scanf("%d",&x);</p><p><b>  choice:</b></p><p><b>  switch(x)<

54、/b></p><p><b>  {</b></p><p>  case 1:addnew();break;</p><p>  case 2:addold();break;</p><p>  case 0:break;</p><p>  default:printf("\

55、n 錯(cuò)誤的選擇,請重新選擇:");</p><p>  goto choice; </p><p><b>  }</b></p><p>  system("cls");</p><p><b>  }</b></p

56、><p>  /*顯示所有學(xué)生的成績*/ </p><p>  void printall()</p><p><b>  {</b></p><p><b>  int a,b;</b></p><p>  FILE *fp,*fp1,*fp2;</p>&l

57、t;p>  system("cls");</p><p>  printf(" 歡迎使用學(xué)生成績信息管理系統(tǒng)\n\n\n");</p><p>  printf(" 全部已錄入學(xué)生信息\n\n");</p><p>  printf("

58、;%-10s%-20s%-50s\n","姓名","學(xué)號(hào)","成績");</p><p>  j=sizeof(struct stu);</p><p>  if((fp=fopen("Ca1.txt","r"))==NULL)</p><p>  {pr

59、intf("\n打開失敗");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  if((fp1=fopen("Ca2.txt","r"))==NULL)</p><p>

60、  {printf("信息寫入失敗");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  if((fp2=fopen("Ca3.txt","r"))==NULL)</p><

61、p>  {printf("信息寫入失敗");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  a=0;</b></p><p>  while(!feof(fp))</p&

62、gt;<p>  {if(fread(&student[a],j,1,fp)==1)</p><p>  {printf("%-10s%-20s%-50s\n",student[a].name,student[a].num,student[a].score);</p><p><b>  a++;</b></p>

63、<p><b>  }</b></p><p><b>  }</b></p><p><b>  a=0;</b></p><p>  while(!feof(fp1))</p><p>  {if(fread(&student[a],j,1,fp1)==

64、1)</p><p>  {printf("%-10s%-20s%-50s\n",student[a].name,student[a].num,student[a].score);</p><p><b>  a++;</b></p><p><b>  }</b></p><p&g

65、t;<b>  }</b></p><p><b>  a=0;</b></p><p>  while(!feof(fp2))</p><p>  {if(fread(&student[a],j,1,fp2)==1)</p><p>  {printf("%-10s%-20s%-

66、50s\n",student[a].name,student[a].num,student[a].score);</p><p><b>  a++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  fclo

67、se(fp);</p><p>  fclose(fp1);</p><p>  fclose(fp2);</p><p>  printf("返回上級請輸入‘0’!\n:");</p><p>  scanf("%d",&b);</p><p><b>  i

68、f(b==0)</b></p><p><b>  {</b></p><p>  system("cls");</p><p><b>  }</b></p><p><b>  }</b></p><p>  3.3

69、姓名學(xué)號(hào)查詢</p><p>  void search()</p><p><b>  {</b></p><p>  int k,b,a;</p><p>  char cx[20];</p><p><b>  FILE *fp;</b></p><

70、p>  system("cls");</p><p>  j=sizeof(struct stu);</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf(" 歡迎使用學(xué)生成績信

71、息管理系統(tǒng)\n\n\n");</p><p>  printf(" 查找已錄入學(xué)生成績信息\n\n");</p><p><b>  k=0;</b></p><p>  if((fp=fopen("Ca1.txt","r"))==NULL)&

72、lt;/p><p><b>  {</b></p><p>  printf("\n打開失敗!");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  printf(&quo

73、t;請輸入學(xué)號(hào)或姓名:\n");</p><p>  scanf("%s",cx);</p><p>  if((cx[0]<'0')||(cx[0]>'9'))</p><p><b>  {a=0;</b></p><p>  while(!

74、feof(fp))</p><p>  {fread(&student[a],j,1,fp);</p><p>  if(strcmp(student[a].name,cx)==0)</p><p><b>  {</b></p><p>  printf("\n\n已查到,該記錄為:\n\n"

75、;);</p><p>  printf("%-10s%-20s%-50s\n","姓名","學(xué)號(hào)","成績");</p><p>  printf("%-10s%-20s%-50s\n",student[a].name,student[a].num,student[a].score);&l

76、t;/p><p><b>  k=1;</b></p><p><b>  }</b></p><p><b>  a++;</b></p><p><b>  }</b></p><p><b>  }</b>&

77、lt;/p><p>  if('0'<=cx[0]<='9')</p><p><b>  {a=0;</b></p><p>  while(!feof(fp))</p><p>  {fread(&student[a],j,1,fp);</p><

78、p>  if(strcmp(student[a].num,cx)==0)</p><p><b>  {</b></p><p>  printf("\n\n已查到,該記錄為:\n\n");</p><p>  printf("%-10s%-20s%-50s\n","姓名",&q

79、uot;學(xué)號(hào)","成績");</p><p>  printf("%-10s%-20s%-50s\n",student[a].name,student[a].num,student[a].score);</p><p><b>  k=1;</b></p><p><b>  }<

80、;/b></p><p><b>  a++;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(!k)</b></p><p>  printf(&qu

81、ot;\n文件中無此人的記錄。");</p><p>  fclose(fp);</p><p>  printf("\n輸入“1”繼續(xù)查找,“0”結(jié)束\n");</p><p>  scanf("%d",&b);</p><p>  system("cls");&

82、lt;/p><p><b>  }</b></p><p>  while(b!=0);</p><p>  system("cls");</p><p><b>  }</b></p><p><b>  3.4 成績查詢</b><

83、;/p><p>  void jgsearch()</p><p><b>  {int b,a;</b></p><p>  char cx[20];</p><p><b>  FILE *fp;</b></p><p>  system("cls");&

84、lt;/p><p>  j=sizeof(struct stu);</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf(" 歡迎使用學(xué)生成績信息管理系統(tǒng)\n\n\n");</p>

85、<p>  printf(" 查找學(xué)生成績信息\n\n");</p><p>  if((fp=fopen("Ca1.txt","r"))==NULL)</p><p><b>  {</b></p><p>  printf("\

86、n打開失敗!");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  printf("請輸入學(xué)生成績:\n");</p><p>  scanf("%s",cx);</p>

87、<p><b>  a=0;</b></p><p>  while(!feof(fp))</p><p><b>  {</b></p><p>  fread(&student[a],j,1,fp);</p><p>  if(strcmp(cx,student[a].sco

88、re)==0)</p><p>  {printf("%-10s%-20s%-50s\n","姓名","學(xué)號(hào)","成績");</p><p>  printf("%-10s%-20s%-50s\n",student[a].name,student[a].num,student[a].sco

89、re);</p><p><b>  }</b></p><p><b>  a++;</b></p><p><b>  }</b></p><p>  fclose(fp);</p><p>  printf("\n輸入“1”繼續(xù)查找,“0

90、”結(jié)束\n");</p><p>  scanf("%d",&b);</p><p>  system("cls");</p><p><b>  }</b></p><p>  while(b!=0);</p><p>  system(

91、"cls");</p><p><b>  }</b></p><p>  3.5 刪除學(xué)生成績信息</p><p>  void del()</p><p><b>  {</b></p><p>  int m=0,k=0,b,a,q,p;</p

92、><p>  char xh[20],wjm[20];</p><p><b>  FILE *fp;</b></p><p>  system("cls");</p><p>  j=sizeof(struct stu);</p><p><b>  do</b&

93、gt;</p><p><b>  {</b></p><p>  printf(" 歡迎使用學(xué)生成績信息管理系統(tǒng)\n\n\n");</p><p>  printf(" 刪除學(xué)生成績信息\n\n");</p><p> 

94、 printf("\n\n存儲(chǔ)文件名有 Ca1.txt Ca2.txt Ca3.txt\n\n");</p><p><b>  k=0;</b></p><p>  printf("\n請輸入學(xué)號(hào):");</p><p>  scanf("%s",xh);</p>

95、;<p>  printf("\n請輸入欲刪除的文件名:");</p><p>  scanf("%s",wjm);</p><p>  if((fp=fopen(wjm,"r"))==NULL)</p><p><b>  {</b></p><p&

96、gt;  printf("\n文件打開失敗!");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  a=0;</b></p><p>  while(!feof(fp))</p&

97、gt;<p><b>  {</b></p><p>  fread(&student[a],j,1,fp); //將文件內(nèi)容輸入到數(shù)組中</p><p><b>  a++;</b></p><p><b>  }</b></p

98、><p>  fclose(fp);</p><p><b>  t=a-1;</b></p><p>  for(a=0;a<=t;a++)</p><p><b>  {</b></p><p>  if(strcmp(xh,student[a].num)==0)<

99、;/p><p><b>  {k=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  if(a==t)</b></p><p>  printf("

100、;\n\n文件中無此人的記錄。");</p><p><b>  }</b></p><p><b>  if(k==1)</b></p><p><b>  {</b></p><p>  printf("\n\n已查到,該記錄為:\n\n");

101、</p><p>  printf("%-10s%-20s%-50s","姓名","學(xué)號(hào)","成績");</p><p>  printf("%-10s%-20s%-50s",student[a].name,student[a].num,student[a].score);</p>

102、;<p>  printf("\n確實(shí)要?jiǎng)h除記錄,請按1;不刪除記錄,請按0:\n");</p><p>  scanf("%d",&m);</p><p><b>  if(m)</b></p><p><b>  {</b></p><p

103、>  for(p=a,q=a+1;p<t,q<=t;q++,p++)</p><p><b>  {</b></p><p>  strcpy(student[p].name,student[q].name);</p><p>  strcpy(student[p].num,student[q].num);</p>

104、<p>  strcpy(student[p].score,student[q].score);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if((fp=fopen(

105、wjm,"w"))==NULL)</p><p><b>  {</b></p><p>  printf("\n文件打開失敗!");</p><p><b>  exit(0);</b></p><p><b>  }</b></

106、p><p>  for(a=0;a<t;a++)</p><p>  fwrite(&student[a],j,1,fp);</p><p><b>  if(m)</b></p><p>  printf("\n刪除成功!");</p><p>  fclose(f

107、p);</p><p>  printf("\n輸入“1”繼續(xù),“0”結(jié)束\n");</p><p>  scanf("%d",&b);</p><p>  system("cls");</p><p><b>  }</b></p>&l

108、t;p>  while(b!=0);</p><p>  system("cls");</p><p><b>  }</b></p><p>  3.6 修改學(xué)生成績信息</p><p>  void modify()</p><p><b>  {</

109、b></p><p>  int k=0,b,a;</p><p>  char xh[20],wjm[20];</p><p><b>  FILE *fp;</b></p><p>  system("cls");</p><p>  j=sizeof(struct

110、stu);</p><p><b>  do</b></p><p><b>  {</b></p><p>  printf(" 歡迎使用學(xué)生成績信息管理系統(tǒng)\n\n\n");</p><p>  printf("

111、 修改學(xué)生成績信息\n\n");</p><p>  printf("\n\n存儲(chǔ)文件名有 Ca1.txt Ca2.txt Ca3.txt\n\n");</p><p>  printf("\n請輸入學(xué)號(hào):");</p><p>  scanf("%s",xh);</p>

112、;<p>  printf("\n請輸入欲修改文件名:");</p><p>  scanf("%s",wjm);</p><p>  if((fp=fopen(wjm,"r+"))==NULL)</p><p><b>  {</b></p><p&

113、gt;  printf("\n打開失敗!");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  a=0;</b></p><p>  while(!feof(fp))</p>

114、;<p>  {fread(&student[a],j,1,fp);</p><p><b>  a++;</b></p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  t=a-1;</b><

115、/p><p>  for(a=0;a<=t;a++)</p><p><b>  {</b></p><p>  if(strcmp(xh,student[a].num)==0)</p><p><b>  {</b></p><p><b>  k=1;<

116、/b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  if(a==t)</b></p><p>  printf("\n\n文件中無此人的記錄。");</p><

117、;p><b>  }</b></p><p><b>  if(k==1)</b></p><p><b>  {</b></p><p>  printf("\n\n已查到,該記錄為:\n\n");</p><p>  printf("%-

118、10s%-20s%-50s","姓名","學(xué)號(hào)","成績");</p><p>  printf("%-10s%-20s%-50s",student[a].name,student[a].num,student[a].score);</p><p>  printf("\n請輸入新的姓名:&

119、quot;);</p><p>  scanf("%s",student[a].name);</p><p>  printf("\n請輸入新的學(xué)號(hào):");</p><p>  scanf("%s",student[a].num);</p><p>  printf("\n

120、請輸入新的成績:");</p><p>  scanf("%s",student[a].score);</p><p>  if((fp=fopen(wjm,"w"))==NULL)</p><p><b>  {</b></p><p>  printf("\

121、n文件打開失敗!");</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  for(a=0;a<t;a++)</p><p>  fwrite(&student[a],j,1,fp);</p><

122、;p>  printf("\n修改成功!");</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  printf("\n輸入“1”繼續(xù),“0”結(jié)束\n");</p><p>  scanf("%d",&a

123、mp;b);</p><p>  system("cls");</p><p><b>  }</b></p><p>  while(b!=0);</p><p>  system("cls");</p><p><b>  }</b>

124、;</p><p><b>  4 功能測試</b></p><p><b>  4.1 菜單測試</b></p><p>  學(xué)生成績管理系統(tǒng)運(yùn)行后的主菜單界面如圖4-1所示。</p><p><b>  圖4-1系統(tǒng)主界面</b></p><p> 

125、 4.2 系統(tǒng)功能測試</p><p><b>  添加學(xué)生信息</b></p><p>  在主菜單按1后,會(huì)顯示圖4-2,再按2添加學(xué)生的信息如圖4-3所示,如果按1的話那么所有以前的保存的信息都將被清除,接著再重新輸入數(shù)據(jù)。</p><p>  圖4-2 學(xué)生信息輸入界面</p><p>  圖4-3 學(xué)生信息輸入

126、界面</p><p>  顯示所有學(xué)生成績信息</p><p>  在系統(tǒng)菜單上面按2,則所有的學(xué)生成績都會(huì)顯示如圖4-4所示。</p><p>  圖4-4 學(xué)生成績?yōu)g覽</p><p><b>  學(xué)號(hào)或姓名查詢</b></p><p>  在主菜單上輸入3,然后在根據(jù)姓名或者學(xué)號(hào),可以查到該

127、同學(xué)的分?jǐn)?shù),如圖4-5和4-6圖所示。</p><p>  圖4-5 根據(jù)學(xué)號(hào)查詢分?jǐn)?shù)</p><p>  圖4-6 根據(jù)姓名查詢分?jǐn)?shù)</p><p><b>  成績查詢</b></p><p>  在主菜單上輸入4,可以得到圖4-7所示,這是根據(jù)分?jǐn)?shù)來確定學(xué)生。</p><p>  圖4-7

128、根據(jù)分?jǐn)?shù)來確定學(xué)生</p><p><b>  刪除學(xué)生成績信息</b></p><p>  在主菜單上按5,選擇需要?jiǎng)h除的對應(yīng)文檔里的該學(xué)生的成績信息,可以得到圖4-8所示。</p><p>  圖4-8 刪除學(xué)生信息</p><p><b>  修改學(xué)生的信息</b></p>&l

129、t;p>  在主菜單上按6,選擇需要修改的人的學(xué)號(hào),再進(jìn)行一系列的修改,可以得到圖4-9所示。</p><p>  圖4-9 修改學(xué)生信息</p><p>  5 系統(tǒng)設(shè)計(jì)遇到的問題及解決方法</p><p>  1.*和[ ]在定義時(shí)只是說明作用,不能誤解為運(yùn)算符</p><p>  &、*、[ ]是C語言提供的三種運(yùn)算符,分

130、別是取地址運(yùn)算符、指針運(yùn)算符和下標(biāo)運(yùn)算符,其中,&與*互為逆運(yùn)算。在表達(dá)式中它們的意義很明確,但是在定義中*、[ ]只是起說明作用,不能看作運(yùn)算符。</p><p>  例如:int number=10;</p><p>  Int *pt=&number;</p><p>  Int *pt=a;</p><p>  

131、在這里,我們?nèi)菀妆缓髢蓚€(gè)語句迷惑,之所以迷惑,就是把*當(dāng)作了運(yùn)算符,其實(shí)在這里Int *共同來修飾指針變量pt,定義一個(gè)指向整型變量的指針變量,自然會(huì)把一個(gè)地址&number賦值給pt。因此,上述后面兩個(gè)賦值語句中,第一個(gè)是正確的。</p><p>  2、用整數(shù)值直接給指針賦值</p><p>  指針值就是指針?biāo)赶虻牡刂?,在程序運(yùn)行中,指針的值其實(shí)就是一個(gè)整數(shù)值,但是決不能

132、在程序語句中把一個(gè)整數(shù)值當(dāng)作指針的值直接賦給指針。</p><p>  例如:int num;</p><p><b>  Int *pt;</b></p><p>  num=72781;</p><p><b>  p=num;</b></p><p>  最后一個(gè)語

133、句目的是使指針指向地址72781(十進(jìn)制),編譯時(shí)系統(tǒng)就會(huì)提示這個(gè)語句有錯(cuò)誤。</p><p><b>  3、字符串的讀入</b></p><p>  當(dāng)要求從鍵盤讀入一字符串時(shí),若選用輸入的函數(shù)不當(dāng),也容易造成錯(cuò)誤,而且難以發(fā)現(xiàn)。</p><p>  例如:#include<stdio.h></p><p&g

134、t;<b>  main()</b></p><p>  { char str[20];</p><p>  scanf(“%s”,str);</p><p>  printf(“%s”,str);</p><p><b>  }</b></p><p>  運(yùn)行該程序,從

135、鍵盤鍵入“I love China”字符串,結(jié)果其程序結(jié)果顯示單個(gè)字符I,而不是字符串“I love China”。這說明scanf函數(shù)并沒有讀入整個(gè)字符串,而只讀入了單個(gè)字符I,這是因?yàn)閟canf函數(shù)讀入字符串時(shí),它認(rèn)為字符串的結(jié)束標(biāo)志為空格而不是回車鍵。所以scanf函數(shù)實(shí)際上只能讀入一個(gè)單詞,而不是字符串。</p><p>  正確的讀入字符串的程序如下:</p><p>  #in

136、clude<stdio.h></p><p><b>  main()</b></p><p><b>  {</b></p><p>  char str[20];</p><p>  gets(str);</p><p>  printf(“%s”,str);

137、</p><p><b>  } </b></p><p><b>  6 項(xiàng)目設(shè)計(jì)總結(jié)</b></p><p>  通過C語言編程系統(tǒng),讓我們對C語言有了更深的了解,而不只是單單的在課本中學(xué)到的那些理論,平時(shí)乏味的課程,通過自己動(dòng)手親自編寫,變的生動(dòng)有趣,而在自己動(dòng)手的過程中,出現(xiàn)的問題很多,比理論要難的多,當(dāng)一個(gè)程序?qū)?/p>

138、完以后,經(jīng)常會(huì)有很多錯(cuò)誤而沒法解決。不過,通過幾天的編程,逐漸積攢了一些經(jīng)驗(yàn),有些錯(cuò)誤可以較快看出來。這次實(shí)訓(xùn)有很大的收獲,讓我們對C語言有了更深的認(rèn)識(shí),平時(shí)在課堂上學(xué)到的東西可以自己動(dòng)手編寫,將其轉(zhuǎn)化成一些實(shí)用的技能。如果是一個(gè)程序?qū)懲暌惶庡e(cuò)誤也沒有,會(huì)有種成就感,于是興趣就來了,興趣來了,自然學(xué)的東西也就多了,能把理論變成實(shí)際的技能,讓我們對C語言有了濃厚的興趣和更深層的認(rèn)識(shí)。</p><p>  我們總結(jié)過

139、此次系統(tǒng)的不足之處,比如,它只能記錄一科成績的分?jǐn)?shù),還有它不能把所有的人按分?jǐn)?shù)排名排序等,這些都是我們沒有做到的,有很大一部分原因是因?yàn)槲覀儧]有很好的掌握這部分內(nèi)容,所有導(dǎo)致系統(tǒng)缺少該部分功能,我們以后有時(shí)間的話,一定會(huì)好好完善這些不足之處的。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 吉順如《C程序設(shè)計(jì)習(xí)題與課程設(shè)計(jì)指導(dǎo)》電子工業(yè)出版

溫馨提示

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

評論

0/150

提交評論