c語言課程設計----學生成績管理系統(tǒng) (2)_第1頁
已閱讀1頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b> ?。谜Z言課程設計報告</b></p><p>  題 目_學生成績管理系統(tǒng)______</p><p>  學生編號_ ___________</p><p>  學生姓名_ _____________</p><p>  班 級 </p

2、><p>  指導教師__ _ __ _____</p><p>  2009年 12月</p><p>  一. 課程設計目的和要求</p><p>  (一). 課程設計目的</p><p>  本課程設計是重要的實踐性環(huán)節(jié)之一,是在學生學習完《程序設計語言(C)》課程后進行的一次全面的綜合練習。本課程

3、設計的目的和任務:</p><p>  1. 鞏固和加深學生對C語言課程的基本知識的理解和掌握</p><p>  2. 掌握C語言編程和程序調(diào)試的基本技能</p><p>  3. 利用C語言進行基本的軟件設計</p><p>  4. 掌握書寫程序設計說明文檔的能力</p><p>  5. 提高運用C語言解決實際

4、問題的能力</p><p>  (二). 課程設計要求</p><p>  1. 分析課程設計題目的要求</p><p>  2. 寫出詳細設計說明</p><p>  3. 編寫程序代碼,調(diào)試程序使其能正確運行</p><p>  4. 設計完成的軟件要便于操作和使用</p><p>  4

5、. 設計完成后提交課程設計報告</p><p>  二. 課程設計任務內(nèi)容</p><p>  設計一個學生成績管理系統(tǒng)。</p><p><b>  系統(tǒng)功能:</b></p><p>  1)具備對學生基礎數(shù)據(jù)的維護功能(添加、刪除、修改)</p><p>  2)具備對課程基礎數(shù)據(jù)的維護功能

6、(添加、刪除、修改)</p><p>  3)具備對學生成績數(shù)據(jù)的維護功能(添加、刪除、修改)</p><p>  4) 具備對成績的查詢功能(按學號、姓名、或課程名查詢成績,排序等 )</p><p>  5) 具備對成績的統(tǒng)計功能(最高分,最低分,平均分,及格率等)</p><p><b>  6) 采用菜單界面</b

7、></p><p><b>  三. 總體設計說明</b></p><p><b>  1 工程設計說明</b></p><p> ?。üこ讨杏心男┪募M成,各有什么作用)</p><p>  該工程文件中有student.h, studentmain.c, student.c, cour

8、se.c, scgrade.c query.c #c。student.h是頭文件,主要存放一些其他函數(shù)共用的東西,比如結(jié)構(gòu)體之類的。Studentmain.c存放main函數(shù)主菜單程序。其他幾個是存放的實現(xiàn)各個功能的函數(shù)。另外,還有STUDENT.DAT,COURSE.DAT,GRADE.DAT三個文件,主要存放學生,課程,成績的信息的。還有一個TEMP.DAT文件,用于暫時存放數(shù)據(jù)。</p><p

9、><b>  2 菜單結(jié)構(gòu)設計</b></p><p><b>  (列出各級菜單)</b></p><p><b>  3 數(shù)據(jù)結(jié)構(gòu)設計</b></p><p> ?。ㄈ齻€數(shù)據(jù)文件用到的的結(jié)構(gòu)定義)</p><p><b>  學生結(jié)構(gòu)體:</b>

10、</p><p>  struct student{</p><p><b>  long sno;</b></p><p>  char sname[20];</p><p>  char sclass[20];</p><p><b>  };</b></p>

11、<p><b>  課程結(jié)構(gòu)體:</b></p><p>  struct course{</p><p><b>  int cno;</b></p><p>  char cname[30];</p><p><b>  };</b></p>&

12、lt;p><b>  成績結(jié)構(gòu)體:</b></p><p>  struct scgrade{</p><p><b>  long sno;</b></p><p><b>  int cno;</b></p><p>  float grade;</p>

13、<p><b>  };</b></p><p><b>  四. 詳細設計說明</b></p><p>  1 學生數(shù)據(jù)維護子系統(tǒng)設計說明</p><p> ?。總€功能模塊的設計思路,哪些功能是自己增強的, 加注釋的源代碼)</p><p>  #include<stdio.

