計算機(jī)技術(shù)創(chuàng)新基礎(chǔ)課程設(shè)計--基于c++的學(xué)生成績管理系統(tǒng)_第1頁
已閱讀1頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  計算機(jī)技術(shù)創(chuàng)新基礎(chǔ)課程設(shè)計報告</p><p>  題目名稱 基于C++的學(xué)生成績管理系統(tǒng) </p><p>  班 級 </p><p>  學(xué) 號 &

2、lt;/p><p>  學(xué)生姓名 </p><p>  同組班級 </p><p>  同組學(xué)號 </p><p>  同組姓名 </p><p><b>

3、  摘 要</b></p><p>  本系統(tǒng)是一個學(xué)生成績管理系統(tǒng),采用VC++6.0 編譯器作為開發(fā)環(huán)境,這個環(huán)境是我們在學(xué)習(xí)C++的平臺。輸入數(shù)據(jù)類型主要是char、int等數(shù)據(jù)類型,輸入內(nèi)容包括:學(xué)號、姓名、C語言、英語、數(shù)學(xué)。用戶在輸入數(shù)據(jù)時要保證輸入數(shù)據(jù)格式的正確性,系統(tǒng)不會自動檢測輸入的數(shù)據(jù)是否正確。輸出形式與輸入形式類似,根據(jù)需要可以選擇顯示輸入的各項內(nèi)容,還可以選擇顯示計算好平均分

4、后并排序后的記錄,顯示內(nèi)容包括:班級、學(xué)號、姓名、總分等數(shù)據(jù)。用戶運(yùn)行程序后進(jìn)入系統(tǒng)主界面,在主界面用戶可以選擇所要進(jìn)行操作。</p><p>  關(guān)鍵詞: 成績管理;面向?qū)ο笳Z言;多種功能;目 錄</p><p>  1 需求分析- 1 -</p><p>  1.1 系統(tǒng)設(shè)計背景- 1 -</p><p>  1.2 系統(tǒng)概述-

5、1 -</p><p>  1.3 系統(tǒng)亮點- 1 -</p><p>  1.4 …- 1 -</p><p><b>  1.5- 1 -</b></p><p>  2 系統(tǒng)設(shè)計- 2 -</p><p>  2.1 系統(tǒng)開發(fā)環(huán)境簡介- 2 -</p><p&g

6、t;  2.2 系統(tǒng)硬件設(shè)計- 3 -</p><p>  2.3 系統(tǒng)軟件設(shè)計- 3 -</p><p>  3 系統(tǒng)實現(xiàn)- 4 -</p><p>  3.1 系統(tǒng)實現(xiàn)過程- 4 -</p><p>  3.2 軟件系統(tǒng)實現(xiàn)- 4 -</p><p>  3.3 硬件系統(tǒng)實現(xiàn)- 4 -</p>

7、;<p>  3.4 系統(tǒng)測試- 4 -</p><p>  3.5 系統(tǒng)團(tuán)隊介紹- 4 -</p><p>  4 總結(jié)- 5 -</p><p>  參考文獻(xiàn)- 6 -</p><p><b>  1 需求分析</b></p><p>  1.1 系統(tǒng)設(shè)計背景</p

8、><p>  學(xué)生成績管理系統(tǒng)是為了更好的管理學(xué)生考試成績而開發(fā)的數(shù)據(jù)管理軟件。它對于一個學(xué)校是不可缺少的重要部分,它的內(nèi)容對于學(xué)校的決策者和管理者來說都至關(guān)重要。目前各個高校的基本情況是:每次考試結(jié)束,老師們都要統(tǒng)計大量的學(xué)生成績,這些數(shù)據(jù)的歸檔、統(tǒng)計工作任務(wù)重,統(tǒng)計結(jié)束后往往錯誤百出。工作量之大,查閱,維護(hù)都有不同程度的問題存在。所以,學(xué)生成績管理管理系統(tǒng)為用戶提供充足的信息和快捷的查詢手段,實現(xiàn)學(xué)生基本信息、成

9、績的錄入,刪除,查詢,維護(hù)以及成績的統(tǒng)計分析等幾方面的功能,是現(xiàn)實問題的迫切要求。 學(xué)院在教學(xué)這一部分主要是由教務(wù)處對課程、 對學(xué)生、 對學(xué)生成績進(jìn)行合理地安排以及統(tǒng) 籌計劃,以及讓教務(wù)處在最短的時間段把學(xué)生的成績核算出來,提高教務(wù)處的辦事效率。同時,能夠隨時對學(xué)生、學(xué)生成績進(jìn)行各種查詢和統(tǒng)計,以及很好地對系統(tǒng)進(jìn)行維護(hù)(系統(tǒng)相關(guān)現(xiàn)狀、存在哪些問題、將如何解決)</p><p&g

