C++課程設(shè)計(jì)報(bào)告---新科公司的設(shè)備管理系統(tǒng)(共17頁)_第1頁
C++課程設(shè)計(jì)報(bào)告---新科公司的設(shè)備管理系統(tǒng)(共17頁)_第2頁
C++課程設(shè)計(jì)報(bào)告---新科公司的設(shè)備管理系統(tǒng)(共17頁)_第3頁
C++課程設(shè)計(jì)報(bào)告---新科公司的設(shè)備管理系統(tǒng)(共17頁)_第4頁
C++課程設(shè)計(jì)報(bào)告---新科公司的設(shè)備管理系統(tǒng)(共17頁)_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、C+課程設(shè)計(jì)報(bào)告課程設(shè)計(jì)題目新科公司的設(shè)備管理系統(tǒng)專 業(yè):材料科學(xué)與工程目錄(1)設(shè)計(jì)目的 (2)(2)設(shè)計(jì)要求 (2)基本要求和創(chuàng)新要求(3)設(shè)計(jì)方法 (3)模塊功能說明(如函數(shù)功能、入口及出口參數(shù)說明,函數(shù)調(diào)用關(guān)系描述等)(4)總體設(shè)計(jì) (4)設(shè)計(jì)系統(tǒng)的類層次,類層次中各個(gè)類的描述,類中各個(gè)成員函數(shù)(5)調(diào)試與測試 (16)調(diào)試方法,測試結(jié)果的分析與討論,測試過程中遇到的主要問題及采取的解決措施(6)實(shí)驗(yàn)總結(jié) (17) 1.設(shè)計(jì)目的:1、目的: (1)要求學(xué)生達(dá)到熟練掌握C+語言的基本知識和技能; (2)基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法; (3)能夠利用所學(xué)的基本知識和技能,解決簡

2、單的面向?qū)ο蟪绦蛟O(shè)計(jì)問題。2. 設(shè)計(jì)要求: 1、 基本要求: (1)要求利用面向?qū)ο蟮姆椒ㄒ约癈+的編程思想來完成系統(tǒng)的設(shè)計(jì); (2)要求在設(shè)計(jì)的過程中,建立清晰的類層次; (3)在系統(tǒng)中至少要定義四個(gè)類,每個(gè)類中要有各自的屬性和方法; (4)在系統(tǒng)的設(shè)計(jì)中,至少要用到面向?qū)ο蟮囊环N機(jī)制。 2、創(chuàng)新要求: 在基本要求達(dá)到后,可進(jìn)行創(chuàng)新設(shè)計(jì),如根據(jù)查找結(jié)果進(jìn)行修改的功能。 3. 設(shè)計(jì)方法功能:新科公司現(xiàn)有以下設(shè)備:普通電視機(jī)、DVD、帶DVD的電視機(jī),帶DVD的電視機(jī)的售價(jià)為普通電視機(jī)和DVD單價(jià)之和的80%,要求對所有的庫存設(shè)備都能按照品名進(jìn)行顯示、查找、增加和刪除、保存的功能。 根據(jù)系統(tǒng)功能

3、,可以將問題解決分為以下步驟: (1)分析系統(tǒng)中的各個(gè)實(shí)體之間的關(guān)系及其屬性和行為; (2)根據(jù)問題描述,設(shè)計(jì)系統(tǒng)的類層次; (3)完成類層次中各個(gè)類的描述(包括屬性和方法); (4)完成類中各個(gè)成員函數(shù)的定義; (5)完成系統(tǒng)的應(yīng)用模塊; (6)功能調(diào)試; 4.總體設(shè)計(jì)1、設(shè)計(jì)思路設(shè)計(jì)四個(gè)類:設(shè)備、普通電視機(jī)、DVD、帶DVD的電視機(jī)。這四個(gè)類的關(guān)系如下:設(shè)備普通電視機(jī) DVD 帶DVD的電視機(jī)2、系統(tǒng)功能模塊圖系統(tǒng)登錄設(shè)備管理系統(tǒng)系統(tǒng)分析添加設(shè)備信息輸出設(shè)備信息查詢設(shè)備信息刪除設(shè)備信息保存設(shè)備信息2、類的層次設(shè)計(jì)3、功能設(shè)計(jì)(1)添加刪除功能:能根據(jù)設(shè)備的變動情況,添加記錄;(2)刪除功能

