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

下載本文檔

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

文檔簡介

1、<p>  計算機科學(xué)與技術(shù)學(xué)院</p><p><b>  課程設(shè)計報告</b></p><p>  2010 — 2011學(xué)年第 一 學(xué)期</p><p>  課程名稱 C語言課程設(shè)計 </p><p>  設(shè)計題目 《成績管理系統(tǒng)》 </p><

2、p>  學(xué)生姓名 </p><p>  學(xué) 號 </p><p>  專業(yè)班級 信息管理與信息系統(tǒng)10-2班 </p><p>  指導(dǎo)教師 </p><p>  2008 年 9 月12日&l

3、t;/p><p><b>  目錄</b></p><p>  題目要求 ··················· 2</p><p>  設(shè)計目的

4、 ··················· 2</p><p>  總體設(shè)計 ···········

5、;········ 3</p><p>  詳細設(shè)計 ··················· 3</p><p&

6、gt;  調(diào)試與測試 ················· 12</p><p>  源程序 ··········

7、3;········ 14</p><p>  總結(jié) ··················· 30</p>&

8、lt;p><b>  學(xué)生成績管理程序</b></p><p><b>  題目要求 </b></p><p><b>  問題描述:</b></p><p>  對在校學(xué)生幾門課程的考試成績進行統(tǒng)一管理.每個學(xué)生記錄包括學(xué)號,姓名,年齡,數(shù)學(xué),英語,物理成績,默認以學(xué)號為序存放.</p&

9、gt;<p><b>  要求:</b></p><p>  (1)一個文件按以班為單位存儲學(xué)生記錄.</p><p>  (2)將允許的操作分為四種,以A,B ,C,D,E,F為標(biāo)志:</p><p>  A:插入一個學(xué)生記錄;</p><p><b>  B:修改學(xué)生記錄;</b>

10、</p><p>  C:刪除一個學(xué)生記錄;</p><p>  D:查找一個學(xué)生記錄;</p><p><b>  E:瀏覽學(xué)生成績:</b></p><p><b>  F:退出</b></p><p><b>  計算學(xué)生的總成績.</b><

11、/p><p>  按學(xué)號排序輸出全班學(xué)生成績表</p><p><b>  .</b></p><p><b>  設(shè)計目的</b></p><p>  根據(jù)題目要求,由于學(xué)生信息是存放在文件中,所以應(yīng)提供文件的輸入,輸出等操作;在程序中需要瀏覽學(xué)生的信息,應(yīng)提供顯示,查找,排序等操作;另外還應(yīng)提供鍵盤

12、式選擇菜單實現(xiàn)功能選擇.</p><p><b>  總體設(shè)計</b></p><p>  根據(jù)上面的需求分析,可以將這個系統(tǒng)分為以下模塊:輸入模塊,修改模塊,刪除模塊,查找模塊,顯示模塊.</p><p><b>  詳細設(shè)計</b></p><p><b>  主函數(shù):</b&g

13、t;</p><p>  主函數(shù)一般設(shè)計得比較簡單,只提供輸入,處理和輸出部分的函數(shù)調(diào)用,其中各功能模塊用菜單方式選擇.</p><p><b>  流程圖:</b></p><p><b>  N</b></p><p><b>  Y</b></p><

14、p><b>  [程序]:</b></p><p>  //#include "head.h" </p><p>  int menu_select() </p><p><b>  { </b></p><p><b>  char c; </b>&

15、lt;/p><p>  printf("\n\n"); </p><p>  printf(" | 1. 增加學(xué)生記錄 5.統(tǒng)計信息 |\n"); </p><p>  printf(" | 2. 查詢學(xué)生記錄 6.打開文件 |\n"); </p><p>  pri

16、ntf(" | 3. 修改學(xué)生記錄 7.保存文件 |\n"); </p><p>  printf(" | 4. 學(xué)生紀(jì)錄排序 8.顯示記錄 |\n"); </p><p>  printf(" | 0. 退出系統(tǒng) |\n"); </p><p>  printf("\n\n&

17、quot;); </p><p>  printf("請選擇(0-8):"); </p><p>  c=getchar(); </p><p>  getchar(); </p><p>  return (c-'0'); </p><p><b>  } </b&

