數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  《算法與數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)》</p><p><b>  綜合實(shí)驗(yàn)</b></p><p>  課程設(shè)計(jì)名稱:學(xué)生成績(jī)管理系統(tǒng) </p><p><b>  學(xué)生成績(jī)管理系統(tǒng)</b></p><p><b>  問(wèn)題的描述和分析</

2、b></p><p><b>  1.1問(wèn)題的描述</b></p><p>  隨著社會(huì)的發(fā)展和經(jīng)濟(jì)時(shí)代的到來(lái),管理信息系統(tǒng)在各行各業(yè)都越來(lái)越重要,特別是教育事業(yè)。在經(jīng)濟(jì)發(fā)達(dá)的國(guó)家,許多教育機(jī)構(gòu)(如公辦、私立、培訓(xùn)機(jī)構(gòu)等),都投入了大量的資金開(kāi)發(fā)MIS系統(tǒng),以求在將來(lái)激烈的競(jìng)爭(zhēng)中立于不敗之地。在我國(guó),民辦教育是新興的一個(gè)行業(yè),是隨著改革開(kāi)放和市場(chǎng)經(jīng)濟(jì)的發(fā)展根據(jù)中

3、國(guó)特有的國(guó)情發(fā)展起來(lái)的,特別是中國(guó)民辦教育促進(jìn)法的出臺(tái),從一定的程度上規(guī)范和促進(jìn)了中國(guó)民辦教育的發(fā)展,這是一個(gè)很有發(fā)展前途的新興產(chǎn)業(yè),但是同發(fā)達(dá)國(guó)家相比,我國(guó)的民辦教育行業(yè)的信息技術(shù)的應(yīng)用程度還很低,只有在大城市中發(fā)展較早、規(guī)模較大的民辦院校中才使用計(jì)算機(jī)進(jìn)行大規(guī)模操作,從各方面提高工作效率,取得良好的社會(huì)和經(jīng)濟(jì)效益,而一些新興的、規(guī)模較小的民辦機(jī)構(gòu)還沒(méi)有全部具備這種功能。因此可見(jiàn),隨著我國(guó)民辦教育的迅速發(fā)展,信息技術(shù)在其上的應(yīng)用會(huì)更加

4、地廣泛和深入。</p><p>  1.2現(xiàn)有系統(tǒng)存在問(wèn)題的分析  有的學(xué)校根本就沒(méi)有系統(tǒng),還是手工操作計(jì)算機(jī)日新月異的發(fā)展,但是有的領(lǐng)導(dǎo)只見(jiàn)眼前利益,不關(guān)心,甚至不敢嘗試新興的事物。手工操作還十分落后,效率極低,成本很大,以后的社會(huì)是信息的社會(huì),信息只有快,準(zhǔn),精才能發(fā)揮其價(jià)值。   所以機(jī)器代替人力是必然的歷史發(fā)展趨勢(shì),只有領(lǐng)導(dǎo)的重視和支持才能從人工操作改為計(jì)算機(jī)的自動(dòng)化系統(tǒng)。人工操作

5、必將被計(jì)算機(jī)代替。   有些學(xué)校雖使用了計(jì)算機(jī),甚至管理系統(tǒng),但是仍然存在很多問(wèn)題,問(wèn)題一日不解決,效率就一日提不上去。   還有,有的系統(tǒng)很不完善到處是漏洞,可以說(shuō)是千瘡百孔,這樣極不完善的系統(tǒng)能有保障嗎?所以制作一個(gè)完善的學(xué)生管理系統(tǒng)是必不可少的。</p><p><b>  二、數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)</b></p><p>  struct p

6、erson</p><p><b>  {</b></p><p>  char name[20];</p><p><b>  long num;</b></p><p>  float math;</p><p>  float English;</p>&

7、lt;p>  float chinese;</p><p>  float average;</p><p>  float sum;</p><p><b>  }student;</b></p><p><b>  三、模塊:</b></p><p>  學(xué)生成績(jī)管

