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

下載本文檔

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

文檔簡介

1、<p><b>  C++課程設(shè)計(jì)報(bào)告</b></p><p><b>  課程設(shè)計(jì)題目</b></p><p>  xx公司的設(shè)備管理系統(tǒng)</p><p>  專 業(yè):材料科學(xué)與工程</p><p><b>  目錄</b></p><p&

2、gt;  (1)設(shè)計(jì)目的 (2)</p><p> ?。?)設(shè)計(jì)要求 (2)</p><p><b>  基本要求和創(chuàng)新要求</b></p><p>  (3)設(shè)計(jì)方法 (3)</p><p>  模塊功能說明(如函數(shù)功能、入

3、口及出口參數(shù)說明,函數(shù)調(diào)用關(guān)系描述等)</p><p> ?。?)總體設(shè)計(jì) (4)</p><p>  設(shè)計(jì)系統(tǒng)的類層次,類層次中各個(gè)類的描述,類中各個(gè)成員函數(shù)</p><p> ?。?)調(diào)試與測試 (16)</p><p>  調(diào)試方法,測試結(jié)果的分析與討論,測試過程中遇到的主

4、要問題及采取的解決措施</p><p> ?。?)實(shí)驗(yàn)總結(jié) (17)</p><p><b>  1.設(shè)計(jì)目的:</b></p><p><b>  1、目的: </b></p><p> ?。?)要求學(xué)生達(dá)到熟練掌握C++語言的基本知識和技能; </p>

5、<p> ?。?)基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法; </p><p> ?。?)能夠利用所學(xué)的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計(jì)問題。</p><p><b>  2. 設(shè)計(jì)要求:</b></p><p><b>  1、 基本要求: </b></p><p>  (1

6、)要求利用面向?qū)ο蟮姆椒ㄒ约癈++的編程思想來完成系統(tǒng)的設(shè)計(jì); </p><p>  (2)要求在設(shè)計(jì)的過程中,建立清晰的類層次; </p><p> ?。?)在系統(tǒng)中至少要定義四個(gè)類,每個(gè)類中要有各自的屬性和方法; </p><p> ?。?)在系統(tǒng)的設(shè)計(jì)中,至少要用到面向?qū)ο蟮囊环N機(jī)制。 2、創(chuàng)新要求: </p><p>  在基本要求

7、達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如根據(jù)查找結(jié)果進(jìn)行修改的功能。 </p><p><b>  3. 設(shè)計(jì)方法</b></p><p>  功能:xx公司現(xiàn)有以下設(shè)備:普通電視機(jī)、DVD、帶DVD的電視機(jī),帶DVD的電視機(jī)的售價(jià)為普通電視機(jī)和DVD單價(jià)之和的80%,要求對所有的庫存設(shè)備都能按照品名進(jìn)行顯示、查找、增加和刪除、保存的功能。 </p><p>

8、;  根據(jù)系統(tǒng)功能,可以將問題解決分為以下步驟: </p><p> ?。?)分析系統(tǒng)中的各個(gè)實(shí)體之間的關(guān)系及其屬性和行為; </p><p>  (2)根據(jù)問題描述,設(shè)計(jì)系統(tǒng)的類層次; </p><p> ?。?)完成類層次中各個(gè)類的描述(包括屬性和方法); </p><p> ?。?)完成類中各個(gè)成員函數(shù)的定義; </p>

9、<p> ?。?)完成系統(tǒng)的應(yīng)用模塊; </p><p><b> ?。?)功能調(diào)試; </b></p><p><b>  4.總體設(shè)計(jì)</b></p><p><b>  1、設(shè)計(jì)思路</b></p><p>  設(shè)計(jì)四個(gè)類:設(shè)備、普通電視機(jī)、DVD、帶DVD的電

