




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、某公司的庫存管理系統1設計容:對課程算法與程序設計中的相關容進行綜合設計或應用(具體課題題目見后面的供選題目)。(一)、課程設計題目:某公司的庫存管理系統(二)、目的與要求:1、目的:(1)要求學生達到熟練掌握C+語言的基本知識和技能;(2)基本掌握面向對象程序設計的基本思路和方法;(3)能夠利用所學的基本知識和技能,解決簡單的面向對象程序設計問題。2、基本要求:(1)要求利用面向對象的方法以及C+的編程思想來完成系統的設計;(2)要求在設計的過程中,建立清晰的類層次;(3)在系統中至少要定義四個類,每個類中要有各自的屬性和方法;(4)在系統的設計中,至少要用到面向對象的一種機制。3、創新要求
2、:基本要求達到后,可進行創新設計,如根據查找結果進行修改的功能。4、寫出設計說明書(三)、設計方法和基本原理:1、問題描述(功能要求):某公司現有以下設備:普通電視機、DVD、帶DVD的電視機,帶DVD的電視機的售價為普通電視機和DVD單價之和的80%,要求對所有的庫存設備都能按照品名進行顯示、查找、增加和刪除、保存的功能。2、問題的解決方案:根據系統功能要求,可以將問題解決分為以下步驟:(1)分析系統中的各個實體之間的關系及其屬性和行為;(2)根據問題描述,設計系統的類層次;(3)完成類層次中各個類的描述(包括屬性和方法);(4)完成類中各個成員函數的定義;(5)完成系統的應用模塊;(6)功
3、能調試;(7)完成系統總結報告以及系統使用說明書。2設計要求:l課程設計報告正文容(包括系統設計要求,設計思路,系統功能模塊圖,系統流程圖,類的層次圖(包括類成員列表),調試過程,關鍵程序代碼,總結,參考書目等)。(一)需求分析系統設計目的與意義;系統功能需求(系統流程圖);輸入輸出的要求;(二)總體設計系統功能分析;系統功能模塊劃分與設計(系統功能模塊圖)。(三)詳細設計數據庫需求分析;數據庫概念結構設計(ER圖);數據庫邏輯結構設計;類層次圖。(四)界面設計與各功能模塊實現(五)系統調試調試問題出現的主要問題:編譯語法錯誤及修改,重點是運行邏輯問題修改和調整。(六)使用說明及編程體會說明如
4、何使用你編寫的程序,詳細列出每一步的操作步驟。(七)關鍵源程序(帶注釋)3目錄一、系統設計分析.6二、程序設計明.61.四個類完成實體類的定義.82.公司庫存管理系統中各模塊功能的實現.83.添加物品信息模塊.94.顯示物品信息模塊.105.查找物品信息模塊.106.刪除物品信息模塊.117.保存物品信息模塊.12三、系統調試.12四、總結.12五、附件.12一、系統設計分析公司庫存管理系統程序中,系統要求我們設計四個類:由家電類派生出來的普通電視機類和DVD類;再由普通電視機類和DVD類共同派生出來的帶DVD的普通電視機類。在這個系統中我們需要實現六個功能:1、顯示物品功能;2、添加物品功能
5、;3、查找物品功能;4、刪除物品功能;5、保存物品功能。公司庫存管理系統主要是為了讓用戶根據自己的需要自己想輸入的一些物品,然后將其保存,當用戶想查看所有物品時可以查看,想添加物品時可以添加自己想添加的相關物品信息,當用戶想刪除自己認為應當刪除的物品時,用戶可以根據自己的需要輸入用戶想刪除的物品名稱,然后將物品的相關信息刪除;當用戶想查找某一物品時,用戶可以輸入這一物品的名稱然后查看這一物品的所有信息。在這個系統中,用戶可以根據系統的提示分別執行用戶自己想實現的功能,比如:在添加物品信息功能中,用戶可以輸入自己想輸入的物品信息;在顯示物品功能中用戶可以查看用戶所保存的所有物品信息;在查找物品功
6、能中用戶可以根據自己的需要輸入自己想查找的物品名稱,然后查找用戶想查找的物品的所有相關信息;在刪除物品功能中用戶可以根據自己的需要輸入自己想刪除的物品名稱,然后進行刪除;在物品保存功能中,當用戶需要實現物品的保存時,系統會自動打開文件然后將用戶輸入的數據保存在用戶給定的文件中。二、程序設計說明在公司庫存管理系統中,物品信息主要為:物品名稱,物品生產日期,物品的單價和數量。公司庫存管理系統中系統需要我們實現六個功能:2、添加物品功能;3、顯示物品功能;4、查找物品功能;5、刪除物品功能;6、保存物品功能。在物品添加功能中用戶可以根據自己的需要輸入自己想輸入的物品信息(名稱、生產日期、數量),然后
7、將其保存。程序開始時,系統會提示用戶先進行哪個功能,然后用戶可根據需要輸入相關型號的物品信息,輸入完之后會再次提示用戶是否繼續輸入,然后再根據提示進行相關操作。一般情況下,我們先進行添加物品這一功能中,當用戶選擇此功能時系統會將錄入這些信息并保存,以便下次查找。在顯示物品功能中,用戶可以根據系統的提示輸入想查找的相關物品的信息,之后系統便會彈出物品信息。在刪除物品功能中,用戶根據系統的提示輸入自己想刪除的物品名稱,然后將其刪除。在查找物品功能中,用戶根據系統提示輸入自己想查找的相關物品名稱,然后在庫存中的相關物品中查找,如果有此物品則會顯示此物品的所有信息,如果沒有則會顯示無此物品信息。在保存
8、物品功能中,當用戶選擇此功能時,系統會將用戶需要的所有物品保存。詳情:1.四個類完成實體類的定義Wiring類數據成員:物品名稱,年月日物品數量成員函數:設置價格函數classwiringpublic:charname10;/物品名稱intyear,month,day;/出廠日期intnumber;/物品數量TV類classTV:virtualpublicwiringpublic:TV()voidset1(char*n,inty,intm,intd,intnn)strcpy(name,n);year=y;month=m;day=d;number=nn;voidpay()price1=3000;
9、/普通電視機售價DVD類classDVD:virtualpublicwiringpublic:DVD()voidset2(char*n,inty,intm,intd,intnn)strcpy(name,n);year=y;month=m;day=d;number=nn;voidpay()price2=2000;/DVD售價floatprice2;_類classTV_DVD:publicTV,publicDVDpublic:TV_DVD()voidset3(char*n,inty,intm,intd,intnn)strcpy(name,n);year=y;month=m;day=d;number
10、=nn;voidpay()price=(2000+3000)*80/100;/帶DVD的普通電視機售價floatprice;floatprice1;2.公司庫存管理系統中各功能模塊的實現:菜單1、添加物品信息2、顯示物品信息3、刪除物品信息3、查找物品信息5、保存物品信息6、保存物品信息3、添加物品信息模塊:添加物品信息添加普通電視機的相關信息添加DVD的相關信息添加帶DVD的普通電視機的相關信息1、物品名稱2、生產日期3、產品數量4、顯示物品信息模塊:在輸入完第一次的添加產品后顯示產品時,即顯示出產品信息。5、查找物品信息:查找物品信息查找類型查找名稱返回后根據菜單選擇3,即查找物品信息。依
11、照提示輸入所查找的類型和名稱,則彈出所需物品信息。6、刪除物品信息:刪除物品刪除物品信息物品名稱根據菜單選擇4,即刪除物品信息。依照提示輸入要刪除的類型和名稱。7、最后根據提示將保存物品信息。三、系統調試在調試程序中,出現很多問題,比如有的字符未定義,少花括號,分號,等等一些細節問題。后來一個一個慢慢改,感覺很是麻煩。還有顯示有一個函數非法定義,后來經過同學幫忙才知道原來是花括號缺少的問題。在調試中,我在添加物品信息中,當我輸入完一類物品信息后,想輸入另一物品信息時,無法繼續輸入,總是輸入同一物品信息,后來當我在循環中想退出for語句循環時,在需要退出時加一個break語句就可以退出當前循環進
12、行其他步驟。在調試中,我深刻體會到循環語句的重要性,一個不留神就會把數據弄錯,同時也嘗到用while語句的妙用,感覺比dowhile語句好用多了,所以在程序中就多次用到了while語句,用dowhile語句的話,程序就要先執行一次,在判斷那個語句是否正確,如果正確就會繼續執行該程序段,否則就會退出程序。而用while語句的話則是先判斷那個語句是否正確,如果正確就會執行該程序段,否則不執行。四、總結程序設計是一個很復雜的問題,有的時候自己感覺沒有出現任何錯誤,但是一運行,錯誤一大堆。小問題也隨處可見。所以感覺編程這份工作的確是需要付出很大的努力,要游刃有余的使用每個函數,而不用老是翻書查看,像我
13、在建立類,需要創建派生類時,還需要翻書查看具體容,這是對書本知識不熟練的表現。在完善程序時,感覺添加物品信息時類型太少了,只要輸入物品類型、名稱、生產日期和產品數目。本來還打算多加幾個,但又覺得太麻煩,所以就放棄了。做完這次課程設計,深深的感到自己還有很大不足之處。所以下定決心這個寒假回家好好補補課。附件:#include#include#include#includeusingnamespacestd;classwiringpublic:charname10;/物品名稱intyear,month,day;/出廠日期intnumber;/物品數量wiring()/構造函數wiring()/析構
14、函數virtualvoidpay()/設置價格函數;classTV:virtualpublicwiringpublic:TV()voidset1(char*n,inty,intm,intd,intnn)strcpy(name,n);year=y;month=m;day=d;number=nn;voidpay()price1=3000;/普通電視機售價floatprice1;classDVD:virtualpublicwiringpublic:DVD()voidset2(char*n,inty,intm,intd,intnn)strcpy(name,n);year=y;month=m;day=d
15、;number=nn;voidpay()price2=2000;/DVD售價floatprice2;classTV_DVD:publicTV,publicDVDpublic:TV_DVD()voidset3(char*n,inty,intm,intd,intnn)strcpy(name,n);year=y;month=m;day=d;number=nn;voidpay()price=(2000+3000)*80/100;/帶DVD的普通電視機售價floatprice;TVt120;DVDd120;TV_DVDtd120;staticintk(0),k1(0),k2(0);voidmain()/
16、主函數voidcaidan();caidan();voidcaidan()voidaddw();/添加物品信息voidshown();/顯示物品信息voidselectw();/刪除物品信息voidsearchw();/查找物品信息voidsavew();/保存物品信息inta1;system(color0D);coutn;couttt*n;coutt(1)*添加物品信息*n;coutt(2)*顯示物品信息*n;coutt(3)*查找物品信息*n;coutt(4)*刪除物品信息*n;coutt(5)*保存物品信息*n;coutt(6)*退出*n;couttt*n;couta1;while(a1
17、!=1&a1!=2&a1!=3&a1!=4&a1!=5&a1!=6)couta1;if(a1=1)addw();if(a1=2)shown();if(a1=3)searchw();if(a1=4)selectw();if(a1=5)savew();if(a1=6)coutn退出程序!n;voidaddw()/添加物品信息函數voidcaidan();/菜單函數chara10;intm,n,h,n1,rr,i1,v,i=9,r1;couti;if(i=1)coutn請輸入普通電視機的相關信息!n;for(v=k;v20;v+)couta;coutmnh;coutn1;t1v.set1(a,m,n
18、,h,n1);t1v.pay();k+;couti1;while(i1!=1&i1!=2)couti1;if(i1=1)coutn請繼續輸入普通電視機的相關信息!n;elsebreak;if(i=2)coutn請輸入DVD的相關信息!n;for(v=k1;v20;v+)couta;coutmnh;coutn1;d1v.set2(a,m,n,h,n1);d1v.pay();k1+;couti1;while(i1!=1&i1!=2)couti1;if(i1=1)coutn請繼續輸入DVD的相關信息!n;elsebreak;if(i=3)coutn請輸入帶DVD的普通電視機的相關信息!n;for(v
19、=k2;v20;v+)couta;coutmnh;coutn1;td1v.set3(a,m,n,h,n1);td1v.pay();k2+;couti1;while(i1!=1&i1!=2)couti1;if(i1=1)coutn請繼續輸入帶DVD的普通電視機的相關信息!n;if(i1=2)break;couti1;while(i1!=1&i1!=2)couti1;if(i1=1)coutn請輸入數字輸入相對應的物品信息(1-普通電視機2-DVD3-帶DVD的普通電視機):;if(i1=2)break;coutrr;while(rr!=1&rr!=2)coutrr;if(rr=1)ofstrea
20、mofile(wiring.txt,ios_base:out);for(v=0;vk;v+)ofilen普通電視機的名稱:n普通電視機的出廠日期:t1v.year/t1v.month/t1v.dayn普通電視機的單價:t1v.price1n普通電視機的數量:t1v.numberendl;for(v=0;vk1;v+)ofilenDVD的名稱:nDVD的出廠日期:d1v.year/d1v.month/d1v.daynDVD的單價:d1v.price2nDVD的數量:d1v.numberendl;for(v=0;vk2;v+)ofilen帶DVD的普通電視機的名稱:
21、n帶DVD的普通電視機的出廠日期:td1v.year/td1v.month/td1v.dayn帶DVD的普通電視機的單價:td1v.pricen帶DVD的普通電視機的數量:td1v.numberendl;ofile.close();coutn物品信息已儲存!;coutr1;while(r1!=1)coutr1;if(r1=1)system(cls);caidan();if(r1=2)coutn退出程序!;if(rr=2)coutr1;while(r1!=1&r1!=2)coutr1;if(r1=1)system(cls);caidan();if(r1=2)coutn退出程序!
22、;voidshown()/顯示物品信息coutn從文件中讀取物品信息n;charch;intnn;ifstreamofile(wiring.txt);while(ofile.get(ch)coutch;ofile.close();coutnn;while(nn!=1&nn!=2)coutnn;if(nn=1)system(cls);caidan();if(nn=2)cout退出程序!n;voidsearchw()/查找物品信息voidcaidan();charnamestr20;intrr;inti,j;coutrr;while(rr!=1&rr!=2&rr!=3)coutrr;if(rr=1
23、)coutnamestr;for(i=0;ik;i+)if(strcmp(namestr,)=0)coutn普通電視機的名稱:n普通電視機的出廠日期:t1i.year/t1i.month/t1i.dayn普通電視機的單價:t1i.price1n普通電視機的數量:t1i.numberendl;break;if(i=k)coutn對不起,沒有你所要的普通電視機的相關信息!n;if(rr=2)coutnamestr;for(i=0;ik1;i+)if(strcmp(namestr,)=0)coutnDVD的名稱:nDVD的出廠日期:d1
24、i.year/d1i.month/d1i.daynDVD的單價:d1i.price2nDVD的數量:d1i.numberendl;break;if(i=k1)coutn對不起,沒有你所要的DVD的相關信息!n;if(rr=3)coutnamestr;for(i=0;ik2;i+)if(strcmp(namestr,)=0)coutn帶DVD的普通電視機的名稱:n帶DVD的普通電視機的出廠日期:td1i.year/td1i.month/td1i.dayn帶DVD的普通電視機的單價:td1i.pricen帶DVD的普通電視機的數量:td1i.numberendl
25、;break;if(i=k2)coutn對不起,沒有你所要的帶DVD的普通電視機的相關信息!n;coutj;while(j!=1&j!=2)coutj;if(j=1)system(cls);caidan();if(j=2)coutn退出程序!;voidselectw()/刪除物品信息voidcaidan();charnamestr20;intrr,i,r1,i1(-1),i2(-1),i3(-1);coutrr;while(rr!=1&rr!=2&rr!=3)coutrr;if(rr=1)coutnamestr;for(i=0;ik;i+)if(strcmp(namestr,)
26、=0)i1=i;if(rr=2)coutnamestr;for(i=0;ik1;i+)if(strcmp(namestr,)=0)i2=i;if(rr=3)coutnamestr;for(i=0;ik2;i+)if(strcmp(namestr,)=0)i3=i;coutr1;while(r1!=1&r1!=2)coutr1;if(r1=1)ofstreamofile(wiring.txt,ios_base:out);for(i=0;ik;i+)if(i=i1)continue;elseofilen普通電視機的名稱:n普通電視機的出廠日期:t1i.year/t1i.month/t1i.dayn普通電視機的單價:t1i.price1n普通電視機的數量:t1i.numberendl;for(i=0;ik1;i+)if(i=i2)continue;elseofilenDVD的名稱:nDVD的出廠日期:d1i.year/d1i.month/d1i.daynD
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業廢水處理與環境友好型技術
- 工業廢水處理技術及設備質量控制
- 工業污染源的環境監測技術
- 工業機器人技術的發展與應用案例分享
- 工業機器人的維修技術及發展
- 工業綠色發展的技術路徑與政策支持
- 工業物聯網IIoT的崛起與影響
- 工業遺址改造中的環保理念與可持續發展
- 工業自動化技術的新進展與趨勢
- 工業設計在現代產業中的地位和作用
- 光伏電站小EPC規定合同范本
- 現代藝術教育理念探析-洞察分析
- 2025年合肥市公安局第二批招考聘用警務輔助人員678人高頻重點提升(共500題)附帶答案詳解
- 工程交驗后服務措施
- 2024年重慶公務員考試試題及答案
- 小學生玩手機危害課件
- 2025年中國石油集團招聘筆試參考題庫含答案解析
- 數字金融發展與跨境貿易人民幣結算
- 智能制造能力成熟度模型(-CMMM-)介紹及評估方法分享
- 子宮腺肌病三級管理專家共識解讀
- 鋼材采銷方案
評論
0/150
提交評論