10、t;<b>  1.2 系統(tǒng)概述</b></p><p>  學(xué)生成績管理系統(tǒng)是整個學(xué)校工作系統(tǒng)的重要組成部分,其內(nèi)容對于學(xué)校管理者和學(xué)生至關(guān)重要,所以學(xué)生成績管理系統(tǒng)應(yīng)該為用戶提供所需要的信息以及方便的管理平臺?,F(xiàn)代成績查詢系統(tǒng)理論已經(jīng)不拘泥于傳統(tǒng)的理論基礎(chǔ),不強(qiáng)調(diào)對教學(xué)活動的嚴(yán)密控制,放棄了繁瑣的設(shè)計模式,開始注重教學(xué)設(shè)計的關(guān)系性和靈活性,并且提供人性化的服務(wù),這些優(yōu)點能夠極大的提高學(xué)生

11、成績查詢的效率,從而更加有利于學(xué)生的管理和提高學(xué)生的主動性。</p><p><b>  1.3 系統(tǒng)亮點</b></p><p> ?。?)本系統(tǒng)使用了鏈表來存儲學(xué)生成績信息,本團(tuán)隊成員在設(shè)計及調(diào)試該程序的同時也積極融入了數(shù)據(jù)結(jié)構(gòu)等多門學(xué)科知識,積累了分析實際問題,創(chuàng)新設(shè)計程序經(jīng)驗;</p><p>  (2)在main()函數(shù)中主要是通過”

12、switch(x)”來選擇、判斷并調(diào)用相關(guān)功能。令系統(tǒng)的運(yùn)行在一個永真循環(huán)里進(jìn)行,只有在主界面并選擇“安全退出本系統(tǒng)”(即x=0)時,才會跳出循環(huán),退出程序</p><p><b>  2 系統(tǒng)設(shè)計</b></p><p>  2.1 系統(tǒng)開發(fā)環(huán)境簡介</p><p>  Visual C++ 6.0,簡稱VC或者VC6.0,是微軟推出的一款C

13、++編譯器,將“高級語言”翻譯為“機(jī)器語言(低級語言)”的程序。Visual C++是一個功能強(qiáng)大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問世,Visual C++已成為專業(yè)程序員進(jìn)行軟件開發(fā)的首選工具。雖然微軟公司推出了 Visual C++.NET(Visual C++7.0),但它的應(yīng)用的很大的局限性,只適用于Windows 2000、Windows XP和Win

14、dows NT4.0。所以實際中,更多的是以Visual C++6.0為平臺。Visual C++6.0不僅是一個C++ 編譯器,而且是一個基于Windows操作系統(tǒng)的可視化集成開發(fā)環(huán)境(integrated development environment,IDE)。Visual C++6.0由許多組件組成,包括編輯器、調(diào)試器以及程序向?qū)ppWizard、類向?qū)lass Wizard等開發(fā)工具。 這些組件通過一個名為Dev

15、eloper Studio的組件集成為和諧的開發(fā)環(huán)境</p><p>  2.2 系統(tǒng)硬件設(shè)計</p><p><b>  1.硬件環(huán)境 </b></p><p>  ? 處理器:Inter CR300或是更高。 ? </p><p>  內(nèi)存:128MB(建議 

16、;196MB)。 ? </p><p>  硬盤空間:20MB。</p><p>  2.3 系統(tǒng)軟件設(shè)計</p><p><b> ?。?)框圖結(jié)構(gòu)設(shè)計</b></p><p>  設(shè)計框圖主界面時要將系統(tǒng)能實現(xiàn)的主功能一一體現(xiàn)出來,并將其各個主功能下面的子功能一一列舉與其主功能相對應(yīng)、連接。<

17、;/p><p><b> ?。?)框圖作用</b></p><p> ?、倏驁D將該系統(tǒng)所能實現(xiàn)的功能一一陳列并把每個子功能聯(lián)串起來??驁D將系統(tǒng)將要實現(xiàn)的功能呈現(xiàn)出來,對于進(jìn)入使用該系統(tǒng)的用戶有明確的指示、提醒。</p><p>  ②該框圖能體現(xiàn)對學(xué)生信息的增加、刪除、修改等編譯功能,通過框圖的設(shè)計,將主菜單上的各個功能體現(xiàn)出來,讓使用者一目了然。

