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

下載本文檔

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

文檔簡介

1、<p>  蘇州市職業(yè)大學(xué)繼續(xù)教育學(xué)院</p><p><b>  課程設(shè)計(jì)說明書</b></p><p>  名稱  C語言程序設(shè)計(jì)課程設(shè)計(jì) </p><p>  2012年 10月 31 日至 2012年 11月 14 日共2 周</p><p>  院  系 計(jì)算機(jī)

2、工程系 </p><p>  班 級(jí) 10Z計(jì)算機(jī)網(wǎng)絡(luò) </p><p>  學(xué) 號(hào) 46 </p><p>  姓 名 錢俊琦 </p><p>  系 主 任 李金祥 </p><p>  指導(dǎo)教師 陸公正

3、 </p><p><b>  目 錄</b></p><p><b>  1 前言1</b></p><p><b>  2 需求分析1</b></p><p><b>  2.1要求1</b></p><p><b

4、>  2.2任務(wù)1</b></p><p><b>  2.3運(yùn)行環(huán)境1</b></p><p><b>  2.4開發(fā)工具1</b></p><p>  3 概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)2</p><p>  3.1系統(tǒng)流程圖2</p><p>  3.2

5、查詢函數(shù)流程圖3</p><p>  4 編碼與實(shí)現(xiàn)15</p><p><b>  4.1分析15</b></p><p>  4.2具體代碼實(shí)現(xiàn)16</p><p>  5 課程設(shè)計(jì)總結(jié)30</p><p><b>  參考文獻(xiàn)30</b></p>

6、<p><b>  致 謝30</b></p><p><b>  1 前言</b></p><p>  編寫一個(gè)學(xué)生成績管理系統(tǒng)。先建立一個(gè)有三個(gè)學(xué)生的鏈表,每個(gè)結(jié)點(diǎn)包含:學(xué)號(hào)、姓名、三門考試成績(英語、數(shù)學(xué)、計(jì)算機(jī))。要求利用菜單的形式進(jìn)行管理。</p><p><b>  2 需求分析&l

7、t;/b></p><p><b>  2.1要求</b></p><p> ?。?)用C語言實(shí)現(xiàn)程序設(shè)計(jì);</p><p> ?。?)利用結(jié)構(gòu)體進(jìn)行相關(guān)信息處理;</p><p>  (3)畫出查詢模塊的流程圖;</p><p> ?。?)系統(tǒng)的各個(gè)功能模塊要求用函數(shù)的形式實(shí)現(xiàn);</

8、p><p>  (5)界面友好(良好的人機(jī)互交),程序要有注釋。</p><p><b>  2.2任務(wù)</b></p><p> ?。?)先建立一個(gè)有三個(gè)學(xué)生的鏈表,每個(gè)結(jié)點(diǎn)包含:學(xué)號(hào)、姓名、3門考試成績;</p><p> ?。?)輸入姓名查詢?cè)撏瑢W(xué)的信息,并顯示在屏幕上;</p><p> ?。?/p>

9、3)畫出所有模塊的流程圖;</p><p><b> ?。?)編寫代碼;</b></p><p> ?。?)程序分析與調(diào)試。</p><p><b>  2.3運(yùn)行環(huán)境</b></p><p>  (1)WINDOWS2000/XP系統(tǒng)</p><p> ?。?)TurboC

10、2.0編譯環(huán)境</p><p><b>  2.4開發(fā)工具</b></p><p><b>  C語言</b></p><p>  3 概要設(shè)計(jì)與詳細(xì)設(shè)計(jì)</p><p><b>  3.1系統(tǒng)流程圖</b></p><p><b>  如圖3

11、.1所示。</b></p><p>  3.2查詢函數(shù)流程圖</p><p><b>  4 編碼與實(shí)現(xiàn)</b></p><p><b>  4.1分析</b></p><p>  在程序的開頭部分定義結(jié)構(gòu)體類型和全局的結(jié)構(gòu)體數(shù)組,用來存放和提取學(xué)生的信息。</p><

12、;p>  struct student //學(xué)生數(shù)據(jù) </p><p>  { int num;</p><p>  struct score f[9];</p><p>  char name[20]; </p><p>  float ave; </p><p>  float sum;

13、</p><p><b>  }; </b></p><p>  用輸入函數(shù)scanf來輸入學(xué)生的信息放在程序中,在這個(gè)函數(shù)</p><p>  用void語句就能實(shí)現(xiàn)。</p><p>  void luru(struct student a[] ); //錄入函數(shù) </p><p> 

