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

下載本文檔

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

文檔簡介

1、<p>  學(xué)生信息管理系統(tǒng)(C++)</p><p><b>  1程序功能要求</b></p><p><b> ?。?)信息維護(hù):</b></p><p>  要求:學(xué)生信息數(shù)據(jù)要以文件的形式保存,能實(shí)現(xiàn)學(xué)生信息數(shù)據(jù)的維護(hù)。此模塊包括子模塊有:增加學(xué)生信息、刪除學(xué)生信息、修改學(xué)生信息。</p>

2、<p><b> ?。?)信息查詢:</b></p><p>  要求:查詢時(shí)可實(shí)現(xiàn)按姓名查詢、按學(xué)號查詢。</p><p><b> ?。?)成績統(tǒng)計(jì):</b></p><p>  要求:A輸入任意的一個(gè)課程名(如數(shù)學(xué))和一個(gè)分?jǐn)?shù)段(如60~70),統(tǒng)計(jì)出在此分?jǐn)?shù)段的學(xué)生情況。</p><

3、p> ?。?)排序:能對用戶指定的任意課程名,按成績升序或降序排列學(xué)生數(shù)據(jù)并顯示排序結(jié)果。</p><p><b>  2 開發(fā)環(huán)境</b></p><p>  操作系統(tǒng): Windows XP</p><p>  開發(fā)軟件: Visual C++ 6.0</p><p><b>  3 程序分析<

4、;/b></p><p> ?。?)定義一個(gè)數(shù)組記錄總成績:total[2000];</p><p> ?。?)先定義結(jié)構(gòu)體:struct student</p><p> ?。?)用for循環(huán)實(shí)現(xiàn)一個(gè)查找函數(shù)</p><p><b> ?。?)定義插入函數(shù)</b></p><p><

5、b> ?。?)定義刪除函數(shù)</b></p><p> ?。?)定義了一個(gè)輸出函數(shù)來控制輸出</p><p> ?。?)編寫主函數(shù):其中包括學(xué)生信息的輸入,并求出每個(gè)學(xué)生的總成績用數(shù)組total[2000]進(jìn)行記錄,然后按學(xué)生的總成績從高到低進(jìn)行排序;排序的方法有很多種,這里我用了冒泡法排序;最后調(diào)用查找,插入,刪除,輸出等函數(shù)實(shí)現(xiàn)各種功能。根據(jù)提示選擇功能:cz表示查找,

6、cr表示插入,sc表示刪除,js表示結(jié)束輸入輸出。</p><p><b>  4 程序詳細(xì)內(nèi)容</b></p><p>  #include<iostream></p><p>  #include<string></p><p>  using namespace std;</p>

7、<p>  int total[2000]; //總成績; </p><p>  struct student</p><p><b>  {</b></p><p>  int num; //學(xué)號; </p><p>  string name;

8、 //姓名; </p><p>  string classes; //班級; </p><p>  int math; //數(shù)學(xué)成績; </p><p>  int english; //英語成績; </p><p>  int cl; //c++成

9、績; </p><p>  }st[2000],temp; //定義結(jié)構(gòu)體數(shù)組; </p><p><b>  //查找函數(shù);</b></p><p>  void chazhao(int n) </p><p><b>  {</b></p><p>  int n

10、umber; </p><p>  cout<<"請輸入你的學(xué)號:";</p><p>  cin>>number;</p><p>  for(int i=1;i<=n;i++)</p><p><b>  {</b></p><p>  if(

11、st[i].num==number)//查找學(xué)號為number的學(xué)生,并輸出其信息; </p><p><b>  {</b></p><p>  cout<<st[i].num<<" "<<st[i].name<<" ";</p><p>  cout&l

12、t;<st[i].classes<<" "<<st[i].math<<" ";</p><p>  cout<<st[i].english<<" "<<st[i].cl<<" ";</p><p>  cout<&l

13、t;total[i]<<endl;</p><p>  break; </p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }</b></p

14、><p><b>  //插入函數(shù);</b></p><p>  void charu(int n)</p><p><b>  {</b></p><p>  int nu,mat,en,ccl,ttotal;</p><p>  string na,cla; </p&g

15、t;<p><b>  int x;</b></p><p>  cout<<"請輸入要插入的學(xué)生信息:";</p><p>  cin>>nu>>na>>cla>>mat>>en>>ccl;</p><p>  ttotal=

16、mat+en+ccl;</p><p>  for(int i=1;i<=n;i++) //查找要插入的學(xué)生的位置,并記下位置x; </p><p><b>  {</b></p><p>  if(ttotal>=total[i]) </p><p>  {x=i;break;}</p

