課程設(shè)計(jì)報(bào)告--學(xué)生測(cè)評(píng)系統(tǒng)_第1頁
已閱讀1頁,還剩29頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

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

2、1202班___</p><p>  學(xué)生姓名: </p><p>  學(xué) 號(hào): </p><p>  指導(dǎo)教師: </p><p>  20 13 年 6 月 8 日至20 13 年 6 月 21

3、 日</p><p>  C語言程序設(shè)計(jì) 課程設(shè)計(jì)任務(wù)書</p><p><b>  目 錄</b></p><p>  1 系統(tǒng)需求分析………………………………………………………………………5</p><p>  1.1系統(tǒng)概述………………………………………………………………………5 </p>&

4、lt;p>  1.2 系統(tǒng)功能分析…………………………………………………………………5</p><p>  2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)…………………………………………………………………………6</p><p>  3 系統(tǒng)實(shí)現(xiàn)………………………………………………………………………………8~21</p><p>  4 系統(tǒng)測(cè)試…………………………………………………………

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

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

7、刪除、修改、保存等基本功能,人機(jī)界面友好,使用文字化界面。所以便產(chǎn)生該學(xué)生測(cè)評(píng)系統(tǒng)。</p><p>  1.2 系統(tǒng)功能分析</p><p>  該系統(tǒng)通過結(jié)構(gòu)體數(shù)組或鏈表實(shí)現(xiàn)了對(duì)學(xué)生測(cè)評(píng)信息的批量錄入、瀏覽、修改、刪除、添加、查詢以及考試平均成績(jī)和綜合測(cè)評(píng)總分自動(dòng)計(jì)算功能。具體要求如下:</p><p>  學(xué)生的測(cè)評(píng)信息為:學(xué)號(hào)、姓名、性別、家庭住址、聯(lián)系電話

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

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

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

11、/p><p>  ⑥刪除功能:輸入要?jiǎng)h除的學(xué)號(hào),先對(duì)該學(xué)號(hào)進(jìn)行查詢,如果查詢成功,則刪除該學(xué)生測(cè)評(píng)所有信息,如果查詢不成功,則顯示相應(yīng)的提示信息。</p><p> ?、咛砑庸δ埽狠斎胍砑拥膶W(xué)號(hào),先對(duì)該學(xué)號(hào)進(jìn)行查詢,如果查詢成功,則提示輸入的學(xué)號(hào)已存在的信息,并要求能夠重新輸入,如果查詢不成功,則輸入該學(xué)生測(cè)評(píng)的其他信息(考試平均成績(jī)和綜合測(cè)評(píng)總分信息不添加),并實(shí)現(xiàn)對(duì)考試平均成績(jī)和綜合測(cè)評(píng)

12、總分自動(dòng)計(jì)算,從而完成一個(gè)學(xué)生測(cè)評(píng)信息的錄入。</p><p>  ⑧查詢功能:能夠分別按輸入的學(xué)號(hào)和姓名查詢學(xué)生測(cè)評(píng)的信息,如果查詢成功,則按一定的格式顯示查詢結(jié)果,如果查詢不成功,則顯示相應(yīng)的提示信息。</p><p><b>  (2)擴(kuò)展功能:</b></p><p> ?、?保存功能:首先提示用戶輸入保存的文件名,將結(jié)構(gòu)體數(shù)組或鏈表中

13、的通訊錄信息保存在指定的文件中。</p><p><b>  2 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)</b></p><p><b>  2.1 系統(tǒng)結(jié)構(gòu)圖</b></p><p>  2.2 函數(shù)詳細(xì)說明</p><p>  main();主函數(shù) indesk(); 主界面函數(shù)</p>

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

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

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

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

18、lt;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><p> 

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

20、ber[30];</p><p>  float chinese_score;</p><p>  float math_score;</p><p>  float english_score;</p><p>  float class_a_score;</p><p>  float quality_score;

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

22、<p>  void main()//主函數(shù)</p><p><b>  { char a;</b></p><p>  void luru();</p><p>  void indesk();</p><p>  void read();</p><p>  printf("

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

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

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