8、理系統(tǒng)模塊</p><p><b>  四、算法的設(shè)計(jì)</b></p><p>  1.在此成績(jī)管理系統(tǒng)中,要求用戶輸入的只是有字符型和數(shù)值型數(shù)據(jù),所以我設(shè)計(jì)了下面函數(shù)來(lái)處理并對(duì)輸出的數(shù)據(jù)進(jìn)行檢驗(yàn)。</p><p><b>  int N=0;</b></p><p><b>  Ente

9、r()</b></p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p><b>  char ch;</b></p><p><b>  char ch2;</b></p>

10、<p>  char numstr[20];</p><p>  struct person student2;</p><p><b>  clrscr();</b></p><p>  fp=fopen("jie.txt","ab");</p><p>  if(fp

11、==NULL)</p><p><b>  {</b></p><p>  printf("can't open this file.\n");</p><p>  printf("wait for a second with patience.\nthe system is exiting.\n"

12、;);</p><p><b>  getch();</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b&g

13、t;  {</b></p><p><b>  do{</b></p><p>  printf("your name:");</p><p>  gets(student.name);</p><p>  printf("\nyour num:");</p>

14、;<p>  gets(numstr);</p><p>  student.num=atol(numstr);</p><p>  printf("\nyour math:");</p><p>  gets(numstr);</p><p>  student.math=atof(numstr);<

15、/p><p>  printf("\nyour English:");</p><p>  gets(numstr);</p><p>  student.English=atof(numstr);</p><p>  printf("\nyour chinese:");</p><p&

16、gt;  gets(numstr);</p><p>  student.chinese=atof(numstr);</p><p>  student.sum=student.chinese+student.math+student.English;</p><p>  student.average=student.sum/3;</p><p

17、>  fwrite(&student,sizeof(struct person),1,fp);</p><p><b>  N++;</b></p><p>  printf("Do you continue adding other students(Y/N)?\n");</p><p>  ch=getch

18、ar();</p><p>  getchar();</p><p>  }while(ch=='y'||ch=='Y');</p><p><b>  }</b></p><p>  printf("Show all(Y/N)?\n");</p><

19、;p>  ch2=getchar();</p><p>  getchar();</p><p>  if(ch2=='y'||ch2=='Y')</p><p>  Listall();</p><p>  fclose(fp);</p><p>  return_confirm

20、();</p><p><b>  clrscr();</b></p><p><b>  }</b></p><p><b>  2.查詢學(xué)生記錄</b></p><p>  當(dāng)用戶執(zhí)行此查詢?nèi)蝿?wù)時(shí),系統(tǒng)會(huì)提示用戶進(jìn)行查詢字段的選擇,即按學(xué)號(hào)或按姓名進(jìn)行查詢。若此學(xué)生記錄存在

