課程設計報告--學生測評系統(tǒng)_第1頁
已閱讀1頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  《C語言程序設計》</b></p><p><b>  課程設計報告</b></p><p>  題 目: 學生測評系統(tǒng)____</p><p>  院 (系): 信息科學與工程學院 </p><p>  專業(yè)班級:___軟件工程

2、 __</p><p>  學生姓名: </p><p>  學 號: </p><p>  指導教師: </p><p>  20 13 年 6 月 8 日至20

3、13 年 6 月 21 日</p><p>  C語言程序設計 課程設計任務書</p><p><b>  目 錄</b></p><p>  1 系統(tǒng)需求分析………………………………………………………………………5</p><p>  1.1系統(tǒng)概述……………………………………………………………………

4、…5 </p><p>  1.2 系統(tǒng)功能分析…………………………………………………………………5</p><p>  2 系統(tǒng)結構設計…………………………………………………………………………6</p><p>  3 系統(tǒng)實現(xiàn)………………………………………………………………………………8~21</p><p>  4 系統(tǒng)測試………………

5、………………………………………………………………22~28</p><p>  結論………………………………………………………………………………………29</p><p> ?。ㄒ螅耗夸涱}頭用三號黑體字居中書寫,隔行書寫目錄內(nèi)容。目錄中各級題序及題標用小四號黑體字)</p><p><b>  1 系統(tǒng)需求分析</b></p>

6、<p><b>  1.1 系統(tǒng)概述</b></p><p>  現(xiàn)代人社會交往越來越多,紙質(zhì)的測評系統(tǒng)已經(jīng)不能滿足我們的要求,更新麻煩,查詢困難,錄入也不方便等缺點是紙質(zhì)測評系統(tǒng)所不能克服的。在此情況下,迫切需要一個電子版的學生測評系統(tǒng)來滿足我們的需求,對學生測評系統(tǒng)進行必要的管理,滿足人們對記錄提供了極大的方便??紤]到要對學生測評系統(tǒng)進行快速檢索,所以采用結構體數(shù)組實現(xiàn)通訊錄信

7、息管理系統(tǒng)。要求實現(xiàn)插入、查找、刪除、修改、保存等基本功能,人機界面友好,使用文字化界面。所以便產(chǎn)生該學生測評系統(tǒng)。</p><p>  1.2 系統(tǒng)功能分析</p><p>  該系統(tǒng)通過結構體數(shù)組或鏈表實現(xiàn)了對學生測評信息的批量錄入、瀏覽、修改、刪除、添加、查詢以及考試平均成績和綜合測評總分自動計算功能。具體要求如下:</p><p>  學生的測評信息為:學號

8、、姓名、性別、家庭住址、聯(lián)系電話、語文成績、數(shù)學成績、外語成績、考試平均成績、同學互評分、品德成績、教師評分、綜合測評總分,試設計學生測評信息管理系統(tǒng),使之能提供以下功能:</p><p><b>  (1) 基本功能:</b></p><p> ?、傧到y(tǒng)以菜單方式工作:提供一個字符主菜單使用戶可以選擇不同的字符來實現(xiàn)系統(tǒng)的各個功能,各個功能實現(xiàn)后又能夠返回到主菜單。

9、</p><p> ?、谂夸浫牍δ埽涸阡浫氲倪^程中,通過詢問用戶是否繼續(xù)錄入的方法來錄入多個學生的測評信息(每個學生考試平均成績和綜合測評總分信息不用錄入)。</p><p> ?、燮骄煽兒途C合測評總分自動計算:根據(jù)考試平均成績=(語文+數(shù)學+外語)/3 ,計算出學生的考試平均成績,根據(jù)綜合測評總分=考試成績*0.6+同學互評分*0.1+品德成績*0.1+老師評分*0.2,計算出學生的

10、綜合測評總分。</p><p> ?、転g覽功能:按一定的格式顯示所有學生測評信息。</p><p> ?、菪薷墓δ埽狠斎胍薷牡膶W號,先對該學號進行查詢,如果查詢成功,則可以根據(jù)提示對該學生測評每項信息(學生考試平均成績和綜合測評總分信息除外)進行修改,當修改了語文成績、數(shù)學成績、外語成績、同學互評分、品德成績、教師評分后,能夠自動修改學生的考試平均成績和綜合測評總分的信息,如果查詢不成功

