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

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  報(bào)告中應(yīng)包括的內(nèi)容:</p><p><b>  一、設(shè)計(jì)任務(wù)分析</b></p><p><b>  【設(shè)計(jì)目的】</b></p><p>  設(shè)計(jì)“學(xué)生成績(jī)管理系統(tǒng)”,使其具有數(shù)據(jù)輸入、刪除、顯示和查詢(xún)等功能。</p><p>  數(shù)據(jù)包括:學(xué)號(hào)、姓名、Score1、Sco

2、re2、sum。</p><p>  可以增加或刪除記錄。</p><p>  可以顯示學(xué)生信息。 </p><p>  可以按學(xué)號(hào)或姓名績(jī)查詢(xún)。</p><p>  可以按學(xué)生姓名修改信息。</p><p><b>  二、模塊設(shè)計(jì)</b></p><p>  (一)、系

3、統(tǒng)功能模塊圖</p><p><b>  流程圖</b></p><p><b>  主要數(shù)據(jù)結(jié)構(gòu)</b></p><p>  /*定義存儲(chǔ)單元的基本信息結(jié)構(gòu)*/</p><p>  class Student{</p><p><b>  public:</

4、b></p><p>  char name[20];</p><p>  char Id[20];</p><p>  int Cnum; //C語(yǔ)言得分</p><p>  int Pnum; //程序設(shè)計(jì)得分</p><p>  int sum; //總分</p&

5、gt;<p><b>  }</b></p><p>  /*聲明主要的功能函數(shù)體*/</p><p>  class Studentmassage{</p><p><b>  public:</b></p><p>  ~Studentmassage();</p>&

6、lt;p>  Studentmassage();</p><p>  void ShowMenu();</p><p>  void Find();</p><p>  void Save();</p><p>  void ModifyItem();</p><p>  void RemoveItem();&l

7、t;/p><p>  void Swap(Student *,Student *);</p><p>  void Sort();</p><p>  int ListCount();</p><p>  void Display()</p><p><b>  }</b></p>&l

8、t;p><b>  源代碼</b></p><p>  # include <iostream></p><p>  # include <fstream></p><p>  # include <string.h></p><p>  #include <conio.h

9、>//用getch();</p><p>  using namespace std;</p><p>  class Student</p><p><b>  {</b></p><p><b>  public:</b></p><p>  char name[2

10、0];</p><p>  char Id[20];</p><p>  int Cnum; //C語(yǔ)言得分</p><p>  int Pnum; //程序設(shè)計(jì)得分</p><p>  int sum; //總分 </p><p>  Student * Next;<

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

12、>>Id;</p><p>  cout<<"\t\t請(qǐng)輸入C語(yǔ)言的成績(jī):"; cin>>Cnum;</p><p>  cout<<"\t\t請(qǐng)輸入程序設(shè)計(jì)成績(jī):"; cin>>Pnum;</p><p>  sum=Cnum+Pnum ;</p>

13、<p><b>  }</b></p><p>  void ReadFile(istream & in)</p><p><b>  {</b></p><p>  in>>name>>Id>>Cnum>>Pnum >>sum;</p&

14、gt;<p><b>  }</b></p><p>  void Show()</p><p><b>  {</b></p><p>  cout<<"姓名:"<<name<<endl<<"學(xué)號(hào):"<<Id

15、<<endl<<"C語(yǔ)言:"<<Cnum<<endl<<"程序設(shè)計(jì):"<<Pnum<<endl<<"總成績(jī):"<<sum<<endl<<endl<<endl;</p><p><b>  }</b