14、 void paixu(struct student a[]); //排序函數(shù) </p><p>  void charu(struct student a[]); //插入函數(shù) </p><p>  void del(struct student a[]); //刪除函數(shù) </p><p>  void display(struct student a

15、[]);//顯示函數(shù) </p><p>  void cprint(struct student a[],int m);//查詢輸出函數(shù) </p><p>  void chaxun1(struct student a[]);//學(xué)號(hào)查詢函數(shù) </p><p>  void chaxun2(struct student a[]);//姓名查詢函數(shù) </p&

16、gt;<p>  void charu(struct student a[])paixu(struct student a[])調(diào)用paixu(struct student a[])</p><p>  struct student a[];//存檔函數(shù) </p><p>  在main函數(shù)中用int函數(shù)定義,然后再運(yùn)用printf()函數(shù)就可以提取學(xué)生的成績了。</

17、p><p>  而后可以根據(jù)不同的函數(shù)來刪除、修改學(xué)生的成績信息。</p><p>  最終程序結(jié)束,完成學(xué)生成績信息的錄入、修改、刪除以及查詢。</p><p><b>  4.2具體代碼實(shí)現(xiàn)</b></p><p>  #include<stdio.h> </p><p>  #i

18、nclude<stdlib.h> </p><p>  #include<string.h> </p><p>  struct score //各科成績 </p><p><b>  { </b></p><p>  float s; </p><p>&l

19、t;b>  }; </b></p><p>  struct student //學(xué)生數(shù)據(jù) </p><p><b>  { </b></p><p>  int num; </p><p>  struct score f[9]; </p><p>  ch

20、ar name[20]; </p><p>  float ave; </p><p>  float sum; </p><p><b>  }; </b></p><p>  int i=0;//統(tǒng)計(jì)個(gè)數(shù) </p><p>  struct student stu[99];

21、 </p><p>  void luru(struct student a[] ); //錄入函數(shù) </p><p>  void paixu(struct student a[]); //排序函數(shù) </p><p>  void charu(struct student a[]); //插入函數(shù) </p><p>  vo

22、id del(struct student a[]); //刪除函數(shù) </p><p>  void display(struct student a[]);//顯示函數(shù) </p><p>  void cprint(struct student a[],int m);//查詢輸出函數(shù) </p><p>  void chaxun1(struct stude

23、nt a[]);//學(xué)號(hào)查詢函數(shù) </p><p>  void chaxun2(struct student a[]);//姓名查詢函數(shù) </p><p>  void save(struct student a[]);//存檔函數(shù) </p><p>  void main() //主函數(shù)開始 </p><p><b>  {

24、 </b></p><p>  int number; </p><p><b>  int x,y; </b></p><p>  for(y=0;y<99;y++) //將所有成績清空 </p><p><b>  { </b></p><p>

25、  for(x=0;x<6;x++) </p><p><b>  { </b></p><p>  stu[y].f[x].s=NULL; </p><p><b>  } </b></p><p><b>  } </b></p><p>  

26、printf("********************************************************************************\n"); </p><p>  printf("\t\t\t 歡迎使用\n"); </p><p>  printf("\n\t\t\t

27、 學(xué)生成績管理系統(tǒng)\n\n"); </p><p>  printf("*************************************菜單***************************************\n"); </p><p>  printf("請(qǐng)選擇功能:\n\n0.退出\n1.錄入新學(xué)生成績數(shù)據(jù)\n2.顯示學(xué)生成績

28、數(shù)據(jù)\n3.按總成績排序\n4.插入學(xué)生成績數(shù)據(jù)\n5.刪除學(xué)生成績數(shù)據(jù)\n6.按學(xué)生學(xué)號(hào)查詢\n7.按學(xué)生姓名查詢\n8.儲(chǔ)存為TXT文件\n\n"); </p><p>  printf("\n********************************************************************************\n"); </p

29、><p><b>  do </b></p><p><b>  { </b></p><p>  scanf("%d",&number); </p><p>  printf("\n-----------------------------------

30、--------\n"); </p><p>  switch (number) </p><p><b>  { </b></p><p>  case 0:break; //退出 </p><p>  case 1:luru(stu);break; //錄入新學(xué)生成績數(shù)據(jù) </p>

31、;<p>  case 2:display(stu);break; //顯示學(xué)生成績數(shù)據(jù) </p><p>  case 3:paixu(stu);break; //按總成績排序 </p><p>  case 4:charu(stu);break; //插入學(xué)生成績數(shù)據(jù) </p><p>  case 5:del(stu);break; //刪

32、除學(xué)生成績數(shù)據(jù)\n </p><p>  case 6:chaxun1(stu);break; //按學(xué)生學(xué)號(hào)查詢 </p><p>  case 7:chaxun2(stu);break; //按學(xué)生姓名查詢 </p><p>  case 8:save(stu);break; //儲(chǔ)存為TXT文件 </p><p><b>  

33、} </b></p><p>  }while(number!=0); </p><p>  printf("謝謝使用!"); </p><p>  printf("\n"); </p><p><b>  } </b></p><