11、,則顯示相應的提示信息。</p><p> ?、迍h除功能:輸入要刪除的學號,先對該學號進行查詢,如果查詢成功,則刪除該學生測評所有信息,如果查詢不成功,則顯示相應的提示信息。</p><p> ?、咛砑庸δ埽狠斎胍砑拥膶W號,先對該學號進行查詢,如果查詢成功,則提示輸入的學號已存在的信息,并要求能夠重新輸入,如果查詢不成功,則輸入該學生測評的其他信息(考試平均成績和綜合測評總分信息不添加)

12、,并實現(xiàn)對考試平均成績和綜合測評總分自動計算,從而完成一個學生測評信息的錄入。</p><p> ?、嗖樵児δ埽耗軌蚍謩e按輸入的學號和姓名查詢學生測評的信息,如果查詢成功,則按一定的格式顯示查詢結果,如果查詢不成功,則顯示相應的提示信息。</p><p><b>  (2)擴展功能:</b></p><p> ?、?保存功能:首先提示用戶輸入保

13、存的文件名,將結構體數(shù)組或鏈表中的通訊錄信息保存在指定的文件中。</p><p><b>  2 系統(tǒng)結構設計</b></p><p><b>  2.1 系統(tǒng)結構圖</b></p><p>  2.2 函數(shù)詳細說明</p><p>  main();主函數(shù) indesk();

14、主界面函數(shù)</p><p>  luru();錄入函數(shù) liulan();瀏覽函數(shù)</p><p>  update_record();修改函數(shù) delete_record();刪除函數(shù)</p><p>  add(); 添加函數(shù) search(); 查找函數(shù)</p><p>  save

15、_to_file();保存函數(shù) read(); 讀取數(shù)據(jù)函數(shù)</p><p>  average();求平均值函數(shù) paixu();排序函數(shù)</p><p>  Main是主函數(shù),程序首先是從主函數(shù)開始運行的。在主函數(shù)中要判斷你是第幾次進入系統(tǒng)。</p><p>  luru是錄入函數(shù),可以批量錄入學生的信息,他被主函數(shù)所調(diào)用,也被主界面函

16、數(shù)調(diào)用。</p><p>  Index函數(shù)是顯示主界面的,提供用戶所進行的一些操作選項。被反復調(diào)用,與其他函數(shù)(除主函數(shù))進行相互調(diào)用。</p><p>  liulan是瀏覽函數(shù),調(diào)用排序函數(shù)按學號的從小到大進行排序后瀏覽所有的學生信息。</p><p>  Update-record是更新函數(shù),可以修改學生的信息。</p><p>  

17、Deleted-record是刪除函數(shù),可以刪除學生的信息。</p><p>  add是添加函數(shù),可以添加新的學生信息。</p><p>  Save_to_file是保存函數(shù),可以保存用戶所錄入的學生的信息。</p><p><b>  3 系統(tǒng)實現(xiàn)</b></p><p>  3.1學生結構體數(shù)組的定義和基本的頭文

18、件聲明</p><p>  #include<stdio.h></p><p>  #include<stdlib.h></p><p>  #include<string.h></p><p>  #define N 100</p><p>  int n=0,t=0;</p

19、><p>  struct student_assess//定義一個結構體數(shù)組。</p><p>  {char num[30];</p><p>  char name[30];</p><p>  char sex[10];</p><p>  char address[30];</p><p>

20、;  char phonenumber[30];</p><p>  float chinese_score;</p><p>  float math_score;</p><p>  float english_score;</p><p>  float class_a_score;</p><p>  floa

21、t quality_score;</p><p>  float te_a_score;</p><p><b>  }s[N];</b></p><p><b>  3.2主函數(shù)</b></p><p>  主函數(shù)判斷用戶是否是第一次進入系統(tǒng),如果是的話就調(diào)用錄入函數(shù),不是的話就調(diào)用讀入函數(shù)和主界

22、面函數(shù)。</p><p>  void main()//主函數(shù)</p><p><b>  { char a;</b></p><p>  void luru();</p><p>  void indesk();</p><p>  void read();</p><p&g

23、t;  printf("你是第一次登陸嗎?< y 是, n 不是>\n");</p><p>  scanf("%c",&a);</p><p>  if(a=='y') luru();</p><p>  if(a=='n') </p><p>&l

