數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---成績管理系統(tǒng)_第1頁
已閱讀1頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計報告</b></p><p>  2011年 1 月 20 日</p><p><b>  目 錄</b></p><p>  1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書..............................................................

2、...............................1</p><p>  1.1、題目....................................................................................................................1</p><p>  1.2、要求.............

3、.......................................................................................................1</p><p>  2、總體設(shè)計.......................................................................................

4、...............................1</p><p>  2.1、功能模塊設(shè)計......................................................................................................1</p><p>  2.2、所有功能模塊的流程圖...............

5、..........................................................................2</p><p>  3、詳細(xì)設(shè)計....................................................................................................................

6、.....3</p><p>  3.1、程序中所采用的數(shù)據(jù)結(jié)構(gòu)及存儲結(jié)構(gòu)的說明.........................................................3</p><p>  3.2、算法的設(shè)計思想............................................................................

7、........................3</p><p>  4、調(diào)試與測試:.................................................................................................................4</p><p>  4.1、調(diào)試方法與步驟:...............

8、..................................................................................4</p><p>  4.2、測試結(jié)果的分析與討論:.......................................................................................4</p>

9、<p>  4.3、測試過程中遇到的主要問題及采取的解決措施:..................................................6</p><p>  5、源程序清單和執(zhí)行結(jié)果.................................................................................................

10、..7</p><p>  6、總結(jié)..............................................................................................................................11</p><p>  7、參考文獻(xiàn).................................

11、.....................................................................................11</p><p>  1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書</p><p><b>  1.1、題目</b></p><p><b>  成績管理系統(tǒng)</b>&

12、lt;/p><p><b>  1.2、要求</b></p><p>  對一個班級的多門課程的成績進(jìn)行管理,能夠?qū)崿F(xiàn)一個班級學(xué)生信息的輸入、輸出、查找、刪除、修改、排序、求平均分和及格率等操作。</p><p><b>  2、總體設(shè)計</b></p><p>  2.1、功能模塊設(shè)計</p&g

13、t;<p>  根據(jù)課程設(shè)計題目的功能要求,各個功能模塊的組成框圖如下</p><p>  2.2、所有功能模塊的流程圖</p><p><b>  3、詳細(xì)設(shè)計</b></p><p>  3.1、程序中所采用的數(shù)據(jù)結(jié)構(gòu)及存儲結(jié)構(gòu)的說明</p><p>  定義一個學(xué)生類,其中包括學(xué)生的個人信息等私有成員

14、,含有輸入信息,查詢信息等成員函數(shù)。</p><p>  class student{</p><p><b>  public:</b></p><p>  student();</p><p>  student(int a,string b,string c,int d,int e,int f,int g);<

15、;/p><p>  student(student &s);</p><p>  int getstudent();</p><p>  int change();</p><p>  void input();</p><p>  static int getcountp(){return countp1;}&l

16、t;/p><p>  int getnumber(){return number;}</p><p>  int getsub(){return Chinese+Math+English;}</p><p>  static void swap(student &s1,student &s2);</p><p><b>

17、  private:</b></p><p>  static int countp1;</p><p>  int number;</p><p>  string name;</p><p>  string gender;</p><p><b>  int age;</b>&l

18、t;/p><p>  int Chinese;</p><p><b>  int Math;</b></p><p>  int English;</p><p><b>  };</b></p><p>  3.2、算法的設(shè)計思想</p><p>  

19、1、首先建立一個學(xué)生類,包含他的所有信息,比如學(xué)( number )、姓名( name )、性別( gender )、年齡( age )和各科的成績( Chinese, math, English );</p><p>  2、然后在編寫相應(yīng)的各個小的函數(shù)段,主要有添加( student(int a,string b,string c,int d,int e,int f,int g) ),查找(int getst

20、udent() ),修改(int change() ),排序等;</p><p>  3、最后在main()函數(shù)中再利用switch()的選擇功能對所需要執(zhí)行的操作進(jìn)行選擇,主要有:</p><p>  1、添加一個學(xué)生的信息 </p><p>  2、查詢一個學(xué)生的信息</p><p>  3、更改一個學(xué)生的信息 </p&

21、gt;<p>  4、查看所有學(xué)生的信息</p><p>  5、查看一個學(xué)生的總成績 </p><p>  6、查看全班的平均分</p><p>  7、查看排名后的結(jié)果 </p><p>  8、查看該班的及格率</p><p><b>  9、退出該操作系統(tǒng)</b><