34、;p>  void luru(struct student a[]) //錄入函數(shù) </p><p><b>  { </b></p><p><b>  int m; </b></p><p><b>  int k; </b></p><p>  ch

35、ar b; </p><p>  float sum=0; </p><p>  printf("請(qǐng)輸入科目數(shù)(最多6科):"); </p><p>  scanf("%d",&m); </p><p>  printf("請(qǐng)輸入學(xué)生信息\n"); <

36、;/p><p><b>  do </b></p><p><b>  { </b></p><p>  printf("學(xué)號(hào):"); </p><p>  scanf("%d",&a[i].num); </p><p&

37、gt;  printf("姓名:"); </p><p>  scanf("%s",a[i].name); </p><p>  for(k=0;k<m;k++) </p><p><b>  { </b></p><p>  printf("請(qǐng)輸入

38、第%d科目成績:",k+1); </p><p>  float temp; </p><p>  scanf("%f",&temp); </p><p>  a[i].f[k].s = temp; </p><p><b>  } </b></p>

39、<p><b>  //計(jì)算總分 </b></p><p>  a[i].sum=0; </p><p>  for(k=0;k<m;k++) </p><p><b>  { </b></p><p>  a[i].sum=a[i].sum+a[i].f[k].s

40、; </p><p><b>  } </b></p><p>  //計(jì)算平均分 </p><p>  a[i].ave=0; </p><p>  a[i].ave=a[i].sum/m; </p><p><b>  i++; </b></

41、p><p>  printf("是否繼續(xù)錄入學(xué)生數(shù)據(jù)?\n(Y/N)"); </p><p>  fflush(stdin);//刷新標(biāo)準(zhǔn)輸入緩沖區(qū) </p><p>  scanf("%c",&b); </p><p>  }while(b=='Y'||b=='

42、y'); </p><p>  display(a); </p><p><b>  } </b></p><p>  void display(struct student a[]) //顯示函數(shù) </p><p><b>  { </b></p><

43、;p>  int k,m; </p><p>  system("cls"); //清屏 </p><p>  printf("學(xué)號(hào)\t姓名\t第1科\t第2科\t第3科\t第4科\t第5科\t第6科\t總分\t平均分\n"); </p><p>  printf("\n----------------

44、--------------------------------------------------------------\n\n"); </p><p>  for(k=0;k<i;k++) </p><p><b>  { </b></p><p>  printf("%d\t%s\t",a

45、[k].num,a[k].name); </p><p>  for(m=0;m<6;m++) </p><p><b>  { </b></p><p>  printf("%.2f\t",a[k].f[m].s); </p><p><b>  } </b>&l

46、t;/p><p>  printf("%.2f\t%.2f\n",a[k].sum,a[k].ave); </p><p><b>  } </b></p><p>  printf("\n-------------------------------------------------------------

47、-----------------\n\n"); </p><p>  printf("請(qǐng)選擇功能:\n0.退出\t1.錄入\t2.顯示\t3.排序\t4.插入\t5.刪除\t6.學(xué)號(hào)查詢 7.姓名查詢\t8.存檔\n\n"); </p><p><b>  } </b></p><p>  void

48、 paixu(struct student a[]) //排序函數(shù) </p><p><b>  { </b></p><p>  int j,k; </p><p>  struct student temp; </p><p>  for(k=0;k<i;k++) </p>&

49、lt;p><b>  { </b></p><p>  for(j=0;j<i-k;j++) </p><p><b>  { </b></p><p>  if(a[j].ave<a[j+1].ave) </p><p><b>  { </b

50、></p><p>  temp=a[j]; </p><p>  a[j]=a[j+1]; </p><p>  a[j+1]=temp; </p><p><b>  } </b></p><p><b>  } </b></p>

51、<p><b>  } </b></p><p>  printf("按總分排序后的學(xué)生數(shù)據(jù)如下\n"); </p><p>  display(a); </p><p><b>  } </b></p><p>  void charu(struct

52、student a[]) //插入函數(shù) </p><p><b>  { </b></p><p>  int j,k,m,x; </p><p>  struct student temp; </p><p>  for(x=0;x<6;x++) </p><p><