26、rd();</p><p>  void add();</p><p>  void search();</p><p>  void save_to_file();</p><p><b>  int x;</b></p><p>  printf("****-----歡迎來到學(xué)生測(cè)評(píng)

27、系統(tǒng)------****\n");</p><p>  printf("*--------軟工1202------李偉--------*\n");</p><p>  printf("選擇要執(zhí)行的功能\n");</p><p>  printf("1 錄入學(xué)生信息\n2 瀏覽所有學(xué)生信息\n3 修改學(xué)生信息

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

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

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

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

32、u()//批量錄入函數(shù)</p><p><b>  { int x;</b></p><p>  printf("請(qǐng)輸入學(xué)生信息:\n");</p><p>  for(;t<N;t++)</p><p>  { printf("學(xué)號(hào) 姓名 性別 家庭住址 聯(lián)系電話 語文成績(jī)

33、數(shù)學(xué) 外語 同學(xué)評(píng) 品德 教師評(píng)\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].english_score,&am

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

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

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

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

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

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

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

41、f\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>  count=i;<

42、;/b></p><p>  printf("請(qǐng)輸入修改后的學(xué)生信息:(按以上順序輸入)\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].phonenumber,&

43、;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]);</p><p>

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

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

46、gt;<p>  if(g==1) indesk();</p><p><b>  }</b></p><p><b>  3.7刪除函數(shù)</b></p><p>  先通過學(xué)號(hào)來查詢?nèi)缓髮?shí)現(xiàn)刪除。</p><p>  void delete_record()//刪除函數(shù)</p&

47、gt;<p>  { void index();</p><p>  int i,x,j;</p><p>  char g[30];</p><p>  system("cls");</p><p>  printf("請(qǐng)輸入要?jiǎng)h除的學(xué)號(hào):\n");</p><p

48、>  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("存在該生信息,刪除該生信息:

49、\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);</p><p>

50、  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].address);</

51、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].class_a_score=

52、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><p><b> 

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

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

55、t;<b>  }</b></p><p><b>  3.8添加函數(shù)</b></p><p>  先查找是否存在該學(xué)生,如果不存在就進(jìn)行添加,存在的話就提示該學(xué)生信息存在不用添加。</p><p>  void add()//添加新學(xué)生函數(shù)</p><p>  { int i,m,x;&l

56、t;/p><p>  char b[30];</p><p>  void paixu();</p><p>  printf("請(qǐng)輸入要添加學(xué)生的學(xué)號(hào):");</p><p>  scanf("%s",&b);</p><p>  for(i=0;i<n;i++)&l

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

58、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><b>  }<

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

60、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_score,&s[n].

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

62、以選擇\n1按學(xué)號(hào)順序查看所有學(xué)生信息。\n2繼續(xù)添加。\n");</p><p>  scanf("%d",&m);</p><p><b>  if(m==1) </b></p><p>  { paixu();</p><p>  printf("請(qǐng)輸入1可返回主菜單

63、:");</p><p>  scanf("%d",&x);</p><p>  if(x==1) indesk();</p><p><b>  }</b></p><p>  if(m==2) add();</p><p><b>  }<

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

65、><p>  void average(struct student_assess w);</p><p>  printf("請(qǐng)輸入按何種方式查詢:\n1 按學(xué)號(hào)\n2 按姓名\n");</p><p>  scanf("%d",&x);</p><p><b>  if(x==1)&l