18、gt;</p><p><b>  輸入模塊:</b></p><p><b>  [分析]:</b></p><p>  單獨看各數(shù)據(jù)信息,學(xué)號,姓名是字符型,可以采用字符型數(shù)組;分數(shù)為整數(shù),采用整數(shù);數(shù)據(jù)信息存放在文件中,一條記錄對應(yīng)一個學(xué)生,既符合習(xí)慣又方便信息管理.</p><p>  如果

19、要存放若干學(xué)生信息就用結(jié)構(gòu)體數(shù)組:</p><p>  void addrecord(student stud[]) </p><p><b>  { </b></p><p>  int i=0,j,num; </p><p>  char str[5]; </p><p>  if(numst

20、us!=0) </p><p><b>  { </b></p><p>  printf("已有記錄存在是否覆蓋?(y/n)\n"); </p><p>  gets(str); </p><p>  if(str[0]=='Y'||str[0]=='y') <

21、/p><p><b>  i=0; </b></p><p>  else i=numstus; </p><p><b>  } </b></p><p>  printf("請輸入增加的學(xué)生信息條目數(shù):"); </p><p>  scanf("

22、%d",&num); </p><p><b>  if(i==0) </b></p><p>  numstus=num; </p><p>  else numstus+=num; </p><p>  if(numstus>lens) </p><p><b&g

23、t;  { </b></p><p>  lens+=50; </p><p>  pointer=(student *)realloc(pointer,lens*LEN); </p><p><b>  } </b></p><p>  printf("請輸入學(xué)生信息:\n"); <

24、;/p><p>  for(;i<numstus;i++) </p><p><b>  { </b></p><p>  getchar(); </p><p>  printf("請輸入學(xué)號:"); </p><p>  gets(pointer[i].number);

25、</p><p>  printf("請輸入姓名:"); </p><p>  gets(pointer[i].name); </p><p>  printf("請輸入性別(男/女 1/0):"); </p><p>  gets(pointer[i].sex); </p><p&

26、gt;  if(pointer[i].sex[0]=='0') strcpy(pointer[i].sex,"女"); </p><p>  else strcpy(pointer[i].sex,"男"); </p><p>  printf("請輸入各科成績:(按“語文,數(shù)學(xué),英語,歷史,政治”的順序):");

27、</p><p>  stud[i].score=0; </p><p>  for(j=0;j<numsubs;j++) </p><p><b>  { </b></p><p>  scanf("%f",&stud[i].subject[j]); /*計算總分*/ </p&g

28、t;<p>  stud[i].score+=stud[i].subject[j]; </p><p><b>  } </b></p><p>  stud[i].average=stud[i].score/numsubs; /*計算平均分*/ </p><p><b>  } </b></p>

29、<p>  count(stud); /*附名次*/ </p><p>  display(stud,0,numstus-1); </p><p>  getchar(); </p><p><b>  }</b></p><p>  int numstus; </p><p>  

30、int lens; </p><p>  student *pointer; </p><p>  void main() </p><p><b>  { </b></p><p><b>  int i=1; </b></p><p>  char str[2]; <

31、;/p><p>  lens=100; </p><p>  pointer=(student *)malloc(lens*LEN); /*分配內(nèi)存*/ </p><p>  numstus=0; </p><p>  welcome(); /*歡迎界面*/ </p><p>  while(i>0) </p&

32、gt;<p><b>  { </b></p><p>  i=menu_select(); /*控制菜單*/ </p><p>  switch(i) </p><p><b>  { </b></p><p>  case 1:addrecord(pointer);break; /

33、*增加學(xué)生信息*/ </p><p>  case 2:findrecord(pointer);break; /*查詢學(xué)生信息*/ </p><p>  case 3:amendrecord(pointer);break; /*修改學(xué)生信息*/ </p><p>  case 4:sort(pointer);break; /*學(xué)生信息排序*/ </p>

34、<p>  case 5:statistic(pointer);break; /*統(tǒng)計信息*/ </p><p>  case 6:openfile(pointer);break; /*打開文件*/ </p><p>  case 7:writetotext(pointer);break; /*保存文件*/ </p><p>  case 8:displ

35、ay(pointer,0,numstus-1);break; /*顯示記錄*/ </p><p><b>  case 0: </b></p><p>  if(numstus!=0) printf("是否保存當(dāng)前記錄?(y/n)"); </p><p>  gets(str); </p><p> 

36、 if(str[0]=='y'||str[0]=='Y') </p><p>  writetotext(pointer); </p><p>  i=-1;break; /*退出系統(tǒng)*/ </p><p>  default:printf("請輸入數(shù)字0~8:\n");i=1; /*輸入錯誤*/ </p&g

37、t;<p><b>  } </b></p><p><b>  } </b></p><p>  printf("\t\t歡迎再次使用本系統(tǒng)。\n\n"); </p><p>  display1(); </p><p><b>  }</b>

38、;</p><p><b>  修改模塊:</b></p><p>  [分析]:用戶輸入要修改學(xué)生的學(xué)號,根據(jù)學(xué)生的學(xué)號等信息查找學(xué)生記錄,并提示用戶修改該記錄的哪部分信息.根據(jù)用戶選擇修改相應(yīng)的信息.</p><p><b>  [流程圖]:</b></p><p>  Y

39、 N</p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  [程序]:</b></p><p>  void xiugai() </p><p><b&

40、gt;  { </b></p><p>  if((fp=fopen("s_score.txt","rb+"))==NULL||(fp1=fopen("temp.txt","wb+"))==NULL) /*檢查是否出錯*/</p><p><b>  { </b></p&

41、gt;<p>  printf("Cannot open this file.\n"); </p><p><b>  exit(0); </b></p><p><b>  } </b></p><p>  printf("\nPLease shuru xiugai xueha

42、o:"); </p><p>  scanf("%d",&i); getchar(); </p><p>  while((fread(&data,sizeof(data),1,fp))==1) </p><p><b>  { </b></p><p>  j=atoi(d

43、ata.xuehao); </p><p><b>  if(j==i) </b></p><p><b>  { </b></p><p>  printf("xuehao:%s\nmingzi:%s\nnianling:%s\n",data.xuehao,data.mingzi,data.nianl

44、ing); </p><p>  printf("Please shuru mingzi:"); </p><p>  gets(data.mingzi); </p><p>  printf("Please shuru shuxue score:"); </p><p>  gets(temp);da

45、ta.score[0]=atof(temp); </p><p>  printf("Please input yingyu score:"); </p><p>  gets(temp);data.score[1]=atof(temp); </p><p>  printf("Please input wuli score:"

46、;); </p><p>  gets(temp);data.score[2]=atof(temp); </p><p>  data.score[3]=data.score[0]+data.score[1]+data.score[2];</p><p>  } fwrite(&data,sizeof(data),1,fp1); </p>&l

47、t;p><b>  } </b></p><p>  fseek(fp,0L,0); /*將位置指針移到離頭文件0個字節(jié)處*/</p><p>  fseek(fp1,0L,0); </p><p>  while((fread(&data,sizeof(data),1,fp1))==1) </p><p>

48、;<b>  { </b></p><p>  fwrite(&data,sizeof(data),1,fp); </p><p><b>  } </b></p><p>  fclose(fp); </p><p>  fclose(fp1); </p><p>

49、<b>  }</b></p><p><b>  刪除模塊:</b></p><p><b>  [分析]:</b></p><p>  該模塊的功能是,用戶輸入要刪除的學(xué)生的學(xué)號,根據(jù)學(xué)生學(xué)號查找記錄并刪除.</p><p><b>  [流程圖]:</b&

