學生成績管理系統(tǒng)c++課程設計 _第1頁
已閱讀1頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  信息科學與技術學院</b></p><p>  程序設計基礎課程設計報告</p><p>  題目名稱: 學生成績管理 </p><p>  學生姓名: </p><p>  學 號:

2、 </p><p>  專業(yè)班級:計算機科學與技術 2011級 1班</p><p>  指導教師:  </p><p>  2012   年 7 月 5  日</p><p>  1. 課程設計題目與要求2

3、</p><p>  1.1. 課程設計題目:2</p><p>  1.2. 課程設計要求:2</p><p>  1.3. 其他要求:2</p><p><b>  2. 總體設計2</b></p><p><b>  3. 詳細設計3</b></p>

4、;<p>  3.1. 數據結構設計3</p><p>  3.2. 主模塊功能設計4</p><p>  3.3. 部分功能模塊代碼5</p><p>  3.3.1. 實現錄入學生信息5</p><p>  3.3.2. 實現修改學生成績5</p><p>  3.3.3. 實現對學生成績的

5、查詢6</p><p><b>  4. 運行結果6</b></p><p>  4.1. 調試過程6</p><p>  4.2. 調試結果說明11</p><p>  5. 課程設計總結11</p><p><b>  朗讀</b></p><

6、;p>  顯示對應的拉丁字符的拼音</p><p>  字典 - 查看字典詳細內容</p><p><b>  課程設計題目與要求</b></p><p><b>  課程設計題目:</b></p><p><b>  學生成績管理</b></p><

7、p><b>  課程設計要求:</b></p><p>  1、問題描述(功能要求): </p><p> ?。?)能按學期,按班級完成對學生成績的錄入,修改</p><p> ?。?)能按班級統(tǒng)計學生的成績,求學生的總分及平均分,并能根據學生的平均成績進行排序</p><p>  (3)能查詢學生成績,不及格科目

8、及學生名單</p><p> ?。?)能按班級輸出學生的成績單 </p><p>  2、問題的解決方案: </p><p>  根據系統(tǒng)功能要求,可以將問題解決分為以下步驟: </p><p>  (1)分析系統(tǒng)中的各個實體之間的關系及其屬性和行為; </p><p>  (2)根據問題描述,設計系統(tǒng)的類層次; &l

9、t;/p><p>  (3)完成類層次中各個類的描述(包括屬性和方法); </p><p>  (4)完成類中各個成員函數的定義; </p><p> ?。?)完成系統(tǒng)的應用模塊; </p><p><b> ?。?)功能調試; </b></p><p> ?。?)完成系統(tǒng)總結報告以及系統(tǒng)使用說明書。

10、 </p><p><b>  其他要求:</b></p><p> ?。?)只能使用C/C++語言,源程序要有適當的注釋,使程序容易閱讀</p><p> ?。?)至少采用文本菜單界面(如果能采用圖形菜單界面更好)</p><p>  (3)學生可自動增加新功能模塊</p><p><b&

11、gt;  總體設計</b></p><p>  該系統(tǒng)實現對若干大學生的學習成績進行管理,能實現按學期、按班級完成對學生成績的錄入、修改,能按班級統(tǒng)計學生的成績,求學生的總分及平均分,并能根據學生的平均成績進行排序能查詢學生成績,不及格科目及學生名單,能按班級輸出學生的成績單等。整個系統(tǒng)用VC++進行實現,用指針、鏈表來實現學生成績的數據結構設計,系統(tǒng)具有錄入、修改、求總、求平均分、輸出等功能。系統(tǒng)的

12、各個功能模塊都用類的形式來實現,可以將學生成績按照分數的高低進行排序。</p><p><b>  詳細設計</b></p><p><b>  數據結構設計</b></p><p>  采用C++程序設計語言,從鍵盤輸入學生的基本信息(學號,姓名,英語成績,高數成績),計算每個學生的平均成績,并將數據存入文件studen

13、t.txt中。按如下格式輸出大于等于平均成績的學生信息: 學號 姓名 英語 數學 C++ 平均成績。提供按學期、按班級進行查詢的功能。盡可能使用運算符重載以簡化操作。使用多文件結構和菜單操作,并考慮相應的操作權限(每個教師輸入“自己的學生”的“某門課程”的成績,而其他學生的其他課程不能輸入,只有教務老師才能執(zhí)行歸檔類的操作),以提高程序的實用性</p><p><b>  主模塊功能設