16、></p><p><b>  };</b></p><p>  class Studentmassage</p><p><b>  {</b></p><p><b>  public:</b></p><p>  ~Studentmassag

17、e();</p><p>  Studentmassage();</p><p>  void ShowMenu();</p><p>  void Find();</p><p>  void Save();</p><p>  void ModifyItem();</p><p>  voi

18、d RemoveItem();</p><p>  void Swap(Student *,Student *);</p><p>  void Sort();</p><p>  int ListCount();</p><p>  void Display()</p><p><b>  {</b&

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

20、;</p><p><b>  }</b></p><p>  void AddItem()</p><p><b>  {</b></p><p>  End->Input();</p><p>  End->Next=new Student;</p>

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

22、;p><b>  }</b></p><p><b>  private:</b></p><p>  Student * Head,* End;</p><p>  ifstream in;</p><p>  ofstream out;</p><p>  Stud

23、ent *FindItem(char * name)</p><p><b>  {</b></p><p>  for(Student * p=Head;p->Next!=End;p=p->Next)</p><p>  if(!strcmp(p->Next->name,name))return p;</p>

24、;<p>  return NULL;</p><p><b>  }</b></p><p>  Student *FindID(char * Id)</p><p><b>  {</b></p><p>  for(Student * p=Head;p->Next!=End

25、;p=p->Next)</p><p>  if(!strcmp(p->Next->Id,Id))return p;</p><p>  return NULL;</p><p><b>  }</b></p><p><b>  };</b></p><p&g

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

27、<p>  in.open("sort.txt");</p><p><b>  if(!in)</b></p><p>  cout<<" 無(wú)學(xué)生信息,請(qǐng)先輸入。"<<endl;</p><p><b>  else</b></p>

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

29、</p><p>  End->Next=new Student;</p><p>  End=End->Next;</p><p><b>  }</b></p><p>  in.close();</p><p>  cout<<"\t\t讀取學(xué)生信息成功!&

30、quot;<<endl;</p><p><b>  }</b></p><p><b>  }</b></p><p>  Studentmassage::~Studentmassage()</p><p><b>  {</b></p><p

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

32、->Next->Next;</p><p>  delete temp;</p><p><b>  }</b></p><p>  delete Head,End;</p><p><b>  }</b></p><p>  void Studentmassag

33、e::ShowMenu()//菜單 </p><p><b>  {</b></p><p>  cout<<" 學(xué) 生 成 績(jī) 管 理 系 統(tǒng) "<<endl;</p>

34、<p>  cout<<" "<<endl;</p><p>  cout<<" 1.增加學(xué)生成績(jī)

35、 "<<endl;</p><p>  cout<<" 2.顯示學(xué)生成績(jī) "<<endl;</p><p>  cout<<"

36、 3.排序統(tǒng)計(jì)成績(jī) "<<endl;</p><p>  cout<<" 4.查找學(xué)生成績(jī) "<<

37、;endl;</p><p>  cout<<" 5.刪除學(xué)生成績(jī) "<<endl;</p><p>  cout<<" 6.修改學(xué)

38、生信息 "<<endl;</p><p>  cout<<" 0.退出保存信息 "<<endl;</p><p>  cout<&

39、lt;"\n\t\t\n\t\t請(qǐng)選擇:";</p><p><b>  }</b></p><p>  void Studentmassage::Find()// 查找函數(shù) </p><p><b>  {</b></p><p>  char name[20] ,Id[10]

40、;</p><p><b>  int x;</b></p><p>  Student * p=NULL;</p><p>  cout<<"\n\t\t*********************************\n";</p><p>  cout<<"\

41、t\t※ 1.按學(xué)生的姓名查找\n\t\t※ 2.按學(xué)生學(xué)號(hào)查找";</p><p>  cout<<"\n\t\t*********************************\n請(qǐng)選擇:";</p><p><b>  cin>>x;</b></p><p><b>  s