10、視機(jī)。這四個(gè)類的關(guān)系如下:</p><p><b>  2、系統(tǒng)功能模塊圖</b></p><p><b>  2、類的層次設(shè)計(jì)</b></p><p><b>  3、功能設(shè)計(jì)</b></p><p> ?。?)添加刪除功能:能根據(jù)設(shè)備的變動情況,添加記錄;</p>

11、;<p> ?。?)刪除功能: 刪除記錄;</p><p>  (3)保存功能:能對輸入的數(shù)據(jù)進(jìn)行相應(yīng)的存儲,要求重載插入和提取符以完成數(shù)據(jù)的保存和打開。</p><p> ?。?)刪除功能: 刪除記錄查詢功能:能根據(jù)編號進(jìn)行查詢;</p><p><b>  5.界面設(shè)計(jì)</b></p><p><

12、b>  圖1:運(yùn)行首界面</b></p><p>  圖2添加設(shè)備信息界面</p><p>  圖3設(shè)備信息顯示界面</p><p>  圖4設(shè)備信息查詢界面</p><p>  圖5設(shè)備信息刪除界面</p><p><b>  6.代碼設(shè)計(jì)</b></p><

13、;p>  #include<iostream></p><p>  #include<fstream></p><p>  #include<string></p><p>  #include<iomanip></p><p>  using namespace std;</p&g

14、t;<p>  class machine //定義machine為基類</p><p><b>  {</b></p><p>  protected:</p><p>  char name[20];</p><p>  float price;

15、</p><p><b>  int num;</b></p><p><b>  public:</b></p><p>  machine(){};</p><p>  ~machine(){}</p><p>  void setname(char *names);&l

16、t;/p><p>  char *getname();</p><p>  void setprice(float pr);</p><p>  float getprice();</p><p>  void setnum(int nn);</p><p>  int getnum();</p><p

17、>  }; //以下都為machine的派生類</p><p>  class TV: virtual public machine //TV和DVD都定義虛基類公有繼承</p><p><b>  {</b></p><p><b>

18、;  public:</b></p><p><b>  TV() {}</b></p><p><b>  };</b></p><p>  class DVD: virtual public machine</p><p><b>  {</b></p&g

19、t;<p><b>  public:</b></p><p><b>  DVD(){}</b></p><p><b>  };</b></p><p>  class DVD_TV: public TV, public DVD</p><p><b&

20、gt;  {</b></p><p><b>  public:</b></p><p>  DVD_TV(){}</p><p>  void setnprice(float p1,float p2);</p><p><b>  };</b></p><p>

21、  void machine::setname(char*names) //用來設(shè)置設(shè)備的品名</p><p>  {strcpy(name,names);}</p><p>  char *machine::getname() //用來獲取設(shè)備的品名</p><p>  {return name;}</p>

22、<p>  void machine::setprice(float pr) //初始化設(shè)備價(jià)錢 </p><p>  {price=pr;}</p><p>  float machine::getprice() //獲得設(shè)備價(jià)錢</p><p>  {return price;}<

23、;/p><p>  void machine::setnum(int nn)</p><p>  {num=nn;} //輸入進(jìn)貨量</p><p>  int machine::getnum()</p><p>  {return num;}</p><p>  void

24、 DVD_TV::setnprice(float p1,float p2) //計(jì)算DVD_TV的方法</p><p>  {price= (p1+p2)*0.8;}</p><p>  machine *j1; //定義一個(gè)基類指針對象</p><p><b>  TV T1;</b>&l

25、t;/p><p><b>  DVD D1;</b></p><p>  DVD_TV DT1;</p><p><b>  //以下為函數(shù)聲明</b></p><p>  void add();</p><p>  void output();</p><p

