c++課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)_第1頁(yè)
已閱讀1頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(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ì)說(shuō)明書(shū)</b></p><p><b>  課程設(shè)計(jì)任務(wù)書(shū)</b></p><p><b>  目錄</b></p><p><b>  【前言】<

2、;/b></p><p>  第1章 需求分析3</p><p>  第2章 總體設(shè)計(jì)3</p><p>  第3章 類的設(shè)計(jì)3</p><p>  3.1 ×××類的設(shè)計(jì)3</p><p>  3.2 ×××類的設(shè)計(jì)4</p>

3、<p>  第4章 詳細(xì)設(shè)計(jì)4</p><p>  4.1 工程視圖4</p><p>  4.2 類圖視圖4</p><p>  4.3 函數(shù)的調(diào)用關(guān)系5</p><p>  4.4 主程序流程圖5</p><p>  4.5 主要算法的流程圖5</p><p><

4、b>  第5章 測(cè)試5</b></p><p><b>  第6章 總結(jié)5</b></p><p><b>  附錄:程序代碼6</b></p><p><b>  需求分析</b></p><p>  學(xué)生成績(jī)管理系統(tǒng)主要提供成績(jī)查詢,方便管理的網(wǎng)上的

5、信息查閱平臺(tái),學(xué)生可以通過(guò)該系統(tǒng)查閱與自己相關(guān)信息,查看留言,提交留言。教師可以通過(guò)成績(jī)管理系統(tǒng)查閱學(xué)生成績(jī)信息,教師信息,查看教師留言,學(xué)生留言,提交留言、留言的管理等相關(guān)操作。系統(tǒng)管理員可以實(shí)現(xiàn)以上的所有功能,還有對(duì)學(xué)生的添加、刪除、修改、教師的添加、刪除、修改,數(shù)據(jù)庫(kù)的備份、數(shù)據(jù)庫(kù)的還原等操作。</p><p>  根據(jù)開(kāi)發(fā)要求,學(xué)生成績(jī)管理系統(tǒng)主要應(yīng)用于教育系統(tǒng),完成對(duì)日常的教學(xué)、教務(wù)、教師以及學(xué)生的計(jì)算

6、機(jī)化的管理。開(kāi)發(fā)學(xué)生成績(jī)管理系統(tǒng)可使老師等減輕壓力,比較系統(tǒng)的對(duì)教務(wù)、教學(xué)上的各項(xiàng)服務(wù)和信息進(jìn)行管理,同時(shí),可以減少勞動(dòng)力的使用,加快查詢速度,加強(qiáng)管理,以及國(guó)家各部門關(guān)于信息化的步伐,使各項(xiàng)管理更加規(guī)范化。目前,管理信息系統(tǒng)已經(jīng)進(jìn)入高校,但還未普及,而對(duì)于學(xué)生成績(jī)管理來(lái)說(shuō),目前還沒(méi)有一套完整的、統(tǒng)一的系統(tǒng)。因此,開(kāi)發(fā)一套適合大眾的、兼容性好的系統(tǒng)是很有必要的。</p><p> ?。?)學(xué)生成績(jī)管理系統(tǒng)分為8個(gè)

7、模塊,分別是:添加學(xué)生信息,輸出學(xué)生成績(jī),查找學(xué)生成績(jī),修改學(xué)生成績(jī),刪除學(xué)生成績(jī),學(xué)生成績(jī)排序,保存數(shù)據(jù)到文件和讀取文件中學(xué)生成績(jī)的模塊。</p><p>  學(xué)生成績(jī)管理系統(tǒng)結(jié)構(gòu):</p><p>  各個(gè)子函數(shù)功能及其流程:</p><p>  首先定義一個(gè)學(xué)生類Class Student;并定義其各個(gè)私有變量和公有函數(shù)</p><p>

8、;  Student();構(gòu)造函數(shù),用于初始化學(xué)生類中的各個(gè)變量并記錄</p><p><b>  輸入學(xué)生信息:</b></p><p>  Add();函數(shù):用于添加學(xué)生信息的函數(shù)包括學(xué)號(hào)姓名成績(jī)等的內(nèi)容</p><p>  Output();函數(shù):用于輸出學(xué)生信息,包括學(xué)號(hào)姓名各科及總分平均成績(jī)</p><p> 