22、;/p><p><b>  4、調(diào)試與測試:</b></p><p>  4.1、調(diào)試方法與步驟:</p><p>  第一步:添加學(xué)生信息</p><p>  第二步:查詢一個學(xué)生信息</p><p>  第三步:更改一個學(xué)生信息</p><p>  第四步:查看所有學(xué)生信息

23、</p><p>  第五步:查看一個學(xué)生的總成績</p><p>  第六步:查看全班平均分</p><p>  第七步:查看排名后結(jié)果</p><p>  第八步:查看全班的及格率</p><p>  第九步:退出該操作系統(tǒng)</p><p>  4.2、測試結(jié)果的分析與討論:(見下頁)<

24、;/p><p>  4.3、測試過程中遇到的主要問題及采取的解決措施:</p><p>  1、所輸入的格式不符合要求,可能會導(dǎo)致輸出的錯誤,這時應(yīng)該重新輸入</p><p>  2、當(dāng)輸入的學(xué)號有重復(fù)的時候,在查找過程中就會發(fā)現(xiàn),故而希望不要輸入相同的學(xué)號</p><p>  3、改程序還只是一些簡單的處理過程的程序,若要想將其變得更加的完美,

25、還希望大家多多幫忙</p><p>  5、源程序清單和執(zhí)行結(jié)果</p><p>  #include<iostream></p><p>  #include<string></p><p>  using namespace std;</p><p>  class student{//類的

26、定義</p><p><b>  public:</b></p><p>  student();//默認(rèn)構(gòu)造函數(shù)</p><p>  student(int a,string b,string c,int d,int e,int f,int g);//構(gòu)造函數(shù)</p><p>  student(student &am

27、p;s);//復(fù)制構(gòu)造函數(shù)</p><p>  int getstudent();//讀取學(xué)生信息</p><p>  int change();//更改學(xué)生信息</p><p>  void input();//輸入學(xué)生信息</p><p>  static int getcountp(){return countp1;}//計算學(xué)生數(shù)&l

28、t;/p><p>  int getnumber(){return number;}//讀取學(xué)生學(xué)號</p><p>  int getsub(){return Chinese+Math+English;}//讀取學(xué)生總成績</p><p>  static void swap(student &s1,student &s2);//交換學(xué)生信息</

29、p><p><b>  private:</b></p><p>  static int countp1;//計數(shù)器(學(xué)生數(shù))</p><p>  int number;//學(xué)號</p><p>  string name;//姓名</p><p>  string gender;//性別</

30、p><p>  int age;//年齡</p><p>  int Chinese;//語文成績</p><p>  int Math;//數(shù)學(xué)成績</p><p>  int English;//英語成績</p><p><b>  };</b></p><p>  int

31、 student::countp1=0;//靜態(tài)常量</p><p>  student::student(){//默認(rèn)構(gòu)造函數(shù)的實現(xiàn)</p><p>  number=0;name="wang";gender="nan";age=21;Chinese=0;Math=0;English=0;</p><p><b>

