2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩12頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  數(shù) 據(jù) 結(jié) 構(gòu) 課 程 設(shè) 計</p><p>  設(shè)計題目  學(xué)生管理系統(tǒng) </p><p>  設(shè)計時間  2012.12.31 至 2012.1.6 </p><p>  學(xué)生姓名  </p><p>  學(xué)生學(xué)號 

2、 </p><p>  所在班級  </p><p>  指導(dǎo)教師  </p><p><b>  學(xué)生管理系統(tǒng)</b></p><p><b>  需求分析</b></p><p&g

3、t;  課程設(shè)計題目:運用數(shù)據(jù)結(jié)構(gòu)編一C++程序,實現(xiàn)對學(xué)生信息的管理,主要包括主控程序、學(xué)生檔案管理子系統(tǒng)、學(xué)生成績管理子系統(tǒng)、學(xué)生宿舍管理子系統(tǒng)。</p><p>  課程設(shè)計的基本要求:設(shè)計好算法,使之能順利實現(xiàn)對學(xué)生信息的管理,實用。</p><p>  課程設(shè)計的任務(wù):通過此系統(tǒng)可以實現(xiàn)如下功能:</p><p>  添加學(xué)生信息:包括學(xué)生的姓名,學(xué)號,班

4、級,宿舍號以及其C++、多媒體技術(shù)、高等數(shù)學(xué)、大學(xué)英語、大學(xué)體育等成績;</p><p>  刪除學(xué)生信息:可以根據(jù)其姓名、學(xué)號、班級、宿舍號和其成績進(jìn)行刪除;</p><p>  查詢學(xué)生信息:可以根據(jù)其姓名、學(xué)號、班級、宿舍號和其成績進(jìn)行查詢;</p><p>  輸出所有學(xué)生信息:可以顯示所有錄入到系統(tǒng)中的學(xué)生的信息。</p><p>

5、  軟硬件運行環(huán)境及開發(fā)工具</p><p>  本次課程設(shè)計主要是在Visual C++6.0下做的, Visual C++是Microsoft公司的功能強大的Windows應(yīng)用程序開發(fā)環(huán)境。由于Visual C++與Windows同為Microsoft公司的產(chǎn)品,它與Windows操作系統(tǒng)的結(jié)合將更加緊密。目前,Visual C++是Windows平臺下開發(fā)應(yīng)用程序最重要的開發(fā)環(huán)境之一。Visual C++既

6、能支持C語言程序,又能C++運行程序,C++程序通常無需修改,或稍作修改,即可在其他計算機系統(tǒng)上運行。</p><p><b>  概要設(shè)計</b></p><p>  (1)、課程設(shè)計思想</p><p>  學(xué)生管理系統(tǒng)是由單鏈表來完成的,它的主要思想是先將你的具體信息錄入到文件中,如果要查詢的話就是從文件中讀取出來的,然后我的查詢是由多種

7、方式來查詢的,可以通過姓名,學(xué)號,班級,宿舍號或成績;刪除也是通過多種方式實現(xiàn)的,也是根據(jù)用戶輸入的姓名,學(xué)號,班級,宿舍號或者成績;最后還有一個顯示所有學(xué)生的信息,可以把所有錄入的學(xué)生信息顯示出來。這個系統(tǒng)整個思想就是如此。編程時考慮得還不是很周全,還需要不斷完善。</p><p><b> ?。?)、模塊設(shè)計</b></p><p>  本課題主要分為5個模塊,即

8、:</p><p>  (1) void add(CList &stulist)模塊,其作用是向系統(tǒng)中添加學(xué)生的信息;</p><p>  (2) void display(CList &stulist)模塊,其作用是顯示所有錄入的學(xué)生的信息;</p><p>  (3) void lookup(CList &stulist)模塊,其作用是按

9、照一定的條件查找學(xué)生的信息;</p><p>  (4) void deletes(CList &stulist)模塊,其作用是刪除滿足一定條件的學(xué)生的信息。</p><p><b>  其流程圖如下:</b></p><p><b>  詳細(xì)設(shè)計</b></p><p>  本課題分為六個

10、部分:構(gòu)造單鏈表,顯示所有學(xué)生信息的函數(shù),添加學(xué)生信息的函數(shù),查找學(xué)生信息的函數(shù),刪除學(xué)生信息的函數(shù),主函數(shù)的設(shè)計。</p><p><b>  構(gòu)造單鏈表</b></p><p>  單鏈表有連個部分組成,即鏈表的結(jié)點類和鏈表類,其代碼如下:</p><p>  class CNode //結(jié)點類</p>

