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

下載本文檔

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

文檔簡介

1、<p><b>  C語言課程設計報告</b></p><p><b>  一 .問題描述:</b></p><p>  題目七:學生成績管理系統(tǒng)設計</p><p>  學生成績信息包括:學期,學號,班別,姓名,四門課程成績(語文、數(shù)學、英語和計算機)等。</p><p><b&g

2、t;  主要功能:</b></p><p> ?。?) 能按學期、按班級完成對學生成績的錄入、修改</p><p> ?。?) 能按班級統(tǒng)計學生的成績,求學生的總分及平均分</p><p> ?。?) 能查詢學生成績,不及格科目及學生名單</p><p> ?。?) 能按班級輸出學生的成績單</p><p>

3、;  要求:使用二進制文件方式存儲數(shù)據(jù),系統(tǒng)以菜單方式工作</p><p>  學生成績信息包括:學期,學號,班別,姓名,四門課程成績(語文、數(shù)學、英語和計算機)等。要求使用二進制文件方式存儲數(shù)據(jù),系統(tǒng)以菜單方式工作,實現(xiàn)對學生成績的錄入,修改,統(tǒng)計,排序,查詢,輸出等功能。</p><p><b>  二 .設計目的</b></p><p>

4、  設計“學生成績管理系統(tǒng)”使其具有以下功能:</p><p>  (1) 能完成對學生成績的錄入</p><p> ?。?) 能按班級統(tǒng)計學生的成績,求學生的總分及平均分,排序</p><p>  (3) 能按班級,學期輸出學生的成績單和不及格科目及學生名單</p><p> ?。?) 能查詢單個學生成績</p><p&

5、gt; ?。?) 能修改單個學生信息</p><p><b>  三 . 要求</b></p><p><b>  系統(tǒng)以菜單方式工作</b></p><p><b>  四 . 功能</b></p><p>  1 輸入功能:可以一次完成無數(shù)條信息的輸入。</p>

6、;<p>  2 輸出功能:能按班級輸出學生的成績單。</p><p>  3 修改功能:完成對單個學生成績的修改。</p><p>  4 查找功能:完成對單個學生信息查找,并顯示。</p><p>  5 排序功能:按學生成績進行排序,并顯示。</p><p>  6 有一個清晰美觀界面來調用各個功能</p&

7、gt;<p><b>  五.模塊圖</b></p><p><b>  六 . 詳細內容</b></p><p>  整個系統(tǒng)除了主函數(shù)外,另外還有5個函數(shù),實現(xiàn)六大功能:輸入功能、輸出功能、修改功能,查找并顯示功能、排序并顯示功能。各個函數(shù)的詳細設計說明分別如下:</p><p>  1 . 定義結構體及

8、宏定義</p><p>  #include <stdlib.h></p><p>  #include <stdio.h></p><p>  #include <string.h></p><p>  #define NUM 100</p><p>  struct studen

9、t</p><p>  { int term;</p><p><b>  int num;</b></p><p>  int classes;</p><p>  char name[10];</p><p>  int score[4];</p><p><b

10、>  int sum; </b></p><p>  float average; </p><p>  }stu[NUM];</p><p>  2.主函數(shù) main()</p><p>  利用無限次循環(huán)for(;;)和swithch()進行菜單選擇來實現(xiàn)各函數(shù)的調用,系統(tǒng)根據(jù)輸入的數(shù)字選項來調用相應的函數(shù)。等執(zhí)行完每

11、一個函數(shù)功能后,按任一鍵回到主界面也要通過這個函數(shù)來實現(xiàn)!</p><p>  void main() </p><p><b>  {</b></p><p><b>  zcd();</b></p><p><b>  }</b></p><p> 

