學(xué)生成績管理系統(tǒng)課程設(shè)計報告 (3)_第1頁
已閱讀1頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  學(xué)生成績管理系統(tǒng)</b></p><p><b>  課程設(shè)計報告</b></p><p><b>  功能描述</b></p><p>  此成績管理系統(tǒng)主要利用結(jié)構(gòu)體數(shù)組實現(xiàn),由如下六個功能模塊實現(xiàn)</p><p>  輸入模塊。主要完成將學(xué)生

2、信息存入結(jié)構(gòu)體數(shù)組的工作。(南云霞)</p><p>  刪除、修改模塊。主要完成對結(jié)構(gòu)體數(shù)組中數(shù)據(jù)的刪除、修改工作。</p><p><b> ?。ㄙZ維尚)</b></p><p>  3、查詢、排序模塊。主要完成對結(jié)構(gòu)體數(shù)組中數(shù)據(jù)的查詢、排序工作。</p><p><b> ?。ㄆ钋啵?lt;/b>&

3、lt;/p><p>  4、輸出模塊。主要完成對結(jié)構(gòu)體數(shù)組中數(shù)據(jù)輸出的工作。(鄭金帥)</p><p><b>  二、總體設(shè)計</b></p><p><b>  1、功能模塊設(shè)計</b></p><p> ?。?)主函數(shù)main()執(zhí)行流程</p><p><b>

4、  開始</b></p><p><b>  輸出菜單</b></p><p>  根據(jù)表達式m m=0 </p><p><b>  的值選擇程序</b></p><p>  m=1 m=2 m=3 m=4 m=5 m=6 m

5、=7 m=8</p><p><b>  Y</b></p><p><b>  Y/N</b></p><p><b>  N</b></p><p><b>  結(jié)束</b></p><p>  (2)輸入學(xué)生信息函數(shù)srx

6、sxx()流程</p><p><b>  開始1</b></p><p><b>  Y</b></p><p>  fp=fopen("list","wb"))==NULL</p><p><b>  N</b></p>

7、<p><b>  for循環(huán)</b></p><p><b>  將數(shù)據(jù)保存到</b></p><p><b>  list文件中</b></p><p><b>  結(jié)束</b></p><p>  添加學(xué)生信息函數(shù)tjxsxx()流程&l

8、t;/p><p><b>  開始2</b></p><p><b>  Y</b></p><p>  fp=fopen("list","wb"))==NULL</p><p><b>  N</b></p><p>

9、;<b>  for循環(huán)</b></p><p><b>  將數(shù)據(jù)保存到</b></p><p><b>  list文件中</b></p><p><b>  結(jié)束</b></p><p>  刪除學(xué)生信息函數(shù)scxsxx()流程</p>

10、<p><b>  開始3</b></p><p>  在list文件中讀入數(shù)據(jù)</p><p>  輸入學(xué)生的姓名或?qū)W號</p><p><b>  查找要刪除的學(xué)生</b></p><p><b>  輸出學(xué)生的信息</b></p><p&g

11、t;<b>  確定刪除該學(xué)生信息</b></p><p><b>  并執(zhí)行</b></p><p><b>  結(jié)束</b></p><p>  (5) 修改學(xué)生信息函數(shù)xgxsxx()流程</p><p><b>  開始4</b></p>

12、;<p>  在list文件中讀入數(shù)據(jù)</p><p>  輸入學(xué)生的姓名或?qū)W號</p><p><b>  查找要修改的學(xué)生</b></p><p><b>  輸出學(xué)生的信息</b></p><p><b>  確定修改該學(xué)生信息</b></p>

13、<p><b>  并執(zhí)行</b></p><p><b>  結(jié)束</b></p><p>  (6)學(xué)生信息查詢函數(shù)xsxxcx()流程</p><p><b>  開始5</b></p><p>  在list文件中讀入數(shù)據(jù)</p><p&

14、gt;  輸入要查找學(xué)生的信息</p><p><b>  查找要需要的學(xué)生</b></p><p><b>  輸出學(xué)生的信息</b></p><p><b>  結(jié)束</b></p><p>  (7)學(xué)生成績排序函數(shù)xscjpx()流程</p><p&

15、gt;<b>  開始6</b></p><p><b>  調(diào)出list文件</b></p><p><b>  中的數(shù)據(jù)</b></p><p>  Y 排序</p><p>  stu[j].average<stu[i].ave

16、rage</p><p><b>  N</b></p><p>  t=stu[j];stu[j]=stu[i];</p><p><b>  stu[i]=t;</b></p><p><b>  輸出學(xué)生信息</b></p><p><b&g

17、t;  結(jié)束</b></p><p>  (8)掛科人數(shù)查詢函數(shù)gkrscx()流程</p><p><b>  開始7</b></p><p>  調(diào)出list文件數(shù)據(jù)</p><p><b>  N</b></p><p>  stu.avergae<6