26、>  void search();</p><p>  void deleteinf();</p><p>  void save();</p><p>  void main()</p><p><b>  {</b></p><p>  cout<<"\n\n

27、 ☆☆☆歡迎進(jìn)入xx公司設(shè)備管理系統(tǒng)☆☆☆ "<<endl<<endl;</p><p>  cout<<" 材料0902班二組設(shè)計(jì) "<<endl</p><p>  <

28、;<"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl</p><p>  <<"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<en

29、dl;</p><p><b>  loop1:</b></p><p>  cout<<"* * 1:添加設(shè)備信息 2:顯示庫存設(shè)備信息 3:查詢設(shè)備信息* * * * * *"<<endl</p><p>  <<"* * 4:刪除設(shè)備信息 5:保存設(shè)備信息

30、 0: 退出系統(tǒng) * * * * * *"<<endl </p><p>  <<"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl</p><p>  <<"* * * * * *

31、 * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl;</p><p>  int choose;</p><p>  cin>>choose;</p><p>  switch(choose)</p><p><b> 

32、 {</b></p><p><b>  case 0:</b></p><p>  cout<<"歡迎再次使用本系統(tǒng)!再見!"<<endl;</p><p><b>  exit(0);</b></p><p><b>  brea

33、k;</b></p><p><b>  case 1:</b></p><p><b>  add();</b></p><p>  cout<<endl;</p><p>  goto loop1;</p><p><b>  break

34、;</b></p><p><b>  case 2:</b></p><p><b>  output();</b></p><p>  cout<<endl;</p><p>  goto loop1;</p><p><b>  bre

35、ak;</b></p><p><b>  case 3:</b></p><p><b>  search();</b></p><p>  cout<<endl;</p><p>  goto loop1;</p><p><b>  b

36、reak;</b></p><p><b>  case 4:</b></p><p>  deleteinf();</p><p>  cout<<endl;</p><p>  goto loop1;</p><p><b>  break;</b>

37、;</p><p><b>  case 5:</b></p><p><b>  save();</b></p><p>  cout<<endl;</p><p>  goto loop1;</p><p><b>  break;</b>

38、;</p><p><b>  default:</b></p><p>  cout<<"輸入無效!請重新輸入!"<<endl;</p><p><b>  break;</b></p><p><b>  }</b></p&

39、gt;<p><b>  }</b></p><p>  void add()</p><p><b>  {</b></p><p>  char names[20];</p><p>  int kind,choose;</p><p>  cout<

40、<"請輸入machine的類型(1·普通電視機(jī) 2·DVD 3·帶DVD的電視機(jī)):" ;</p><p>  cin>>kind;</p><p>  while(kind<1 ||kind>3)</p><p><b>  {</b></p>

41、<p>  cout<<"輸入錯誤!請重新選擇:";</p><p>  cin>>kind;</p><p><b>  }</b></p><p>  cout<<"請輸入設(shè)備名:";</p><p>  cin>>na

42、mes;</p><p>  switch(kind)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  j1=&T1;break; </p><p><b>  case 2:<

43、/b></p><p>  j1=&D1;break;</p><p><b>  case 3:</b></p><p>  j1=&DT1;break;</p><p><b>  }</b></p><p>  if(kind==1||kind==

44、2)</p><p><b>  {</b></p><p>  j1->setname(names);</p><p>  float price;</p><p><b>  int n;</b></p><p>  cout<<"價(jià)格為:&q

45、uot;;</p><p>  cin>>price;</p><p>  j1->setprice(price);</p><p>  cout<<"進(jìn)貨量為:";</p><p><b>  cin>>n;</b></p><p>

46、  j1->setnum(n);</p><p>  cout<<"該設(shè)備的相關(guān)信息為:"<<endl;</p><p>  cout<<"該設(shè)備編號為:"<<kind<<" 名稱為:"<<j1->getname()<<"

47、 價(jià)格為:"<<j1->getprice()<<"本次進(jìn)貨量為:"<<j1->getnum()<<endl;</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  

48、{</b></p><p>  j1->setname(names);</p><p>  DT1.setname(names);</p><p>  float price1,price2,n;</p><p>  cout<<"請輸入上述普通電視機(jī)的價(jià)格:";</p><

49、;p>  cin>>price1;</p><p>  cout<<"請輸入上述DVD的價(jià)格:";</p><p>  cin>>price2;</p><p>  cout<<"本次進(jìn)貨量為:";</p><p><b>  cin>

50、;>n;</b></p><p>  j1->setnum(n);</p><p>  DT1.setnprice(price1,price2);</p><p>  cout<<"該產(chǎn)品的相關(guān)信息為:"<<endl;</p><p>  cout<<"

51、該設(shè)備編號為:"<<3<<" 名稱為:"<<DT1.getname()<<" 價(jià)格為:"<<j1->getprice()<<"庫存為:"<<j1->getnum()<<endl;</p><p><b>  }</b>

52、;</p><p>  cout<<"是否將該產(chǎn)品信息存入文件:(1、是 2、否):";</p><p>  cin>>choose;</p><p>  while(choose!=1 &&choose!=2)</p><p><b>  {</b><

53、/p><p>  cout<<"輸入錯誤!請重新選擇:";</p><p>  cin>>choose;</p><p><b>  }</b></p><p>  if(choose==1)</p><p><b>  save();</b

54、></p><p><b>  }</b></p><p>  void output()</p><p><b>  {</b></p><p>  ifstream infile("xx公司設(shè)備管理系統(tǒng).txt",ios::in);</p><p&g

55、t;  cout<<"從文件中讀取的數(shù)據(jù)如下:"<<endl;</p><p>  char line[101];</p><p>  for(int i=1;i<=3;i++)</p><p><b>  {</b></p><p>  infile.getline(l

56、ine,100);</p><p>  cout<<line<<endl;</p><p><b>  }</b></p><p>  infile.close();</p><p><b>  }</b></p><p>  void search(

57、)</p><p>  { char line[100];</p><p>  int i=1,n;</p><p>  cout<<"請輸入要查詢的序號:";</p><p><b>  cin>>n;</b></p><p>  ifstream

58、 infile("xx公司設(shè)備管理系統(tǒng).txt",ios::in);</p><p>  while(!infile.eof())</p><p><b>  {</b></p><p>  infile.getline(line,100);</p><p><b>  if(i==n)&l

59、t;/b></p><p><b>  {</b></p><p>  cout<<line<<endl;</p><p><b>  break;</b></p><p><b>  }</b></p><p><b

60、>  i++;</b></p><p>  if(infile.eof())</p><p>  cout<<"沒找到相應(yīng)的產(chǎn)品!"<<endl;</p><p><b>  }</b></p><p><b>  }</b></p

61、><p>  void deleteinf()</p><p><b>  {</b></p><p>  ifstream ifile("xx公司設(shè)備管理系統(tǒng).txt");</p><p>  ofstream ofile("temp.txt");</p><p&

62、gt;  char line[100];</p><p>  int i=1,n;</p><p>  cout<<"請輸入要刪除的序號:";</p><p><b>  cin>>n;</b></p><p>  while(!ifile.eof())</p>

63、<p><b>  {</b></p><p>  ifile.getline(line,100); //讀取完之后,從讀取的內(nèi)容中刪除該終止字符</p><p><b>  if(i!=n)</b></p><p><b>  {</b></p><p

64、>  ofile<<line<<endl;</p><p><b>  }</b></p><p><b>  i++;</b></p><p><b>  }</b></p><p>  ifile.close();</p><

65、;p>  ofile.close();</p><p>  system("del xx公司設(shè)備管理系統(tǒng).txt");</p><p>  system("rename temp.txt,xx公司設(shè)備管理系統(tǒng).txt");</p><p>  cout<<"該產(chǎn)品已成功刪除!"<&l

66、t;endl;</p><p>  cout<<"查看是否已被刪除?(0-否、1-是):";</p><p>  int number;</p><p>  cin>>number;</p><p>  if(number==1)</p><p><b>  out

67、put();</b></p><p><b>  }</b></p><p>  void save()</p><p><b>  {</b></p><p>  ofstream ofile("xx公司設(shè)備管理系統(tǒng).txt",ios_base::app);<

68、/p><p><b>  //寫入文件</b></p><p>  ofile<<" 該設(shè)備名稱為:"<<j1->getname()<<" 價(jià)格為:"<<j1->getprice()<<"設(shè)備庫存為:"<<j1->get

69、num()<<endl;</p><p>  ofile.close();</p><p>  cout<<"該廠品信息已存入文件!"<<endl;</p><p><b>  }</b></p><p><b>  5.調(diào)試與測試</b>&l