12、 /*主函數(shù)界面*/ </p><p>  void zcd()</p><p><b>  {</b></p><p><b>  int n=0;</b></p><p><b>  char m;</b></p><p>  system(&q

13、uot;cls");/*清屏*/</p><p>  printf("按任一鍵進入主菜單\n "); /*按任一鍵進入主菜單*/ </p><p>  printf("********************************************************************************\n"); &

14、lt;/p><p>  printf("\t\t華中科技大學文華學院歡迎您\n"); </p><p>  printf("\n\t\t\t--------- 歡迎使用學生管理系統(tǒng)\n\n\t\t\t\t\t-----------\n"); </p><p>  printf("*********************

15、****************MENU***************************************\n"); </p><p>  printf("\t\t\t1. 輸入學生成績記錄 Input the record\n"); /*輸入學生成績記錄*/ </p><p>  printf("\t\t\t2. 排序并顯示 Sort

16、to make new a file\n"); /*排序*/</p><p>  printf("\t\t\t3. 按班級顯示成績單 Print the record\n"); /*顯示*/ </p><p>  printf("\t\t\t4. 查找個人成績 Search record on name\n"); /*查找*/ </p

17、><p>  printf("\t\t\t5. 修改 Modify a record\n"); /*修改*/ </p><p>  printf("\t\t\t6. 退出 Quit\n"); /*退出*/ </p><p>  printf("*************************************

18、*******************************************\n"); </p><p>  printf("\n\t\t\t輸入你的選擇Enter your choice(1~7):"); </p><p>  fflush(stdin);</p><p>  m=getchar(); </p>

19、<p><b>  do</b></p><p>  {switch(m)</p><p><b>  { </b></p><p>  case '1':input();zcd();break; </p><p>  case '2':sort();sy

20、stem("pause");zcd();break;</p><p>  case '3':print();system("pause");break; </p><p>  case '4':search();zcd();break; </p><p>  case '5':m

21、odify();system("pause");zcd();break; </p><p>  case '6':exit(0); /*如菜單返回值為7則程序結束*/ </p><p>  default:printf("錯誤命令"); getchar();zcd();</p><p><b>  

22、} </b></p><p>  } while(1);</p><p><b>  }</b></p><p><b>  3輸入信息函數(shù) </b></p><p>  void input()</p><p><b>  {</b><

23、;/p><p>  system("cls");</p><p><b>  int i;</b></p><p><b>  char a;</b></p><p>  for(i=0;i<NUM;i++)</p><p>  { printf(&q

24、uot; \n請輸入學生的學期:");</p><p>  scanf("%d",&stu[i].term);</p><p>  printf(" \n請輸入學生的學號:");</p><p>  fflush(stdin);</p><p>  scanf("%d&quo

25、t;,&stu[i].num);</p><p>  printf(" \n請輸入學生的班級:");</p><p>  scanf("%d",&stu[i].classes);</p><p>  printf("\n請輸入學生的姓名:");</p><p>  s

26、canf("%s", stu[i].name) ;</p><p>  printf("\n請輸入學生的語文成績:");</p><p>  scanf("%d",&stu[i].score[0]);</p><p>  printf("\n請輸入學生的數(shù)學成績:");</

27、p><p>  scanf("%d", &stu[i].score[1]); </p><p>  printf("\n請輸入學生的英語成績:");</p><p>  scanf("%d", &stu[i].score[2]);</p><p>  printf(&q

28、uot;\n請輸入學生的計算機成績:");</p><p>  scanf("%d", &stu[i].score[3]);</p><p>  stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3];//算總分和平均</p><p>

29、  stu[i].average=(float)stu[i].sum/4.0;</p><p>  printf("是否要繼續(xù)添加(按N&n退出)");</p><p>  fflush(stdin);</p><p>  a=getchar();</p><p>  if(a=='n'||a==&

30、#39;N')</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  4、排序并顯示函數(shù) </p><p>  void sort()</p&g

31、t;<p><b>  {</b></p><p>  int i,j=0;</p><p>  float temp;</p><p>  for(i=0;i<NUM;i++)</p><p><b>  {</b></p><p>  stu[i].s

32、um=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3];</p><p>  stu[i].average=(float)stu[i].sum/4.0;</p><p><b>  } </b></p><p>  for(i=0;i<NUM-1;i++)&

33、lt;/p><p><b>  {</b></p><p>  for(j=i+1;j<NUM;j++)</p><p><b>  {</b></p><p>  if(stu[i].sum<stu[j].sum)</p><p><b>  {<

34、/b></p><p>  temp=stu[i].sum;</p><p>  stu[i].sum=stu[j].sum;</p><p>  stu[j].sum=temp;</p><p><b>  }</b></p><p><b>  }</b></

35、p><p><b>  }</b></p><p>  printf("學號\t姓名\t班級 語文 數(shù)學 英語 計算機 總分 平均分\n");</p><p>  for(i=0;i<NUM;i++)</p><p>  printf("%d\t%s\t%d%5d%5d%5d%6d%7d%

36、8.2f\n",stu[i].num,stu[i].name,stu[i].classes,</p><p>  stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].average); </p><p>  /*輸出學生信息*/</p><p>

37、<b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  system("pause");system("cls");print();</p><p><b> 

38、 } </b></p><p>  5查找并顯示一個記錄 </p><p>  void search() </p><p><b>  { </b></p><p>  system("cls");/*清屏*/</p><p>  int number=

39、0,i; </p><p>  printf("\t\t\t 請輸入要查找學生的學號:"); </p><p>  scanf("%d",&number);</p><p>  printf("學號\t姓名\t班級 語文 數(shù)學 英語 計算機 總分 平均分\n");</p><

40、p>  for(i=0;i<NUM;i++)</p><p>  if(number==stu[i].num) break;/*查找判斷*/ </p><p><b>  if(i<NUM)</b></p><p>  {printf("%d\t%s\t%d%5d%5d%5d%6d%7d%8.2f\n",s

41、tu[i].num,stu[i].name,stu[i].classes,</p><p>  stu[i].score[0],stu[i].score[1],stu[i].score[2], stu[i].score[3],stu[i].sum,stu[i].average); /*輸出學生信息*/</p><p><b>  }</b></p>&l

42、t;p><b>  else</b></p><p>  printf("沒找到該學生的信息\n");</p><p>  system("pause");</p><p><b>  }</b></p><p>  6.按學期、按班級輸出成績函數(shù)<

43、;/p><p>  void print()</p><p><b>  {</b></p><p>  system("cls");</p><p><b>  char a;</b></p><p>  printf("1、按學期輸出\n&quo

44、t;);</p><p>  printf("2、按班級輸出\n");</p><p>  printf("3、返回\n");</p><p>  fflush(stdin);</p><p>  a=getchar();</p><p><b>  switch(a)

45、</b></p><p><b>  {</b></p><p>  case '1':print1();</p><p>  case '2':print2();</p><p>  case '3':zcd();</p><p>  

46、default:print();</p><p><b>  }</b></p><p><b>  } </b></p><p>  void print1()//按學期</p><p><b>  {</b></p><p><b>  i

47、nt i,m;</b></p><p>  printf("請輸入學期:\n");</p><p>  scanf("%d",&m);</p><p>  printf("學號\t姓名\t班級 語文 數(shù)學 英語 計算機 總分 平均分\n");</p><p>  

48、for(i=0;i<NUM;i++)</p><p><b>  {</b></p><p>  if(m==stu[i].term)</p><p>  printf("%d\t%s\t%d%5d%5d%5d%6d%7d%8.2f\n",stu[i].num,stu[i].name,stu[i].classes,&l

49、t;/p><p>  stu[i].score[0],stu[i].score[1],stu[i].score[2], stu[i].score[3],stu[i].sum,stu[i].average); /*輸出學生信息*/</p><p><b>  }</b></p><p>  system("pause");syst

50、em("cls");print();</p><p><b>  }</b></p><p>  void print2()//按班級</p><p><b>  {</b></p><p>  int i,j,k;</p><p>  printf(&q

51、uot;請輸入班級:\n");</p><p>  scanf("%d",&k);</p><p>  printf("學號\t姓名\t班級 語文 數(shù)學 英語 計算機 總分 平均分\n");</p><p>  for(i=0;i<NUM;i++)</p><p><b&g

52、t;  {</b></p><p>  if(k==stu[i].classes)</p><p><b>  {</b></p><p>  stu[i].sum=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]+stu[i].score[3];</p><p>

53、;  stu[i].average=stu[i].sum/4.0;</p><p>  printf("%d\t%s\t%d%5d%5d%5d%6d%7d%8.2f\n",stu[i].num,stu[i].name,stu[i].classes,</p><p>  stu[i].score[0],stu[i].score[1],stu[i].score[2], st

54、u[i].score[3],stu[i].sum,stu[i].average); /*輸出學生信息*/</p><p><b>  }</b></p><p><b>  }</b></p><p>  printf("輸出不及格學生名單及成績:\n");</p><p>  

55、printf("學號\t姓名\t班級 語文 數(shù)學 英語 計算機 \n");</p><p>  for(i=0;i<NUM;i++) </p><p>  {for(j=0;j<4;j++)</p><p><b>  {</b></p><p>  if(stu[i].score[j]&

56、lt;60&&k==stu[i].classes) /*輸出不及格學生名單及成績*/</p><p>  printf("%d\t%s\t%d%5d%5d%5d%6d\n",stu[i].num,stu[i].name,stu[i].classes,</p><p>  stu[i].score

57、[0],stu[i].score[1],stu[i].score[2], stu[i].score[3]);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  system(&q

58、uot;pause");system("cls");print();</p><p><b>  }</b></p><p><b>  7修改成績函數(shù)</b></p><p>  void modify() </p><p><b&g

59、t;  { </b></p><p>  system("cls");</p><p>  int number,i; </p><p>  printf("\t\t\t請輸入要修改信息的學生學號:");</p><p>  scanf("\t\t\t%d",&

60、;number);</p><p>  for(i=0;i<NUM;i++)</p><p>  if(number=stu[i].num) break;/*查找判斷*/ </p><p>  if(i<NUM)/*查找判斷*/ </p><p><b>  { </b></p><p&

61、gt;  printf("請輸入修改后的學生的信息:");</p><p>  printf(" \n請輸入學生的學期:");</p><p>  scanf("%d",&stu[i].term);</p><p>  printf(" \n請輸入學生的學號:");</p&

62、gt;<p>  fflush(stdin);</p><p>  scanf("%d",&stu[i].num);</p><p>  printf(" \n請輸入學生的班級:");</p><p>  scanf("%d",&stu[i].classes);</p&g

63、t;<p>  printf("\n請輸入學生的姓名:");</p><p>  scanf("%s", stu[i].name) ;</p><p>  printf("\n請輸入學生的語文成績:");</p><p>  scanf("%d",&stu[i].s

64、core[0]);</p><p>  printf("\n請輸入學生的數(shù)學成績:");</p><p>  scanf("%d", &stu[i].score[1]); </p><p>  printf("\n請輸入學生的英語成績:");</p><p>  scanf

65、("%d", &stu[i].score[2]);</p><p>  printf("\n請輸入學生的計算機成績:");</p><p>  scanf("%d", &stu[i].score[3]); </p><p><b>  }</b></p>

66、<p><b>  else</b></p><p>  printf("沒找到該學生的信息\n");</p><p>  system("paues");system("cls");zcd();</p><p><b>  } </b><

67、/p><p><b>  七.運行過程</b></p><p><b>  主菜單</b></p><p><b>  成績錄入</b></p><p><b>  統(tǒng)計排序</b></p><p><b>  按學期輸出成績

68、</b></p><p><b>  按班級輸出成績</b></p><p><b>  查找個人成績</b></p><p><b>  修改單個學生信息</b></p><p>  八.設計總結經過幾周的課程設計,我學到了很多東西:①鞏固和加深了對編程的理

69、解,提高綜合運用本課程所學知識的能力。②培養(yǎng)了我選用參考書,查閱手冊及文獻資料的能力。培養(yǎng)獨立思考,深入研究,分析問題、解決問題的能力。③經過實際編譯系統(tǒng)的分析設計、編程調試,掌握應用軟件的分析方法和工程設計方法。④能夠按要求編寫課程設計報告書,能正確闡述設計和實驗結果,正確繪制系統(tǒng)和程序框圖。</p><p>  課程設計是把我們所學的理論知識進行系統(tǒng)的總結并應用于實踐的良好機會,有利于加強我們用知識理論

溫馨提示

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

評論

0/150

提交評論