11、<p><b>  { </b></p><p><b>  public: </b></p><p><b>  CNode()</b></p><p><b>  {</b></p><p><b>  pdata=0;</b

12、></p><p><b>  pnext=0;</b></p><p><b>  }</b></p><p>  CNode(CNode &n); </p><p>  void inputdata(CData *pd){pdata=pd;} </p><p&g

13、t;  void shownode(){pdata->show();} </p><p>  CData *getdata(){return pdata;} </p><p>  friend class CList; </p><p><b>  private: </b></p><p>  CData *pd

14、ata; </p><p>  CNode *pnext; </p><p><b>  };</b></p><p>  CNode::CNode(CNode &n) //拷貝構(gòu)造函數(shù)</p><p><b>  { </b></p><p> 

15、 pdata=n.pdata;</p><p>  pnext=n.pnext;</p><p><b>  } </b></p><p>  class CList //鏈表類</p><p><b>  { </b></p><p>&

16、lt;b>  public: </b></p><p>  CList(){phead=0;}</p><p>  ~CList(){deletelist();}</p><p>  void addnode(CNode *pnode);</p><p>  void deletelist();</p><

17、;p>  CNode *deletenode(CNode *pnode);</p><p>  CNode *lookup(CData &data);</p><p>  CNode *getlisthead(){return phead;}</p><p>  void showlist();</p><p>  CNode

18、*getnext(CNode *pnode);</p><p><b>  private: </b></p><p>  CNode * phead;</p><p><b>  };</b></p><p>  顯示所有學(xué)生信息的函數(shù)</p><p><b> 

19、 代碼如下:</b></p><p>  void display(CList &stulist) </p><p><b>  { </b></p><p>  stulist.showlist(); </p><p>  cout<<endl; </p><p>

20、;  cout<<"按任意鍵返回主菜單"; </p><p>  getchar();getchar(); </p><p><b>  }</b></p><p><b>  添加學(xué)生信息的函數(shù)</b></p><p><b>  代碼如下:</b&