14、h></p><p>  #include"STUDENT.H"</p><p>  //該部分為學生主菜單程序,分別調(diào)用添加,修改,刪除三個函數(shù)。</p><p>  void studentmenu() {</p><p>  void addstudent();</p><p>  vo

15、id modistudent();</p><p>  void deletestudent();</p><p><b>  char a;</b></p><p><b>  while(1)</b></p><p><b>  { </b></p>&l

16、t;p>  puts("\n");</p><p>  puts(" 系 統(tǒng) 主 菜 單");</p><p>  puts(" 1: 學 生 數(shù) 據(jù) 添 加");</p><p>  puts("

17、 2: 學 生 數(shù) 據(jù) 修 改");</p><p>  puts(" 3: 學 生 數(shù) 據(jù) 刪 除");</p><p>  puts(" 0: 退 出 系 統(tǒng)");</p><p> 

18、 printf("請輸入數(shù)字選擇: ");</p><p>  a=getche();</p><p><b>  switch(a)</b></p><p><b>  {</b></p><p><b>  case '1':</b>

19、;</p><p>  addstudent();</p><p><b>  break;</b></p><p><b>  case '2':</b></p><p>  modistudent();</p><p><b>  break;&

20、lt;/b></p><p><b>  case '3':</b></p><p>  deletestudent();</p><p><b>  break;</b></p><p><b>  case '0':</b></p

21、><p>  system("cls");</p><p><b>  return;</b></p><p><b>  default: </b></p><p><b>  return;</b></p><p><b>

22、  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //添加數(shù)據(jù)</b></p><p>  void addstudent() {</p><p><b> 

23、 FILE *fp;</b></p><p>  struct student s;</p><p>  struct student sw;</p><p><b>  char ch;</b></p><p>  int flag=0;</p><p><b>  //打

24、開文件。</b></p><p>  fp=fopen("d:\\STUDENT\\STUDENT.dat","ab+"); </p><p>  if(!fp) { printf("Create file error!\n"); return; }</p><p><b>  d

25、o{</b></p><p><b>  do{ </b></p><p>  /*輸入一條學生信息,另外,增加了檢驗數(shù)據(jù)是否重復的功能*/</p><p>  printf("\nEnter a student number name class:");</p><p>  fflu

26、sh(stdin);</p><p>  scanf("%ld%s%s",&s.sno,s.sname,s.sclass);</p><p>  rewind(fp);</p><p>  while(!feof(fp)) {</p><p>  fread(&sw,sizeof(sw),1,fp);<

27、;/p><p>  if(sw.sno==s.sno) {</p><p><b>  flag=1;</b></p><p>  printf("數(shù)據(jù)輸入重復,請重新輸入??!");</p><p><b>  break;</b></p><p><b

28、>  }</b></p><p><b>  }</b></p><p>  }while(flag);</p><p>  fwrite(&s,sizeof(s),1,fp);// 提示是否繼續(xù)輸入。</p><p>  printf("Input another student?

29、[y/n]");</p><p>  ch=getche();</p><p>  }while(ch=='y');</p><p>  fclose(fp);</p><p><b>  }</b></p><p><b>  //修改數(shù)據(jù)</b>

30、</p><p>  void modistudent() { </p><p><b>  FILE *fp;</b></p><p><b>  char ch;</b></p><p>  struct student s, modis;</p><p>  in

31、t found=0;</p><p>  fp=fopen("D:\\STUDENT\\STUDENT.dat","rb+");</p><p>  if(!fp) { printf("Create file error!\n"); return; }</p><p>  /*顯示文件中的所有學生信息*/

32、</p><p>  fread(&s,sizeof(s),1,fp);</p><p><b>  PRINT1;</b></p><p>  while(!feof(fp)){</p><p><b>  PRINT2;</b></p><p><b>

33、  PRINT1;</b></p><p>  fread(&s,sizeof(s),1,fp);</p><p><b>  }</b></p><p>  /*提示輸入要修改的學生號, 存入modis.sno*/</p><p>  printf("please enter the no

34、 of the modify");</p><p>  scanf("%ld",&modis.sno);</p><p>  /*找到要修改的學生并顯示 */</p><p>  rewind(fp);</p><p>  while( 1 ) { </p><p>  fread

35、(&s,sizeof(s),1,fp);</p><p>  if(feof(fp)) break;</p><p>  if(s.sno==modis.sno) { </p><p><b>  found=1; </b></p><p><b>  break;</b></p>

36、;<p><b>  }</b></p><p><b>  }</b></p><p>  if(!found) {</p><p>  printf("未找到你要找的數(shù)據(jù)!!");</p><p><b>  return; </b><

37、;/p><p><b>  }</b></p><p><b>  else</b></p><p><b>  PRINT2;</b></p><p>  printf("\n你確實要修改該學生的其他信息嗎?(Y/N)");</p><p&

38、gt;  ch=getche();</p><p>  if(ch=='Y'||ch=='y') {</p><p>  /*提示輸入要修改的學生姓名, 存入modis.sname*/</p><p>  printf("\nplease enter the name of the modify\n");</

39、p><p>  scanf("%s",modis.sname);</p><p>  printf("\nplease enter the class of the modify\n");</p><p>  scanf("%s",modis.sclass);</p><p>  fse

40、ek(fp,-(int)sizeof(s),SEEK_CUR); /*從當前位置向前移動一個s的長度*/</p><p>  /*將modis寫到文件(覆蓋原數(shù)據(jù)) */</p><p>  fwrite(&modis,sizeof(s),1,fp);</p><p><b>  }</b></p><p>

41、  fclose(fp);</p><p><b>  } </b></p><p><b>  //刪除數(shù)據(jù)。</b></p><p>  void deletestudent() {</p><p>  FILE *fp,*fp1;</p><p><b>  

42、char ch;</b></p><p>  int found=0,num;</p><p>  struct student s;</p><p>  fp=fopen("D:\\student\\student.dat","rb");</p><p><b>  if(!fp

43、) {</b></p><p>  printf("Create file error!!");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  /*顯示文件中的所有學生信息*/</p>

44、<p>  fread(&s,sizeof(s),1,fp);</p><p><b>  PRINT1;</b></p><p>  while(!feof(fp)) {</p><p><b>  PRINT2;</b></p><p><b>  PRINT1;&l

45、t;/b></p><p>  fread(&s,sizeof(s),1,fp);</p><p><b>  }</b></p><p>  printf("please enter the no of the delete");</p><p>  scanf("%d&qu

46、ot;,&num); </p><p>  //找到要修改的學生信息,顯示!</p><p>  rewind(fp);</p><p>  while(1) {</p><p>  fread(&s,sizeof(s),1,fp);</p><p>  if(feof(fp)) bre

47、ak;</p><p>  if(s.sno==num) {</p><p><b>  found=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }<

48、/b></p><p>  if(!found) {</p><p>  printf("未找到你要找的數(shù)據(jù)??!");</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  

49、else</b></p><p><b>  PRINT2;</b></p><p>  printf("\n你確實要刪除該學生的信息嗎?(Y/N)");</p><p>  ch=getche();</p><p>  //將刪除后的信息復制到temp文件中。</p>&l

50、t;p>  if(ch=='Y'||ch=='y') {</p><p>  fp1=fopen("D:\\student\\temp.dat","wb");</p><p>  rewind(fp);</p><p>  while(1) {</p><p>  

51、fread(&s,sizeof(s),1,fp);</p><p>  if(feof(fp)) break;</p><p>  if(s.sno!=num) {</p><p>  fwrite(&s,sizeof(s),1,fp1);</p><p><b>  }</b></p>&

52、lt;p><b>  }</b></p><p><b>  }</b></p><p>  fclose(fp1);</p><p>  fclose(fp);</p><p>  將temp文件的信息再重新覆蓋掉原來的student文件。</p><p>  fp=

53、fopen("D:\\student\\student.dat","wb");</p><p>  fp1=fopen("D:\\student\\temp.dat","rb");</p><p>  while(1) {</p><p>  fread(&s,sizeof(s)

54、,1,fp1);</p><p>  if(feof(fp1)) break;</p><p>  fwrite(&s,sizeof(s),1,fp);</p><p><b>  }</b></p><p>  fclose(fp1);</p><p>  fclose(fp);<

55、/p><p><b>  }</b></p><p>  2 課程數(shù)據(jù)維護子系統(tǒng)設計說明</p><p>  #include<stdio.h></p><p>  #include"STUDENT.H"</p><p>  void coursemenu() {<

56、;/p><p>  void addcourse();</p><p>  void modicourse();</p><p>  void deletecourse();</p><p><b>  char a;</b></p><p><b>  while(1)</b>

57、;</p><p><b>  { </b></p><p>  puts("\n");</p><p>  puts(" 系 統(tǒng) 主 菜 單");</p><p>  puts(" 1: 課

58、 程 數(shù) 據(jù) 添 加");</p><p>  puts(" 2: 課 程 數(shù) 據(jù) 修 改");</p><p>  puts(" 3: 課 程 數(shù) 據(jù) 刪 除");</p><p>  puts("

59、 0: 退 出 系 統(tǒng)");</p><p>  printf("請輸入數(shù)字選擇: ");</p><p>  a=getche();</p><p><b>  switch(a)</b></p><p><b>  {</b&g

60、t;</p><p><b>  case '1':</b></p><p>  addcourse();</p><p><b>  break;</b></p><p><b>  case '2':</b></p><p

61、>  modicourse();</p><p><b>  break;</b></p><p><b>  case '3':</b></p><p>  deletecourse();</p><p><b>  break;</b></p&g

62、t;<p><b>  case '0':</b></p><p>  system("cls");</p><p><b>  return;</b></p><p><b>  default: </b></p><p>&

63、lt;b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //添加數(shù)據(jù)。</b></p><

64、;p>  void addcourse() {</p><p><b>  FILE *fp;</b></p><p>  struct course c,cw; </p><p><b>  char ch;</b></p><p>  int flag=0;</p><

65、p>  fp=fopen("d:\\STUDENT\\COURSE.dat","ab+"); </p><p>  if(!fp) { printf("Create file error!\n"); return; }</p><p>  //輸入一條課程信息,提示是否重新輸入,另外增加檢驗數(shù)據(jù)是否重復的功能。</

66、p><p><b>  do{</b></p><p><b>  do{</b></p><p>  printf("\nEnter a course number name:");</p><p>  fflush(stdin);</p><p>

67、  scanf("%d%s",&c.cno,c.cname);</p><p>  rewind(fp);</p><p>  while(!feof(fp)) {</p><p>  fread(&cw,sizeof(cw),1,fp);</p><p>  if(cw.cno==c.cno) {<

68、/p><p><b>  flag=1;</b></p><p>  printf("數(shù)據(jù)輸入重復,請重新輸入?。?quot;);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b

69、>  }</b></p><p>  }while(flag);</p><p>  fwrite(&c,sizeof(c),1,fp);</p><p>  printf("Input another course? [y/n]");</p><p>  ch=getche();</p&g

70、t;<p>  }while(ch=='y');</p><p>  fclose(fp);</p><p><b>  }</b></p><p><b>  //修改數(shù)據(jù)</b></p><p>  void modicourse() { </p>

71、<p><b>  FILE *fp;</b></p><p><b>  char ch;</b></p><p>  struct course c, modis;</p><p>  int found=0;</p><p>  fp=fopen("D:\\STUDEN

72、T\\COURSE.dat","rb+");</p><p>  if(!fp) { printf("Create file error!\n"); return; }</p><p>  /*顯示文件中的所有課程信息*/</p><p>  fread(&c,sizeof(c),1,fp);</p&

73、gt;<p><b>  PRINT1;</b></p><p>  while(!feof(fp)){</p><p><b>  PRINT3;</b></p><p><b>  PRINT1;</b></p><p>  fread(&c,size

74、of(c),1,fp);</p><p><b>  }</b></p><p>  /*提示輸入要修改的課程號, 存入modis.sno*/</p><p>  printf("please enter the no of the modify");</p><p>  scanf("%d

75、",&modis.cno);</p><p>  /*找到要修改的課程并顯示 */</p><p>  rewind(fp);</p><p>  while( 1 ) { </p><p>  fread(&c,sizeof(c),1,fp);</p><p>  if(feof(fp))

76、break;</p><p>  if(c.cno==modis.cno) { </p><p><b>  found=1; </b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b

77、>  }</b></p><p>  if(!found) {</p><p>  printf("未找到你要找的數(shù)據(jù)?。?quot;);</p><p><b>  return; </b></p><p><b>  }</b></p><p>

78、;<b>  else</b></p><p><b>  PRINT3;</b></p><p>  printf("\n你確實要修改該課程的其他信息嗎?(Y/N)");</p><p>  ch=getche();</p><p>  if(ch=='Y'||

79、ch=='y') {</p><p>  /*提示輸入要修改的課程名, 存入modis.cname*/</p><p>  printf("\nplease enter the name of the modify\n");</p><p>  scanf("%s",modis.cname);</p>

80、;<p><b>  }</b></p><p>  fseek(fp,-sizeof(c),SEEK_CUR); /*從當前位置向前移動一個s的長度*/</p><p>  /*將modis寫到文件(覆蓋原數(shù)據(jù)) */</p><p>  fwrite(&modis,sizeof(c),1,fp);</p>

81、;<p>  fclose(fp);</p><p><b>  } </b></p><p><b>  //刪除數(shù)據(jù)。</b></p><p>  void deletecourse() {</p><p>  FILE *fp,*fp1;</p><p>

82、<b>  char ch;</b></p><p>  int found=0,num;</p><p>  struct course c;</p><p>  fp=fopen("D:\\student\\COURSE.dat","rb");</p><p><b>

83、;  if(!fp) {</b></p><p>  printf("Create file error!!");</p><p><b>  return;</b></p><p>  }//顯示文件中的信息。</p><p>  fread(&c,sizeof(c),1,fp

84、);</p><p><b>  PRINT1;</b></p><p>  while(!feof(fp)) {</p><p><b>  PRINT3;</b></p><p><b>  PRINT1;</b></p><p>  fread(&

85、amp;c,sizeof(c),1,fp);</p><p><b>  }</b></p><p>  /*提示輸入要修改的課程號, 存入num*/</p><p>  printf("please enter the no of the delete");</p><p>  scanf(&quo

86、t;%d",&num); </p><p>  /*找到要修改的課程并顯示 */</p><p>  rewind(fp);</p><p>  while(1) {</p><p>  fread(&c,sizeof(c),1,fp);</p><p>  if(feof(f

87、p)) break;</p><p>  if(c.cno==num) {</p><p><b>  found=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>

88、  }</b></p><p>  if(!found) {</p><p>  printf("未找到你要找的數(shù)據(jù)?。?quot;);</p><p><b>  return;</b></p><p><b>  }</b></p><p><

89、b>  else</b></p><p><b>  PRINT3;</b></p><p>  printf("\n你確實要刪除該學生的信息嗎?(Y/N)");</p><p>  ch=getche();</p><p>  //將刪除后的文件復制到temp文件中。</p&

90、gt;<p>  if(ch=='Y'||ch=='y') {</p><p>  fp1=fopen("D:\\student\\temp.dat","wb");</p><p>  rewind(fp);</p><p>  while(1) {</p><

91、p>  fread(&c,sizeof(c),1,fp);</p><p>  if(feof(fp)) break;</p><p>  if(c.cno!=num) {</p><p>  fwrite(&c,sizeof(c),1,fp1);</p><p><b>  }</b></p

92、><p><b>  }</b></p><p><b>  }</b></p><p>  fclose(fp1);</p><p>  fclose(fp);</p><p>  //將temp文件中的信息覆蓋掉原來course的文件中。</p><p&g

93、t;  fp=fopen("D:\\student\\COURSE.dat","wb");</p><p>  fp1=fopen("D:\\student\\temp.dat","rb");</p><p>  while(1) {</p><p>  fread(&c,siz

94、eof(c),1,fp1);</p><p>  if(feof(fp1)) break;</p><p>  fwrite(&c,sizeof(c),1,fp);</p><p><b>  }</b></p><p>  fclose(fp1);</p><p>  fclose(fp

95、);</p><p><b>  }</b></p><p>  3 成績數(shù)據(jù)維護子系統(tǒng)設計說明</p><p>  #include<stdio.h></p><p>  #include"STUDENT.H"</p><p>  void grademenu()

96、 {</p><p>  void addgrade();</p><p>  void modigrade();</p><p>  void deletegrade();</p><p><b>  char a;</b></p><p><b>  while(1)</b&

97、gt;</p><p><b>  { </b></p><p>  puts("\n");</p><p>  puts(" 系 統(tǒng) 主 菜 單");</p><p>  puts(" 1:

98、成 績 數(shù) 據(jù) 添 加");</p><p>  puts(" 2: 成 績 數(shù) 據(jù) 修 改");</p><p>  puts(" 3: 成 績 數(shù) 據(jù) 刪 除");</p><p>  puts("

99、; 0: 退 出 系 統(tǒng)");</p><p>  printf("請輸入數(shù)字選擇: ");</p><p>  a=getche();</p><p><b>  switch(a)</b></p><p><b>  {</b

100、></p><p><b>  case '1':</b></p><p>  addgrade();</p><p><b>  break;</b></p><p><b>  case '2':</b></p><

101、p>  modigrade();</p><p><b>  break;</b></p><p><b>  case '3':</b></p><p>  deletegrade();</p><p><b>  break;</b></p>

102、;<p><b>  case '0':</b></p><p>  system("cls");</p><p><b>  return;</b></p><p><b>  default: </b></p><p>&l

103、t;b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //添加成績!</b></p><

104、p>  void addgrade() {</p><p><b>  FILE *fp;</b></p><p>  struct scgrade sc; </p><p>  struct scgrade scw;</p><p><b>  char ch;</b></p>

105、<p>  int flag=0;</p><p>  fp=fopen("d:\\STUDENT\\GRADE.dat","ab+"); </p><p>  if(!fp) { printf("Create file error!\n"); return; }</p><p>  //輸

106、入一條成績信息,提示是否重新輸入,另外增加檢驗數(shù)據(jù)是否重復的功能</p><p><b>  do{</b></p><p><b>  do {</b></p><p>  printf("\nEnter a student number ,a course number, grade :");<

107、;/p><p>  fflush(stdin);</p><p>  scanf("%ld%d%f",&sc.sno,&sc.cno,&sc.grade);</p><p>  if(sc.grade<0||sc.grade>100) {</p><p><b>  flag=1;

108、</b></p><p>  printf("\n輸入成績格式不正確,請重新輸入");</p><p><b>  }</b></p><p>  rewind(fp);</p><p>  while(!feof(fp)) {</p><p>  fread(&a

109、mp;scw,sizeof(scw),1,fp);</p><p>  if(scw.cno==sc.cno&&scw.sno==sc.sno) {</p><p><b>  flag=1;</b></p><p>  printf("\n數(shù)據(jù)輸入重復,請重新輸入??!");</p><p

110、><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  }while(flag);</p><p>  fwrite(&sc,sizeof(sc),1,fp);</p>

111、<p>  printf("Input another student's grade? [y/n]");</p><p>  ch=getche();</p><p>  }while(ch=='y');</p><p>  fclose(fp);</p><p><b>  

112、}</b></p><p><b>  //修改數(shù)據(jù)</b></p><p>  void modigrade() { </p><p><b>  FILE *fp;</b></p><p><b>  char ch;</b></p><

113、;p>  struct scgrade sc, modis;</p><p>  int found=0;</p><p>  fp=fopen("D:\\STUDENT\\GRADE.dat","rb+");</p><p>  if(!fp) { printf("Create file error!\n&

114、quot;); return; }</p><p>  /*顯示文件中的所有成績信息*/</p><p>  fread(&sc,sizeof(sc),1,fp);</p><p><b>  PRINT1;</b></p><p>  while(!feof(fp)){</p><p>

115、<b>  PRINT4;</b></p><p><b>  PRINT1;</b></p><p>  fread(&sc,sizeof(sc),1,fp);</p><p><b>  }</b></p><p>  /*提示輸入要修改的學生號, 存入modis.

116、sno*/</p><p>  printf("please enter the no of the modify");</p><p>  scanf("%ld",&modis.sno);</p><p>  /*找到要修改的學生成績并顯示 */</p><p>  rewind(fp);&l

117、t;/p><p>  while( 1 ) { </p><p>  fread(&sc,sizeof(sc),1,fp);</p><p>  if(feof(fp)) break;</p><p>  if(sc.sno==modis.sno) { </p><p><b>  found=1; &l

118、t;/b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  if(!found) {</p><p>  printf("未找到你要找的

119、數(shù)據(jù)?。?quot;);</p><p><b>  return; </b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  PRINT4;</b></p><p>

120、;  printf("\n你確實要修改該學生的其他信息嗎?(Y/N)");</p><p>  ch=getche();</p><p>  if(ch=='Y'||ch=='y') {</p><p>  /*提示輸入要修改的學生課程名和成績, 存入modis.cno和modis.grade*/</p>

121、;<p>  printf("\nplease enter the course number of the modify\n");</p><p>  scanf("%d",&modis.cno);</p><p>  printf("\nplease enter the grade of the modify\n&

122、quot;);</p><p>  scanf("%f",&modis.grade);</p><p><b>  }</b></p><p>  fseek(fp,-(int)sizeof(sc),SEEK_CUR); /*從當前位置向前移動一個sc的長度*/</p><p>  /*

123、將modis寫到文件(覆蓋原數(shù)據(jù)) */</p><p>  fwrite(&modis,sizeof(sc),1,fp);</p><p>  fclose(fp);</p><p><b>  } </b></p><p><b>  //刪除數(shù)據(jù)</b></p><

124、p>  void deletegrade() {</p><p>  FILE *fp,*fp1;</p><p><b>  char ch;</b></p><p>  int found=0,num;</p><p>  struct scgrade sc;</p><p>  fp=

125、fopen("D:\\student\\GRADE.dat","rb");</p><p><b>  if(!fp) {</b></p><p>  printf("Create file error!!");</p><p><b>  return;</b>

126、;</p><p>  }//顯示文件中的信息</p><p>  fread(&sc,sizeof(sc),1,fp);</p><p><b>  PRINT1;</b></p><p>  while(!feof(fp)) {</p><p><b>  PRINT4;&l

127、t;/b></p><p><b>  PRINT1;</b></p><p>  fread(&sc,sizeof(sc),1,fp);</p><p>  }/*提示輸入要刪除的學號, 存入num*/</p><p>  printf("please enter the no of the d

128、elete");</p><p>  scanf("%d",&num); </p><p>  /*找到要刪除的成績并顯示 */</p><p>  rewind(fp);</p><p>  while(1) {</p><p>  fread(&sc,s

129、izeof(sc),1,fp);</p><p>  if(feof(fp)) break;</p><p>  if(sc.sno==num) {</p><p><b>  found=1;</b></p><p><b>  break;</b></p><p><

130、;b>  }</b></p><p><b>  }</b></p><p>  if(!found) {</p><p>  printf("未找到你要找的數(shù)據(jù)??!");</p><p><b>  return;</b></p><p&g

131、t;<b>  }</b></p><p><b>  else</b></p><p><b>  PRINT4;</b></p><p>  printf("\n你確實要刪除該學生的信息嗎?(Y/N)");</p><p>  ch=getche();&

132、lt;/p><p>  //將刪除后的文件復制到temp文件中。</p><p>  if(ch=='Y'||ch=='y') {</p><p>  fp1=fopen("D:\\student\\temp.dat","wb");</p><p>  rewind(fp);

133、</p><p>  while(1) {</p><p>  fread(&sc,sizeof(sc),1,fp);</p><p>  if(feof(fp)) break;</p><p>  if(sc.sno!=num) {</p><p>  fwrite(&sc,sizeof(sc),1,

134、fp1);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  fclose(fp1);</p><p>  fclose(fp);</p><p

135、>  //將temp文件中的信息覆蓋掉原來course的文件中。</p><p>  fp=fopen("D:\\student\\GRADE.dat","wb");</p><p>  fp1=fopen("D:\\student\\temp.dat","rb");</p><p&g

136、t;  while(1) {</p><p>  fread(&sc,sizeof(sc),1,fp1);</p><p>  if(feof(fp1)) break;</p><p>  fwrite(&sc,sizeof(sc),1,fp);</p><p><b>  }</b></p>

137、<p>  fclose(fp1);</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  4 查詢數(shù)據(jù)維護子系統(tǒng)設計說明</p><p>  #include<stdio.h></p><p>  #include<

138、;string.h></p><p>  #include"STUDENT.H"</p><p>  void query() {</p><p>  void snoquery();</p><p>  void snamequery();</p><p>  void cnamequery

139、();</p><p>  void cnamequeryson();</p><p>  void classandcnamequery();</p><p><b>  char a;</b></p><p>  while(1) {</p><p>  puts("\n"

140、);</p><p>  puts(" 系 統(tǒng) 主 菜 單");</p><p>  puts(" 1: 按 學 號 查 詢 成 績");</p><p>  puts(" 2: 按

141、 姓 名 查 詢 成 績");</p><p>  puts(" 3: 按 課 名 查 詢 成 績");</p><p>  puts(" 4: 按 課 名 查 詢 成 績(子函數(shù))");</p><p> 

142、 puts(" 5: 按 班 名 課 名 查 詢 成 績");</p><p>  puts(" 0: 退 出 系 統(tǒng)");</p><p>  printf("請輸入數(shù)字選擇: ");</p><p>  

143、a=getche();</p><p><b>  switch(a)</b></p><p><b>  {</b></p><p><b>  case '1':</b></p><p>  snoquery();</p><p>&

144、lt;b>  break;</b></p><p><b>  case '2':</b></p><p>  snamequery();</p><p><b>  break;</b></p><p><b>  case '3':&l

145、t;/b></p><p>  cnamequery();</p><p><b>  break;</b></p><p><b>  case '4':</b></p><p>  cnamequeryson();</p><p><b>

146、  break;</b></p><p><b>  case '5':</b></p><p>  classandcnamequery();</p><p><b>  break;</b></p><p><b>  case '0':&l

147、t;/b></p><p>  system("cls");</p><p><b>  return;</b></p><p><b>  default: </b></p><p><b>  return;</b></p><

148、p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //按學號查詢</b></p><p>  void snoquery() {</p><p&

149、gt;<b>  FILE *fp;</b></p><p>  struct scgrade sc; </p><p><b>  char ch;</b></p><p><b>  long no;</b></p><p>  int found=0;</p&

150、gt;<p>  fp=fopen("d:\\STUDENT\\GRADE.dat","rb");</p><p>  if(!fp) { printf("Create file error!\n"); return; }</p><p>  //提示要查詢成績的學號。</p><p>  

151、printf("\nEnter a student number of the query:");</p><p>  scanf("%ld",&no);</p><p><b>  //顯示并輸出。</b></p><p>  while(1) {</p><p>  f

溫馨提示

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

評論

0/150

提交評論