14、計</b></p><p>  “學生成績管理信息系統(tǒng)”主要分為學生瀏覽和后臺管理兩個子系統(tǒng)。</p><p>  設計主要功能:能按學期、按班級完成對學生成績的錄入、修改;能按班級統(tǒng)計學生的成績,求學生的總分及平均分,并能根據學生的平均成績進行排序;能查詢學生成績,不及格科目及學生名單;能按班級輸出學生的成績單。 </p><p>  “學生成績管理”

15、系統(tǒng)主模塊功能圖</p><p><b>  部分功能模塊代碼</b></p><p><b>  實現錄入學生信息</b></p><p><b>  否</b></p><p><b>  是</b></p><p>  錄入學

16、生信息功能模塊圖</p><p><b>  實現修改學生成績</b></p><p>  修改學生成績功能模塊圖</p><p>  實現對學生成績的查詢</p><p>  學生成績查詢功能模塊圖</p><p><b>  運行結果</b></p><

17、;p><b>  調試過程</b></p><p>  首先是學生成績信息的錄入</p><p>  顯示錄入學生成績信息</p><p><b>  查詢平均成績排名</b></p><p><b>  查詢個人情況</b></p><p>&l

18、t;b>  查詢各科平均成績</b></p><p><b>  輸出班級成績單</b></p><p><b>  修改個人成績</b></p><p>  統(tǒng)計有不及格科目的同學</p><p><b>  退出系統(tǒng)菜單</b></p>&l

19、t;p>  錄入學生信息模塊。完成數據儲存工作,從鍵盤輸入學生紀錄,學生紀錄由學生的基本信息和成績信息字段構成,當讀取紀錄時也就是把儲存的數據文件復制到單鏈表中。</p><p>  修改成績模塊。完成對學生紀錄的維護,它實現了對學生成績的更新,修改,刪除,并將修改后的數據存入源數據文件。</p><p>  (3)查詢成績模塊。完成在列表中滿足相關條件的學生紀錄,用戶可以按照學號或

20、姓名進行查找,若找到該學生的紀錄,則返回指向該學生的記錄指針。</p><p><b>  調試結果說明</b></p><p>  本文所闡述的學生成績管理系統(tǒng),具有對學生成績信息的輸入功能,但是輸入格式有所限制,比如學號的輸入只能是四個數字,不是四個數字,此系統(tǒng)就不予識別,調試無法再進行下去,而且學號不能相同,相同也會影響程序的調試。輸入的學生數不能少于六個,否則

21、也無法調試下去。在輸出班級成績單的模塊中,系統(tǒng)將成績單保存到了文件夾中,方便進行查看,統(tǒng)計學生是否有不及格科目的過程,可以將學生的姓名學號成績等都顯示出來,非常方便查看。各功能模塊在主菜單中都有選擇序號,操作人員可以根據序號選擇要進行的操作,退出的時候只要選擇0,即可方便退出。</p><p><b>  課程設計總結 </b></p><p>  經過兩個星期的

22、C++程序設計,讓我明白到了C++這門課的重要性,C++作為一門電腦學的基礎課,是我們必須掌握的順電腦飛速發(fā)展的今天,掌握電腦的應用是如今每一位大學生所必須掌握的,掌握電腦有對各人來說有我種好處,學習電腦是一種本領,也是一種生存的技能,而C++做為電腦的基礎,掌握它更是我們這些大學生所必須掌握的。拿到題目,我真的不知道該怎么辦,但隨著慢慢的設計,思路也總算有了,這樣才能繼續(xù)進行下去,這時我才真正認識到了C+++的功能原來是那么的多。一個

23、復雜的成績管理系統(tǒng),經過500-600行的代碼就可以完完全全的達到,這是讓我非常驚訝的,但相對,如今的C++也是非常難的,這學期學到的I/O流,類,都是C++的重點,但學下來以后感覺還是很難所以必須先打好基礎,基礎好了,學什么都會容易很多。這次的程序設計讓我重新認識到了C++,這是一門非常重要的科目,我們必須付出很多倍的努力學習它,才能熟練地掌握它。</p><p><b>  參考文獻</b&g

24、t;</p><p>  鄭莉,董淵,何江舟C++語言程序設計(第四版)清華大學出版社</p><p>  嚴蔚敏,吳偉民 數據結構(C語言版)清華大學出版社</p><p>  教師教案PPT(指針,鏈表,數組)</p><p>  C++語言上機指導書</p><p>  網絡資源(C++語言程序設計視頻教程)&l

25、t;/p><p><b>  3.2主要代碼描述</b></p><p>  #include<iostream></p><p>  #include<string></p><p>  #include<fstream></p><p>  #include&l