32、  }</b></p><p>  student::student(int a,string b,string c,int d,int e,int f,int g){//構(gòu)造函數(shù)的實現(xiàn)</p><p>  number=a;name=b;gender=c;age=d;Chinese=e;Math=f;English=g;</p><p><b&g

33、t;  }</b></p><p>  student::student(student &s){//復(fù)制構(gòu)造函數(shù)的實現(xiàn)</p><p>  number=s.number;name=s.name;gender=s.gender;age=s.age;Chinese=s.Chinese;Math=s.Math;English=s.English;</p>&

34、lt;p><b>  }</b></p><p>  int student::change(){//更改學(xué)生信息函數(shù)的實現(xiàn)</p><p><b>  char xx;</b></p><p>  cout<<"請輸入要改變的數(shù)據(jù)"<<endl;</p>&

35、lt;p>  cout<<"a代表number,b代表name,c代表gender,"<<endl;</p><p>  cout<<"d代表age,e代表Chinese,f代表Math,g代表English"<<endl;</p><p><b>  cin>>xx;<

36、;/b></p><p>  cout<<"將信息更改為: ";</p><p>  switch(xx){</p><p><b>  case 'a':</b></p><p>  cin>>number; break;</p><

37、p><b>  case 'b':</b></p><p>  cin>>name; break;</p><p><b>  case 'c':</b></p><p>  cin>>gender; break;</p><p>&

38、lt;b>  case 'd':</b></p><p>  cin>>age; break;</p><p><b>  case 'e':</b></p><p>  cin>>Chinese; break;</p><p><b&g

39、t;  case 'f':</b></p><p>  cin>>Math; break;</p><p><b>  case 'g':</b></p><p>  cin>>English; break;</p><p><b>  }

40、</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  int student::getstudent(){//讀取學(xué)生信息函數(shù)的實現(xiàn)</p><p>  cout<<number<<"

41、; "<<name<<" "<<gender<<" "<<" "<<age<<" "<<Chinese<<" "<<Math<<" "<<English<<

42、;endl;</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  void student::input(){//輸入學(xué)生信息函數(shù)的實現(xiàn)</p><p>  cin>>number>>name>>ge

43、nder>>age>>Chinese>>Math>>English;</p><p>  countp1++;</p><p><b>  }</b></p><p>  void student::swap(student &s1,student &s2){//交換學(xué)生信息函數(shù)的

44、實現(xiàn)</p><p>  student s3;</p><p>  if(s1.getsub()<s2.getsub()){</p><p><b>  s3=s1;</b></p><p><b>  s1=s2;</b></p><p><b>  s2

45、=s3;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  int main(){//主函數(shù)</p><p>  int i,n,ava=0;//定義變量</p><p>  int countp=0;&

46、lt;/p><p>  float ava1;</p><p>  double k=0;</p><p>  student a[100];</p><p>  cout<<" *************************************************"<<en

47、dl;</p><p>  cout<<" ☆ 歡迎來到學(xué)生成績管理系統(tǒng) ☆ "<<endl;</p><p>  cout<<" *************************************************"<<endl;

48、</p><p>  for(i=0;n!=9;i++){//循環(huán)的實現(xiàn)</p><p>  cout<<" *************************************************"<<endl;</p><p>  cout<<"

49、 請選擇您要執(zhí)行的操作: "<<endl;</p><p>  cout<<" 1、添加一個學(xué)生的信息 2、查詢一個學(xué)生的信息"<<endl;</p><p>  cout<<" 3、更改一個學(xué)生的信息 4、查看所有學(xué)生的信息"

50、<<endl;</p><p>  cout<<" 5、查看一個學(xué)生的總成績 6、查看全班的平均分"<<endl;</p><p>  cout<<" 7、查看排名后的結(jié)果 8、查看該班的及格率"<<endl;</p><p

51、>  cout<<" 9、退出該操作系統(tǒng) "<<endl;</p><p>  cout<<" *************************************************"<<endl;</p><p><b>  cin>&

52、gt;n;</b></p><p>  switch(n){//switch語句的實現(xiàn)</p><p>  case 1://添加一個學(xué)生的信息</p><p>  if(countp<100){</p><p>  cout<<" 學(xué)號 "<<" 姓名 "&

53、lt;<" 性別"<<" 年齡 "<<"語文成績"<<" 數(shù)學(xué)成績"<<" 英語成績"<<endl;</p><p>  a[countp].input();</p><p>  countp=student::getcoun

54、tp();</p><p><b>  }</b></p><p><b>  break;</b></p><p>  case 2://查詢一個學(xué)生的信息</p><p>  int m1,p; </p><p>  cout<<"請輸入你要查看的學(xué)

55、生的學(xué)號: ";</p><p><b>  cin>>m1;</b></p><p>  for(p=0;p<countp;p++)</p><p>  if(m1==a[p].getnumber())</p><p>  a[p].getstudent();</p><

56、p>  if(p>countp)</p><p>  cout<<"您所輸入的信息不對,無法查詢"<<endl;</p><p><b>  break;</b></p><p>  case 3: //更改一個學(xué)生的信息</p><p>  int m2,p1;&

57、lt;/p><p>  cout<<"請輸入你要修改的學(xué)生的學(xué)號: ";</p><p><b>  cin>>m2;</b></p><p>  for(p1=0;p1<countp;p1++)</p><p>  if(m2==a[p1].getnumber())<

58、/p><p>  a[p1].change();</p><p>  if(p1>countp)</p><p>  cout<<"您所輸入的信息不對,無法查詢"<<endl;</p><p><b>  break;</b></p><p>  ca

59、se 4://查看所有學(xué)生的信息</p><p><b>  int m3;</b></p><p>  for(m3=0;m3<countp;m3++)</p><p>  a[m3].getstudent();</p><p><b>  break;</b></p><

60、;p>  case 5://查看一個學(xué)生的總成績</p><p>  int m4,p2; </p><p>  cout<<"請輸入你要查看的學(xué)生的學(xué)號: ";</p><p><b>  cin>>m4;</b></p><p>  for(p2=0;p2<co

61、untp;p2++)</p><p>  if(m4==a[p2].getnumber()){</p><p>  cout<<"該學(xué)生的總成績是: ";</p><p>  cout<<a[p2].getsub()<<endl;</p><p><b>  }</b&g

62、t;</p><p>  if(p>countp)</p><p>  cout<<"您所輸入的信息不對,無法查詢"<<endl;</p><p><b>  break;</b></p><p>  case 6://查看全班的平均分</p><p&

63、gt;<b>  int m5;</b></p><p>  for(m5=0;m5<countp;m5++)</p><p>  ava=ava+a[m5].getsub();</p><p>  ava1=static_cast<float>(ava);</p><p>  cout<<

64、"全班的平均成績是: "<<(ava1/countp)<<endl;</p><p><b>  break;</b></p><p>  case 7://查看排名后的結(jié)果</p><p>  int m6,m7;</p><p>  for(m6=0;m6<count

65、p;m6++)</p><p>  for(m7=1;m7<countp;m7++)</p><p>  student::swap(a[m6],a[m7]);</p><p>  for(m6=0;m6<countp;m6++){</p><p>  cout<<"第"<<m6+1&l

66、t;<"名是: "<<endl;</p><p>  a[m6].getstudent();</p><p><b>  }</b></p><p><b>  break;</b></p><p>  case 8://查看該班的及格率</p>

67、<p><b>  int m8;</b></p><p>  for(m8=0;m8<countp;m8++){</p><p>  if(a[m8].getsub()>=180)</p><p><b>  k++;</b></p><p><b>  }<

68、/b></p><p>  cout<<"該班的及格率是: "<<(k/countp)*100<<"%"<<endl;</p><p><b>  break;</b></p><p>  case 9://退出該操作系統(tǒng)</p><

69、;p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }//主函數(shù)結(jié)束</b>

70、</p><p><b>  6、總結(jié)</b></p><p>  本程序在剛開始調(diào)試時有許多錯誤,但在我的努力及同學(xué)的幫助下都被一一克服,現(xiàn)在在操作本程序時可根據(jù)提示進(jìn)行相關(guān)操作,能正確輸出結(jié)果。在剛開始的幾次調(diào)試中曾經(jīng)出現(xiàn)過不能運行、不會正確輸出結(jié)果、不能進(jìn)行循環(huán)練習(xí)等等問題。經(jīng)過我的努力及同學(xué)的幫助,這些問題得到克服,并且使程序的功能也得到了一定的完善,并且給出

71、正確答案。</p><p>  在這次設(shè)計過程中,不僅復(fù)習(xí)課本上所學(xué)知識,還通過查資料、問同學(xué)學(xué)到了課本上沒有的知識。從而啟發(fā)我,要想寫好程序,在寫好課本知識的同時還需要多讀和專業(yè)有關(guān)的一些書籍,同時還需要多動腦子,盡量把所學(xué)的知識綜合起來應(yīng)用,力爭寫出完美的程序。除此之外,我還得到了一些有用的教訓(xùn):寫程序時必須要細(xì)心,不能輸錯一個字符標(biāo)點,就連全角半角也得注意。在修改時要有耐心,編譯出錯后必須逐個錯誤去改正,絕

72、不能心急浮躁,否則修改之后還會有新的錯誤。</p><p><b>  參考文獻(xiàn)</b></p><p>  [1]嚴(yán)蔚敏,陳文博編著.數(shù)據(jù)結(jié)構(gòu)及應(yīng)用算法教程.北京:清華大學(xué)出版社</p><p> ?。?]寧正元.數(shù)據(jù)結(jié)構(gòu)-用C語言描述.北京:中國水利水電出版社,2000</p><p> ?。?]蘇仕華主編.數(shù)據(jù)結(jié)構(gòu)

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論