21、gt;</p><p>  void add(CList &stulist) </p><p><b>  { </b></p><p>  CNode *p; </p><p>  Student *s; </p><p>  char c[17],n[17],nam[17]; <

22、/p><p>  double e,cp,m,ce,sm,cg,mar;float aver; </p><p>  cout<<"請輸入姓名(輸入0結(jié)束):"; </p><p>  cin.ignore(); </p><p>  cin.getline(nam,17); </p><p&g

23、t;  while(strcmp(nam,"0")) </p><p><b>  { </b></p><p>  cout<<"輸入學(xué)號:";cin.getline(n,17); </p><p>  cout<<"輸入班級:";cin.getline(c,

24、17); </p><p>  cout<<"輸入宿舍:";cin>>e; </p><p>  cout<<"輸入C++成績:";cin>>cp; </p><p>  cout<<"輸入多媒體技術(shù)成績:";cin>>m; </

25、p><p>  cout<<"輸入大學(xué)英語成績:";cin>>ce;</p><p>  cout<<"輸入高等數(shù)學(xué)成績:";cin>>sm; </p><p>  cout<<"輸入大學(xué)體育成績:";cin>>cg; </p>

26、<p>  aver=(cp+m+ce+sm+cg)/5; </p><p>  s=new Student; </p><p>  s->set(c,n,nam,e,cp,m,ce,sm,cg,mar,aver); </p><p>  p=new CNode; </p><p>  p->inputdata(s)

27、; </p><p>  stulist.addnode(p); </p><p>  cout<<"記錄添加成功."<<endl; </p><p>  cout<<"請輸入姓名(輸入0結(jié)束):"; </p><p>  cin.ignore(); </p&g

28、t;<p>  cin.getline(nam,17); </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  查找學(xué)生信息的函數(shù)</b></p><p><b>  代碼如下:</b&

29、gt;</p><p>  void lookup(CList &stulist) </p><p><b>  { </b></p><p>  CNode *plook; </p><p>  char name[17]; </p><p>  cout<<"請輸

30、入你要查找的姓名(輸入0結(jié)束):"; </p><p>  cin.ignore(); </p><p>  cin.getline(name,17); </p><p>  while(strcmp(name,"0")) </p><p><b>  { </b></p>&

31、lt;p>  Student s; </p><p>  s.set("0","0",name,0,0,0,0,0,0,0,0); </p><p>  plook=stulist.lookup(s); </p><p>  if(plook) </p><p><b>  { <

32、/b></p><p>  plook->shownode(); </p><p><b>  } </b></p><p><b>  else </b></p><p>  cout<<"對不起,在學(xué)生記錄中查找不到"<<name<&

33、lt;"的記錄."<<endl; </p><p>  cout<<"請輸入你要查找的姓名(輸入0結(jié)束):"; </p><p>  cin.getline(name,17); </p><p><b>  } </b></p><p><b> 

34、 }</b></p><p><b>  刪除學(xué)生信息的函數(shù)</b></p><p><b>  代碼如下:</b></p><p>  void deletes(CList &stulist) </p><p><b>  { </b></p>

35、<p>  CNode *plook; </p><p>  char name[17]; </p><p>  cout<<"請輸入要刪除的記錄的學(xué)生姓名(輸入0結(jié)束):"; </p><p>  cin.ignore(); </p><p>  cin.getline(name,17); &l

36、t;/p><p>  while(strcmp(name,"0")) </p><p><b>  { </b></p><p>  Student s; </p><p>  s.set("0","0",name,0,0,0,0,0,0,0,0); </p&

37、gt;<p>  plook=stulist.lookup(s); </p><p>  if(plook) </p><p><b>  { </b></p><p>  plook->shownode(); </p><p>  stulist.deletenode(plook); </p&

38、gt;<p>  cout<<name<<"的記錄已經(jīng)刪除.\n"; </p><p><b>  } </b></p><p><b>  else </b></p><p>  cout<<"對不起,在學(xué)生記錄中查找不到"<

39、<name<<"的記錄.\n"<<endl; </p><p>  cout<<"請輸入要刪除的記錄的學(xué)生姓名(輸入0結(jié)束):"; </p><p>  cin.getline(name,17); </p><p><b>  } </b></p>

40、<p><b>  }</b></p><p><b>  主函數(shù)的設(shè)計</b></p><p><b>  代碼如下:</b></p><p>  void operate(CList &stulist) </p><p><b>  { &

41、lt;/b></p><p>  int choice; </p><p><b>  do </b></p><p><b>  { </b></p><p>  system("cls"); </p><p>  cout<<&quo

42、t; 歡迎使用學(xué)生管理系統(tǒng) \n"; </p><p>  cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n" </p><p>  <<" 1.輸出所有學(xué)生記錄\n&quo

43、t; </p><p>  <<" 2.增加學(xué)生記錄\n" </p><p>  <<" 3.刪除學(xué)生記錄\n" </p><p>  <<"

44、 4.查詢學(xué)生記錄\n" </p><p>  <<" 0.退出\n" </p><p>  <<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; </p><

45、;p>  cout<<"提示:按0-4進(jìn)行選擇"; </p><p>  cin>>choice; </p><p>  cout<<endl; </p><p>  switch(choice) </p><p>  {case 1:display(stulist);break;

46、 </p><p>  case 2:add(stulist);break; </p><p>  case 3:deletes(stulist);break; </p><p>  case 4:lookup(stulist);break; </p><p>  case 0:storefile(stulist);break; </p

47、><p>  default:cout<<"輸入錯誤,請重新輸入您的選擇:"; </p><p><b>  } </b></p><p>  }while(choice!=0); </p><p><b>  } </b></p><p>

48、;  int main() </p><p><b>  { </b></p><p>  CList stulist; </p><p>  loadfile(stulist); </p><p>  operate(stulist); </p><p>  return 0; </p&g

49、t;<p><b>  }</b></p><p><b>  調(diào)試分析與測試結(jié)果</b></p><p>  執(zhí)行程序后,首先向系統(tǒng)中錄入三位同學(xué)的信息,然后顯示三個人的信息,運行后的界面如下:</p><p>  圖4.1 錄入三個學(xué)生信息后的運行結(jié)果</p><p>  然后增加

50、一個學(xué)生的信息再輸出,結(jié)果如下圖:</p><p>  圖4.2 添加一個學(xué)生后的運行結(jié)果</p><p>  接著再任意刪除一個學(xué)生的信息,輸出結(jié)果如下圖:</p><p>  圖4.3 刪除一個學(xué)生后的運行結(jié)果</p><p>  最后查詢“shiqi”的信息,結(jié)果如下圖:</p><p>  圖4.4 查詢的結(jié)果

51、</p><p><b>  課設(shè)總結(jié)</b></p><p>  本次課程設(shè)計使我了解到了有關(guān)VC++的真實案例,當(dāng)然也使我學(xué)到的不少的知識,也提高了我的實際動手能力。由于之前對VC++的知識沒有足夠的掌握,使我在實驗的最初階段遇到了不小的困難,但是隨著實驗的進(jìn)行,隨著問題的一步步被我解決了,我由衷的感到高興,因為我又掌握了一些知識。實驗過程中我更好地掌握了單鏈表等

52、相關(guān)涉及的知識點,運用這些知識點編寫程序代碼。調(diào)試程序中,我們常常會不注意細(xì)節(jié)性的問題。例如:變量沒有初始化、沒有定義、少分號、少頭文件等這些細(xì)節(jié)性的錯誤。這此問題只是細(xì)小的問題,但不容忽視,它可能會影響到全部程序的運行。查找主要代碼無誤后,若調(diào)試程序還存在錯誤的話,我們就需要關(guān)注這此細(xì)節(jié)性問題了。要規(guī)范化程序,這樣就很容易查找出細(xì)節(jié)性的問題。一個好的程序應(yīng)該是一個所占空間小、運行時間短、其他性能也好的算法。然而,實際上很難做到十全十美

溫馨提示

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

最新文檔

評論

0/150

提交評論