9、 Find();函數(shù):用于查找學(xué)生各項(xiàng)信息。</p><p>  modify();函數(shù):用于修改學(xué)生各項(xiàng)信息。</p><p>  delete();函數(shù):用于刪除學(xué)生信息。</p><p>  8.sort();函數(shù):對(duì)學(xué)生各項(xiàng)信息進(jìn)行排序操作。</p><p>  save()和load();函數(shù):將學(xué)生信息保存到文件中,并在需要的時(shí)候

10、調(diào)用該文件將其中的學(xué)生信息顯示出來(lái)</p><p><b>  總體設(shè)計(jì)</b></p><p>  1.用結(jié)構(gòu)框圖表示各個(gè)功能之間的關(guān)系。</p><p><b>  程序代碼:</b></p><p><b>  類的設(shè)計(jì)</b></p><p> 

11、 學(xué)生成績(jī)管理系統(tǒng)類的設(shè)計(jì)(第一個(gè)類)</p><p><b>  1.畫(huà)出類圖</b></p><p>  2.對(duì)類的函數(shù)成員的說(shuō)明</p><p>  不用寫(xiě)出代碼,用文字描述</p><p><b>  函數(shù)的首部</b></p><p>  插入函數(shù),先進(jìn)行成績(jī)的錄入

12、,輸入學(xué)生的姓名,學(xué)號(hào),課程,成績(jī)即可。然后選擇課程,查詢即可。</p><p><b>  詳細(xì)設(shè)計(jì)</b></p><p><b>  工程視圖</b></p><p>  說(shuō)明有幾個(gè)源代碼文件,可以截取工程文件視圖表示</p><p><b>  類圖視圖</b><

13、/p><p>  每個(gè)文件包含哪些類和函數(shù),可以截圖說(shuō)明</p><p><b>  主要算法的流程圖</b></p><p>  Main函數(shù)工作原理圖:</p><p><b>  查找函數(shù):</b></p><p><b>  測(cè)試</b></p

14、><p>  程序的運(yùn)行結(jié)果截圖:</p><p>  錄入學(xué)生成績(jī)信息后顯示如下:</p><p>  輸入4查看班級(jí)總分排名:</p><p>  輸入0安全退出系統(tǒng):</p><p><b>  總結(jié)</b></p><p>  此課程設(shè)計(jì)完成了對(duì)學(xué)生成績(jī)的添加、刪除、修

15、改等功能的設(shè)計(jì)操作,并且為了插入和刪除方便,運(yùn)用動(dòng)態(tài)數(shù)組做存儲(chǔ)結(jié)構(gòu)。此課程設(shè)計(jì)還包含了清屏功能以及退出功能。對(duì)程序在運(yùn)行時(shí)輸入錯(cuò)誤操作的修改,提供了一定方便條件基本上能安全的運(yùn)行,具備的功能符合題目的要求。用了文件的操作,是此程序的最大優(yōu)點(diǎn)。程序?qū)懙倪€算簡(jiǎn)練,結(jié)構(gòu)清晰,各個(gè)模塊的分工和功能明確。</p><p>  經(jīng)過(guò)兩周的課程設(shè)計(jì),我認(rèn)識(shí)到把課堂上老師講的知識(shí)運(yùn)用到實(shí)際操作中的重要性。我這次課程設(shè)計(jì)的題目是學(xué)

16、生成績(jī)管理系統(tǒng),在開(kāi)始階段,根本無(wú)從下手,后來(lái)通過(guò)查閱一些相關(guān)資料和老師的耐心講解,最終成功完成整個(gè)程序的設(shè)計(jì)。通過(guò)這次課設(shè)我對(duì)C++語(yǔ)言中的類的定義、運(yùn)算符重載等知識(shí)有了進(jìn)一步的理解,對(duì)流程圖的畫(huà)法更加熟練,對(duì)程序的開(kāi)發(fā)思路有了一定的理解,我想這在以后的學(xué)習(xí)和工作中都會(huì)有幫助的,更使我意識(shí)到了學(xué)習(xí)C++語(yǔ)言的重要性。</p><p>  程序中運(yùn)用了多文件結(jié)構(gòu),雖然程序不是太大,但多文件結(jié)構(gòu)的使用是我模仿正規(guī)軟

17、件的結(jié)構(gòu)來(lái)寫(xiě)的,我想這對(duì)我以后的提高有幫助。</p><p>  另外,對(duì)程序的不斷調(diào)試,是我的查錯(cuò)能力有了很大的提高。</p><p>  附錄:學(xué)生成績(jī)管理系統(tǒng)#源代碼:</p><p>  此函數(shù)源代碼在Codeblocks環(huán)境下編譯通過(guò)。具體如下:</p><p>  #include<iostream ></p&g