18、0</p><p><b>  Y</b></p><p><b>  輸出</b></p><p><b>  結(jié)束</b></p><p> ?。?)輸出學(xué)生成績函數(shù)scxscj()流程</p><p><b>  開始8</b>

19、;</p><p>  在list文件中讀入數(shù)據(jù)</p><p><b>  確定有幾個學(xué)生信息</b></p><p><b>  輸出學(xué)生的信息</b></p><p><b>  結(jié)束</b></p><p><b>  三、數(shù)據(jù)結(jié)構(gòu)設(shè)計

20、</b></p><p><b>  學(xué)生信息結(jié)構(gòu)體數(shù)組</b></p><p>  struct student</p><p><b>  { </b></p><p>  int number; 學(xué)號</p><p>  char nam

21、e[8]; 姓名</p><p>  char sex[4]; 性別</p><p>  char Class[4]; 班級</p><p>  float math; 數(shù)學(xué)成績 </p><p>  float English; 英語成績</p><p

22、>  float physics; 物理成績</p><p>  float computer; 計算機成績</p><p>  float sum; 總成績</p><p>  float average; 平均成績</p><p>  }stu[100];</p>

23、<p><b>  四、函數(shù)功能描述</b></p><p>  1、void print()</p><p>  主要完成對主菜單的輸出功能。</p><p>  2、void srxsxx()</p><p>  主要完成對學(xué)生信息的輸入功能。將學(xué)生的信息存入結(jié)構(gòu)體數(shù)組中。</p><p

24、>  void tjxsxx()</p><p>  主要完成在結(jié)構(gòu)體數(shù)組中添加信息的功能。</p><p>  void scxsxx()</p><p>  主要完成對結(jié)構(gòu)體中指定數(shù)據(jù)的刪除功能。</p><p>  void xgxsxx()</p><p>  主要完成對結(jié)構(gòu)體中指定數(shù)據(jù)的重新輸入的功能。

25、</p><p>  void xsxxcx()</p><p>  主要完成對結(jié)構(gòu)體中學(xué)生信息查詢的功能。</p><p>  void xscjpx()</p><p>  主要完成對結(jié)構(gòu)體中學(xué)生總成績從大到小排序的功能。</p><p>  void gkrscx()</p><p>  

26、主要完成對結(jié)構(gòu)體中各科成績低于60分的人數(shù)的統(tǒng)計的功能。</p><p>  void scxscj()</p><p>  主要完成對結(jié)構(gòu)體中所有學(xué)生信息的輸出功能。</p><p><b>  五、程序?qū)崿F(xiàn)</b></p><p><b>  1、源代碼分析</b></p><

27、;p><b> ?、懦绦蝾A(yù)處理</b></p><p>  包括加載頭文件,定義結(jié)構(gòu)體、常量和變量,并對它們進行初始化工作。</p><p>  #include<stdio.h></p><p>  #include<string.h></p><p>  #include<ioma

28、nip.h></p><p>  #include<iostream.h></p><p><b>  分析:</b></p><p>  #include<stdio.h>引入標(biāo)準(zhǔn)輸入輸出函數(shù),以便完成一些c++中一些最基本的函數(shù)的功能。</p><p>  #include<str

29、ing.h>引入有關(guān)字符數(shù)組的函數(shù),以便在程序中運用相關(guān)函數(shù)。例如:在刪除學(xué)生信息函數(shù)中的strcmp函數(shù)if(strcmp(x,stu[i].name)==0||k==stu[i].number)</p><p>  #include<iomanip.h>引入一些常用的關(guān)于控制標(biāo)準(zhǔn)輸入輸出流的函數(shù),以便控制標(biāo)準(zhǔn)輸入輸出流。例如:在輸出時使用的setw(0)函數(shù)</p><

30、p>  cout<<setw(0)<<"The Students' Grade Management System"<<setw(5)<<endl;</p><p>  #include<iostream.h>引入標(biāo)準(zhǔn)輸入輸出流函數(shù),以便在程序中使用相關(guān)函數(shù),其實已經(jīng)有了iomanip.h頭文件就不用再使用此頭文件了。例

31、如:在輸入輸出時使用的cout與cin</p><p>  cout<<"學(xué)號:";cin>>stu[i].number;</p><p>  注:在此程序中,為了方便使用了c++中的標(biāo)準(zhǔn)輸入輸出流。與此相關(guān)的知識全部來源于網(wǎng)絡(luò)。</p><p> ?、浦骱瘮?shù)main()</p><p>  voi