42、witch(x)</b></p><p><b>  {</b></p><p>  case 1:{cout<<"\t\t請(qǐng)輸入要查找的學(xué)生的姓名:";cin>>name;</p><p>  if(p=FindItem(name))</p><p><b&

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

44、gt;<p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"\t\t沒(méi)有找到該姓名的學(xué)生!"<<'\n'<<endl;</p><p>  cout<<"輸入

45、任意字符!繼續(xù)……";</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  }break;</b></p><p><b>  case 2:</b></p>&

46、lt;p><b>  {</b></p><p>  cout<<"\t\t請(qǐng)輸入要查找的學(xué)生的學(xué)號(hào):";cin>>Id;</p><p>  if(p=FindID(Id))</p><p><b>  {</b></p><p>  p->

47、Next->Show();</p><p>  cout<<"輸入任意字符!繼續(xù)……";</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  else</b></p

48、><p><b>  {</b></p><p>  cout<<"\t\t沒(méi)有找到該學(xué)好的學(xué)生!"<<'\n'<<endl;</p><p>  cout<<"輸入任意字符!繼續(xù)……";</p><p><b>

49、;  getch();</b></p><p><b>  }</b></p><p><b>  }break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>

50、  void Studentmassage::ModifyItem() //修改信息</p><p><b>  {</b></p><p>  char name[20];</p><p>  Student * p=NULL;</p><p>  cout<<"\t\t請(qǐng)輸入要修改的人的

51、姓名:";cin>>name;</p><p>  if(p=FindItem(name))</p><p><b>  {</b></p><p>  cout<<"\t\t已找到學(xué)生的信息,請(qǐng)輸入新的信息!"<<endl;</p><p>  p-&g

52、t;Next->Input();</p><p>  cout<<"修改成功!"<<endl;</p><p>  cout<<"輸入任意字符!繼續(xù)……";</p><p><b>  getch();</b></p><p><b&

53、gt;  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"\t\t沒(méi)有找到!"<<endl;</p><p>  cout<<"輸入任意字

54、符!繼續(xù)……";</p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void Studentmassage::RemoveItem() // 刪除信

55、息</p><p><b>  {</b></p><p>  char name[20];</p><p>  Student * p=NULL,*temp=NULL;</p><p>  cout<<"\t\t請(qǐng)輸入要?jiǎng)h除的學(xué)生的姓名:"<<endl;cin>>

56、name;</p><p>  if(p=FindItem(name))</p><p><b>  {</b></p><p>  temp=p->Next;</p><p>  p->Next=p->Next->Next; </p><p>  delete temp;

57、</p><p>  cout<<"\t\t刪除成功!"<<endl;</p><p>  cout<<"輸入任意字符!繼續(xù)……";</p><p><b>  getch();</b></p><p><b>  }</b>

58、;</p><p><b>  else</b></p><p><b>  {</b></p><p>  cout<<"\t\t沒(méi)有找到!"<<endl;</p><p>  cout<<"輸入任意字符!繼續(xù)……";&l

59、t;/p><p><b>  getch();</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  void Studentmassage::Swap(Student *p1, Student *p2)//交換兩個(gè)變量的數(shù)據(jù)

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

61、>  temp->Cnum=p1->Cnum;</p><p>  temp->Pnum=p1->Pnum;</p><p>  temp->sum=p1->sum;</p><p>  strcpy(p1->name,p2->name);</p><p>  strcpy(p1->

62、Id,p2->Id);</p><p>  p1->Cnum=p2->Cnum;</p><p>  p1->Pnum=p2->Pnum;</p><p>  p1->sum=p2->sum;</p><p>  strcpy(p2->name,temp->name);</p>

63、<p>  strcpy(p2->Id,temp->Id);</p><p>  p2->Cnum=temp->Cnum;</p><p>  p2->Pnum=temp->Pnum;</p><p>  p2->sum=temp->sum;</p><p><b>  

64、}</b></p><p>  int Studentmassage::ListCount()//統(tǒng)計(jì)當(dāng)前鏈表的記錄總數(shù),返回一個(gè)整數(shù)</p><p><b>  {</b></p><p>  if(! Head)</p><p><b>  return 0;</b></p&g

65、t;<p><b>  int n=0;</b></p><p>  for(Student * p=Head->Next;p!=End;p=p->Next)</p><p><b>  {</b></p><p><b>  n++;</b></p><

66、p><b>  }</b></p><p><b>  return n;</b></p><p><b>  }</b></p><p>  void Studentmassage::Sort()//對(duì)當(dāng)前鏈表進(jìn)行排序</p><p><b>  { <

67、/b></p><p>  cout <<"Sorting..."<<endl;</p><p>  Student *p=NULL,*p1=NULL,*k=NULL;</p><p>  int n=Studentmassage::ListCount();</p><p><b>

68、  if(n<2) </b></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><

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

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

71、  }</b></p><p>  void Studentmassage::Save()// 保存函數(shù)</p><p><b>  {</b></p><p>  out.open("student.txt");</p><p>  for(Student *p=Head->Nex

72、t;p!=End;p=p->Next)</p><p>  out<<p->name<<"\t"<<p->Id<<"\t"<<p->Cnum<<"\t"<<p->Pnum<<"\t"<<p->

73、sum<<'\n';</p><p>  out.close();</p><p><b>  }</b></p><p>  int main()//主函數(shù)</p><p><b>  {</b></p><p>  int x,i=0;<