50、gt;</p><p>  Y N</p><p><b>  Y</b></p><p><b>  N</b></p><p><b>  [程序]:</b></p><p>  voi

51、d deleterecord(student stu[],int i) /*刪除信息*/ </p><p><b>  { </b></p><p><b>  int j; </b></p><p>  while(i>=0) </p><p><b>  { </b>

52、</p><p>  for(j=i;j<numstus;j++) </p><p>  stu[j]=stu[j+1]; </p><p>  numstus--; </p><p>  printf("刪除成功!\n"); </p><p><b>  } </b>&

53、lt;/p><p><b>  } </b></p><p>  void count(student stud[]) </p><p><b>  { </b></p><p><b>  int i,j; </b></p><p>  for(i=0;i

54、<numstus;i++) </p><p><b>  { </b></p><p>  stud[i].index=1; </p><p>  for(j=0;j<numstus;j++) </p><p>  if(stud[j].score>stud[i].score) </p>

55、<p>  stud[i].index++; </p><p><b>  } </b></p><p><b>  }</b></p><p><b>  查找模塊:</b></p><p><b>  [需求分析]:</b></p>

56、;<p>  該模塊的功能是根據(jù)輸入的學(xué)生的姓名查找對應(yīng)的記錄,找到以后,顯示相應(yīng)的學(xué)生信息.</p><p><b>  [流程圖]:</b></p><p>  Y N</p><p><b>  N</b></p>