53、b>  { </b></p><p>  temp.f[x].s=0; </p><p><b>  } </b></p><p>  //將temp中的所有成績清除 </p><p>  printf("請(qǐng)輸入成績數(shù)目:"); </p><p>  sc

54、anf("%d",&m); </p><p>  printf("請(qǐng)輸入學(xué)生信息\n"); </p><p>  printf("學(xué)號(hào):"); </p><p>  scanf("%d",&temp.num); </p><p> 

55、 printf("姓名:"); </p><p>  scanf("%s",temp.name); </p><p>  for(k=0;k<m;k++) </p><p><b>  { </b></p><p>  printf("請(qǐng)輸入第%d科

56、目成績:",k+1); </p><p>  float tt; </p><p>  scanf("%f",&tt); </p><p>  temp.f[k].s = tt; </p><p><b>  } </b></p><p>&

57、lt;b>  //計(jì)算總分 </b></p><p>  temp.sum=0; </p><p>  for(k=0;k<m;k++) </p><p><b>  { </b></p><p>  temp.sum=temp.sum+temp.f[k].s; </p&

58、gt;<p><b>  } </b></p><p>  //計(jì)算平均分 </p><p>  temp.ave=temp.sum/m; </p><p>  for(j=0;j<i;j++) </p><p>  for(k=i;k>j;k--) </p>

59、<p><b>  { </b></p><p>  a[k]=a[k-1]; </p><p><b>  } </b></p><p><b>  i++; </b></p><p>  a[j]=temp; </p><p

60、>  display(a); </p><p><b>  } </b></p><p>  void del(struct student a[]) //刪除函數(shù) </p><p><b>  { </b></p><p>  int k,j; </p>&