4、: 刪除記錄;(3)保存功能:能對輸入的數(shù)據(jù)進(jìn)行相應(yīng)的存儲,要求重載插入和提取符以完成數(shù)據(jù)的保存和打開。(4)刪除功能: 刪除記錄查詢功能:能根據(jù)編號進(jìn)行查詢;5界面設(shè)計(jì)圖1:運(yùn)行首界面圖2添加設(shè)備信息界面圖3設(shè)備信息顯示界面圖4設(shè)備信息查詢界面圖5設(shè)備信息刪除界面6代碼設(shè)計(jì)#include#include#include#includeusing namespace std;class machine /定義machine為基類protected:char name20;float price;int num;public:machine();machine() void setname(c

5、har *names);char *getname();void setprice(float pr);float getprice();void setnum(int nn);int getnum(); /以下都為machine的派生類class TV: virtual public machine /TV和DVD都定義虛基類公有繼承public:TV() ;class DVD: virtual public machinepublic:DVD() ;class DVD_TV: public TV, public DVDpublic:DVD_TV()void setnprice(float

6、p1,float p2);void machine:setname(char*names) /用來設(shè)置設(shè)備的品名strcpy(name,names);char *machine:getname() /用來獲取設(shè)備的品名return name;void machine:setprice(float pr) /初始化設(shè)備價(jià)錢 price=pr;float machine:getprice() /獲得設(shè)備價(jià)錢return price;void machine:setnum(int nn)num=nn; /輸入進(jìn)貨量int machine:getnum()return num;void DVD_TV:

7、setnprice(float p1,float p2) /計(jì)算DVD_TV的方法price= (p1+p2)*0.8; machine *j1; /定義一個(gè)基類指針對象 TV T1; DVD D1; DVD_TV DT1; /以下為函數(shù)聲明void add();void output();void search();void deleteinf();void save();void main()coutnn 歡迎進(jìn)入新科公司設(shè)備管理系統(tǒng) endlendl;cout 材料0902班二組設(shè)計(jì) endl * * * * * * * * * * * * * * * * * * * * * * * *

8、 * * * * * * * * * * *endl * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl;loop1:cout* * 1:添加設(shè)備信息 2:顯示庫存設(shè)備信息 3:查詢設(shè)備信息* * * * * *endl * * 4:刪除設(shè)備信息 5:保存設(shè)備信息 0: 退出系統(tǒng) * * * * * *endl * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * * * * * * * * * *

9、 * * * * * * * * * * * * * * * * * * * * * * * *choose; switch(choose) case 0: cout歡迎再次使用本系統(tǒng)!再見!endl; exit(0); break; case 1: add(); coutendl; goto loop1; break; case 2: output(); coutendl; goto loop1; break; case 3: search(); coutendl; goto loop1; break; case 4: deleteinf(); coutendl; goto loop1; b

10、reak; case 5: save(); coutendl; goto loop1; break; default: cout輸入無效!請重新輸入!endl; break; void add()char names20;int kind,choose; coutkind;while(kind3) coutkind;coutnames;switch(kind)case 1:j1=&T1;break; case 2:j1=&D1;break;case 3:j1=&DT1;break;if(kind=1|kind=2) j1-setname(names); float price; int n;

11、coutprice; j1-setprice(price);coutn;j1-setnum(n); cout該設(shè)備的相關(guān)信息為:endl; cout該設(shè)備編號為:kind 名稱為:getname() 價(jià)格為:getprice()本次進(jìn)貨量為:getnum()setname(names); DT1.setname(names); float price1,price2,n;coutprice1;coutprice2;coutn;j1-setnum(n);DT1.setnprice(price1,price2); cout該產(chǎn)品的相關(guān)信息為:endl;cout該設(shè)備編號為:3 名稱為:DT1.ge