70、t;/p><p><b>  (1)調(diào)試方法:</b></p><p>  在編譯連接前先進(jìn)行靜態(tài)檢查,對每個(gè)函數(shù)模塊出現(xiàn)的細(xì)節(jié)語法錯誤逐步改正。再進(jìn)行系統(tǒng)編譯連接,根據(jù)編譯器提示錯誤類型逐個(gè)修正。調(diào)試一個(gè)函數(shù)模塊的程序時(shí),將其他模塊及相應(yīng)的函數(shù)定義用注釋語句注釋,至頂向下,順序化,模塊化。</p><p>  (2)測試遇到的問題及解決:<

71、/p><p>  (1)輸入的數(shù)據(jù)無法查找。解決方法:調(diào)用嵌套查找函數(shù),將實(shí)參傳遞至相應(yīng)形參,定位數(shù)據(jù),并輸出。</p><p>  (2)測試某段文本,當(dāng)出現(xiàn)句子“真便宜!)這令”后,出現(xiàn)嚴(yán)重亂碼錯誤。經(jīng)過仔細(xì)排查,發(fā)現(xiàn)是分句函數(shù)引起的問題,原因是“!”的后一個(gè)字節(jié),和“)”的前一個(gè)字節(jié),正好是句號“?!钡膬蓚€(gè)字節(jié),由此導(dǎo)致錯誤分句。查出此錯誤后,順利解決此問題。</p>&l

