版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGE18C++課程設(shè)計報告課程設(shè)計題目南陽康佳公司的設(shè)備管理系統(tǒng)專業(yè):軟件工程目錄(1)設(shè)計目的(2)(2)設(shè)計要求(2)基本要求和創(chuàng)新要求(3)設(shè)計方法(3)模塊功能說明(如函數(shù)功能、入口及出口參數(shù)說明,函數(shù)調(diào)用關(guān)系描述等)(4)總體設(shè)計(3)設(shè)計系統(tǒng)的類層次,類層次中各個類的描述,類中各個成員函數(shù)(5)調(diào)試與測試(14)調(diào)試方法,測試結(jié)果的分析與討論,測試過程中遇到的主要問題及采取的解決措施(6)實驗總結(jié)(15)1.設(shè)計目的:1、目的:(1)要求學(xué)生達到熟練掌握C++語言的基本知識和技能;(2)基本掌握面向?qū)ο蟪绦蛟O(shè)計的基本思路和方法;(3)能夠利用所學(xué)的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計問題。2.設(shè)計要求:1、基本要求:(1)要求利用面向?qū)ο蟮姆椒ㄒ约癈++的編程思想來完成系統(tǒng)的設(shè)計;(2)要求在設(shè)計的過程中,建立清晰的類層次;(3)在系統(tǒng)中至少要定義四個類,每個類中要有各自的屬性和方法;(4)在系統(tǒng)的設(shè)計中,至少要用到面向?qū)ο蟮囊环N機制。
2、創(chuàng)新要求:在基本要求達到后,可進行創(chuàng)新設(shè)計,如根據(jù)查找結(jié)果進行修改的功能。3.設(shè)計方法功能:南陽康佳公司現(xiàn)有以下設(shè)備:普通電視機、DVD、帶DVD的電視機,帶DVD的電視機的售價為普通電視機和DVD單價之和的80%,要求對所有的庫存設(shè)備都能按照品名進行顯示、查找、增加和刪除、保存的功能。根據(jù)系統(tǒng)功能,可以將問題解決分為以下步驟:(1)分析系統(tǒng)中的各個實體之間的關(guān)系及其屬性和行為;(2)根據(jù)問題描述,設(shè)計系統(tǒng)的類層次;(3)完成類層次中各個類的描述(包括屬性和方法);(4)完成類中各個成員函數(shù)的定義;(5)完成系統(tǒng)的應(yīng)用模塊;(6)功能調(diào)試;4.總體設(shè)計1、系統(tǒng)功能模塊圖系統(tǒng)登錄系統(tǒng)登錄設(shè)備管理系統(tǒng)系統(tǒng)分析添加設(shè)備信息輸出設(shè)備信息查詢設(shè)備信息刪除設(shè)備信息保存設(shè)備信息2、類的層次設(shè)計定義四個類,一個equipment基類,包含設(shè)備(價錢,編號),三個派生類:TV,DVD,DVD_TV。定義一個manage類,在里面實現(xiàn)文件異常處理。3、功能設(shè)計(1)添加刪除功能:能根據(jù)設(shè)備的變動情況,添加記錄;(2)刪除功能:刪除記錄;(3)保存功能:能對輸入的數(shù)據(jù)進行相應(yīng)的存儲,要求重載插入和提取符以完成數(shù)據(jù)的保存和打開。(4)刪除功能:刪除記錄查詢功能:能根據(jù)編號進行查詢;4.系統(tǒng)流程圖開始開始輸入菜單選擇選擇調(diào)用函數(shù)指令輸出開始5.界面設(shè)計圖1:運行首界面圖2添加設(shè)備信息界面圖3設(shè)備信息查找界面圖4設(shè)備信息刪除界面6.部分代碼設(shè)計#include<iostream>#include<fstream>#include<string>#include<iomanip>usingnamespacestd;classmachine//定義machine為基類{protected:charname[20];floatprice;intmachineno;staticintn;public:machine();~machine(){}voidsetname(char*names);char*getname();voidsetprice(floatpr);floatgetprice();intgetnum();};//以下都為machine的派生類classTV:virtualpublicmachine//TV和DVD都定義虛基類公有繼承{public:TV(){}};classDVD:virtualpublicmachine{public:DVD(){}};classDVD_TV:publicTV,publicDVD{public:DVD_TV(){}floatgetprice(floatp1,floatp2);};intmachine::n=0;//初始化機器編號machine::machine()//每增加一臺機器編號自動加一{machineno=n++;}voidmachine::setname(char*names)//用來設(shè)置機器的品名{strcpy(name,names);}char*machine::getname()//用來獲取機器的品名{returnname;}voidmachine::setprice(floatpr)//初始化機器價錢{price=pr;}floatmachine::getprice()//獲得機器價錢{returnprice;}intmachine::getnum()//獲取機器編號{returnmachineno;}floatDVD_TV::getprice(floatp1,floatp2)//計算DVD_TV的方法{return(p1+p2)*0.8;}//文件異常處理classfileexception{public:fileexception():message("fileisnotcreated!"){}constchar*what()const{returnmessage;}private:constchar*message;};machine*j1;//定義一個基類指針對象TVT1;DVDD1;DVD_TVDT1;//以下為函數(shù)聲明voidadd();voidoutput();voidsearch();voiddeleteinf();voidsave();voidmain(){cout<<"\n\n☆☆☆歡迎進入南陽康佳設(shè)備管理系統(tǒng)☆☆☆"<<endl<<endl;cout<<"08110502曹亞琪"<<endl<<"**********************************"<<endl<<"**********************************"<<endl<<"**1:添加設(shè)備信息2:輸出設(shè)備信息3:查詢設(shè)備信息**"<<endl<<"**4:刪除設(shè)備信息5:保存設(shè)備信息0:退出系統(tǒng)**"<<endl<<"***********************************"<<endl<<"***********************************"<<endlintchoose;cin>>choose;switch(choose){case0:cout<<"歡迎再次使用該系統(tǒng)!"<<endl;exit(0);break;case1:add();break;case2:output();break;case3:search();break;case4:deleteinf();break;case5:save();break;default:cout<<"輸入無效!請重新輸入!"<<endl;break;}}while(!0);}voidadd(){charnames[20];intkind,choose;cout<<"請輸入machine的類型(1·普通電視機2·DVD3·帶DVD的電視機):";cin>>kind;while(kind<1||kind>3){cout<<"輸入錯誤!請重新選擇:";cin>>kind;}cout<<"請輸入品名:";cin>>names;switch(kind){case1:j1=&T1;break;case2:j1=&D1;break;case3:j1=&DT1;break;}if(kind==1||kind==2){j1->setname(names);floatprice;cout<<"價格為:";cin>>price;j1->setprice(price);cout<<"該產(chǎn)品的相關(guān)信息為:"<<endl;cout<<"編號為:"<<j1->getnum()<<"該產(chǎn)品名稱為:"<<j1->getname()<<"價格為:"<<j1->getprice()<<endl;}else{j1->setname(names);DT1.setname(names);cout<<"該類型為:"<<DT1.getname();floatprice1,price2,price3;cout<<"請輸入上述普通電視機的價格:";cin>>price1;cout<<"請輸入上述DVD的價格:";cin>>price2;price3=(price1+price2)*8/10;DT1.setprice(price3);cout<<"該產(chǎn)品的相關(guān)信息為:"<<endl;cout<<"編號為:"<<j1->getnum()<<"該產(chǎn)品名稱為:"<<DT1.getname()<<"價格為:"<<DT1.getprice(price1,price2)<<endl;}cout<<"是否將該產(chǎn)品信息存入文件:(1、是2、否):";cin>>choose;while(choose!=1&&choose!=2){cout<<"輸入錯誤!請重新選擇:";cin>>choose;if(choose==1)save();}voidoutput(){ifstreaminfile("南陽設(shè)備管理系統(tǒng).txt",ios::in);try{if(!infile)throwfileexception();}//捕獲由throw表達式拋擲的異常catch(fileexceptionfe){cout<<fe.what()<<endl;exit(0);}cout<<"從文件中讀取的數(shù)據(jù)如下:"<<endl;charline[101];for(inti=0;i<3;i++){infile.getline(line,100);cout<<line<<endl;}infile.close();}voidsearch(){charline[100];inti=1,n;cout<<"請輸入要查詢的序號:";cin>>n;ifstreaminfile("南陽設(shè)備管理系統(tǒng).txt",ios::in);try{if(!infile)throwfileexception();}catch(fileexceptionfe){cout<<fe.what()<<endl;exit(0);}while(!infile.eof()){infile.getline(line,100);if(i==n){cout<<line<<endl;break;}i++;if(infile.eof())cout<<"沒找到相應(yīng)的產(chǎn)品!"<<endl;}}voiddeleteinf(){ifstreamifile("南陽設(shè)備管理系統(tǒng).txt");ofstreamofile("temp.txt");charline[100];inti=1,n;cout<<"請輸入要查詢的序號:";cin>>n;while(!ifile.eof()){ifile.getline(line,100);//讀取完之后,從讀取的內(nèi)容中刪除該終止字符if(i!=n){ofile<<line<<endl;}i++;}ifile.close();ofile.close();system("del南陽設(shè)備管理系統(tǒng).txt");system("renametemp.txt,南陽設(shè)備管理系統(tǒng).txt");cout<<"該產(chǎn)品已成功刪除!"<<endl;cout<<"查看是否已被刪除?(0-否、1-是):";intnumber;cin>>number;if(number)output();}voidsave(){ofstreamofile("南陽設(shè)備管理系統(tǒng).txt",ios_base::app);//拋出錯誤try{if(!ofile)throwfileexception();}catch(fileexceptionfe){cout<<fe.what()<<endl;exit(0);}//寫入文件ofile<<"編號為:"<<j1->getnum()<<"該產(chǎn)品名稱為:"<<j1->getname()<<"價格為:"<<j1->getprice()<<endl;ofile.close();cout<<"該廠品信息已存入文件!"<<endl;}5.調(diào)試與測試(1)調(diào)試方法:在編譯連接前先進行靜態(tài)檢查,對每個函數(shù)模塊出現(xiàn)的細節(jié)語法錯誤逐步改正。再進行系統(tǒng)編譯連接,根據(jù)編譯器提示錯誤類型逐個修正。調(diào)試一個函數(shù)模塊的程序時,將其他模塊及相應(yīng)的函數(shù)定義用注釋語句注釋,至頂向下,順序化,模塊化。(2)測試遇到的問題及解決:(1)輸入的數(shù)據(jù)無法查找。解決方法:調(diào)用嵌套查找函數(shù),將實參傳遞至相應(yīng)形參,定位數(shù)據(jù),并輸出。(2)測試某段文本,當(dāng)出現(xiàn)句子“真便宜!)這令”后,出現(xiàn)嚴重亂碼錯誤。經(jīng)過仔細排查,發(fā)現(xiàn)是分句函數(shù)引起的問題,原因是“!”的后一個字節(jié),和“)”的前一個字節(jié),正好是句號“?!钡膬蓚€字節(jié),由此導(dǎo)致錯誤分句。查出此錯誤后,順利解決此問題。(3)測試某段文本,檢查文本向量序列時,發(fā)現(xiàn)其句數(shù),與真實情況不符。經(jīng)過排查,程序某處,pos值應(yīng)該為-1才能應(yīng)對所有可能出現(xiàn)的情況。6.實驗總結(jié):(1)剛開始,本來是想用兩三個類來封裝所有信息和功能函數(shù),但由于類成員相互調(diào)用、文件讀寫等老出現(xiàn)錯誤和問題,所有基本上沒有使用這種方法。經(jīng)過查閱相關(guān)資料和參考指導(dǎo)老師給出的模型,決定采用一個類加一個主函數(shù)的辦法來實現(xiàn)全部功能。顯然這種方法不適合C++面向?qū)ο蟮囊?,但由于本人領(lǐng)悟不夠,再加上時間短,沒有更好的方法解決,現(xiàn)在只能試用下。我也希望以后能再完善這個程序,用類封裝來實現(xiàn)全部功能。當(dāng)然,我也有想過加入管理員類,以實現(xiàn)必須得用內(nèi)置的管理員賬號和密碼才能登錄系統(tǒng),這種想法剛開始能夠在自己寫的類里實現(xiàn),但加入一些功能模塊后,基本功能出現(xiàn)缺失,所以就剔除掉這個拓展功能模塊。(2)從課程設(shè)計的目的出發(fā),通過課程設(shè)計的各個環(huán)節(jié), 通過C程序課程設(shè)計實例,我掌握了C語言程序設(shè)計基礎(chǔ),學(xué)會運用基本算法,程序控制結(jié)構(gòu),學(xué)會了調(diào)試程序的方法,培養(yǎng)嚴謹?shù)乃季S。并逐步加深了對知識的理解與實際運用,學(xué)會分析和解決問題將所學(xué)知識聯(lián)系實際,提高了我對語言學(xué)習(xí)的積極性,增強了自己的動手能。(3)在遇到實際操作問題時,嘗試用各種思路,查詢相關(guān)知識,與他人交流,利用資源,從問題中思考收獲。基于C8051F單片機直流電動機反饋控制系統(tǒng)的設(shè)計與研究基于單片機的嵌入式Web服務(wù)器的研究MOTOROLA單片機MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內(nèi)壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設(shè)計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內(nèi)核設(shè)計及其應(yīng)用研究基于單片機的遠程抄表系統(tǒng)的設(shè)計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設(shè)計和應(yīng)用基于單片機的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機單片機控制系統(tǒng)的研制基于單片機的數(shù)字磁通門傳感器基于單片機的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統(tǒng)設(shè)計Pico專用單片機核的可測性設(shè)計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構(gòu)建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現(xiàn)基于單片機的電液伺服控制系統(tǒng)用于單片機系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機的時控和計數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機和CPLD的粗光柵位移測量系統(tǒng)研究單片機控制的后備式方波UPS提升高職學(xué)生單片機應(yīng)用能力的探究基于單片機控制的自動低頻減載裝置研究基于單片機控制的水下焊接電源的研究基于單片機的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機的氚表面污染測量儀的研制基于單片機的紅外測油儀的研究96系列單片機仿真器研究與設(shè)計基于單片機的單晶金剛石刀具刃磨設(shè)備的數(shù)控改造基于單片機的溫度智能控制系統(tǒng)的設(shè)計與實現(xiàn)基于MSP430單片機的電梯門機控制器的研制基于單片機的氣體測漏儀的研究基于三菱M16C/6N系列單片機的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機和DSP的變壓器油色譜在線監(jiān)測技術(shù)研究基于單片機的膛壁溫度報警系統(tǒng)設(shè)計基于AVR單片機的低壓無功補償控制器的設(shè)計基于單片機船舶電力推進電機監(jiān)測系統(tǒng)基于單片機網(wǎng)絡(luò)的振動信號的采集系統(tǒng)基于單片機的大容量數(shù)據(jù)存儲技術(shù)的應(yīng)用研究基于單片機的疊圖機研究與教學(xué)方法實踐基于單片機嵌入式Web服務(wù)器技術(shù)的研究及實現(xiàn)基于AT89S52單片機的通用數(shù)據(jù)采集系統(tǒng)基于單片機的多道脈沖幅度分析儀研究機器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機控制系統(tǒng)基于單片機的控制系統(tǒng)在PLC虛擬教學(xué)實驗中的應(yīng)用研究基于單片機系統(tǒng)的網(wǎng)絡(luò)通信研究與應(yīng)用基于PIC16F877單片機的莫爾斯碼自動譯碼系統(tǒng)設(shè)計與研究基于單片機的模糊控制器在工業(yè)電阻爐上的應(yīng)用研究基于雙單片機沖床數(shù)控系統(tǒng)的研究與開發(fā)基于Cygnal單片機的μC/OS-Ⅱ的研究基于單片機的一體化智能差示掃描量熱儀系統(tǒng)研究基于TCP/IP協(xié)議的單片機與Internet互聯(lián)的研究與實現(xiàn)變頻調(diào)速液壓電梯單片機控制器的研究基于單片機γ-免疫計數(shù)器自動換樣功能的研究與實現(xiàn)基于單片機的倒立擺控制系統(tǒng)設(shè)計與實現(xiàn)單片機嵌入式以太網(wǎng)防盜報警系統(tǒng)基于51單片機的嵌入式Internet系統(tǒng)的設(shè)計與實現(xiàn)單片機監(jiān)測系統(tǒng)在擠壓機上的應(yīng)用MSP430單片機在智能水表系統(tǒng)上的研究與應(yīng)用基于單片機的嵌入式系統(tǒng)中TCP/IP協(xié)議棧的實現(xiàn)與應(yīng)用單片機在高樓恒壓供水系統(tǒng)中的應(yīng)用基于ATmega16單片機的流量控制器的開發(fā)基于MSP430單片機的遠程抄表系統(tǒng)及智能網(wǎng)絡(luò)水表的設(shè)計基于MSP430單片機具有數(shù)據(jù)存儲與回放功能的嵌入式電子血壓計的設(shè)計HYPERLINK"/detail.htm?3837
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年房地產(chǎn)交易風(fēng)險評估與控制合同
- 2024年房屋按揭貸款擔(dān)保合同
- 2024年工程項目施工合同中的施工組織設(shè)計編制
- 2024年房產(chǎn)購買合同標(biāo)準(zhǔn)
- 2024年文創(chuàng)產(chǎn)業(yè)投資與合作協(xié)議
- 2024年建筑項目工程招投標(biāo)代理合同
- 2024年新修訂:企業(yè)間長期貸款協(xié)議
- 2024年停車場車位租賃代理合同
- 2024年敲墻工程環(huán)保協(xié)議
- 2024年教育培訓(xùn)機構(gòu)勞動合同
- 城市燃氣安全管理技術(shù)
- 兩癌的健康知識講座
- 中西方創(chuàng)世神話文化的比較
- 幼兒園戶外游戲活動設(shè)計課件精
- 醫(yī)療質(zhì)量安全管理風(fēng)險防范專項整頓督查表
- 2023燃氣工程分包合同正規(guī)版
- 陜西師范大學(xué)學(xué)位英語試題
- 【基于嵌入式的人體健康智能檢測系統(tǒng)設(shè)計與實現(xiàn)14000字(論文)】
- 基礎(chǔ)管理風(fēng)險分級管控清單(雙體系)
- 醫(yī)學(xué)課件:臨床決策分析
- 人教版新教材高一上學(xué)期期末考試數(shù)學(xué)試卷及答案(共五套)
評論
0/150
提交評論