32、d main()</p><p><b>  {</b></p><p>  int j,flag=0;</p><p>  print(); //打印出主菜單</p><p>  do //判斷輸入是否正確 </p><p><b>  { </

33、b></p><p><b>  cin>>j; </b></p><p>  if(j>=0&&j<=8)</p><p><b>  flag=1; </b></p><p><b>  else </b></p>

34、<p>  cout<<"指令錯誤!請重新輸入:"<<endl; </p><p><b>  }</b></p><p>  while(flag==0); </p><p>  while(j!=0)</p><p><b>  {</b>

35、</p><p>  if(j==1) //進入輸入學(xué)生信息系統(tǒng)</p><p><b>  srxsxx();</b></p><p>  else if(j==2) //進入添加學(xué)生信息系統(tǒng)</p><p><b>  tjxsxx();</b></p><p>

36、;  else if(j==3) //進入刪除學(xué)生信息系統(tǒng)</p><p><b>  scxsxx();</b></p><p>  else if(j==4) //進入修改學(xué)生信息系統(tǒng)</p><p><b>  xgxsxx();</b></p><p>  else if(j==5) //進

37、入學(xué)生成績查詢系統(tǒng)</p><p><b>  xsxxcx();</b></p><p>  else if(j==6) //進入學(xué)生成績排序系統(tǒng)</p><p><b>  xscjpx();</b></p><p>  else if(j==7) //進入掛科人數(shù)查詢系統(tǒng)</p>

38、<p><b>  gkrscx();</b></p><p>  else if(j==8) //進入輸出學(xué)生成績系統(tǒng)</p><p><b>  scxscj();</b></p><p>  cin>>j; //控制繼續(xù)操作還是退出管理系統(tǒng)</p><p>

39、<b>  }</b></p><p>  cout<<endl;</p><p>  cout<<"* * * * * * * * * * * * * * * * * * *"<<endl;</p><p>  cout<<setw(0)<<"*

40、 "<<"謝謝使用!"<<setw(0)<<" *"<<endl;</p><p>  cout<<setw(0)<<"* "<<" 再見! "<<setw(0)&

41、lt;<" *"<<endl;</p><p>  cout<<"* * * * * * * * * * * * * * * * * * *"<<endl;</p><p>  cout<<endl;}</p><p><b> ?、侵鞑藛谓?/p>

42、面</b></p><p>  void print() //定義界面函數(shù)</p><p><b>  {</b></p><p>  cout<<endl;</p><p>  cout<<setw(0)<<"The Students'

43、; Grade Management System"<<setw(5)<<endl;</p><p>  cout<<endl;</p><p>  cout<<"* * * * * * * * * * * * * * * * * * *"<<endl;</p><p>  c

44、out<<setw(0)<<"* "<<"1. 輸入學(xué)生信息 "<<setw(10)<<"*"<<endl;</p><p>  cout<<setw(0)<<"* "<<"2. 添

45、加學(xué)生信息 "<<setw(10)<<"*"<<endl;</p><p>  cout<<setw(0)<<"* "<<"3. 刪除學(xué)生信息 "<<setw(10)<<"*"<<endl;</

46、p><p>  cout<<setw(0)<<"* "<<"4. 修改學(xué)生信息 "<<setw(10)<<"*"<<endl;</p><p>  cout<<setw(0)<<"* "

47、;<<"5. 學(xué)生信息查詢 "<<setw(10)<<"*"<<endl;</p><p>  cout<<setw(0)<<"* "<<"6. 學(xué)生成績排序 "<<setw(10)<<"*"

48、;<<endl;</p><p>  cout<<setw(0)<<"* "<<"7. 掛科人數(shù)查詢 "<<setw(10)<<"*"<<endl;</p><p>  cout<<setw(0)<<&qu

49、ot;* "<<"8. 輸出學(xué)生成績 "<<setw(10)<<"*"<<endl;</p><p>  cout<<setw(0)<<"* "<<"0. 退出管理系統(tǒng) "<<setw(10)&

50、lt;<"*"<<endl;</p><p>  cout<<"* * * * * * * * * * * * * * * * * * *"<<endl;</p><p>  cout<<endl;</p><p>  cout<<setw(0)<<

51、"Please enter your choice(0~8):"<<setw(10)<<endl;</p><p>  cout<<endl;</p><p><b>  }</b></p><p>  注:其他8個函數(shù)不再一一列舉,每一個函數(shù)都是一個獨立的模塊,分別完成各自的任務(wù)。<

52、;/p><p><b>  六、運行結(jié)果</b></p><p>  1、顯示主界面(學(xué)生成績管理系統(tǒng)主菜單)</p><p><b>  2、輸入學(xué)生信息</b></p><p><b>  3、刪除學(xué)生信息</b></p><p><b>  

53、5、修改學(xué)生信息</b></p><p><b>  6、學(xué)生信息查詢</b></p><p>  7、顯示全部學(xué)生總成績排序</p><p><b>  8、顯示掛科人數(shù)</b></p><p>  9、顯示所有學(xué)生信息</p><p><b>  退

54、出程序界面</b></p><p><b>  七、設(shè)計小結(jié)</b></p><p>  優(yōu)點:簡潔明了、界面整潔、使用了漢字的菜單、使用比較方便、經(jīng)過很多次調(diào)試后解決了很多漏洞。</p><p>  缺點:不夠人性化、很多功能的缺失、存在很多漏洞(比如:班級中不能輸入數(shù)字;如果學(xué)號太長的話就不能夠?qū)R;只允許輸入100個學(xué)生信息;

溫馨提示

  • 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

提交評論