12、tname() 價(jià)格為:getprice()庫存為:getnum()endl; coutchoose;while(choose!=1 &choose!=2) coutchoose;if(choose=1)save();void output()ifstream infile(新科公司設(shè)備管理系統(tǒng).txt,ios:in);cout從文件中讀取的數(shù)據(jù)如下:endl;char line101;for(int i=1;i=3;i+) infile.getline(line,100); coutlineendl;infile.close();void search() char line100;int

13、i=1,n;coutn;ifstream infile(新科公司設(shè)備管理系統(tǒng).txt,ios:in);while(!infile.eof() infile.getline(line,100); if(i=n) coutlineendl; break; i+; if(infile.eof() cout沒找到相應(yīng)的產(chǎn)品!endl;void deleteinf()ifstream ifile(新科公司設(shè)備管理系統(tǒng).txt);ofstream ofile(temp.txt);char line100;int i=1,n; coutn; while(!ifile.eof() ifile.getline(

14、line,100); /讀取完之后,從讀取的內(nèi)容中刪除該終止字符if(i!=n)ofilelineendl;i+;ifile.close();ofile.close();system(del 新科公司設(shè)備管理系統(tǒng).txt);system(rename temp.txt,新科公司設(shè)備管理系統(tǒng).txt);cout該產(chǎn)品已成功刪除!endl;coutnumber;if(number=1)output();void save()ofstream ofile(新科公司設(shè)備管理系統(tǒng).txt,ios_base:app);/寫入文件ofile 該設(shè)備名稱為:getname() 價(jià)格為:getprice()設(shè)備

15、庫存為:getnum()endl;ofile.close();cout該廠品信息已存入文件!endl;5.調(diào)試與測試(1)調(diào)試方法:在編譯連接前先進(jìn)行靜態(tài)檢查,對每個(gè)函數(shù)模塊出現(xiàn)的細(xì)節(jié)語法錯誤逐步改正。再進(jìn)行系統(tǒng)編譯連接,根據(jù)編譯器提示錯誤類型逐個(gè)修正。調(diào)試一個(gè)函數(shù)模塊的程序時(shí),將其他模塊及相應(yīng)的函數(shù)定義用注釋語句注釋,至頂向下,順序化,模塊化。(2)測試遇到的問題及解決:(1)輸入的數(shù)據(jù)無法查找。解決方法:調(diào)用嵌套查找函數(shù),將實(shí)參傳遞至相應(yīng)形參,定位數(shù)據(jù),并輸出。(2)測試某段文本,當(dāng)出現(xiàn)句子“真便宜!)這令”后,出現(xiàn)嚴(yán)重亂碼錯誤。經(jīng)過仔細(xì)排查,發(fā)現(xiàn)是分句函數(shù)引起的問題,原因是“!”的后一個(gè)字節(jié),和“)”的前一個(gè)字節(jié),正好是句號“?!钡膬蓚€(gè)字節(jié),由此導(dǎo)致錯誤分句。查出此錯誤后,順利解決此問題。(3)測試某段文本,檢查文本向量序列時(shí),發(fā)現(xiàn)其句數(shù),與真實(shí)情況不符。經(jīng)過排查,程序某處,pos值應(yīng)該為-1才能應(yīng)對所有可能出現(xiàn)的情況。6.實(shí)驗(yàn)總結(jié):(1)剛開始,本來是想用兩三個(gè)類來封裝所有信息和功能函數(shù),但由于類成員相互調(diào)用、文件讀寫等老出現(xiàn)錯誤和問題,所有基本上沒有使用這種方法。經(jīng)過查閱相關(guān)資料和參考指導(dǎo)老師給出的模型,決定采用一個(gè)類加一個(gè)主函數(shù)的辦法來實(shí)現(xiàn)全部功能。顯然這種方法不適合C+面向?qū)ο蟮囊?,?/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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論