18、</p><p><b>  功能框圖如下</b></p><p><b>  主函數(shù)流程圖:</b></p><p><b>  3 系統(tǒng)實現(xiàn)</b></p><p>  3.1 軟件系統(tǒng)實現(xiàn)</p><p><b>  初次運(yùn)行</b

19、></p><p><b>  菜單界面</b></p><p>  由于本程序函數(shù)較多,我在此只列舉比較重要的幾個函數(shù)的設(shè)計過程。</p><p>  1.構(gòu)造函數(shù)和析構(gòu)函數(shù)。</p><p>  之所以列舉這兩個函數(shù)是因為這是C++和C語言不同的地方。通過構(gòu)造函數(shù)來對對象進(jìn)行初始化,并利用鏈表來進(jìn)行存儲。<

20、;/p><p>  Studentmassage::Studentmassage()</p><p><b>  {</b></p><p>  Head=new Student;</p><p>  Head->Next=new Student;</p><p>  End=Head->

21、Next;</p><p>  in.open("sort.txt");</p><p><b>  if(!in)</b></p><p>  cout<<"新系統(tǒng)無學(xué)生信息請先輸入"<<endl;</p><p><b>  else</

22、b></p><p><b>  {</b></p><p>  while(!in.eof())</p><p><b>  {</b></p><p>  End->ReadFile(in);</p><p>  if(End->name[0]==

23、9;\0')break;</p><p>  End->Next=new Student;</p><p>  End=End->Next;</p><p><b>  }</b></p><p>  in.close();</p><p>  cout<<&quo

24、t;\t\t讀取學(xué)生信息成功!"<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  2.查找函數(shù)。再考慮查找時,我覺得不同的人可能會喜歡不同的查找方式,因此設(shè)計了按學(xué)號查找和按姓名查找兩種方式。利用switch語句來實現(xiàn)按不同關(guān)鍵字的查找

25、。</p><p>  void Studentmassage::Find()</p><p><b>  {</b></p><p>  char name[20] ,Id[10];</p><p><b>  int x;</b></p><p>  Student *

26、p=NULL;</p><p>  cout<<"\n\t\t*********************************\n";</p><p>  cout<<"\t\t※ 1.按學(xué)生姓名查找\n\t\t※ 2.按學(xué)生學(xué)號查找";</p><p>  cout<<"\n\

27、t\t*********************************\n請選擇:";</p><p><b>  cin>>x;</b></p><p><b>  switch(x)</b></p><p><b>  {</b></p><p> 

28、 case 1:{cout<<"\t\t請輸入要查找學(xué)生姓名:";cin>>name;</p><p>  if(p=FindItem(name))</p><p><b>  {</b></p><p>  p->Next->Show();</p><p>  c

29、out<<"輸入任意字符繼續(xù)……";</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b><

30、/p><p>  cout<<"\t\t沒有找該姓名學(xué)生"<<'\n'<<endl;</p><p>  cout<<"輸入任意字符繼續(xù)……";</p><p><b>  getch();</b></p><p><

31、;b>  }</b></p><p><b>  }break;</b></p><p><b>  case 2:</b></p><p><b>  {</b></p><p>  cout<<"\t\t請輸入要查找學(xué)生學(xué)號:&quo

32、t;;cin>>Id;</p><p>  if(p=FindID(Id))</p><p><b>  {</b></p><p>  p->Next->Show();</p><p>  cout<<"輸入任意字符繼續(xù)……";</p><p&

33、gt;<b>  getch();</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"\t\t沒有找該學(xué)好學(xué)生&qu

34、ot;<<'\n'<<endl;</p><p>  cout<<"輸入任意字符繼續(xù)……";</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  }

35、break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  附:源代碼#include <iostream></p><p>  #include <fstream></p><p&

36、gt;  #include <string.h></p><p>  #include <conio.h>//用getch();</p><p>  using namespace std;</p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌Student類﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌</p><p>  class Studen

37、t</p><p><b>  {</b></p><p><b>  public:</b></p><p>  char name[20];</p><p>  char Id[20];</p><p>  int Cnum; //C課程得分</p>

38、;<p>  int Mnum; //數(shù)學(xué)課程得分</p><p>  int Enum; //英語課程得分</p><p>  int sum; //總分 </p><p>  Student * Next;</p><p>  void Input()</p><

39、;p><b>  {</b></p><p>  cout<<"\t\t請輸入學(xué)生姓名:"; cin>>name;</p><p>  cout<<"\t\t請輸入學(xué)生學(xué)號:"; cin>>Id;</p><p>  cout<<&qu

40、ot;\t\t請輸入C課程成績:"; cin>>Cnum;</p><p>  cout<<"\t\t請輸入數(shù)學(xué)課程成績:"; cin>>Mnum;</p><p>  cout<<"\t\t請輸入英語課程成績:"; cin>>Enum;</p><p&g

41、t;  sum=Cnum+Mnum+Enum;</p><p><b>  }</b></p><p>  void ReadFile(istream & in)</p><p><b>  {</b></p><p>  in>>name>>Id>>Cn

42、um>>Mnum>>Enum>>sum;</p><p><b>  }</b></p><p>  void Show()</p><p><b>  {</b></p><p>  cout<<"姓名:"<<name

43、<<endl<<"學(xué)號:"<<Id<<endl<<"C++:"<<Cnum<<endl</p><p>  <<"數(shù)學(xué):"<<Mnum<<endl<<"外語:"<<Enum<<en

44、dl<<"總成績:"<<sum<<endl<<endl<<endl;</p><p><b>  }</b></p><p><b>  };</b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌Studentmassage類﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌

45、﹌﹌</p><p>  class Studentmassage</p><p><b>  {</b></p><p><b>  public:</b></p><p>  Studentmassage();</p><p>  ~Studentmassage();&l

46、t;/p><p>  void ShowMenu();</p><p>  void Find();</p><p>  void Save();</p><p>  void ModifyItem();</p><p>  void RemoveItem();</p><p>  void Swa

47、p(Student *,Student *);</p><p>  void Sort();</p><p>  //void Unpass();</p><p>  int ListCount();</p><p>  //void Average();</p><p>  void Display()</p&

48、gt;<p><b>  {</b></p><p>  for(Student * p=Head->Next;p!=End;p=p->Next)</p><p>  p->Show();</p><p>  cout<<"輸入任意字符繼續(xù)……";</p><p

49、><b>  getch();</b></p><p><b>  }</b></p><p>  void AddItem()</p><p><b>  {</b></p><p>  End->Input();</p><p>  En

50、d->Next=new Student;</p><p>  End=End->Next;</p><p>  cout<<"添加成功!"<<endl;</p><p>  cout<<"輸入任意字符繼續(xù)……";</p><p><b>  ge

51、tch();</b></p><p><b>  }</b></p><p><b>  private:</b></p><p>  Student * Head,* End;</p><p>  ifstream in;</p><p>  ofstream

52、out;</p><p>  Student *FindItem(char * name)</p><p><b>  {</b></p><p>  for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功則返回上指針成功返回空</p><p>  if(!str

53、cmp(p->Next->name,name))return p;</p><p>  return NULL;</p><p><b>  }</b></p><p>  Student *FindID(char * Id)</p><p><b>  {</b></p>

54、<p>  for(Student * p=Head;p->Next!=End;p=p->Next)//匹配成功則返回上指針成功返回空</p><p>  if(!strcmp(p->Next->Id,Id))return p;</p><p>  return NULL;</p><p><b>  }</b&g

55、t;</p><p><b>  };</b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌構(gòu)造函數(shù)﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌</p><p>  Studentmassage::Studentmassage()</p><p><b>  {</b></p><p>  

56、Head=new Student;</p><p>  Head->Next=new Student;</p><p>  End=Head->Next;</p><p>  in.open("sort.txt");</p><p><b>  if(!in)</b></p>

57、<p>  cout<<"新系統(tǒng)無學(xué)生信息請先輸入"<<endl;</p><p><b>  else</b></p><p><b>  {</b></p><p>  while(!in.eof())</p><p><b> 

58、 {</b></p><p>  End->ReadFile(in);</p><p>  if(End->name[0]=='\0')break;</p><p>  End->Next=new Student;</p><p>  End=End->Next;</p>&l

59、t;p><b>  }</b></p><p>  in.close();</p><p>  cout<<"\t\t讀取學(xué)生信息成功!"<<endl;</p><p><b>  }</b></p><p><b>  }</b&g

60、t;</p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌析構(gòu)函數(shù)﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌</p><p>  Studentmassage::~Studentmassage()</p><p><b>  {</b></p><p><b>  Save();</b></p><p

61、>  for(Student * temp;Head->Next!=End;)</p><p><b>  {</b></p><p>  temp=Head->Next;</p><p>  Head->Next=Head->Next->Next;</p><p>  delete

62、temp;</p><p><b>  }</b></p><p>  delete Head,End;</p><p><b>  }</b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌菜單﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌</p><p>  void Studentmass

63、age::ShowMenu() </p><p><b>  {</b></p><p>  cout<<"〓〓〓〓〓〓〓〓〓〓 ☆ 學(xué) 生 成 績 管 理 系 統(tǒng) ☆ 〓〓〓〓〓〓〓〓〓〓"<<endl;</p><p>  cout<<

64、"〓〓〓〓〓〓〓★★★★★ ★★★★★★★ ★★★★★〓〓〓〓〓〓〓"<<endl;</p><p>  cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 1.增加學(xué)生成績 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;</p><p>  cout<<

65、;"〓〓〓〓〓〓〓〓〓★ ☆ 2.顯示學(xué)生成績 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;</p><p>  cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 3.排序統(tǒng)計成績 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;</p><p>  cout<

66、;<"〓〓〓〓〓〓〓〓〓★ ☆ 4.查找學(xué)生成績 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;</p><p>  cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 5.刪除學(xué)生成績 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;</p><p>  cou

67、t<<"〓〓〓〓〓〓〓〓〓★ ☆ 6.修改學(xué)生信息 ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;</p><p>  cout<<"〓〓〓〓〓〓〓〓〓★ ☆ 0.安全退出系統(tǒng) ☆ ★〓〓〓〓〓〓〓〓〓"<<endl;</p><p> 

68、 cout<<"\n\t\t\n\t\t請選擇:";</p><p><b>  }</b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌查找函數(shù)﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌</p><p>  void Studentmassage::Find()</p><p><b>  

69、{</b></p><p>  char name[20] ,Id[10];</p><p><b>  int x;</b></p><p>  Student * p=NULL;</p><p>  cout<<"\n\t\t*****************************

70、****\n";</p><p>  cout<<"\t\t※ 1.按學(xué)生姓名查找\n\t\t※ 2.按學(xué)生學(xué)號查找";</p><p>  cout<<"\n\t\t*********************************\n請選擇:";</p><p><b>  ci

71、n>>x;</b></p><p><b>  switch(x)</b></p><p><b>  {</b></p><p>  case 1:{cout<<"\t\t請輸入要查找學(xué)生姓名:";cin>>name;</p><p&

72、gt;  if(p=FindItem(name))</p><p><b>  {</b></p><p>  p->Next->Show();</p><p>  cout<<"輸入任意字符繼續(xù)……";</p><p><b>  getch();</b>

73、;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"\t\t沒有找該姓名學(xué)生"<<'\n'<<

74、endl;</p><p>  cout<<"輸入任意字符繼續(xù)……";</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  }break;</b></p><

75、;p><b>  case 2:</b></p><p><b>  {</b></p><p>  cout<<"\t\t請輸入要查找學(xué)生學(xué)號:";cin>>Id;</p><p>  if(p=FindID(Id))</p><p><b&

76、gt;  {</b></p><p>  p->Next->Show();</p><p>  cout<<"輸入任意字符繼續(xù)……";</p><p><b>  getch();</b></p><p><b>  }</b></p&g

77、t;<p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"\t\t沒有找該學(xué)好學(xué)生"<<'\n'<<endl;</p><p>  cout<<"輸入任意字符

78、繼續(xù)……";</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  }break;</b></p><p><b>  }</b></p><p><

79、;b>  }</b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌修改信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌</p><p>  void Studentmassage::ModifyItem() //修改信息</p><p><b>  {</b></p><p>  char name[20];&

80、lt;/p><p>  Student * p=NULL;</p><p>  cout<<"\t\t請輸入要修改人姓名:";cin>>name;</p><p>  if(p=FindItem(name))</p><p><b>  {</b></p><p

81、>  cout<<"\t\t已找學(xué)生信息請輸入新信息!"<<endl;</p><p>  p->Next->Input();</p><p>  cout<<"修改成功"<<endl;</p><p>  cout<<"輸入任意字符繼續(xù)…

82、…";</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<

83、;<"\t\t沒有找!"<<endl;</p><p>  cout<<"輸入任意字符繼續(xù)……";</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b> 

84、 }</b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌刪除信息﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌</p><p>  void Studentmassage::RemoveItem() // 刪除信息</p><p><b>  {</b></p><p>  char name[20];<

85、;/p><p>  Student * p=NULL,*temp=NULL;</p><p>  cout<<"\t\t請輸入要刪除學(xué)生姓名:"<<endl;cin>>name;</p><p>  if(p=FindItem(name))</p><p><b>  {</

86、b></p><p>  temp=p->Next;</p><p>  p->Next=p->Next->Next;</p><p>  delete temp;</p><p>  cout<<"\t\t刪除成功!"<<endl;</p><p&

87、gt;  cout<<"輸入任意字符繼續(xù)……";</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  else</b></p><p><b>  {</b&g

88、t;</p><p>  cout<<"\t\t沒有找!"<<endl;</p><p>  cout<<"輸入任意字符繼續(xù)……";</p><p><b>  getch();</b></p><p><b>  }</b>

89、;</p><p><b>  }</b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌</p><p>  void Studentmassage::Swap(Student *p1, Student *p2)//交換兩combox變量數(shù)據(jù)域</p><p><b>  {<

90、/b></p><p>  Student *temp=new Student;</p><p>  strcpy(temp->name,p1->name);</p><p>  strcpy(temp->Id,p1->Id);</p><p>  temp->Cnum=p1->Cnum;</p

91、><p>  temp->Mnum=p1->Mnum;</p><p>  temp->Enum=p1->Enum;</p><p>  temp->sum=p1->sum;</p><p>  strcpy(p1->name,p2->name);</p><p>  str

92、cpy(p1->Id,p2->Id);</p><p>  p1->Cnum=p2->Cnum;</p><p>  p1->Mnum=p2->Mnum;</p><p>  p1->Enum=p2->Enum;</p><p>  p1->sum=p2->sum;</p>

93、;<p>  strcpy(p2->name,temp->name);</p><p>  strcpy(p2->Id,temp->Id);</p><p>  p2->Cnum=temp->Cnum;</p><p>  p2->Mnum=temp->Mnum;</p><p>

94、  p2->Enum=temp->Enum;</p><p>  p2->sum=temp->sum;</p><p><b>  }</b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌</p><p>  int Studentmassage::ListCount(

95、)//統(tǒng)計當(dāng)前鏈表記錄總數(shù)返回整數(shù)</p><p><b>  {</b></p><p>  if(! Head)</p><p><b>  return 0;</b></p><p><b>  int n=0;</b></p><p>  for

96、(Student * p=Head->Next;p!=End;p=p->Next)</p><p><b>  {</b></p><p><b>  n++;</b></p><p><b>  }</b></p><p><b>  return n;

97、</b></p><p><b>  }</b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌</p><p>  void Studentmassage::Sort()//對當(dāng)前鏈表進(jìn)行排序</p><p><b>  {</b></p>&l

98、t;p>  cout <<"Sorting..."<<endl;</p><p>  Student *p=NULL,*p1=NULL,*k=NULL;</p><p>  int n=Studentmassage::ListCount();</p><p><b>  if(n<2)</b&g

99、t;</p><p><b>  return;</b></p><p>  for(p=Head->Next;p!=End;p=p->Next)</p><p>  for(k=p->Next;k!=End;k=k->Next)</p><p><b>  {</b><

100、;/p><p>  if(p->sum>k->sum)</p><p><b>  {</b></p><p>  Studentmassage::Swap(p,k);</p><p><b>  }</b></p><p><b>  }</b

101、></p><p>  cout <<"排序完成"<<endl;</p><p><b>  getch();</b></p><p><b>  return;</b></p><p><b>  }</b></p>

102、;<p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌保存函數(shù)﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌</p><p>  void Studentmassage::Save()</p><p><b>  {</b></p><p>  out.open("sort.txt");</p><p>  for(St

103、udent *p=Head->Next;p!=End;p=p->Next)</p><p>  out<<p->name<<"\t"<<p->Id<<"\t"<<p->Cnum<<"\t"</p><p>  <<p-

104、>Mnum<<"\t"<<p->Enum<<"\t"<<p->sum<<'\n';</p><p>  out.close();</p><p><b>  }</b></p><p>  //﹌﹌﹌﹌﹌﹌﹌﹌﹌

105、﹌﹌﹌主函數(shù)﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌</p><p>  int main()</p><p><b>  {</b></p><p>  int x,i=0;</p><p>  bool quit=false;</p><p>  cout<<"\t\t§

106、67;§§§§§§§§§§§§§§§§§§§§§§§§"<<endl;</p><p>  for(i=0;i<3;i++)</p>

107、<p>  cout<<"\t\t◎\t\t\t\t\t\t ◎"<<endl;</p><p>  cout<<"\t\t◎★★★★【 歡迎進(jìn)入學(xué)生成績管理系統(tǒng) 】★★★★◎"<<endl;</p><p>  for(i=0;i<3;i++)</p><p&

108、gt;  cout<<"\t\t◎\t\t\t\t\t\t ◎"<<endl;</p><p>  cout<<"\t\t§§§§§§§§§§§§§§§§§§§

109、;§§§§§§§\n"<<endl;;</p><p>  Studentmassage Grade;</p><p>  cout<<"按任意鍵開始……";</p><p><b>  getch();</b></

110、p><p>  while(!quit)</p><p><b>  {</b></p><p>  system("cls");</p><p>  Grade.ShowMenu();</p><p><b>  cin>>x;</b></

111、p><p><b>  switch(x)</b></p><p><b>  {</b></p><p>  case 0:quit=true;break;</p><p>  case 1:Grade.AddItem();break;</p><p>  case 2:Gra

112、de.Display();break;</p><p>  case 3:Grade.Sort();break;</p><p>  case 4:Grade.Find();break;</p><p>  case 5:Grade.RemoveItem();break;</p><p>  case 6:Grade.ModifyItem()

113、;break;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  3

114、.2 系統(tǒng)測試</b></p><p>  測試方案,錄入如下三個學(xué)生成績,并依次測試程序功能。</p><p>  經(jīng)過測試,系統(tǒng)的各個功能均符合設(shè)計意圖</p><p>  3.5 系統(tǒng)團(tuán)隊介紹</p><p><b>  4 總結(jié)</b></p><p>  本系統(tǒng)是一個學(xué)生成績

115、管理系統(tǒng),輸入數(shù)據(jù)類型主要是char、int等數(shù)據(jù)類型,輸入內(nèi)容包括:學(xué)號、姓名、C語言、英語、數(shù)學(xué)。根據(jù)需要可以選擇顯示輸入的各項內(nèi)容,還可以選擇顯示計算好平均分后并排序后的記錄,顯示內(nèi)容包括:班級、學(xué)號、姓名、總分等數(shù)據(jù)。用戶運(yùn)行程序后進(jìn)入系統(tǒng)主界面,在主界面用戶可以選擇所要進(jìn)行操作。</p><p>  我主要負(fù)責(zé)的是各個函數(shù)的設(shè)計。利用函數(shù)來實現(xiàn)各個功能,可以讓程序看起來比較簡潔,易于讀懂和使用,并大大的

116、提高程序的可移植性。</p><p>  此外,在設(shè)計的時候還存在部分不足之處,因為時間原因未能滿足。比如在輸入學(xué)生成績是不能對非法輸入進(jìn)行識別和提示等。希望在以后進(jìn)一步的設(shè)計過程中思維更加縝密,使程序更加完美。</p><p>  在本次系統(tǒng)程序設(shè)計過程中,我們?nèi)鎸嵺`一個面向?qū)ο笳Z言的應(yīng)用系統(tǒng)的開發(fā)過程,學(xué)到了很多有關(guān)的知識。這樣的項目對我們學(xué)過的數(shù)據(jù)結(jié)構(gòu),程序設(shè)計,數(shù)據(jù)庫等課程是一個

117、綜合性很高的實踐。</p><p>  在編寫程序的過程中,我感受到了自己親自動手動腦編程序、調(diào)程序的重要性,我漸漸熟悉C++的語法、體會調(diào)試的思想,這比我一味的看書效果好得多。另外,我還感覺到一個好的程序編出來需要很多人的團(tuán)結(jié)合作。我在檢查自己編寫的程序是否有BUG未被找出的時候,我會讓我的同學(xué)作為一個程序使用者來找出未發(fā)現(xiàn)的BUG并提出改進(jìn)意見,防止我一個人困頓的被幾個障礙蒙住眼睛,這讓我們的工作更加高效。參

溫馨提示

  • 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

提交評論