C++課程設計報告---新科公司的設備管理系統_第1頁
C++課程設計報告---新科公司的設備管理系統_第2頁
C++課程設計報告---新科公司的設備管理系統_第3頁
C++課程設計報告---新科公司的設備管理系統_第4頁
C++課程設計報告---新科公司的設備管理系統_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質文檔-傾情為你奉上精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè)專心-專注-專業(yè)精選優(yōu)質文檔-傾情為你奉上專心-專注-專業(yè)C+課程設計報告課程設計題目新科公司的設備管理系統專 業(yè):材料科學與工程目錄(1)設計目的 (2)(2)設計要求 (2)基本要求和創(chuàng)新要求(3)設計方法 (3)模塊功能說明(如函數功能、入口及出口參數說明,函數調用關系描述等)(4)總體設計 (4)設計系統的類層次,類層次中各個類的描述,類中各個成員函數(5)調試與測試 (16)調試方法,測試結果的分析與討論,測試過程中遇到的主要問題及采取的解決措施(6)實驗總結 (17) 1.設計目的:1、目的: (1)要求學生達到熟

2、練掌握C+語言的基本知識和技能; (2)基本掌握面向對象程序設計的基本思路和方法; (3)能夠利用所學的基本知識和技能,解決簡單的面向對象程序設計問題。2. 設計要求: 1、 基本要求: (1)要求利用面向對象的方法以及C+的編程思想來完成系統的設計; (2)要求在設計的過程中,建立清晰的類層次; (3)在系統中至少要定義四個類,每個類中要有各自的屬性和方法; (4)在系統的設計中,至少要用到面向對象的一種機制。 2、創(chuàng)新要求: 在基本要求達到后,可進行創(chuàng)新設計,如根據查找結果進行修改的功能。 3. 設計方法功能:新科公司現有以下設備:普通電視機、DVD、帶DVD的電視機,帶DVD的電視機的售

3、價為普通電視機和DVD單價之和的80%,要求對所有的庫存設備都能按照品名進行顯示、查找、增加和刪除、保存的功能。 根據系統功能,可以將問題解決分為以下步驟: (1)分析系統中的各個實體之間的關系及其屬性和行為; (2)根據問題描述,設計系統的類層次; (3)完成類層次中各個類的描述(包括屬性和方法); (4)完成類中各個成員函數的定義; (5)完成系統的應用模塊; (6)功能調試; 4.總體設計1、設計思路設計四個類:設備、普通電視機、DVD、帶DVD的電視機。這四個類的關系如下:設備普通電視機 DVD 帶DVD的電視機2、系統功能模塊圖系統登錄設備管理系統系統分析添加設備信息輸出設備信息查詢

4、設備信息刪除設備信息保存設備信息2、類的層次設計3、功能設計(1)添加刪除功能:能根據設備的變動情況,添加記錄;(2)刪除功能: 刪除記錄;(3)保存功能:能對輸入的數據進行相應的存儲,要求重載插入和提取符以完成數據的保存和打開。(4)刪除功能: 刪除記錄查詢功能:能根據編號進行查詢;5界面設計圖1:運行首界面圖2添加設備信息界面圖3設備信息顯示界面圖4設備信息查詢界面圖5設備信息刪除界面6代碼設計#include#include#include#includeusing namespace std;class machine /定義machine為基類protected:char name2

5、0;float price;int num;public:machine();machine() void setname(char *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 DV

6、D_TV: public TV, public DVDpublic:DVD_TV()void setnprice(float p1,float p2);void machine:setname(char*names) /用來設置設備的品名strcpy(name,names);char *machine:getname() /用來獲取設備的品名return name;void machine:setprice(float pr) /初始化設備價錢 price=pr;float machine:getprice() /獲得設備價錢return price;void machine:setnum(i

7、nt nn)num=nn; /輸入進貨量int machine:getnum()return num;void DVD_TV:setnprice(float p1,float p2) /計算DVD_TV的方法price= (p1+p2)*0.8; machine *j1; /定義一個基類指針對象 TV T1; DVD D1; DVD_TV DT1; /以下為函數聲明void add();void output();void search();void deleteinf();void save();void main()coutnn 歡迎進入新科公司設備管理系統 endlendl;cout 材

8、料0902班二組設計 endl * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *endl;loop1:cout* * 1:添加設備信息 2:顯示庫存設備信息 3:查詢設備信息* * * * * *endl * * 4:刪除設備信息 5:保存設備信息 0: 退出系統 * * * * * *endl * * * * * * * * * * * * * * * *

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

10、goto loop1; break; case 4: deleteinf(); coutendl; goto loop1; break; 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;

11、break;if(kind=1|kind=2) j1-setname(names); float price; int n; coutprice; j1-setprice(price);coutn;j1-setnum(n); cout該設備的相關信息為:endl; cout該設備編號為:kind 名稱為:getname() 價格為:getprice()本次進貨量為:getnum()setname(names); DT1.setname(names); float price1,price2,n;coutprice1;coutprice2;coutn;j1-setnum(n);DT1.setnp

12、rice(price1,price2); cout該產品的相關信息為:endl;cout該設備編號為:3 名稱為:DT1.getname() 價格為:getprice()庫存為:getnum()endl; coutchoose;while(choose!=1 &choose!=2) coutchoose;if(choose=1)save();void output()ifstream infile(新科公司設備管理系統.txt,ios:in);cout從文件中讀取的數據如下:endl;char line101;for(int i=1;i=3;i+) infile.getline(line,10

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

14、har line100;int i=1,n; coutn; while(!ifile.eof() ifile.getline(line,100); /讀取完之后,從讀取的內容中刪除該終止字符if(i!=n)ofilelineendl;i+;ifile.close();ofile.close();system(del 新科公司設備管理系統.txt);system(rename temp.txt,新科公司設備管理系統.txt);cout該產品已成功刪除!endl;coutnumber;if(number=1)output();void save()ofstream ofile(新科公司設備管理系統

15、.txt,ios_base:app);/寫入文件ofile 該設備名稱為:getname() 價格為:getprice()設備庫存為:getnum()endl;ofile.close();cout該廠品信息已存入文件!endl;5.調試與測試(1)調試方法:在編譯連接前先進行靜態(tài)檢查,對每個函數模塊出現的細節(jié)語法錯誤逐步改正。再進行系統編譯連接,根據編譯器提示錯誤類型逐個修正。調試一個函數模塊的程序時,將其他模塊及相應的函數定義用注釋語句注釋,至頂向下,順序化,模塊化。(2)測試遇到的問題及解決:(1)輸入的數據無法查找。解決方法:調用嵌套查找函數,將實參傳遞至相應形參,定位數據,并輸出。(2

16、)測試某段文本,當出現句子“真便宜?。┻@令”后,出現嚴重亂碼錯誤。經過仔細排查,發(fā)現是分句函數引起的問題,原因是“!”的后一個字節(jié),和“)”的前一個字節(jié),正好是句號“?!钡膬蓚€字節(jié),由此導致錯誤分句。查出此錯誤后,順利解決此問題。(3)測試某段文本,檢查文本向量序列時,發(fā)現其句數,與真實情況不符。經過排查,程序某處,pos值應該為-1才能應對所有可能出現的情況。6.實驗總結:(1)剛開始,本來是想用兩三個類來封裝所有信息和功能函數,但由于類成員相互調用、文件讀寫等老出現錯誤和問題,所有基本上沒有使用這種方法。經過查閱相關資料和參考指導老師給出的模型,決定采用一個類加一個主函數的辦法來實現全部功能。顯然這種方法不適合C+面向對象的要

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論