24、t;b>  { read();</b></p><p><b>  indesk();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  3.3 主界面函數(shù)</b><

25、;/p><p>  顯示系統(tǒng)的所有功能,讓用戶選擇。</p><p>  void indesk()//主菜單函數(shù)</p><p>  {void luru();</p><p>  void liulan();</p><p>  void update_record();</p><p>  

26、void delete_record();</p><p>  void add();</p><p>  void search();</p><p>  void save_to_file();</p><p><b>  int x;</b></p><p>  printf("*

27、***-----歡迎來到學生測評系統(tǒng)------****\n");</p><p>  printf("*--------軟工1202------李偉--------*\n");</p><p>  printf("選擇要執(zhí)行的功能\n");</p><p>  printf("1 錄入學生信息\n2 瀏覽

28、所有學生信息\n3 修改學生信息\n4 刪除學生記錄\n5 添加新學生\n6 查詢學生信息\n7 保存學生信息\n8 退出系統(tǒng)\n");</p><p>  printf("*----------------------------------*\n");</p><p>  scanf("%d",&x);</p>&

29、lt;p>  if (x==1) {system("cls");luru();}//錄入學生信息</p><p>  if(x==2) {system("cls");liulan();}//瀏覽所有學生信息</p><p>  if(x==3) {system("cls");update_record();}//修改學生信息

30、</p><p>  if(x==4) delete_record();//刪除學生記錄</p><p>  if(x==5) {system("cls");add();}//添加新學生</p><p>  if(x==6) {system("cls");search();}//查詢學生信息</p><p&

31、gt;  if(x==7) save_to_file();//保存學生信息</p><p>  if(x==8) exit(0);</p><p><b>  }</b></p><p><b>  3.4 錄入函數(shù)</b></p><p>  可以批量錄入學生的信息。</p><

32、;p>  void luru()//批量錄入函數(shù)</p><p><b>  { int x;</b></p><p>  printf("請輸入學生信息:\n");</p><p>  for(;t<N;t++)</p><p>  { printf("學號 姓名 性別 家

33、庭住址 聯(lián)系電話 語文成績 數(shù)學 外語 同學評 品德 教師評\n");</p><p>  scanf("%s%s%s%s%s%f%f%f%f%f%f",s[t].num,s[t].name,s[t].sex,s[t].address,s[t].phonenumber,&s[t].chinese_score,&s[t].math_score,&s[t].e

34、nglish_score,&s[t].class_a_score,&s[t].quality_score,&s[t].te_a_score);</p><p><b>  n=n+1;</b></p><p>  printf("請選擇:\n1 繼續(xù)錄入學生\n2 停止錄入返回主菜單\n");</p><

35、p>  scanf("%d",&x);</p><p><b>  if(x==1) </b></p><p><b>  continue;</b></p><p><b>  if(x==2) </b></p><p><b> 

36、 indesk();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  3.5瀏覽函數(shù)</b></p><p>  通過調(diào)用排序函數(shù)來按學號順序輸出所有學生的信息。</p><p&

37、gt;  void liulan()//瀏覽函數(shù)</p><p><b>  { int x;</b></p><p>  void paixu();</p><p><b>  paixu();</b></p><p>  printf("請輸入1可返回主菜單:");<

38、/p><p>  scanf("%d",&x);</p><p>  if(x==1) indesk();</p><p><b>  }</b></p><p><b>  3.6修改函數(shù)</b></p><p>  先查找學生,然后進行修改。<

39、;/p><p>  void update_record()//修改學生信息函數(shù)</p><p>  { int i,g,count;</p><p>  char b[30];</p><p>  printf("請輸入學號:");</p><p>  scanf("%s",&