26、t;stdlib.h></p><p>  using namespace std;</p><p><b>  class Stu</b></p><p><b>  {</b></p><p><b>  public:</b></p><p>

27、;  char name[8];</p><p>  int number;</p><p>  double English,Math,Cjj,Total,Average;</p><p><b>  Stu()</b></p><p><b>  {</b></p><p&g

28、t;  English=0;</p><p><b>  Math=0;</b></p><p><b>  Cjj=0;</b></p><p><b>  Total=0;</b></p><p>  Average=0;</p><p>  str

29、cpy(name,"無");</p><p><b>  number=0;</b></p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  ~Stu(){}</b><

30、;/p><p>  Stu(double Eng,double Mat,double C,int num,char s3[8]);</p><p>  void getname();</p><p>  void getnumber();</p><p>  void getEnglish();</p><p>  voi

31、d getMath();</p><p>  void getCjj();</p><p>  double getTotal();</p><p>  double getAverage();</p><p><b>  };</b></p><p>  Stu::Stu(double Eng,

32、double Mat,double C,int num,char s3[8])</p><p><b>  {</b></p><p>  English=Eng;Math=Mat;Cjj=C;number=num;strcpy(name,s3);</p><p><b>  }</b></p><p&

33、gt;  void Stu::getname()</p><p><b>  {</b></p><p>  char s[8];</p><p>  cout<<"名字:";</p><p><b>  cin>>s;</b></p>&l

34、t;p>  strcpy(name,s);</p><p><b>  }</b></p><p>  void Stu::getnumber()</p><p><b>  {</b></p><p><b>  int n;</b></p><p&

35、gt;  cout<<"學號:";</p><p><b>  cin>>n;</b></p><p><b>  number=n;</b></p><p><b>  }</b></p><p>  void Stu::getEn

36、glish()</p><p><b>  {</b></p><p><b>  double E;</b></p><p>  cout<<"英語:";</p><p><b>  cin>>E;</b></p>&

37、lt;p>  English=E;</p><p><b>  }</b></p><p>  void Stu::getMath()</p><p><b>  {</b></p><p><b>  double m;</b></p><p>

38、  cout<<"數學:";</p><p><b>  cin>>m;</b></p><p><b>  Math=m;</b></p><p><b>  }</b></p><p>  void Stu::getCjj()&l

39、t;/p><p><b>  {</b></p><p><b>  double c;</b></p><p>  cout<<"C++: ";</p><p><b>  cin>>c;</b></p><p>

40、;<b>  Cjj=c;</b></p><p><b>  }</b></p><p>  double Stu::getTotal()</p><p><b>  {</b></p><p>  return Total=English+Math+Cjj;</p&g

41、t;<p><b>  }</b></p><p>  double Stu::getAverage()</p><p><b>  {</b></p><p>  return Average=Total/3.0;</p><p><b>  }</b><

42、/p><p>  void output1(Stu &p)</p><p><b>  {</b></p><p>  cout<<"\t\t"<<p.name<<"\t"<<p.number<<"\t"<<p

43、.English<<"\t"<<p.Math<<"\t"<<p.Cjj<<"\n";</p><p><b>  }</b></p><p>  void output2(Stu &p)</p><p><b&g

44、t;  {</b></p><p>  cout<<"\t"<<p.name<<"\t"<<p.number<<"\t"<<p.English<<"\t"<<p.Math<<"\t"<<

45、;p.Cjj<<"\t"<<p.Average<<"\t"<<p.Total<<"\n";</p><p><b>  }</b></p><p>  void input(Stu &p)</p><p><b&

46、gt;  {</b></p><p>  p.getname();</p><p>  p.getnumber();</p><p>  p.getEnglish();</p><p>  p.getMath();</p><p>  p.getCjj();</p><p>  p.

47、getTotal();</p><p>  p.getAverage();</p><p><b>  }</b></p><p>  void order(Stu &p1,Stu &p2,Stu &p3,Stu &p4,Stu &p5,Stu &p6)</p><p>&

48、lt;b>  {</b></p><p><b>  sheji:</b></p><p>  char *name[6]={p1.name,p2.name,p3.name,p4.name,p5.name,p6.name};</p><p>  int number[6]={p1.number,p2.number,p3.num

49、ber,p4.number,p5.number,p6.number};</p><p>  double English[6]={p1.English,p2.English,p3.English,p4.English,p5.English,p6.English};</p><p>  double Math[6]={p1.Math,p2.Math,p3.Math,p4.Math,p5.Ma

50、th,p6.Math};</p><p>  double Cjj[6]={p1.Cjj,p2.Cjj,p3.Cjj,p4.Cjj,p5.Cjj,p6.Cjj};</p><p>  double Total[6]={p1.Total,p2.Total,p3.Total,p4.Total,p5.Total,p6.Total};</p><p>  double Av

51、erage[6]={p1.Average,p2.Average,p3.Average,p4.Average,p5.Average,p6.Average};</p><p>  Stu soure[6]={p1,p2,p3,p4,p5,p6};</p><p>  char *s1,s2[8];</p><p>  double *p;</p><

52、p><b>  int n;</b></p><p>  double mat;</p><p>  cout<<"\t\t主菜單"<<endl;</p><p>  cout<<"\t1.查詢平均分排名;"<<endl;</p><

53、;p>  cout<<"\t2.查詢個人情況;"<<endl;</p><p>  cout<<"\t3.查詢各科平均成績;"<<endl;</p><p>  cout<<"\t4.輸出班級成績;"<<endl;</p><p>

54、;  cout<<"\t5.修改各人成績;"<<endl;</p><p>  cout<<"\t6.查詢不及格成績;"<<endl;</p><p>  cout<<"\t0.退出;"<<endl;</p><p><b>

55、  int q;</b></p><p>  cout<<"請選擇你要進行的操作:";</p><p><b>  cin>>q;</b></p><p><b>  if(q==1)</b></p><p><b>  {</

56、b></p><p>  p=Average;</p><p>  cout<<"\t**********以平均成績進行排名**********"<<endl;</p><p>  strcpy(s2,"均分");</p><p>  for(int i1=1;i1<

57、6;i1++) </p><p><b>  {</b></p><p>  for(int j1=0;j1<6-i1;j1++)</p><p>  if(p[j1]<=p[j1+1])</p><p><b>  { <

58、/b></p><p>  mat=p[j1],p[j1]=p[j1+1],p[j1+1]=mat;</p><p>  s1=name[j1],name[j1]=name[j1+1],name[j1+1]=s1;</p><p>  n=number[j1],number[j1]=number[j1+1],number[j1+1]=n;</p>

59、<p><b>  }</b></p><p><b>  }</b></p><p>  cout<<"\t\t名次\t姓名\t學號\t"<<s2<<"\n";</p><p>  for(i1=0;i1<6;i1++)<

60、/p><p>  cout<<"\t\t"<<i1+1<<"\t"<<name[i1]<<"\t"<<number[i1]<<"\t"<<p[i1]<<endl;</p><p>  cout<<

61、endl;</p><p>  goto sheji;</p><p><b>  }</b></p><p><b>  if(q==2)</b></p><p><b>  {</b></p><p><b>  int w;</b&

62、gt;</p><p>  cout<<"請輸入你要查詢的同學的學號:";</p><p><b>  cin>>w;</b></p><p>  cout<<"\t姓名\t學號\t英語\t數學\tC++\t均分\t總分"<<"\n";&

63、lt;/p><p>  for(int i=0;i<6;i++)</p><p><b>  {</b></p><p>  if(w==number[i])</p><p>  output2(soure[i]);</p><p><b>  }</b></p>

64、;<p>  goto sheji;</p><p><b>  }</b></p><p>  else if(q==3)</p><p><b>  {</b></p><p>  cout<<"\t**********各科平均成績**********&quo

65、t;<<endl;</p><p>  double a1=0,b=0,d=0,e=0,h=0;</p><p>  for(int j=0;j<6;j++)</p><p><b>  {</b></p><p>  a1+=English[j];</p><p><b&

66、gt;  }</b></p><p>  cout<<"\t英語的平均分為\t"<<(double(a1/5.0))<<endl;</p><p>  for(int i=0;i<6;i++)</p><p><b>  {</b></p><p>

67、;  b+=Math[i];</p><p><b>  }</b></p><p>  cout<<"\t數學的平均分為\t"<<(double(b/5.0))<<endl;</p><p>  for(int k=0;k<6;k++)</p><p>&l

68、t;b>  {</b></p><p>  e+=Cjj[k];</p><p><b>  }</b></p><p>  cout<<"\tC++的平均分為\t"<<(double(e/5.0))<<endl;</p><p>  goto s

69、heji;</p><p><b>  }</b></p><p>  else if(q==4)</p><p><b>  {</b></p><p>  ofstream file("d:\\student.txt");</p><p><b&

70、gt;  if(!file)</b></p><p><b>  {</b></p><p>  cout<<"student.txt can't open.\n";</p><p><b>  abort();</b></p><p><b

71、>  }</b></p><p>  file<<"\t姓名\t學號\t英語\t數學\tC++\t均分\t總分"<<"\n";</p><p>  for(int i=0;i<6;i++)</p><p><b>  {</b></p><

72、;p>  file<<"\t"<<name[i]<<"\t"<<number[i]<<"\t"<<English[i]<<"\t"<<Math[i]<<"\t"<<Cjj[i]<<"\t&qu

73、ot;<<Average[i]<<"\t"<<Total[i]<<"\n";</p><p><b>  }</b></p><p>  file.close();</p><p>  cout<<"計算機-1的成績單已輸入到了D:\\

74、student.txt中。希望你查看!"<<endl;</p><p>  goto sheji;</p><p><b>  }</b></p><p>  else if(q==5)</p><p><b>  {</b></p><p>  cou

75、t<<"\t**********在這里對學生成績進行修改**********"<<endl;</p><p><b>  int b1;</b></p><p>  cout<<"請輸入你要修改學生的學號:"<<endl;</p><p><b>

76、  cin>>b1;</b></p><p>  if(b1==p1.number)</p><p><b>  {</b></p><p><b>  p1=Stu();</b></p><p>  input(p1);</p><p>  cout

77、<<"\t修改成功!!"<<endl;</p><p><b>  }</b></p><p>  else if(b1==p2.number)</p><p><b>  {</b></p><p><b>  p2=Stu();</b&

78、gt;</p><p>  input(p2);</p><p>  cout<<"\t修改成功!!"<<endl;</p><p><b>  }</b></p><p>  else if(b1==p3.number)</p><p><b&g

79、t;  {</b></p><p><b>  p3=Stu();</b></p><p>  input(p3);</p><p>  cout<<"\t修改成功!!"<<endl;</p><p><b>  }</b></p>

80、<p>  else if(b1==p4.number)</p><p><b>  {</b></p><p><b>  p4=Stu();</b></p><p>  input(p4);</p><p>  cout<<"\t修改成功!!"<

81、;<endl;</p><p><b>  }</b></p><p>  else if(b1==p5.number)</p><p><b>  {</b></p><p><b>  p5=Stu();</b></p><p>  input

82、(p5);</p><p>  cout<<"\t修改成功!!"<<endl;</p><p><b>  }</b></p><p>  else if(b1==p1.number)</p><p><b>  {</b></p><

83、p><b>  p1=Stu();</b></p><p>  input(p1);</p><p>  cout<<"\t修改成功!!"<<endl;</p><p><b>  }</b></p><p>  else if(b1!=p1.num

84、ber||b1!=p2.number||b1!=p3.number||b1!=p4.number||b1!=p5.number||b1!=p6.number)</p><p><b>  {</b></p><p>  cout<<"對不起!該學號不存在!請確認后在輸入!"<<endl;</p><p&g

85、t;<b>  }</b></p><p>  goto sheji;</p><p><b>  }</b></p><p>  else if(q==6)</p><p><b>  {</b></p><p>  cout<<"

86、;**********統(tǒng)計有不及格科目的同學***********"<<endl;</p><p>  for(int i=0;i<6;i++)</p><p><b>  {</b></p><p>  if(English[i]<60||Math[i]<60||Cjj[i]<60)</p&

87、gt;<p><b>  {</b></p><p>  cout<<"\t姓名\t學號\t英語\t數學\tC++\t均分\t總分"<<"\n";</p><p>  output2(soure[i]);</p><p><b>  }</b>&

88、lt;/p><p><b>  }</b></p><p>  goto sheji;</p><p><b>  }</b></p><p>  else if(q==0)</p><p><b>  {</b></p><p> 

89、 cout<<"謝謝你的支持!"<<endl;</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void main()</

90、p><p><b>  { </b></p><p>  Stu m1,m2,m3,m4,m5,m6;</p><p>  void Stu::getname();</p><p><b>  {</b></p><p>  cout<<" **

91、**************歡迎來到計算機-1成績管理系統(tǒng)***************"<<endl;</p><p>  cout<<"請對各學生的成績進行輸入:"<<endl;</p><p>  input(m1);</p><p>  input(m2);</p><p&

92、gt;  input(m3);</p><p>  input(m4);</p><p>  input(m5);</p><p>  input(m6);</p><p>  cout<<"你輸入的是:"<<endl;</p><p>  cout<<"

93、;\t\t姓名\t學號\t英語\t數學\tC++"<<"\n";</p><p>  output1(m1);</p><p>  output1(m2);</p><p>  output1(m3);</p><p>  output1(m4);</p><p>  outp

溫馨提示

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

評論

0/150

提交評論