74、/p><p>  bool quit=false;</p><p>  cout<<"\t\t 歡迎進(jìn)入學(xué)生成績(jī)管理系統(tǒng) "<<endl;</p><p>  Studentmassage Grade;</p><p>  cout<<

75、;"按任意鍵開(kāi)始……";</p><p><b>  getch();</b></p><p>  while(!quit)</p><p><b>  {</b></p><p>  system("cls");</p><p>  

76、Grade.ShowMenu();</p><p><b>  cin>>x;</b></p><p><b>  switch(x)</b></p><p>  { case 0:quit=true;break;</p><p>  case 1:Grade.AddItem();bre

77、ak;</p><p>  case 2:Grade.Display();break;</p><p>  case 3:Grade.Sort();break;</p><p>  case 4:Grade.Find();break;</p><p>  case 5:Grade.RemoveItem();break;</p>

78、<p>  case 6:Grade.ModifyItem();break;</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  return 0;</b></p><p><b>  }</b&

79、gt;</p><p><b>  六、測(cè)試結(jié)果及分析</b></p><p>  開(kāi)始界面,按任意鍵進(jìn)入菜單。</p><p>  可以按菜單鍵進(jìn)行操作。</p><p>  用1按鍵進(jìn)行新建和插入操作。</p><p>  選擇3按鍵進(jìn)行排序操作。</p><p>  

80、選擇2按鍵進(jìn)行排序后的顯示既查看操作。</p><p>  選擇5按鍵進(jìn)行刪除操作。</p><p>  此圖是刪除后的顯示結(jié)果。</p><p>  這個(gè)圖是按0按鍵成功保存信息后生成的student.txt文檔。</p><p><b>  七、小結(jié)</b></p><p>  通過(guò)這次課程設(shè)

81、計(jì),我發(fā)現(xiàn)我有很多不足,在程序的調(diào)試階段,經(jīng)常為幾個(gè)錯(cuò)誤而弄的心煩氣躁。這足以說(shuō)明我對(duì)知識(shí)的掌握還很不熟練;在知識(shí)面前,我見(jiàn)到了十分渺小的我。程序設(shè)計(jì)的過(guò)程中也暴露了我的很多弊端,借這次課程設(shè)計(jì)的機(jī)會(huì)我會(huì)認(rèn)真的加以改正,為今后的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。</p><p>  這一次課程設(shè)計(jì)的成功,我得到了徐老師和耿老師的指導(dǎo)與幫助,還有同學(xué)們?cè)谥R(shí)與信心方面的支持和鼓勵(lì)——特別是我的大三同學(xué)孟三軍同學(xué)。在此,我衷心的感

82、謝你們!</p><p>  在這次課程設(shè)計(jì)中,我對(duì)指針、數(shù)組、文件的定義與具體的引用有了更深刻的認(rèn)識(shí);同時(shí),也再一次鞏固了數(shù)字的求和、排序——特別是選擇排序、冒泡排序、顯示格式方面的知識(shí);見(jiàn)識(shí)了鏈表與指針數(shù)組組合的奇妙,引起了我對(duì)計(jì)算機(jī)課程的強(qiáng)烈興趣!</p><p><b>  參考文獻(xiàn)</b></p><p>  程序設(shè)計(jì)基礎(chǔ)(第二版)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論