40、amp;b);</p><p>  for(i=0;i<=n;i++)</p><p>  { if(strcmp(b,s[i].num)==0)</p><p>  { printf("該學生信息為:學號:%s 姓名:%s 性別:%s 家庭住址:%s 聯(lián)系電話:%s\n語文成績:%.2f 數(shù)學:%.2f 英語:%.2f 同學互評:%.2f 品

41、德:%.2f 老師互評:%.2f\n",s[i].num,s[i].name,s[i].sex,s[i].address,s[i].phonenumber,s[i].chinese_score,s[i].math_score,s[i].english_score,s[i].class_a_score,s[i].quality_score,s[i].te_a_score);</p><p><b&

42、gt;  count=i;</b></p><p>  printf("請輸入修改后的學生信息:(按以上順序輸入)\n");</p><p>  scanf("%s%s%s%s%s%f%f%f%f%f%f",s[count].num,s[count].name,s[count].sex,s[count].address,s[count].

43、phonenumber,&s[count].chinese_score,&s[count].math_score,&s[count].english_score,&s[count].class_a_score,&s[count].quality_score,&s[count].te_a_score);</p><p>  average(s[count]);<

44、/p><p>  printf("1 返回主菜單");</p><p>  scanf("%d",&g);</p><p>  if(g==1) indesk();</p><p><b>  break;</b></p><p><b>  

45、}</b></p><p><b>  }</b></p><p><b>  if(i>n) </b></p><p>  printf("沒有找到學號是【%s】的學生。\n1 返回主菜單",b);</p><p>  scanf("%d"

46、,&g);</p><p>  if(g==1) indesk();</p><p><b>  }</b></p><p><b>  3.7刪除函數(shù)</b></p><p>  先通過學號來查詢?nèi)缓髮崿F(xiàn)刪除。</p><p>  void delete_recor

47、d()//刪除函數(shù)</p><p>  { void index();</p><p>  int i,x,j;</p><p>  char g[30];</p><p>  system("cls");</p><p>  printf("請輸入要刪除的學號:\n");&

48、lt;/p><p>  scanf("%s",g);</p><p>  for(j=0;j<n;j++)</p><p><b>  { </b></p><p>  if(strcmp(g,s[j].num)==0)</p><p>  { printf(&quo

49、t;存在該生信息,刪除該生信息:\n");</p><p>  for(i=j;i<n;i++)</p><p><b>  {</b></p><p>  strcpy(s[i].num,s[i+1].num);</p><p>  strcpy(s[i].name,s[i+1].name);</

50、p><p>  strcpy(s[i].sex,s[i+1].sex);</p><p>  strcpy(s[i].phonenumber,s[i+1].phonenumber);</p><p>  strcpy(s[i].address,s[i+1].address);</p><p>  strcpy(s[i].address,s[i+1

51、].address);</p><p>  s[i].chinese_score=s[i+1].chinese_score;</p><p>  s[i].english_score=s[i+1].english_score;</p><p>  s[i].math_score=s[i+1].math_score;</p><p>  s[i

52、].class_a_score=s[i+1].class_a_score;</p><p>  s[i].quality_score=s[i+1].quality_score;</p><p>  s[i].te_a_score=s[i+1].te_a_score;</p><p><b>  n=n-1;</b></p><

53、;p><b>  } </b></p><p>  printf("恭喜你刪除成功!\n"); </p><p><b>  }</b></p><p>  else if(j==n-1)printf("不存在這個學生\n");</p><p><

54、b>  }</b></p><p>  printf("1 返回主菜單\n 2 繼續(xù)刪除\n");</p><p>  scanf("%d",&x);</p><p>  if(x==1) indesk();</p><p>  else delete_record();<

55、;/p><p><b>  }</b></p><p><b>  3.8添加函數(shù)</b></p><p>  先查找是否存在該學生,如果不存在就進行添加,存在的話就提示該學生信息存在不用添加。</p><p>  void add()//添加新學生函數(shù)</p><p>  

56、{ int i,m,x;</p><p>  char b[30];</p><p>  void paixu();</p><p>  printf("請輸入要添加學生的學號:");</p><p>  scanf("%s",&b);</p><p>  for(i

57、=0;i<n;i++)</p><p>  {if(strcmp(s[i].num,b)==0) </p><p>  {printf("該學生存在(不用添加)信息為:學號%s 姓名%s 性別%s 家庭住址%s 聯(lián)系電話%s\n語文成績%.2f 數(shù)學%.2f 英語%.2f 同學互評%.2f 品德%.2f 老師互評%.2f\n",s[i].num,s[i].nam

58、e,s[i].sex,s[i].address,s[i].phonenumber,s[i].chinese_score,s[i].math_score,s[i].english_score,s[i].class_a_score,s[i].quality_score,s[i].te_a_score);</p><p><b>  break;}</b></p><p>

59、<b>  }</b></p><p><b>  if(i>=n)</b></p><p>  { printf("該學號不存在可以添加\n");</p><p>  printf("請按下列順序輸入\n學號 姓名 性別 家庭住址 聯(lián)系電話 語文成績 數(shù)學 外語 同學評分 品德 教師評

60、分\n");</p><p>  scanf("%s%s%s%s%s%f%f%f%f%f%f",s[n].num,s[n].name,s[n].sex,s[n].address,s[n].phonenumber,&s[n].chinese_score,&s[n].math_score,&s[n].english_score,&s[n].class_a_

61、score,&s[n].quality_score,&s[n].te_a_score);</p><p><b>  n=n+1;</b></p><p>  printf("共有%d個學生\n",n);</p><p><b>  }</b></p><p> 

62、 printf("您可以選擇\n1按學號順序查看所有學生信息。\n2繼續(xù)添加。\n");</p><p>  scanf("%d",&m);</p><p><b>  if(m==1) </b></p><p>  { paixu();</p><p>  printf(

63、"請輸入1可返回主菜單:");</p><p>  scanf("%d",&x);</p><p>  if(x==1) indesk();</p><p><b>  }</b></p><p>  if(m==2) add();</p><p>

64、<b>  }</b></p><p><b>  3.9查詢函數(shù)</b></p><p>  可以分別按學號和姓名來查詢學生的信息。</p><p>  void search()//查詢函數(shù)</p><p>  { int i,x,k;</p><p>  char a[