21、,則會(huì)打印輸出此學(xué)生記錄的信息。</p><p><b>  Search()</b></p><p><b>  { </b></p><p>  char choice;</p><p><b>  char ch1;</b></p><p>&

22、lt;b>  char ch2;</b></p><p><b>  char ch3;</b></p><p><b>  char ch4;</b></p><p>  char name[20];</p><p><b>  long num;</b>&

23、lt;/p><p>  char numstr[20];</p><p><b>  clrscr();</b></p><p>  printf("***WAYS OF SEARCHING***\n");</p><p>  printf("--------------------------

24、-\n");</p><p>  printf("** 1.name **\n"); </p><p>  printf("** 2.num **\n");</p><p>  printf("-----------------------

25、-----\n");</p><p>  printf("give your choice:\n");</p><p>  choice=getchar();</p><p>  getchar();</p><p>  while(choice>'2'||choice<'1&

26、#39;)</p><p><b>  {</b></p><p>  printf("Sorry.your choice is wrong.\nplease give a correct one:\n");</p><p>  choice=getchar();</p><p>  getchar(

27、);</p><p><b>  }</b></p><p>  3.根據(jù)姓名或?qū)W號(hào)進(jìn)行查找</p><p>  switch(choice)</p><p><b>  {</b></p><p>  case '1':do{ </p><

28、;p><b>  Loop1:</b></p><p>  printf("input the name of students you want to search:\n");</p><p>  gets(name);</p><p>  Search1(name);</p><p>  p

29、rintf("GO ON SEARCHING BY NAEM(Y/N)?\n");</p><p>  ch2=getchar();</p><p>  getchar();</p><p>  }while(ch2=='y'||ch2=='Y');</p><p>  printf(&qu

30、ot;Search by other ways(Y/N)?\n");</p><p>  ch3=getchar();</p><p>  getchar();</p><p>  if(ch3=='y'||ch3=='Y')</p><p>  goto Loop2;</p><

31、p><b>  break; </b></p><p><b>  case '2':</b></p><p><b>  do{</b></p><p><b>  Loop2:</b></p><p>  printf(&qu

32、ot;input the num of students you want to search:\n");</p><p>  gets(numstr);</p><p>  num=atol(numstr);</p><p>  Search2(num);</p><p>  printf("GO ON SEARCHIN

33、G BY NUM(Y/N)?\n");</p><p>  ch1=getchar();</p><p>  getchar();</p><p>  }while(ch1=='y'||ch1=='Y'); </p><p><b>  }</b></p>

34、;<p><b>  }</b></p><p>  Search2(long num)</p><p><b>  {</b></p><p>  FILE *fp;</p><p><b>  char ch;</b></p><p>

35、;  int flag=0;</p><p><b>  int t;</b></p><p><b>  clrscr();</b></p><p>  fp=fopen("jie.txt","rb");</p><p>  if(fp==NULL)<

36、/p><p><b>  {</b></p><p>  printf("can't open this file.\n");</p><p>  printf("wait for a second with patience.\nthe system is exiting.\n");</p&g

37、t;<p><b>  getch();</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b

38、></p><p><b>  flag=0;</b></p><p>  t=0; </p><p>  while(fread(&student,sizeof(struct person),1,fp))</p><p>  if(num==student.num)</p>&l

39、t;p><b>  {</b></p><p>  printf("name\t\tnum\tchinese\tEnglish\tmath\sum\taverage\n");</p><p>  printf("%-10s%-6ld%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f\n",student.name

40、,student.num,student.chinese,student.English,student.math,student.sum,student.average);</p><p><b>  t=1;</b></p><p><b>  break;</b></p><p><b>  }</b

41、></p><p><b>  if(t==0)</b></p><p>  printf("Sorry.the student you are searching not existed.\n");</p><p>  rewind(fp);</p><p><b>  }</

42、b></p><p>  fclose(fp);</p><p><b>  }</b></p><p>  Search1(char *name)</p><p><b>  {</b></p><p>  FILE *fp;</p><p>

43、;<b>  char ch;</b></p><p>  int flag=0;</p><p><b>  int t;</b></p><p><b>  clrscr();</b></p><p>  fp=fopen("jie.txt","

44、;rb");</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  printf("can't open this file.\n");</p><p>  printf("wait for a second with p

45、atience.\nthe system is exiting.\n");</p><p><b>  getch();</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  els

46、e</b></p><p><b>  {</b></p><p><b>  flag=0;</b></p><p>  t=0; </p><p>  while(fread(&student,sizeof(struct person),1,fp))<

47、;/p><p>  if((strcmp(name,student.name))==0)</p><p><b>  {</b></p><p>  printf("name\t\tnum\tchinese\tEnglish\tmath\sum\taverage\n");</p><p>  printf

48、("%-10s%-6ld%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f\n",student.name,student.num,student.chinese,student.English,student.math,student.sum,student.average);</p><p><b>  t=1;</b></p><p&g

49、t;<b>  break;</b></p><p><b>  }</b></p><p><b>  if(t==0)</b></p><p>  printf("Sorry.the student you are searching not existed.\n");<

50、/p><p>  rewind(fp);</p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }</b></p><p><b>  Delete()</b></p><p>

51、;<b>  {</b></p><p><b>  FILE *fp;</b></p><p>  struct person student1[30],student2[30];</p><p><b>  int i;</b></p><p><b>  int

52、 k;</b></p><p><b>  int j;</b></p><p><b>  int flag;</b></p><p><b>  char ch1;</b></p><p>  char name[20];</p><p>

53、;<b>  char ch;</b></p><p><b>  char ch2;</b></p><p><b>  clrscr();</b></p><p>  fp=fopen("jie.txt","rb+");</p><p&g

54、t;  if(fp==NULL)</p><p><b>  {</b></p><p>  printf("can't open this file.\n");</p><p>  printf("wait for a second with patience.\nthe system is exitin

55、g.\n");</p><p><b>  getch();</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  else</b></p><p&g

56、t;<b>  {</b></p><p><b>  do{</b></p><p><b>  i=0;</b></p><p><b>  j=0;</b></p><p><b>  flag=0;</b></p>

57、<p>  printf("input the name of students you are going to delete.\n");</p><p>  scanf("%s",name);</p><p>  while(fread(&student,sizeof(struct person),1,fp)==1)<

58、/p><p><b>  {</b></p><p>  if((strcmp(name,student.name))!=0)</p><p><b>  {</b></p><p>  student2[j]=student;</p><p><b>  j++;&l

59、t;/b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  flag=1;</b></p><p>  printf(&

60、quot;name\t\t\tnum\tchinese\t\tEnglish\t\tmath\tsum\taverage\n");</p><p>  printf("%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%8.2f\n",student.name,student.num,student.chinese,student.English,student.math,

61、student.sum,student.average);</p><p>  printf("Delete(Y/N)?\n");</p><p>  ch1=getchar();</p><p>  getchar();</p><p>  toupper(ch);</p><p>  if(ch

62、=='N')</p><p>  goto Loop; </p><p><b>  } </b></p><p><b>  }</b></p><p>  printf("j=%d\n",j);</p><p><b> 

63、 k=j; </b></p><p><b>  i=0; </b></p><p>  fclose(fp);</p><p>  if(flag==0)</p><p>  printf("Sorry.the student you are searching not existed.\n&

64、quot;);</p><p>  if(flag==1)</p><p>  printf("Congratulation!you succeed!!!\n");</p><p>  fp=fopen("jie.txt","wb+");</p><p>  if(fp==NULL)

65、</p><p><b>  {</b></p><p>  printf("can't open this file.\n");</p><p>  printf("wait for a second with patience.\nthe system is exiting.\n");<

66、/p><p><b>  getch();</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {&l

67、t;/b></p><p><b>  i=0;</b></p><p><b>  do{</b></p><p>  fwrite(&student2[i],sizeof(struct person),1,fp);</p><p><b>  i++;</b>

68、</p><p>  }while(i<k);</p><p><b>  }</b></p><p><b>  Loop:</b></p><p>  getchar(); </p><p>  printf("Go on(Y/N)?\n");&

69、lt;/p><p>  ch=getchar();</p><p>  getchar();</p><p>  }while(ch=='y'||ch=='Y');</p><p>  printf("Show all(Y/N)?\n");</p><p>  ch2=g

70、etchar();</p><p>  getchar();</p><p>  if(ch2=='y'||ch2=='Y')</p><p><b>  {</b></p><p>  rewind(fp);</p><p>  printf("name

71、\t\t\tnum\tchinese\t\tEnglish\t\tmath\tsum\taverage\n");</p><p>  while(fread(&student,sizeof(struct person),1,fp))</p><p><b>  { </b></p><p>  printf("

72、;%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%8.2f\n",student.name,student.num,student.chinese,student.English,student.math,student.sum,student.average); </p><p><b>  }</b></p><p><b> 

73、 }</b></p><p><b>  }</b></p><p>  fclose(fp);</p><p>  return_confirm();</p><p><b>  }</b></p><p><b>  4.修改學(xué)生記錄</b&g

74、t;</p><p>  在修改學(xué)生記錄操作中,系統(tǒng)會(huì)先按輸入的學(xué)號(hào)或姓名查找該記錄,然后提示用戶修改學(xué)號(hào)或姓名之外的值,但學(xué)號(hào)或姓名不能修改。</p><p><b>  Revise()</b></p><p><b>  {</b></p><p><b>  FILE *fp;&l

75、t;/b></p><p><b>  char ch;</b></p><p><b>  char ch1;</b></p><p>  long offset=sizeof(struct person);</p><p>  int flag=0;</p><p>

76、;  char numstr[20];</p><p>  char name[20];</p><p><b>  clrscr();</b></p><p>  fp=fopen("jie.txt","rb+");</p><p>  if(fp==NULL)</p>

77、;<p><b>  {</b></p><p>  printf("can't open this file.\n");</p><p>  printf("wait for a second with patience.\nthe system is exiting.\n");</p>&

78、lt;p><b>  getch();</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b>&

79、lt;/p><p><b>  again:</b></p><p>  printf("name of rivesing student:\n");</p><p>  gets(name);</p><p><b>  do{</b></p><p>&l

80、t;b>  flag=0;</b></p><p>  fread(&student,sizeof(struct person),1,fp);</p><p>  if((strcmp(name,student.name))==0)</p><p><b>  {</b></p><p><

81、;b>  flag=1;</b></p><p>  printf("the following is information of student being deleted:\n");</p><p>  printf("name\t\tnum\tmath\tchinese\tEnglish\tsum\taverage\n");

82、</p><p>  printf("%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%8.2f\n",student.name,student.num,student.chinese,student.English,student.math,student.sum,student.average);</p><p><b>  do{</b

83、></p><p>  printf("***informations for revising***\n");</p><p>  printf("====================================\n");</p><p>  printf("# 1.name 2.n

84、um #\n");</p><p>  printf("# 3.math 4.English #\n");</p><p>  printf("# 5.chinese 6.total #\n");</p><p>  printf(&

85、quot;====================================\n");</p><p>  printf("give a choice:\n");</p><p>  ch=getchar();</p><p>  getchar();</p><p>  while(ch>'

86、6'||ch<'1')</p><p><b>  {</b></p><p>  printf("Sorry.you put is wrong.\nplease input another choice:\n");</p><p>  ch=getchar();</p><

87、p>  getchar();</p><p><b>  }</b></p><p>  switch(ch)</p><p><b>  {</b></p><p>  case '1':ass_revise("name");</p><

88、;p>  gets(student.name);</p><p><b>  break;</b></p><p>  case '2':ass_revise("num");</p><p>  gets(numstr);</p><p>  student.num=atol(n

89、umstr);</p><p><b>  break;</b></p><p>  case '3':ass_revise("math");</p><p>  gets(numstr);</p><p>  student.math=atof(numstr);</p>

90、<p><b>  break;</b></p><p>  case '4':ass_revise("English");</p><p>  gets(numstr);</p><p>  student.English=atof(numstr);</p><p>&l

91、t;b>  break;</b></p><p>  case '5':ass_revise("chinese");</p><p>  gets(numstr);</p><p>  student.chinese=atof(numstr);</p><p><b>  bre

92、ak;</b></p><p>  case '6':ass_revise("total");</p><p>  gets(student.name);</p><p>  ass_revise("num");</p><p>  gets(numstr);</p&g

93、t;<p>  student.num=atol(numstr);</p><p>  ass_revise("math");</p><p>  gets(numstr);</p><p>  student.math=atof(numstr);</p><p>  ass_revise("Eng

94、lish");</p><p>  gets(numstr);</p><p>  student.English=atof(numstr);</p><p>  ass_revise("chinese");</p><p>  gets(numstr);</p><p>  studen

95、t.chinese=atof(numstr);</p><p><b>  }</b></p><p>  student.sum=student.chinese+student.math+student.English;</p><p>  student.average=student.sum/3;</p><p>

96、  printf("Continue revising the same student(Y/N)?\n");</p><p>  ch1=getchar();</p><p>  getchar();</p><p>  }while(ch=='y'||ch=='Y');</p><p>

97、  fseek(fp,-offset,1);</p><p>  fwrite(&student,sizeof(struct person),1,fp);</p><p>  printf("the following is information of student had been revised:\n");</p><p>  p

98、rintf("name\t\tnum\tmath\tchinese\tEnglish\tsum\taverage\n");</p><p>  printf("%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%8.2f\n",student.name,student.num,student.chinese,student.English,student.math

99、,student.sum,student.average);</p><p>  printf("Congratulation!you succeed!!!\n");</p><p><b>  break;</b></p><p><b>  }</b></p><p>  }

100、while(fread(&student,sizeof(struct person),1,fp));</p><p>  rewind(fp);</p><p>  if(flag==0)</p><p>  printf("Sorry.the student of reving not existed.\n");</p>

101、<p>  printf("GO ON Revising(Y/N)?\n");</p><p>  ch1=getchar();</p><p>  getchar();</p><p>  if(ch1=='y'||ch1=='Y')</p><p>  goto again;&

102、lt;/p><p><b>  }</b></p><p>  fclose(fp);</p><p>  return_confirm();</p><p><b>  clrscr();</b></p><p><b>  }</b></p>

103、<p>  5.對(duì)學(xué)生記錄進(jìn)行排序Order()</p><p><b>  {</b></p><p>  FILE *fp; </p><p><b>  char ch;</b></p><p><b>  char ch2;</b></p&g

104、t;<p><b>  int k;</b></p><p>  float a[30],b[30],c[30],d[30];</p><p>  struct person student1[30];</p><p><b>  int i;</b></p><p><b>

105、;  char ch1;</b></p><p>  fp=fopen("jie.txt","rb");</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  printf("can't open t

106、his file.\n");</p><p>  printf("wait for a second with patience.\nthe system is exiting.\n");</p><p><b>  getch();</b></p><p><b>  exit(0);</b>

107、;</p><p><b>  }</b></p><p>  rewind(fp);</p><p><b>  i=0;</b></p><p>  while(fread(&student1[i],sizeof(struct person),1,fp))</p><

108、p><b>  i++;</b></p><p><b>  k=i; </b></p><p><b>  do{</b></p><p>  for(i=0;i<k;i++)</p><p><b>  {</b></p>

109、<p>  a[i]=student1[i].math;</p><p>  b[i]=student1[i].English;</p><p>  c[i]=student1[i].chinese;</p><p>  d[i]=student1[i].average;</p><p><b>  } </b

110、></p><p>  printf(" ***WAYS OF ORDER*** \n"); </p><p>  printf("========================\n");</p><p>  printf("*1.math 2.English*\n");<

111、;/p><p>  printf("*3.chinese 4.average*\n");</p><p>  printf("=========================\n");</p><p>  printf("please give a choice:\n");</p><

112、;p>  ch=getchar();</p><p>  getchar();</p><p>  while(ch<'1'||ch>'4')</p><p><b>  {</b></p><p>  printf("Sorry.the date you in

113、put is wrong.\nplease give another choice:\n");</p><p>  ch=getchar();</p><p>  getchar();</p><p><b>  }</b></p><p>  switch(ch)</p><p>&l

114、t;b>  {</b></p><p>  case '1':Order1(a);</p><p><b>  break;</b></p><p>  case '2':Order1(b);</p><p><b>  break;</b><

115、/p><p>  case '3':Order1(c);</p><p><b>  break;</b></p><p>  case '4':Order1(d);</p><p><b>  break;</b></p><p><b&g

116、t;  }</b></p><p>  printf("Congratulation!you succeed!!!\n"); </p><p>  printf("Go on ordering(Y/N)?\n");</p><p>  ch1=getchar();</p><p>  ge

117、tchar();</p><p>  }while(ch1=='y'||ch=='Y');</p><p>  printf("Show all(Y/N)?\n");</p><p>  ch2=getchar();</p><p>  getchar();</p><p

118、>  if(ch2=='y'||ch2=='Y')</p><p><b>  {</b></p><p>  rewind(fp);</p><p>  printf("name\t\t\tnum\tchinese\t\tEnglish\t\tmath\tsum\taverage\n"

119、);</p><p>  while(fread(&student,sizeof(struct person),1,fp))</p><p><b>  { </b></p><p>  printf("%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%8.2f\n",student.name,s

120、tudent.num,student.chinese,student.English,student.math,student.sum,student.average); </p><p><b>  }</b></p><p><b>  }</b></p><p>  fclose(fp);</p>&

121、lt;p>  return_confirm();</p><p><b>  }</b></p><p>  Order1(float *p)</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p

122、><b>  int i=0;</b></p><p><b>  int k;</b></p><p><b>  int j;</b></p><p>  struct person student2;</p><p>  struct person student1

123、[30];</p><p><b>  clrscr();</b></p><p>  fp=fopen("jie.txt","r+");</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p&

124、gt;  printf("can't open this file.\n");</p><p>  printf("wait for a second with patience.\nthe system is exiting.\n");</p><p><b>  getch();</b></p><

125、;p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  while(fread(&student1[i],s

126、izeof(struct person),1,fp))</p><p><b>  i++;</b></p><p><b>  k=i;</b></p><p><b>  i=0;</b></p><p>  while(i<k)</p><p&g

127、t;<b>  {</b></p><p>  for(j=i+1;j<k;j++)</p><p>  if(p[i]<p[j])</p><p><b>  {</b></p><p>  student2=student1[i];</p><p>  stu

128、dent1[i]=student1[j];</p><p>  student1[j]=student2;</p><p><b>  }</b></p><p><b>  i++;</b></p><p><b>  }</b></p><p>  

129、rewind(fp); </p><p>  for(i=0;i<k;i++)</p><p>  fwrite(&student1[i],sizeof(struct person),1,fp);</p><p><b>  }</b></p><p>  fclose(fp);</p&

130、gt;<p><b>  }</b></p><p><b>  6.顯示學(xué)生記錄</b></p><p>  由于記錄顯示操作經(jīng)常進(jìn)行,所以我將這分由獨(dú)立的函數(shù)來(lái)實(shí)現(xiàn),減少代碼的重復(fù)。</p><p><b>  Listall()</b></p><p>&l

131、t;b>  {</b></p><p><b>  FILE *fp;</b></p><p><b>  char ch;</b></p><p>  struct person student1[30];</p><p><b>  int i;</b>&

132、lt;/p><p><b>  int k;</b></p><p>  fp=fopen("jie.txt","r");</p><p>  if(fp==NULL)</p><p><b>  {</b></p><p>  print

133、f("can't open this file.\n");</p><p>  printf("wait for a second with patience.\nthe system is exiting.\n");</p><p><b>  getch();</b></p><p><

134、b>  exit(0);</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  do{ </b></p><p

135、>  rewind(fp);</p><p>  printf("name\t\t\tnum\tchinese\t\tEnglish\t\tmath\tsum\taverage\n");</p><p>  while(fread(&student,sizeof(struct person),1,fp))</p><p><b

136、>  { </b></p><p>  printf("%-10s%-6ld%8.2f%8.2f%8.2f%8.2f%8.2f\n",student.name,student.num,student.chinese,student.English,student.math,student.sum,student.average); </p><p

137、><b>  }</b></p><p>  printf("GO ON(Y/N)?\n");</p><p>  ch=getchar();</p><p>  getchar();</p><p>  }while(ch=='y'||ch=='Y');<

138、/p><p><b>  }</b></p><p>  fclose(fp);</p><p>  return_confirm();</p><p><b>  }</b></p><p><b>  四、具體程序的實(shí)現(xiàn)</b></p>&

139、lt;p>  #include"stdio.h"</p><p>  #include"string.h"</p><p>  #include"stdlib.h"</p><p>  #include"ctype.h"</p><p>  struct p

140、erson</p><p><b>  {</b></p><p>  char name[20];</p><p><b>  long num;</b></p><p>  float math;</p><p>  float English;</p>&

141、lt;p>  float chinese;</p><p>  float average;</p><p>  float sum;</p><p><b>  }student;</b></p><p><b>  int N=0;</b></p><p><

142、b>  Enter()</b></p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p><b>  char ch;</b></p><p><b>  char ch2;</b>&

143、lt;/p><p>  char numstr[20];</p><p>  struct person student2;</p><p><b>  clrscr();</b></p><p>  fp=fopen("jie.txt","ab");</p><p

144、>  if(fp==NULL)</p><p><b>  {</b></p><p>  printf("can't open this file.\n");</p><p>  printf("wait for a second with patience.\nthe system is exit

145、ing.\n");</p><p><b>  getch();</b></p><p><b>  exit(0);</b></p><p><b>  }</b></p><p><b>  else</b></p><p

146、><b>  {</b></p><p><b>  do{</b></p><p>  printf("your name:");</p><p>  gets(student.name);</p><p>  printf("\nyour num:"

147、);</p><p>  gets(numstr);</p><p>  student.num=atol(numstr);</p><p>  printf("\nyour math:");</p><p>  gets(numstr);</p><p>  student.math=atof(n

148、umstr);</p><p>  printf("\nyour English:");</p><p>  gets(numstr);</p><p>  student.English=atof(numstr);</p><p>  printf("\nyour chinese:");</p&

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論