17、><p><b>  }</b></p><p>  for(int i=n+1;i>x;i--) //將x+1到n位置的學(xué)生信息往后移一個(gè)位置; </p><p><b>  {</b></p><p>  st[i]=st[i-1];</p><p>  total

18、[i]=total[i-1]; </p><p><b>  }</b></p><p>  //對x位置的信息處理;把要插入的信息放入x的位置; </p><p>  st[x].num=nu; st[x].name=na; </p><p>  st[x].classes=cla; st[x].mat

19、h=mat;</p><p>  st[x].english=en; st[x].cl=ccl;</p><p>  total[x]=ttotal;</p><p><b>  } </b></p><p><b>  //刪除函數(shù);</b></p><p>  void

20、shanchu(int n)</p><p><b>  {</b></p><p>  int m,i,j;</p><p>  cout<<"請輸入要刪除的學(xué)生的學(xué)號:";</p><p><b>  cin>>m;</b></p>&l

21、t;p>  //找到要刪除的信息的位置,并跳出循環(huán),i值就是要刪除信息的位置;</p><p>  for(i=1;i<=n;i++) </p><p><b>  {</b></p><p>  if(m==st[i].num)break; </p><p><b>  

22、}</b></p><p>  //將i+1到n的學(xué)生信息往前移一個(gè)位置,循環(huán)到n-1時(shí)結(jié)束; </p><p>  for(j=i;j<n;j++)</p><p><b>  {</b></p><p>  st[j]=st[j+1];</p><p>  total[j]=

23、total[j+1]; </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  //輸出函數(shù);</b></p><p>  void output(int n)</p><p>

24、<b>  {</b></p><p>  for(int i=1;i<=n;i++)</p><p><b>  {</b></p><p>  cout<<st[i].num<<" "<<st[i].name<<" ";<

25、;/p><p>  cout<<st[i].classes<<" "<<st[i].math<<" ";</p><p>  cout<<st[i].english<<" "<<st[i].cl<<" ";</p&

26、gt;<p>  cout<<total[i]<<endl;</p><p>  } </p><p><b>  } </b></p><p><b>  //主函數(shù); </b></p><p>  int main()<

27、/p><p><b>  { </b></p><p>  int i,n,j;</p><p><b>  string m;</b></p><p>  cout<<"請輸入學(xué)生的人數(shù):";</p><p>  cin>>n;/

28、/表示學(xué)生的人數(shù);</p><p>  //輸入n個(gè)學(xué)生的信息; </p><p>  for(i=1;i<=n;i++)</p><p><b>  {</b></p><p>  cin>>st[i].num>>st[i].name;</p><p>  cin&

29、gt;>st[i].classes>>st[i].math;</p><p>  cin>>st[i].english>>st[i].cl;</p><p>  total[i]=st[i].math+st[i].english+st[i].cl; </p><p><b>  }<

30、;/b></p><p>  //排序;冒泡排序法,根據(jù)總成績的高到低排列; </p><p>  for(i=1;i<n;i++)</p><p>  for(j=i+1;j<=n;j++)</p><p><b>  {</b></p><p>  if(total[j]&g

31、t;total[i])</p><p><b>  {</b></p><p>  int p=total[i];</p><p>  total[i]=total[j];</p><p>  total[j]=p;</p><p>  temp=st[i];</p><p&g

32、t;  st[i]=st[j];</p><p>  st[j]=temp; </p><p>  } </p><p><b>  }</b></p><p>  for(i=1;;i++)</p><p><b>  {</b>

33、</p><p>  cout<<"查找成績輸入cz,插入學(xué)生信息輸入cr,刪除學(xué)生信息輸入sc,結(jié)束請輸入js:";</p><p><b>  cin>>m;</b></p><p>  if(m=="js")break;</p><p>  if(m=

34、="cz"){chazhao(n);}//output(n);</p><p>  if(m=="cr"){charu(n);output(n+1);n++;}</p><p>  if(m=="sc"){shanchu(n);output(n-1);n--;}</p><p>  cout<<

35、endl;</p><p><b>  }</b></p><p>  //while(1){}</p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  5程序運(yùn)行結(jié)果<

36、/b></p><p><b>  6總結(jié)心得</b></p><p>  通過編寫學(xué)生成績管理系統(tǒng)這個(gè)程序,感覺到自己有很多方面的不足,在編寫過程中不斷的求助于同學(xué)老師,不斷的查找資料和翻書本,自己真是受益匪淺。</p><p>  首先,在編程學(xué)習(xí)中,實(shí)踐是非常重要的,無論自己在讀程序看程序時(shí)是多么的明白,但到了電腦面前,才知道在實(shí)際

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論