版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì)報(bào)告--公司設(shè)備管理系統(tǒng)
- c++課程設(shè)計(jì)---實(shí)驗(yàn)室設(shè)備管理系統(tǒng)
- c語言課程設(shè)計(jì)--- 設(shè)備管理系統(tǒng)
- c語言課程設(shè)計(jì)報(bào)告力學(xué)實(shí)驗(yàn)設(shè)備管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告-- 學(xué)籍管理系統(tǒng)
- c++課程設(shè)計(jì)—教師管理系統(tǒng)報(bào)告
- 酒店管理系統(tǒng)_c++課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)報(bào)告--酒店管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告--成績管理系統(tǒng)
- java課程設(shè)計(jì)報(bào)告-設(shè)備管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告-商品管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告飛機(jī)訂票管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告--高校人員管理系統(tǒng)
- c++課程設(shè)計(jì)報(bào)告---銀行管理系統(tǒng)
- visual c++超市管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c++語言課程設(shè)計(jì)報(bào)告--影像管理系統(tǒng)
- 課程設(shè)計(jì)報(bào)告--實(shí)驗(yàn)設(shè)備管理系統(tǒng)設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告(學(xué)生學(xué)籍管理系統(tǒng))
- c++課程設(shè)計(jì)報(bào)告(學(xué)生學(xué)籍管理系統(tǒng))
- c++課程設(shè)計(jì)報(bào)告-圖書管理系統(tǒng)
評論
0/150
提交評論