57、<p><b>  Y</b></p><p><b>  [程序]:</b></p><p>  //#include "head.h" </p><p>  int findrecord(student stud[]) /*查找信息*/ </p><p><

58、b>  { </b></p><p>  char str[2]; </p><p>  int i,num; </p><p>  if(numstus==0) </p><p><b>  { </b></p><p>  printf("沒有可被查找的記錄\n&q

59、uot;); </p><p>  return -1; </p><p><b>  } </b></p><p><b>  else </b></p><p><b>  { </b></p><p>  printf("以何種方式查找?

60、\n1.學(xué)號\t2.姓名\t3.名次\n"); </p><p>  gets(str); </p><p>  if(str[0]=='1') /*按學(xué)號查找*/ </p><p><b>  { </b></p><p>  printf("請輸入學(xué)號:"); </

61、p><p>  gets(str); </p><p>  for(i=0;i<=numstus;i++) </p><p>  if(strcmp(str,stud[i].number)==0) </p><p><b>  { </b></p><p>  display(stud,i,i)

62、; </p><p><b>  break; </b></p><p><b>  } </b></p><p>  else continue; </p><p><b>  } </b></p><p>  else if(str[0]=='

63、;2') /*按姓名查找*/ </p><p><b>  { </b></p><p>  printf("請輸入姓名:"); </p><p>  gets(str); </p><p>  for(i=0;i<=numstus;i++) </p><p> 

64、 if(strcmp(str,stud[i].name)==0) </p><p><b>  { </b></p><p>  display(stud,i,i); </p><p><b>  break; </b></p><p><b>  } </b></p&g

65、t;<p>  else continue; </p><p><b>  } </b></p><p>  else if(str[0]=='3') /*按名次查找*/ </p><p><b>  { </b></p><p>  printf("請輸入名

66、次:"); </p><p>  scanf("%d",&num); </p><p>  getchar(); </p><p>  for(i=0;i<=numstus;i++) </p><p>  if(num==stud[i].index) </p><p><

67、;b>  { </b></p><p>  display(stud,i,i); </p><p><b>  break; </b></p><p><b>  } </b></p><p>  else continue; </p><p><b&

68、gt;  } </b></p><p>  if(i>numstus) </p><p><b>  { </b></p><p>  printf("沒有查找所要的信息。\n"); </p><p>  return -1; </p><p><b&g

69、t;  } </b></p><p>  return i; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  顯示模塊:</b></p><p><b>  [需求分

70、析]:</b></p><p>  該模塊的功能是顯示所有學(xué)生記錄信息.</p><p><b>  [程序]:</b></p><p>  void welcome() </p><p><b>  { </b></p><p>  printf("\

71、t*************************************************************\n"); </p><p>  printf("\t\t\t\t**學(xué)生成績管理系統(tǒng)**\n\t\t\t\t 傾情奉獻 歡迎使用!\n"); </p><p>  printf("\t*********************

72、****************************************\n"); </p><p><b>  } </b></p><p>  void showtable() </p><p><b>  { </b></p><p>  printf("-----

73、----------------------------------------------------------------------------------\n"); </p><p>  printf("學(xué)號\t姓名\t性別\t語文\t數(shù)學(xué)\t英語\t歷史\t政治\t總分\t平均分\t名次\n"); </p><p>  printf("-

74、--------------------------------------------------------------------------------------\n"); </p><p><b>  } </b></p><p>  void display(student stud[],int n1,int n2) </p>&

75、lt;p><b>  { </b></p><p><b>  int i; </b></p><p>  showtable(); /*顯示表頭*/ </p><p>  for(i=n1;i<=n2;i++) </p><p>  printf("%s\t%s\t%s\t%

76、.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%.2f\t%d\t\n",stud[i].number,stud[i].name,stud[i].sex,stud[i].subject[0],stud[i].subject[1],stud[i].subject[2],stud[i].subject[3],stud[i].subject[4],stud[i].score,stud[i].average,s

77、tud[i].index); </p><p>  /*通過循環(huán)輸出數(shù)據(jù)*/ </p><p><b>  } </b></p><p>  void display1() </p><p><b>  { </b></p><p>  printf("\t\t本系

78、統(tǒng)由計科二班制作\n\n"); </p><p>  printf("\t\t制作人員列表: \n\n"); </p><p>  printf("\t\t殷增鋒\t\t\t邵超\n"); </p><p>  printf("\n\n"); </p><p>  getc

79、har(); </p><p><b>  } </b></p><p><b>  調(diào)試與測試</b></p><p>  在這次課程設(shè)計中,程序編寫過程中遇到了很多的問題,各種函數(shù)的運用也讓人頭疼,在上機編譯運行過程中出現(xiàn)了很多的錯誤,例如:各種數(shù)據(jù)類型的定義,函數(shù)的調(diào)用等等。但最終還是在老師同學(xué)的幫助下進行了各種代碼

80、的編寫與修改,最終程序成功的運行。</p><p>  下面是各個模塊的界面圖</p><p>  (1) 主菜單函數(shù):</p><p>  (2): 輸入模塊:</p><p>  (3): 顯示模塊:</p><p>  (4): 刪除模塊:</p><p>  (5): 查找模塊:<

81、/p><p>  (6): 修改模塊:</p><p><b>  程序源</b></p><p>  #ifndef H_STUDENT_HH </p><p>  #define H_STUDENT_HH </p><p>  #include "stdio.h" </p

82、><p>  #include "string.h" </p><p>  #include "malloc.h" </p><p>  #define LEN sizeof(struct message_student) /*一個結(jié)構(gòu)體數(shù)組元素的長度*/ </p><p>  #define numsub

83、s 5 /*學(xué)科數(shù)目*/ </p><p>  typedef struct message_student /*結(jié)構(gòu)體定義*/ </p><p><b>  { </b></p><p>  char number[6]; </p><p>  char name[20]; </p><p> 

84、 char sex[4]; </p><p>  float subject[numsubs]; </p><p>  float score; </p><p>  float average; </p><p>  int index; </p><p>  }student; </p><p&

85、gt;  extern int numstus; /*學(xué)生數(shù)目*/ </p><p>  extern student *pointer; /*指向結(jié)構(gòu)體數(shù)組*/ </p><p>  extern int lens; </p><p>  int menu_select(); /*函數(shù)聲明*/ </p><p>  int openfile

86、(student stu[]); </p><p>  int findrecord(student stud[]); </p><p>  int writetotext(student stud[]); </p><p>  void welcome(); </p><p>  void display1(); </p>&

87、lt;p>  void showtable(); </p><p>  void sort(student stu[]); </p><p>  void deleterecord(student stu[],int i); </p><p>  void addrecord(student stud[]); </p><p>  vo

88、id display(student stud[],int n1,int n2); </p><p>  void amendrecord(student stud[]); </p><p>  void count(student stud[]); </p><p>  void sortnum(student stud[]); </p><p

89、>  void sortnum2(student stud[]); </p><p>  void sortname(student stud[]); </p><p>  void sortname2(student stud[]); </p><p>  void sortcount(student stud[]); </p><p&g

90、t;  void sortcount2(student stud[]); </p><p>  void statistic(student stud[]); </p><p>  void display1(); </p><p><b>  #endif </b></p><p>  //#include "

91、;head.h" </p><p>  int menu_select() </p><p><b>  { </b></p><p><b>  char c; </b></p><p>  printf("\n\n"); </p><p> 

92、 printf(" | 1. 增加學(xué)生記錄 5.統(tǒng)計信息 |\n"); </p><p>  printf(" | 2. 查詢學(xué)生記錄 6.打開文件 |\n"); </p><p>  printf(" | 3. 修改學(xué)生記錄 7.保存文件 |\n"); </p><p>  

93、printf(" | 4. 學(xué)生紀(jì)錄排序 8.顯示記錄 |\n"); </p><p>  printf(" | 0. 退出系統(tǒng) |\n"); </p><p>  printf("\n\n"); </p><p>  printf("請選擇(0-8):"); </p&g

94、t;<p>  c=getchar(); </p><p>  getchar(); </p><p>  return (c-'0'); </p><p><b>  } </b></p><p>  //#include "head.h" </p>&l

95、t;p>  int findrecord(student stud[]) /*查找信息*/ </p><p><b>  { </b></p><p>  char str[2]; </p><p>  int i,num; </p><p>  if(numstus==0) </p><p&g

96、t;<b>  { </b></p><p>  printf("沒有可被查找的記錄\n"); </p><p>  return -1; </p><p><b>  } </b></p><p><b>  else </b></p>&l

97、t;p><b>  { </b></p><p>  printf("以何種方式查找?\n1.學(xué)號\t2.姓名\t3.名次\n"); </p><p>  gets(str); </p><p>  if(str[0]=='1') /*按學(xué)號查找*/ </p><p><b

98、>  { </b></p><p>  printf("請輸入學(xué)號:"); </p><p>  gets(str); </p><p>  for(i=0;i<=numstus;i++) </p><p>  if(strcmp(str,stud[i].number)==0) </p>

99、<p><b>  { </b></p><p>  display(stud,i,i); </p><p><b>  break; </b></p><p><b>  } </b></p><p>  else continue; </p>&

100、lt;p><b>  } </b></p><p>  else if(str[0]=='2') /*按姓名查找*/ </p><p><b>  { </b></p><p>  printf("請輸入姓名:"); </p><p>  gets(str)

101、; </p><p>  for(i=0;i<=numstus;i++) </p><p>  if(strcmp(str,stud[i].name)==0) </p><p><b>  { </b></p><p>  display(stud,i,i); </p><p><b&

102、gt;  break; </b></p><p><b>  } </b></p><p>  else continue; </p><p><b>  } </b></p><p>  else if(str[0]=='3') /*按名次查找*/ </p>

103、<p><b>  { </b></p><p>  printf("請輸入名次:"); </p><p>  scanf("%d",&num); </p><p>  getchar(); </p><p>  for(i=0;i<=numstus;i

104、++) </p><p>  if(num==stud[i].index) </p><p><b>  { </b></p><p>  display(stud,i,i); </p><p><b>  break; </b></p><p><b>  } &

105、lt;/b></p><p>  else continue; </p><p><b>  } </b></p><p>  if(i>numstus) </p><p><b>  { </b></p><p>  printf("沒有查找所要的信息

106、。\n"); </p><p>  return -1; </p><p><b>  } </b></p><p>  return i; </p><p><b>  } </b></p><p><b>  } </b></p>

107、;<p>  //#include"head.h" </p><p>  int openfile(student stu[]) </p><p><b>  { </b></p><p>  int i=0,j; </p><p>  FILE *fp; </p><

108、;p>  char filename[20],str[2]; </p><p>  if(numstus!=0) </p><p><b>  { </b></p><p>  printf("已經(jīng)有記錄存在,是否保存?(y/n)"); </p><p>  gets(str); </p&

109、gt;<p>  if(str[0]=='y'||str[0]=='Y') </p><p>  writetotext(stu); </p><p><b>  } </b></p><p>  printf("請輸入文件名:"); </p><p> 

110、 gets(filename); </p><p>  numstus=0; </p><p>  if((fp=fopen(filename,"rb+"))==NULL) </p><p><b>  { </b></p><p>  printf("無法打開該文件\n"); &

111、lt;/p><p>  return(-1); </p><p><b>  } </b></p><p>  fscanf(fp,"%d",&numstus); </p><p>  fgetc(fp); </p><p>  while(i<numstus) &l

112、t;/p><p><b>  { </b></p><p>  fscanf(fp,"%s",stu[i].number); </p><p>  fscanf(fp,"%s",stu[i].name); </p><p>  fscanf(fp,"%s",stu[

113、i].sex); </p><p>  for(j=0;j<numsubs;j++) </p><p>  fscanf(fp,"%f",&stu[i].subject[j]); </p><p>  fscanf(fp,"%f",&stu[i].score); </p><p>

114、  fscanf(fp,"%f",&stu[i].average); </p><p>  fscanf(fp,"%d",&stu[i].index); </p><p><b>  i++; </b></p><p><b>  } </b></p>

115、<p>  fclose(fp); </p><p>  printf("文件讀取成功\n"); </p><p>  printf("是否顯示紀(jì)錄?(y/n)"); </p><p>  gets(str); </p><p>  if(str[0]=='y'||str[0]

116、=='Y') </p><p>  display(stu,0,numstus-1); </p><p>  return(0); </p><p><b>  } </b></p><p>  //#include "head.h" </p><p>  vo

117、id sort(student stud[]) </p><p><b>  { </b></p><p>  int i,j=0; </p><p>  char str[5]; </p><p>  student *p; </p><p><b>  p=stud; </b&

118、gt;</p><p>  if(numstus==0) </p><p><b>  { </b></p><p>  printf("沒有可供查詢的記錄!"); </p><p><b>  } </b></p><p><b>  whil

119、e(1) </b></p><p><b>  { </b></p><p>  for(i=0;;i++) </p><p><b>  { </b></p><p>  printf(" 請輸入查詢方式:"); </p><p>  pri

120、ntf("(直接輸入回車則結(jié)束查詢操作)\n"); </p><p>  printf("1.按照學(xué)號\t"); </p><p>  printf("2.按照姓名\t"); </p><p>  printf("3.按照名次\n"); </p><p>  ge

121、ts(str); </p><p>  if(strlen(str)==0) break; </p><p>  if(str[0]=='1') </p><p><b>  { </b></p><p>  printf("請輸入排序次序:\n"); </p><

122、p>  printf("1.升序排列\(zhòng)t"); </p><p>  printf("2.降序排列\(zhòng)n"); </p><p>  gets(str); </p><p>  if(str[0]=='1') </p><p>  sortnum2(p); </p>&

123、lt;p><b>  else </b></p><p>  sortnum(p); </p><p>  display(stud,0,numstus-1); </p><p><b>  } </b></p><p>  else if(str[0]=='2') </

124、p><p><b>  { </b></p><p>  printf("請輸入排序次序:\n"); </p><p>  printf("1.升序排列\(zhòng)t"); </p><p>  printf("2.降序排列\(zhòng)n"); </p><p>

125、;  gets(str); </p><p>  if(str[0]=='1') </p><p>  sortname2(p); </p><p><b>  else </b></p><p>  sortname(p); </p><p>  display(stud,0,n

126、umstus-1); </p><p><b>  } </b></p><p>  else if(str[0]=='3') </p><p><b>  { </b></p><p>  printf("請輸入排序次序:\n"); </p>&l

127、t;p>  printf("1.升序排列\(zhòng)t"); </p><p>  printf("2.降序排列\(zhòng)n"); </p><p>  gets(str); </p><p>  if(str[0]=='1') </p><p>  sortcount2(p); </p>

128、;<p><b>  else </b></p><p>  sortcount(p); </p><p>  display(stud,0,numstus-1); </p><p><b>  } </b></p><p>  else printf("請輸入1~3&quo

129、t;); </p><p>  printf("是否退出排序?(y/n)"); </p><p>  gets(str); </p><p>  if(str[0]=='y'||str[0]=='Y') break; </p><p><b>  } </b></

130、p><p><b>  return; </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  void sortnum(student stud[]) </p><p><b>  { &

131、lt;/b></p><p><b>  int i,j; </b></p><p>  student temp; </p><p>  student *p; </p><p><b>  p=stud; </b></p><p>  for(i=0;i<nu

132、mstus;i++) </p><p>  for(j=0;j<numstus-i-1;j++) </p><p><b>  { </b></p><p>  if(strcmp(stud[j+1].number,stud[j].number)>0) </p><p><b>  { </b

133、></p><p>  temp=*(p+j); </p><p>  *(p+j)=*(p+j+1); </p><p>  *(p+j+1)=temp; </p><p><b>  } </b></p><p><b>  } </b></p>&l

134、t;p><b>  } </b></p><p>  void sortnum2(student stud[]) </p><p><b>  { </b></p><p><b>  int i,j; </b></p><p>  student temp; </

135、p><p>  student *p; </p><p><b>  p=stud; </b></p><p>  for(i=0;i<numstus;i++) </p><p>  for(j=0;j<numstus-i-1;j++) </p><p><b>  { <

136、/b></p><p>  if(strcmp(stud[j].number,stud[j+1].number)>0) </p><p><b>  { </b></p><p>  temp=*(p+j); </p><p>  *(p+j)=*(p+j+1); </p><p> 

137、 *(p+j+1)=temp; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  void sortname(student stud[]) </p><p&g

138、t;<b>  { </b></p><p><b>  int i,j; </b></p><p>  student temp; </p><p>  student *p; </p><p><b>  p=stud; </b></p><p> 

139、 for(i=0;i<numstus;i++) </p><p>  for(j=0;j<numstus-i-1;j++) </p><p><b>  { </b></p><p>  if(strcmp(stud[j+1].name,stud[j].name)>0) </p><p><b&g

140、t;  { </b></p><p>  temp=*(p+j); </p><p>  *(p+j)=*(p+j+1); </p><p>  *(p+j+1)=temp; </p><p><b>  } </b></p><p><b>  } </b>&l

141、t;/p><p><b>  } </b></p><p>  void sortname2(student stud[]) </p><p><b>  { </b></p><p><b>  int i,j; </b></p><p>  studen

142、t temp; </p><p>  student *p; </p><p><b>  p=stud; </b></p><p>  for(i=0;i<numstus;i++) </p><p>  for(j=0;j<numstus-i-1;j++) </p><p><

143、b>  { </b></p><p>  if(strcmp(stud[j].name,stud[j+1].name)>0) </p><p><b>  { </b></p><p>  temp=*(p+j); </p><p>  *(p+j)=*(p+j+1); </p>&

144、lt;p>  *(p+j+1)=temp; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p>  void sortcount(student stud[]) </p>

145、;<p><b>  { </b></p><p><b>  int i,j; </b></p><p>  student temp; </p><p>  student *p; </p><p><b>  p=stud; </b></p>

146、<p>  for(i=0;i<numstus;i++) </p><p>  for(j=0;j<numstus-i-1;j++) </p><p><b>  { </b></p><p>  if(stud[j+1].index>stud[j].index) </p><p><b

147、>  { </b></p><p>  temp=*(p+j); </p><p>  *(p+j)=*(p+j+1); </p><p>  *(p+j+1)=temp; </p><p><b>  } </b></p><p><b>  } </b>

148、</p><p><b>  } </b></p><p>  void sortcount2(student stud[]) </p><p><b>  { </b></p><p><b>  int i,j; </b></p><p>  stu

149、dent temp; </p><p>  student *p; </p><p><b>  p=stud; </b></p><p>  for(i=0;i<numstus;i++) </p><p>  for(j=0;j<numstus-i-1;j++) </p><p>&

150、lt;b>  { </b></p><p>  if(stud[j].index>stud[j+1].index) </p><p><b>  { </b></p><p>  temp=*(p+j); </p><p>  *(p+j)=*(p+j+1); </p><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

提交評論