72、t;p> ?。?)測試某段文本,檢查文本向量序列時(shí),發(fā)現(xiàn)其句數(shù),與真實(shí)情況不符。經(jīng)過排查,程序某處,pos值應(yīng)該為-1才能應(yīng)對所有可能出現(xiàn)的情況。</p><p><b>  6.實(shí)驗(yàn)總結(jié):</b></p><p> ?。?)剛開始,本來是想用兩三個(gè)類來封裝所有信息和功能函數(shù),但由于類成員相互調(diào)用、文件讀寫等老出現(xiàn)錯誤和問題,所有基本上沒有使用這種方法。經(jīng)過查閱

73、相關(guān)資料和參考指導(dǎo)老師給出的模型,決定采用一個(gè)類加一個(gè)主函數(shù)的辦法來實(shí)現(xiàn)全部功能。顯然這種方法不適合C++面向?qū)ο蟮囊螅捎跁r(shí)間有限,不能編出更好的解決方案,現(xiàn)在只能試用下。我們希望以后能再完善這個(gè)程序,用類封裝來實(shí)現(xiàn)全部功能。</p><p>  (2)從課程設(shè)計(jì)的目的出發(fā),通過課程設(shè)計(jì)的各個(gè)環(huán)</p><p>  節(jié),通過C++課程設(shè)計(jì)實(shí)例,我們握了C++語言程</p>

74、<p>  序設(shè)計(jì)基礎(chǔ),學(xué)會運(yùn)用基本算法,程序控制結(jié)構(gòu),</p><p>  學(xué)會了調(diào)試程序的方法,培養(yǎng)嚴(yán)謹(jǐn)?shù)乃季S。并逐步</p><p>  加深了對知識的理解與實(shí)際運(yùn)用,學(xué)會分析和解決</p><p>  問題將所學(xué)知識聯(lián)系實(shí)際,提高了我對語言學(xué)習(xí)的</p><p>  積極性,增強(qiáng)了自己的動手能。</p>&

溫馨提示

  • 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

提交評論