66、t;/b></p><p>  { printf("按學(xué)號(hào)查詢,請(qǐng)輸入學(xué)號(hào):\n");</p><p>  scanf("%s",a);</p><p>  for(i=0;i<n;i++)</p><p><b>  { </b></p><p

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

68、f同學(xué)評(píng)%.2f品德%.2f 老師評(píng)%.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> 

69、 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) indesk();</p>

70、;<p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  if(i>=n) </b></p><p>  { printf("沒有

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

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

73、i<n;i++)</p><p><b>  { </b></p><p>  if(strcmp(b,s[i].name)==0) </p><p>  { printf("存在該生信息\n");</p><p>  printf("該學(xué)生信息為:\n學(xué)號(hào)%s 姓名%s 性別%s

74、 家庭住址%s 聯(lián)系電話%s\n語文成績(jī)%.2f 數(shù)學(xué)%.2f 英語%.2f 同學(xué)互評(píng)%.2f 品德%.2f 老師互評(píng)%.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_sco

75、re,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) search();</p>

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

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

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

79、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>  char filename[30];&

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

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

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

83、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><p>  printf(&

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

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

86、<b>  3.11排序函數(shù)</b></p><p>  利用冒泡排序按學(xué)號(hào)從小到大輸出。</p><p>  void paixu()//排序函數(shù)</p><p><b>  {</b></p><p>  int i,j,k;</p><p>  char g[30],l

87、[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><p><

88、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].num,g);</p>

89、<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].address);strcpy(

90、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_score;s[j].math_

91、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_score=s[k].english_s

92、core;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_score;s[k].clas

93、s_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><p><b> 

94、 }</b></p><p>  printf("+---------------------------------------------------------------------------+\n");</p><p>  printf("學(xué)號(hào) 姓名 性別 家庭住址 電話號(hào)碼 語文成績(jī) 數(shù)學(xué) 外語 同學(xué)互評(píng) 品德 教師評(píng)分\n"

95、;);</p><p>  printf("+---------------------------------------------------------------------------+\n");</p><p>  for(i=0;i<n;i++)</p><p>  { printf("%s %s %s %s %s

96、 %.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); </p>&

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

98、p>  void average(struct student_assess w)//計(jì)算平均值函數(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>  printf("考試

99、平均成績(jī)?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("綜合測(cè)評(píng)總分:%.2f\n",score_2);</p><p><b&g

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

101、數(shù)從文件當(dāng)中讀取相應(yīng)的數(shù)據(jù)。</p><p>  4.2 批量錄入函數(shù)功能測(cè)試</p><p>  在批量錄入函數(shù)當(dāng)中有計(jì)算錄入人數(shù)的語句,錄入一條將全局變量n加一。在詢問用戶是否繼續(xù)錄入,具體執(zhí)行結(jié)果如下:</p><p>  4.3瀏覽函數(shù)功能測(cè)試</p><p>  當(dāng)用戶在主菜單選擇2時(shí),就會(huì)按學(xué)號(hào)的大小順序?yàn)g覽所有學(xué)生的信息。并且會(huì)

102、按照表頭順序顯示。</p><p>  4.4主界面函數(shù)功能測(cè)試</p><p>  主界面函數(shù)提供給用戶選擇執(zhí)行相應(yīng)的功能。</p><p>  4.5修改函數(shù)功能測(cè)試</p><p>  當(dāng)執(zhí)行修改函數(shù)時(shí)會(huì)提示用戶請(qǐng)輸入學(xué)號(hào),然后按學(xué)號(hào)查找該學(xué)生是否存在。如果存在就顯示該生信息然后進(jìn)行修改。如果不存在就提醒用戶該生不存在。</p&g

103、t;<p>  4.6刪除函數(shù)功能測(cè)試</p><p>  先查詢,再刪除。執(zhí)行如下:</p><p>  刪除后可以返回主菜單選擇2瀏覽所有學(xué)生信息。如下表:</p><p>  4.7查詢函數(shù)功能測(cè)試</p><p>  執(zhí)行查詢函數(shù)時(shí),用戶可以選擇按學(xué)號(hào)和按姓名兩種不同的方式進(jìn)行查詢,如果不存在就提示沒有這個(gè)學(xué)生。然后在選

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

105、存在不用添加。</p><p>  4.9保存函數(shù)功能測(cè)試</p><p>  保存函數(shù)可以提示用戶輸入文件名進(jìn)行保存,保存成功之后自動(dòng)返回主界面函數(shù)。</p><p><b>  結(jié)論</b></p><p>  這次課程設(shè)計(jì)的題目是學(xué)生測(cè)評(píng)系統(tǒng)。從看到課程設(shè)計(jì)任務(wù)書書開始我就一心一意的做這個(gè)系統(tǒng),希望把自己今年來所學(xué)

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

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

溫馨提示

  • 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)論