61、lt;p>  printf("請(qǐng)輸入要?jiǎng)h除的學(xué)生學(xué)號(hào):"); </p><p>  scanf("%d",&k); </p><p>  for(j=0;j<i;j++) </p><p><b>  { </b></p><p>  if(k=

62、=a[j].num) //記錄要?jiǎng)h除的學(xué)生的位置 </p><p><b>  { </b></p><p><b>  break; </b></p><p><b>  } </b></p><p><b>  } </b></

63、p><p>  if(j<i) </p><p><b>  { </b></p><p>  for(k=j;k<i-1;k++) </p><p><b>  { </b></p><p>  a[j]=a[j+1]; </p>

64、<p><b>  } </b></p><p><b>  i--; </b></p><p>  printf("刪除后的學(xué)生數(shù)據(jù)\n"); </p><p>  display(a); </p><p><b>  } </b&

65、gt;</p><p><b>  else </b></p><p><b>  { </b></p><p>  printf("\n\t\t沒有您要?jiǎng)h除的學(xué)生數(shù)據(jù)\n\n"-); </p><p>  printf("\n請(qǐng)選擇功能:\n0.退出\t1

66、.錄入\t2.顯示\t3.排序\t4.插入\t5.刪除\t6.學(xué)號(hào)查詢 7.姓名查詢\t8.存檔\n\n"); </p><p><b>  } </b></p><p><b>  } </b></p><p>  void cprint(struct student a[],int m)//查詢

67、輸出函數(shù) </p><p><b>  { </b></p><p><b>  int o; </b></p><p>  system("cls"); //清屏 </p><p>  printf("學(xué)號(hào)\t姓名\t第1科\t第2科\t第3科\t第4科\t第5科\t

68、第6科\t總分\t平均分\n"); </p><p>  printf("\n------------------------------------------------------------------------------\n\n"); </p><p>  printf("%d\t%s\t",a[m].num,a[m]

69、.name); </p><p>  for(o=0;o<6;o++) </p><p><b>  { </b></p><p>  printf("%.2f\t",a[m].f[o].s); </p><p><b>  } </b></p>&l

70、t;p>  printf("%.2f\t%.2f\n",a[m].sum,a[m].ave); </p><p>  printf("\n------------------------------------------------------------------------------\n\n"); </p><p>  pri

71、ntf("\n請(qǐng)選擇功能:\n0.退出\t1.錄入\t2.顯示\t3.排序\t4.插入\t5.刪除\t6.學(xué)號(hào)查詢 7.姓名查詢\t8.存檔\n\n"); </p><p><b>  } </b></p><p>  void chaxun1(struct student a[])//學(xué)號(hào)查詢函數(shù) </p><p>

72、<b>  { </b></p><p><b>  int m,t; </b></p><p>  printf("請(qǐng)輸入要查詢的學(xué)號(hào):"); </p><p>  scanf("%d",&t); </p><p>  for(m=0;m<=i

73、;m++) </p><p><b>  { </b></p><p>  if(a[m].num==t) </p><p><b>  { </b></p><p>  cprint(a,m); </p><p><b>  break; </b>&

74、lt;/p><p><b>  } </b></p><p>  if(m==i&&a[m].num!=t) </p><p><b>  { </b></p><p>  system("cls"); //清屏 </p><p>  pri

75、ntf("\n\t\t沒有查到您要找的學(xué)生資料\n"); </p><p>  printf("\n--------------------------------------------------------------------------------\n"); </p><p>  printf("\n請(qǐng)選擇功能:\n0.退出

76、\t1.錄入\t2.顯示\t3.排序\t4.插入\t5.刪除\t6.學(xué)號(hào)查詢 7.姓名查詢\t8.存檔\n\n"); </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p>

77、  void chaxun2(struct student a[])//姓名查詢函數(shù) </p><p><b>  { </b></p><p><b>  int m; </b></p><p>  char t[20]; </p><p>  printf("請(qǐng)輸入要查詢的姓名:&qu

78、ot;); </p><p>  scanf("%s",t); </p><p>  for(m=0;m<=i;m++) </p><p><b>  { </b></p><p>  if(strcmp(a[m].name,t)==0) </p><p><b&

79、gt;  { </b></p><p>  cprint(a,m); </p><p><b>  break; </b></p><p><b>  } </b></p><p>  if(m==i&&(strcmp(a[m].name,t)!=0)) </p&

80、gt;<p><b>  { </b></p><p>  system("cls"); //清屏 </p><p>  printf("\n\t\t沒有查到您要找的學(xué)生資料\n"); </p><p>  printf("\n---------------------------

81、-----------------------------------------------------\n"); </p><p>  printf("\n請(qǐng)選擇功能:\n0.退出\t1.錄入\t2.顯示\t3.排序\t4.插入\t5.刪除\t6.學(xué)號(hào)查詢 7.姓名查詢\t8.存檔\n\n"); </p><p><b>  } <

82、;/b></p><p><b>  } </b></p><p><b>  } </b></p><p>  void save(struct student a[])//存檔函數(shù) </p><p><b>  { </b></p><p>

83、;  int k,m; </p><p>  FILE * fpFile; </p><p>  fpFile = fopen("student.txt", "w"); </p><p>  fprintf(fpFile,"學(xué)號(hào)\t姓名\t第1科\t第2科\t第3科\t第4科\t第5科\t第6科\t總分\

84、t平均分\n"); </p><p>  fprintf(fpFile,"\n---------------------------------------------------------------------------------\n\n"); </p><p>  for(k=0;k<i;k++) </p><

85、p><b>  { </b></p><p>  fprintf(fpFile,"%d\t%s\t",a[k].num,a[k].name); </p><p>  for(m=0;m<6;m++) </p><p><b>  { </b></p><p>

86、  fprintf(fpFile,"%.2f\t",a[k].f[m].s); </p><p><b>  } </b></p><p>  fprintf(fpFile,"%.2f\t%.2f\n",a[k].sum,a[k].ave); </p><p><b>  } <

87、;/b></p><p>  fprintf(fpFile,"\n---------------------------------------------------------------------------------\n\n"); </p><p>  fclose(fpFile); </p><p>  printf(&

88、quot;已存到根目錄student.txt文件"); </p><p>  printf("\n-------------------------------------------\n"); </p><p>  printf("\n請(qǐng)選擇功能:\n0.退出\t1.錄入\t2.顯示\t3.排序\t4.插入\t5.刪除\t6.學(xué)號(hào)查詢 7

89、.姓名查詢\t8.存檔\n\n"); </p><p><b>  } </b></p><p><b>  結(jié)果如圖所示</b></p><p><b>  5 課程設(shè)計(jì)總結(jié)</b></p><p>  通過這次課程設(shè)計(jì)我對(duì)C語言的神奇功能更加佩服,我默默在心

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論