65、20],b[30];</p><p>  void average(struct student_assess w);</p><p>  printf("請輸入按何種方式查詢:\n1 按學號\n2 按姓名\n");</p><p>  scanf("%d",&x);</p><p><b

66、>  if(x==1)</b></p><p>  { printf("按學號查詢,請輸入學號:\n");</p><p>  scanf("%s",a);</p><p>  for(i=0;i<n;i++)</p><p><b>  { </b>&

67、lt;/p><p>  if(strcmp(a,s[i].num)==0)</p><p><b>  {</b></p><p>  printf("存在該生信息\n");</p><p>  printf("該學生信息為:學號%s 姓名%s 性別%s 家庭住址%s 聯(lián)系電話%s\n語文成績%

68、.2f 數(shù)學%.2f 英語%.2f同學評%.2f品德%.2f 老師評%.2f\n",s[i].num,s[i].name,s[i].sex,s[i].address,s[i].phonenumber,s[i].chinese_score,s[i].math_score,s[i].english_score,s[i].class_a_score,s[i].quality_score,s[i].te_a_score);</p

69、><p>  average(s[i]); </p><p>  printf("1 繼續(xù)查找\n2 返回主菜單\n");</p><p>  scanf("%d",&k);</p><p>  if(k==1) search();</p><p>  if(k==2) in

70、desk();</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(i>=n) </b></p><p>  {

71、 printf("沒有找到這個學生\n1 繼續(xù)查找\n2 返回主菜單\n");</p><p>  scanf("%d",&k);</p><p><b>  }</b></p><p>  if(k==1) search();</p><p>  if(k==2) ind

72、esk();</p><p><b>  }</b></p><p><b>  if(x==2)</b></p><p>  { printf("按姓名查詢,請輸入姓名:");</p><p>  scanf("%s",b);</p><

73、;p>  for(i=0;i<n;i++)</p><p><b>  { </b></p><p>  if(strcmp(b,s[i].name)==0) </p><p>  { printf("存在該生信息\n");</p><p>  printf("該學生信息為:

74、\n學號%s 姓名%s 性別%s 家庭住址%s 聯(lián)系電話%s\n語文成績%.2f 數(shù)學%.2f 英語%.2f 同學互評%.2f 品德%.2f 老師互評%.2f\n",s[i].num,s[i].name,s[i].sex,s[i].address,s[i].phonenumber,s[i].chinese_score,s[i].math_score,s[i].english_score,s[i].class_a_score,

75、s[i].quality_score,s[i].te_a_score);</p><p>  average(s[i]);</p><p>  printf("1 繼續(xù)查找\n2 返回主菜單\n");</p><p>  scanf("%d",&k);</p><p>  if(k==1) se

76、arch();</p><p>  if(k==2) indesk();</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(i&g

77、t;=n) </b></p><p>  { printf("沒有找到這個學生\n1 繼續(xù)查找\n2 返回主菜單\n");</p><p>  scanf("%d",&k);</p><p><b>  }</b></p><p>  if(k==1) sea

78、rch();</p><p>  if(k==2) indesk();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  3.10保存函數(shù)</b></p><p>  可以輸入一個文件名進行保存。

79、</p><p>  void save_to_file()//保存到文件函數(shù)</p><p><b>  {</b></p><p><b>  FILE*fp;</b></p><p><b>  int i,x;</b></p><p>  cha

80、r filename[30];</p><p>  printf("請輸入文件名(在30個字符以內(nèi)):\n");</p><p>  scanf("%s",filename);</p><p>  if((fp=fopen(filename,"wb"))==NULL)</p><p>

81、;<b>  {</b></p><p>  printf("不能打開該文件\n");</p><p><b>  return;</b></p><p><b>  }</b></p><p>  if(fwrite(&n,sizeof(int),

82、1,fp)!=1)</p><p>  { printf("不能寫入\n");</p><p>  printf("請輸入1可返回主菜單:");</p><p>  scanf("%d",&x);</p><p>  if(x==1) indesk();</p>

83、;<p><b>  }</b></p><p>  for(i=0;i<n;i++)</p><p>  {if(fwrite(&s[i],sizeof(struct student_assess),1,fp)!=1)</p><p><b>  {</b></p><

84、;p>  printf("不能寫入\n");</p><p>  printf("請輸入1可返回主菜單:");</p><p>  scanf("%d",&x);</p><p>  if(x==1) indesk();</p><p><b>  }<

85、/b></p><p>  else printf("保存成功!\n");</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  indesk();</p><p><b>  }</b></

86、p><p><b>  3.11排序函數(shù)</b></p><p>  利用冒泡排序按學號從小到大輸出。</p><p>  void paixu()//排序函數(shù)</p><p><b>  {</b></p><p>  int i,j,k;</p><p&g

87、t;  char g[30],l[30],m[10],f[30],z[30];</p><p>  float r,t,y,u,w,q;</p><p>  for(j=0;j<n-1;j++)</p><p><b>  {</b></p><p>  for(k=j+1;k<n;k++)</p>

88、;<p><b>  { </b></p><p>  if(strcmp(s[j].num,s[k].num)>0)</p><p><b>  { </b></p><p>  strcpy(g,s[j].num);strcpy(s[j].num,s[k].num);strcpy(s[k].nu

89、m,g);</p><p>  strcpy(l,s[j].name);strcpy(s[j].name,s[k].name);strcpy(s[k].name,l);</p><p>  strcpy(m,s[j].sex);strcpy(s[j].sex,s[k].sex);strcpy(s[k].sex,m);</p><p>  strcpy(f,s[j].

90、address);strcpy(s[j].address,s[k].address);strcpy(s[k].address,f);</p><p>  strcpy(z,s[j].phonenumber);strcpy(s[j].phonenumber,s[k].phonenumber);strcpy(s[k].phonenumber,z);</p><p>  r=s[j].math_

91、score;s[j].math_score=s[k].math_score;s[k].math_score=r;</p><p>  t=s[j].chinese_score;s[j].chinese_score=s[k].chinese_score;s[k].chinese_score=t;</p><p>  y=s[j].english_score;s[j].english_scor

92、e=s[k].english_score;s[k].english_score=y;</p><p>  u=s[j].quality_score;s[j].quality_score=s[k].quality_score;s[k].quality_score=u;</p><p>  w=s[j].class_a_score;s[j].class_a_score=s[k].class_a

93、_score;s[k].class_a_score=w;</p><p>  q=s[j].te_a_score;s[j].te_a_score=s[k].te_a_score;s[k].te_a_score=q;</p><p><b>  }</b></p><p><b>  }</b></p><

94、;p><b>  }</b></p><p>  printf("+---------------------------------------------------------------------------+\n");</p><p>  printf("學號 姓名 性別 家庭住址 電話號碼 語文成績 數(shù)學 外語 同學互

95、評 品德 教師評分\n");</p><p>  printf("+---------------------------------------------------------------------------+\n");</p><p>  for(i=0;i<n;i++)</p><p>  { printf(&quo

96、t;%s %s %s %s %s %.2f %.2f %.2f %.2f %.2f %.2f\n",s[i].num,s[i].name,s[i].sex,s[i].address,s[i].phonenumber,s[i].chinese_score,s[i].math_score,s[i].english_score,s[i].class_a_score,s[i].quality_score,s[i].te_a_score

97、); </p><p>  average(s[i]);</p><p><b>  }</b></p><p><b>  }</b></p><p>  3.12求平均值函數(shù)</p><p>  將結構體數(shù)組的一個變量傳給該函數(shù),再按公式計算出學生的平均分和綜合測評成績。

98、</p><p>  void average(struct student_assess w)//計算平均值函數(shù)</p><p>  { float score_1,score_2;</p><p>  score_1=(w.chinese_score+w.math_score+w.english_score)/3.0;</p><p> 

99、 printf("考試平均成績?yōu)?%.2f",score_1); </p><p>  score_2=score_1*0.6+w.class_a_score*0.1+w.quality_score*0.1+w.te_a_score*0.2;</p><p>  printf("綜合測評總分:%.2f\n",score_2);</p>

100、<p><b>  }</b></p><p><b>  4 系統(tǒng)測試</b></p><p>  4.1 主函數(shù)功能測試</p><p>  在主函數(shù)中,通過詢問用戶是否是第一次進入系統(tǒng)。若果用戶是的就會輸入“y”那么就會調(diào)用相應的批量錄入函數(shù)執(zhí)行結果如下:</p><p>  如果用

101、戶輸入的“n”就會調(diào)用read函數(shù)從文件當中讀取相應的數(shù)據(jù)。</p><p>  4.2 批量錄入函數(shù)功能測試</p><p>  在批量錄入函數(shù)當中有計算錄入人數(shù)的語句,錄入一條將全局變量n加一。在詢問用戶是否繼續(xù)錄入,具體執(zhí)行結果如下:</p><p>  4.3瀏覽函數(shù)功能測試</p><p>  當用戶在主菜單選擇2時,就會按學號的大

102、小順序瀏覽所有學生的信息。并且會按照表頭順序顯示。</p><p>  4.4主界面函數(shù)功能測試</p><p>  主界面函數(shù)提供給用戶選擇執(zhí)行相應的功能。</p><p>  4.5修改函數(shù)功能測試</p><p>  當執(zhí)行修改函數(shù)時會提示用戶請輸入學號,然后按學號查找該學生是否存在。如果存在就顯示該生信息然后進行修改。如果不存在就提醒

103、用戶該生不存在。</p><p>  4.6刪除函數(shù)功能測試</p><p>  先查詢,再刪除。執(zhí)行如下:</p><p>  刪除后可以返回主菜單選擇2瀏覽所有學生信息。如下表:</p><p>  4.7查詢函數(shù)功能測試</p><p>  執(zhí)行查詢函數(shù)時,用戶可以選擇按學號和按姓名兩種不同的方式進行查詢,如果不

104、存在就提示沒有這個學生。然后在選擇其他功能執(zhí)行,如下圖:</p><p>  如果存在的話,就按一定的格式顯示該學生的信息。如下圖:</p><p>  4.8添加函數(shù)功能測試</p><p>  先輸入學號,按學號進行查找該學生是否存在,如果不存在就提示用戶可以添加。執(zhí)行如下:添加之后可以選擇繼續(xù)添加和瀏覽所有學生信息。</p><p> 

105、 如果學生存在的話就提示用戶該生存在不用添加。</p><p>  4.9保存函數(shù)功能測試</p><p>  保存函數(shù)可以提示用戶輸入文件名進行保存,保存成功之后自動返回主界面函數(shù)。</p><p><b>  結論</b></p><p>  這次課程設計的題目是學生測評系統(tǒng)。從看到課程設計任務書書開始我就一心一意的

106、做這個系統(tǒng),希望把自己今年來所學到的知識運用到這個系統(tǒng)上面。我開始就一條一條的寫代碼,一個字母一個字母的寫進我的程序當中。我以為這個系統(tǒng)很簡單,只要寫出了代碼就可以實現(xiàn)各個功能,但事實上并非如此。做一個系統(tǒng)不僅僅是寫代碼的問題,更注重的是考驗我們綜合運用所有知識的能力。我們?nèi)绻鰹橐幻嬲能浖ぷ魅藛T,那么我需要做的還有需求分析,最終的系統(tǒng)實現(xiàn),和客戶的溝通等等。</p><p>  最重要的一點是合作和交流,

107、一個大型的程序我們一個的想法肯定是不全面的,一個人的思路也存在著缺陷。所以要學會去借鑒和交流,可能我想出來的你沒有想出了,你想出來的我沒有想出來。通過相互的補充我們的程序才會接近完美。</p><p>  所以在這次課程設計當中,我明白了一名合格的程序工作人員需要具備的一些能力。也更加堅定了我學習的目標。</p><p>  在具體的細節(jié)方面,我認為做程序?qū)懘a必須有耐心和毅力,換有細心。

溫馨提示

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

評論

0/150

提交評論