18、t;<p>  #include<string ></p><p>  #include<cstdio></p><p>  #include<cstdlib></p><p>  using namespace std;</p><p>  class student{</p>

19、<p><b>  private:</b></p><p>  string name;</p><p><b>  long id;</b></p><p>  float Chinese;</p><p>  float math;</p><p>  fl

20、oat English;</p><p>  float sum;</p><p>  float ave;</p><p><b>  public:</b></p><p>  student();</p><p>  void input();</p><p>  v

21、oid show();</p><p>  void copy(student a);</p><p>  string NAME(){return name;}</p><p>  long ID(){return id;}</p><p>  float chi(){return Chinese;}</p><p>

22、;  float mat(){return math;}</p><p>  float eng(){return English;}</p><p>  float SUM(){return sum;}</p><p>  float AVE(){return ave;}</p><p><b>  };</b><

23、;/p><p>  void student::input(){</p><p>  cout<<"\t\t請(qǐng)輸入學(xué)生的姓名:";</p><p>  cin>>name;</p><p>  cout<<"\t\t請(qǐng)輸入學(xué)生的學(xué)號(hào):";</p><p

24、><b>  cin>>id;</b></p><p>  cout<<"\t\t請(qǐng)輸入語(yǔ)文成績(jī):";</p><p>  cin>>Chinese;</p><p>  cout<<"\t\t請(qǐng)輸入數(shù)學(xué)成績(jī):";</p><p&g

25、t;  cin>>math;</p><p>  cout<<"\t\t請(qǐng)輸入英語(yǔ)成績(jī):";</p><p>  cin>>English;</p><p>  sum=Chinese+math+English;</p><p>  ave=sum/3;</p><p

26、><b>  }</b></p><p>  student::student()</p><p><b>  {</b></p><p>  name="noname";</p><p><b>  id=0;</b></p><

27、p>  Chinese=0;</p><p><b>  math=0;</b></p><p>  English=0;</p><p><b>  sum=0;</b></p><p><b>  ave=0;</b></p><p><

28、b>  }</b></p><p>  void student::show()</p><p><b>  {</b></p><p>  cout<<"姓名:"<<name<<endl<<"學(xué)號(hào):"<<id<<e

29、ndl<<"語(yǔ)文:"<<Chinese<<endl</p><p>  <<"數(shù)學(xué):"<<math<<endl<<"英語(yǔ):"<<English<<endl<<"總成績(jī):"<<sum<<endl

30、<<"平均分:"<<ave<<endl<<endl;</p><p><b>  }</b></p><p>  void student::copy(student a)</p><p><b>  {</b></p><p> 

31、 name=a.NAME();</p><p>  id=a.ID();</p><p>  Chinese=a.chi();</p><p>  math=a.mat();</p><p>  English=a.eng();</p><p>  sum=a.SUM();</p><p>  

32、ave=a.AVE();</p><p><b>  }</b></p><p>  short showmenu()</p><p><b>  {</b></p><p>  short select;</p><p>  cout<<"******

33、**********************************************************"<<endl;</p><p>  cout<<"學(xué) 生 成 績(jī) 管 理 系 統(tǒng) "<<endl;</p><p>  cout<<

34、"****************************************************************"<<endl;</p><p>  cout<<" 1.錄入學(xué)生成績(jī) "<<endl;</p>&

35、lt;p>  cout<<" 2.查詢、修改學(xué)生成績(jī) "<<endl;</p><p>  cout<<" 3.按總分排序 "<<endl

36、;</p><p>  cout<<" 4.班級(jí)總分 "<<endl;</p><p>  cout<<" 0.安全退出系統(tǒng)

37、"<<endl;</p><p>  cout<<"****************************************************************"<<endl;</p><p>  cout<<"\t\t請(qǐng)選擇:";</p><p>

38、  cin>>select;</p><p>  return select;</p><p><b>  }</b></p><p>  void find(student stu[]){</p><p><b>  string k;</b></p><p>

39、  short i,j;</p><p><b>  long n;</b></p><p><b>  short m;</b></p><p>  char q='n';</p><p>  cout<<"**************************

40、***************************************\n";</p><p>  cout<<"*\t\t\t1.按學(xué)號(hào)查找\t\t\t\t*\n";</p><p>  cout<<"*\t\t\t2.按姓名查找\t\t\t\t*\n";</p><p>  cou

41、t<<"*****************************************************************\n";</p><p><b>  cin>>m;</b></p><p><b>  if(m==1)</b></p><p><b

42、>  {</b></p><p>  cout<<"請(qǐng)輸入學(xué)號(hào):";</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  cin>>n;</b>&

43、lt;/p><p>  if(n>1&&n<12)</p><p><b>  {</b></p><p>  cout<<"輸入有誤!請(qǐng)重新輸入:";</p><p><b>  }</b></p><p><b

44、>  else</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  for(i=0;stu[i].ID()!=0;i++)</p><p><b>  {</b></p><

45、p>  if(n==stu[i].ID())</p><p>  stu[i].show();</p><p><b>  j=i;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  els

46、e if(m==2)</p><p><b>  {</b></p><p>  cout<<"請(qǐng)輸入姓名:";</p><p><b>  cin>>k;</b></p><p>  for(i=0;stu[i].ID()!=0;i++)</p&g

47、t;<p><b>  {</b></p><p>  if(k==stu[i].NAME())</p><p>  stu[i].show();</p><p><b>  j=i;</b></p><p><b>  }</b></p><

48、p><b>  }</b></p><p><b>  else</b></p><p>  cout<<"輸入的選項(xiàng)有誤!";</p><p>  cout<<"是否修改(Y/N):";</p><p><b>  c

49、in>>q;</b></p><p>  if(q=='y'||q=='Y')</p><p><b>  {</b></p><p>  stu[j].input();</p><p><b>  }</b></p><p

50、><b>  }</b></p><p>  void arrange(student stu[])</p><p><b>  {</b></p><p>  student temp;</p><p>  short i,j;</p><p>  for(i=0;s

51、tu[i].ID()!=0;i++)</p><p><b>  {</b></p><p>  for(j=i+1;stu[j].ID()!=0;j++)</p><p><b>  {</b></p><p>  if(stu[i].SUM()<stu[j].SUM())</p>

52、;<p><b>  {</b></p><p>  temp.copy(stu[i]);</p><p>  stu[i].copy(stu[j]);</p><p>  stu[j].copy(temp);</p><p><b>  }</b></p><p&

53、gt;<b>  }</b></p><p><b>  }</b></p><p>  for(i=0;stu[i].ID()!=0;i++)</p><p><b>  {</b></p><p>  stu[i].show();</p><p>&

54、lt;b>  }</b></p><p><b>  }</b></p><p>  void classave(student stu[])</p><p><b>  {</b></p><p>  float cla=0,a;</p><p><

55、b>  short i;</b></p><p>  for(i=0;stu[i].ID()!=0;i++)</p><p><b>  {</b></p><p>  cla+=stu[i].SUM();</p><p><b>  }</b></p><p&

56、gt;<b>  a=cla/i;</b></p><p>  cout<<"班級(jí)總分是:"<<a<<endl;</p><p>  cout<<"不及格的人是:"<<endl;</p><p>  for(i=0;stu[i].ID()!=0;

57、i++)</p><p><b>  {</b></p><p>  if(stu[i].AVE()<60)</p><p>  stu[i].show();</p><p><b>  }</b></p><p><b>  a/=3;</b>&

58、lt;/p><p>  cout<<"顯示平均分小于班級(jí)總平均分的學(xué)生:"<<endl;</p><p>  for(i=0;stu[i].ID()!=0;i++)</p><p><b>  {</b></p><p>  if(stu[i].AVE()<=a)</p

59、><p>  stu[i].show();</p><p><b>  }</b></p><p><b>  }</b></p><p>  int main()</p><p><b>  {</b></p><p>  stud

60、ent stu[100];</p><p><b>  short i;</b></p><p>  char temp='Y';</p><p>  short select;</p><p>  for(;select=showmenu();)</p><p><b>

61、;  {</b></p><p>  switch(select)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  for(i=0;i<100&&(temp!='N'&&

62、temp!='n');i++)</p><p><b>  {</b></p><p>  stu[i].input();</p><p>  cout<<"是否繼續(xù)(Y/N):"<<endl;</p><p>  cin>>temp;</p&

63、gt;<p><b>  }break;</b></p><p><b>  case 2:</b></p><p>  find(stu);</p><p><b>  break;</b></p><p><b>  case 3:</b>

64、;</p><p>  arrange(stu);</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  classave(stu);</p><p><b>  break;</b>&

65、lt;/p><p><b>  }</b></p><p>  cout<<"按任意鍵繼續(xù)!"<<endl;</p><p>  getchar();</p><p>  getchar();</p><p>  system("cls"

溫馨提示

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