企業(yè)單位庫(kù)存管理組織系統(tǒng)C_第1頁(yè)
企業(yè)單位庫(kù)存管理組織系統(tǒng)C_第2頁(yè)
企業(yè)單位庫(kù)存管理組織系統(tǒng)C_第3頁(yè)
企業(yè)單位庫(kù)存管理組織系統(tǒng)C_第4頁(yè)
企業(yè)單位庫(kù)存管理組織系統(tǒng)C_第5頁(yè)
已閱讀5頁(yè),還剩56頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、設(shè)計(jì)內(nèi)容公司庫(kù)存管理系統(tǒng)一、設(shè)計(jì)要求1.目的和要求(1)要求學(xué)生熟練掌握C+語(yǔ)言的基本知識(shí)和技能;(2)要求利用面向?qū)ο蟮姆椒ㄒ约?C+的編程思想來(lái)完成系統(tǒng)的設(shè)計(jì),在 設(shè)計(jì)的過(guò)程中,建立清晰的類層次;(3)基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法;(4 )在系統(tǒng)中定義類,每個(gè)類中要有各自的屬性和方法;(5 )在系統(tǒng)的設(shè)計(jì)中,至少要用到面向?qū)ο蟮囊环N機(jī)制。(6)能夠利用所學(xué)的基本知識(shí)和技能,解決簡(jiǎn)單的面向?qū)ο蟪绦蛟O(shè)計(jì)問(wèn)題。(7 )寫出設(shè)計(jì)說(shuō)明書2 .設(shè)計(jì)內(nèi)容1、問(wèn)題描述(功能要求):某公司現(xiàn)有以下設(shè)備:普通電視機(jī)、DVD、帶DVD的電視機(jī),帶DVD的電視機(jī)的售價(jià)為普通電視機(jī)和 DVD單價(jià)之和的8

2、0%,要求對(duì)所有的庫(kù)存設(shè)備都 能按照品名進(jìn)行顯示、查找、入庫(kù)和出庫(kù)、保存 的功能。普通電視機(jī)有下列屬性:尺寸、類型(液晶或等離子)、售價(jià)、重量、品牌、入庫(kù)數(shù)量、入庫(kù)編號(hào)DVD有下列屬性:規(guī)格(高清、藍(lán)光高清、普通)、售價(jià)、重量、品牌、入庫(kù)數(shù)量、入庫(kù)編號(hào)帶DVD的電視機(jī)是上兩者的派生類,但請(qǐng)注意有些屬性的重復(fù)問(wèn)題。要求生成的相關(guān)庫(kù)存數(shù)據(jù)結(jié)果以文件方式存放在硬盤中,或用鏈表、數(shù)組來(lái)進(jìn)行管理。2、問(wèn)題的解決方案:根據(jù)系統(tǒng)功能要求,可以將問(wèn)題解決分為以下步驟:(1)寫出需求分析(做什么),建立該系統(tǒng)的功能模塊框圖;(2)分析系統(tǒng)中的各個(gè)實(shí)體之間的關(guān)系及其屬性和行為;(3)根據(jù)問(wèn)題描述,設(shè)計(jì)系統(tǒng)的類層次

3、;(4)完成類層次中各個(gè)類的描述(包括屬性和方法);(5)完成類中各個(gè)成員函數(shù)的定義;(6 )完成系統(tǒng)的應(yīng)用模塊;(7)功能調(diào)試;(8)完成系統(tǒng)總結(jié)報(bào)告以及系統(tǒng)使用說(shuō)明書。3 .設(shè)計(jì)環(huán)境Windows 操作系統(tǒng)、VC+6.0、C+ 語(yǔ)言4 .個(gè)人承擔(dān)任務(wù)主要負(fù)責(zé)系統(tǒng)的顯示、查找、入庫(kù)、出庫(kù)主要功能實(shí)現(xiàn)和系統(tǒng)封裝。、系統(tǒng)需求分析Device,由 Device公司庫(kù)存管理系統(tǒng)程序中,系統(tǒng)要求我們?cè)O(shè)計(jì)四個(gè)類:一個(gè)基礎(chǔ)類DVD的普通電視機(jī)類。在這個(gè)系統(tǒng)中我們需要實(shí)現(xiàn)主要的五個(gè)功能:1、顯示物品功能;2、查找物品功能;3、入庫(kù)物品功能;4、出庫(kù)物品功能;5、保存物品功能。公司庫(kù)存管理系統(tǒng)主要是為了讓用戶

4、根據(jù)自己的需要自己想輸入的一些物品,然后將其保存,當(dāng)用戶想查看所有物品時(shí)可以查看,想添加物品時(shí)可以添加自己想添加的相關(guān)物品信息;當(dāng)用戶根據(jù)實(shí)際物品的庫(kù)存調(diào)整時(shí),可以進(jìn)行出入庫(kù)操作,并且記錄每一次的出入庫(kù)的時(shí)間和數(shù)量,以便日后查看;當(dāng)用戶想查找某一物品時(shí),用戶可以輸入這一物品的名稱或入庫(kù)編碼,然后搜索并查看這一物品的所有信息。在這個(gè)系統(tǒng)中,用戶可以根據(jù)系統(tǒng)的提示分別執(zhí)行用戶自己想實(shí)現(xiàn)的功能,比如:在顯示物品功能中用戶可以查看用戶所保存的所有物品信息;在查找物品功能中用戶可以根據(jù)自己的需要輸入自己想查找的物品名稱或入庫(kù)編碼,然后查找用戶想查找的物品的所有相關(guān)信息;在出、入庫(kù)物品功能中用戶可以根據(jù)自

5、己的需要輸入自己想要出、入庫(kù)的物品名稱或入庫(kù)編碼,然后進(jìn)行出、入庫(kù)操作;在物品保存功能中,凡是用戶每對(duì)庫(kù)存系統(tǒng)內(nèi)部的信息進(jìn) 行一次操作,系統(tǒng)就會(huì)自動(dòng)保存并記錄相關(guān)信息。三、程序設(shè)計(jì)思路1、系統(tǒng)功能模塊圖:從系統(tǒng)的需求中我們可以看到:該系統(tǒng)要對(duì)產(chǎn)品進(jìn)行顯示、查找、入庫(kù)、出庫(kù)和保存功能。這就意味著這個(gè)系統(tǒng)需要一個(gè)show函數(shù)(通過(guò)cout將數(shù)據(jù)顯示在屏幕上)來(lái)實(shí)現(xiàn)顯示功能,而其他各個(gè)功能需要不同的模塊來(lái)實(shí)現(xiàn),也就意味著這個(gè)系統(tǒng)需要五個(gè)不同的功 能模塊。1、顯示物品信息 2、查找物品信息 3、入庫(kù)物品信息 4、出庫(kù)物品信息 5、退出系統(tǒng)派生I 派生M H MX X 喇X息息=_EIE 11亠=曇入出

6、請(qǐng)輸人時(shí)宜數(shù)手辿:訐檢序要執(zhí)廳址飛一步動(dòng)作=2、公司庫(kù)存管理系統(tǒng)中各功能模塊的實(shí)現(xiàn):a.顯示物品模塊:PG.-.;!/ 品.30二蚩 :rT:.:- 一計(jì)年乍zz _HAa二 斛m鋼斗岀HMMH#KJCMIMHfr區(qū)喬種英 首確荊也 DO 閒DtHJDEU電換0 二 DUD 應(yīng)UP CifynE雖電視l(l生產(chǎn)関 ?m j-1 -1 2Q1J-2-1 2H1J-1-5 201J-i-5R- 用 E 1kHAHAMAIV耳=_醫(yī)潔 s喈輸入辭斬姿莖“=:在輸入好庫(kù)存信息后,庫(kù)存信息就會(huì)被保存到庫(kù)存清單。txt ”文本中,然后根據(jù)菜單顯示選擇“1、顯示物品信息”,就會(huì)直接調(diào)用文本文件中的所有信息并

7、加以顯示。b.查找物品信息:*J云2出序劃幣信痔*5退出J11=42 = 6319i48:il llz4a;5Z J19 :4:51 ifrEi;EfrWfMSMin* ivt5fi:4l 2613-01-63 19zM:24JL2UiS-Ul-tiH CyhJi Hl 也203-01-02Infill! Bl 縣 22G13-ei-E22U13-H-H22011-41-62LV13 Bl S2-,H h u, * m M li * H U K * a . K ta I卿XI品牌-J- 1- nl n rrriml tH rml nr F 5 呼丿 E TT1=-13 3 FllJTim-l

8、_7 十別丄-十-lT-11十- hLR,L_HLLP R ft.LH.;諭認(rèn)對(duì)應(yīng)散TiS: 丁戰(zhàn)所要執(zhí)廠地下tftbfF.青軻入專昂命軒KA庫(kù)福呂弋1PWI首直取現(xiàn)機(jī)n塵電視機(jī)牛戸R郎 MdJ i i/.u-JttJLrkFEi臺(tái) 二-121212121312E 侷 犀-)八. A , , Y , :tnJtnJ4llJt1Junm u,m .N m M.N.二 rg二u.二“二,i EEJu-r. 一 4/ _ c c c Jl;jijoRmJ1J B.LM!ILL RFIH1 LBEiaS I.鬧加L時(shí)冊(cè) i RfW-4m5 asg汕imnrenFhiHips Philips Phili

9、ps I RMMM m 汕寸生嚴(yán)日聊 2An-i -m 2012-2-1 2013-1-5 2A13-1 5 2R111-1 -5 5AI.1 A I 或人.庫(kù)菲號(hào)三昔誦申昶列.眉|硏刃n 嘗道也觀呱咽電柳機(jī)ehjdn 更 iwnEUBTi近冋荒羊農(nóng)貫字找退出起節(jié)C.入庫(kù)物品信息:fr T翼la仲_ 子 ! 中,冃建碼 UIS 塁筒MnNA羊輔幾時(shí)Efx-7-isJf fTffS iJlif地卞一TCT-fF:選擇“ 3、入庫(kù)物品信息”后,首先刷屏顯示現(xiàn)有庫(kù)存信息的全部?jī)?nèi)容,方便用戶觀察需要 入庫(kù)的產(chǎn)品信息和具體庫(kù)存數(shù)量。之后,可以根據(jù)選擇入庫(kù)編碼或者設(shè)備名稱來(lái)查找需要入庫(kù)的具體設(shè)備。如果該設(shè)

10、備存在于庫(kù)存當(dāng)中,則輸入入庫(kù)數(shù)量,提示入庫(kù)成功;如果倉(cāng)庫(kù)中沒(méi)有該種設(shè)備,則提示“對(duì)不起,沒(méi)有找到該庫(kù)存物品?!比霂?kù)成功后,該物品庫(kù)存數(shù)量增加,庫(kù)存記錄增加。如圖:比匹記就嚇I(yè) 理翅fl朋咽種,) eSlSJJI彌呃狗丄20134S&躺首運(yùn)201361-022013-1-0228:08:4226:00:49174越匸.-ffiwyrSt品牌費(fèi)詩(shī)號(hào)1 逶斤IBM3 姑18006臺(tái)臺(tái).S 5 3,DUDRW.(MJDfi =1 =1 J J厶&臺(tái)臺(tái)0 A8 2 132013-01-02 21:4GiB9J 2013-01-02 22:24:34112013-01-02 22:2S:L51f2013-

11、81-04 18:19:311諳輸人數(shù)字鍵1返叵棄單姻字殛退出溟序:d. 出庫(kù)物品信息:出庫(kù)物品信息和入庫(kù)物品信息操作原理一樣,顯示相同;只不過(guò)一個(gè)增加一個(gè)減少, 在此就不再贅述。e. 保存效果:吃PV7DVD生產(chǎn)日期-L2013-2-12OL3-1-52013-1-F u卜弋 2013-6-1_!亠部1 .L.二J-H30遞 禹嶇 30幀 匹臨 100( 1J007Lzon./LbiEHlipsMJ ips -liilipf IM - fl- ud o- Q n o o pp 4 & ? I 1 fl:曲100LOO伽100LOtJ3、具體程序代碼書寫思路:因?yàn)橛玫腃+編程語(yǔ)言和環(huán)境,所以針

12、對(duì)于面向?qū)ο蟮某绦驎鴮懤砟睢N覍⒊绦蚰K化,把類的實(shí)現(xiàn)進(jìn)行了封裝,運(yùn)用創(chuàng)建一個(gè)工程的方式把程序做的更為具體和清晰。在關(guān)鍵地方,在程序后面做有注釋,便于其他人閱讀和分析。四、總結(jié)本公司庫(kù)存管理系統(tǒng)很好的實(shí)現(xiàn)了“顯示、查找、入庫(kù)、出庫(kù)、保存”的主要功能,較 為完美的實(shí)現(xiàn)了本次程序設(shè)計(jì)的主要要求。除此之外,我還在程序中增加了一定的糾錯(cuò)能力,比如當(dāng)出庫(kù)數(shù)量大于現(xiàn)有庫(kù)存是會(huì)提示“庫(kù)存不足,請(qǐng)重新輸入”的提示,直到用戶輸入正確的數(shù)值為止。而且,在用戶對(duì)于菜單的屬于操作出現(xiàn)失誤時(shí),系統(tǒng)也會(huì)根據(jù)具體情況進(jìn)行相應(yīng)的提示,避免了死循環(huán)的出現(xiàn),方便了用戶的操作、增加了系統(tǒng)的健壯性。對(duì)于程序的書寫,可以說(shuō)這個(gè)程序的封

13、裝以及模塊化結(jié)構(gòu)做的很好,主程序很簡(jiǎn)單,需要運(yùn)用函數(shù)的時(shí)候直接調(diào)用相應(yīng)部分即可。這對(duì)于程序書寫時(shí)的修改、校正也極為方便,避免了“牽一發(fā)而動(dòng)全身”的麻煩。我覺(jué)得這種模塊化的思想應(yīng)該繼續(xù)保持,運(yùn)用到今后的程序設(shè)計(jì)當(dāng)中,既避免了主程序過(guò)于繁雜的麻煩,也為其他人的閱讀、分析和今后的程序改良提供了方便。在程序應(yīng)用中,菜單選項(xiàng)僅是對(duì)于現(xiàn)有庫(kù)存的各種操作和處理, 但并沒(méi)有提供外部接口 讓用戶主動(dòng)添加其它的物品信息。 對(duì)于此,我們特意增加了文本修改功能, 可以從后臺(tái)的地 方增加或刪減現(xiàn)有庫(kù)存信息。 彌補(bǔ)了庫(kù)存不可變動(dòng)的缺陷。 也體現(xiàn)了,重要信息需要掌握在 公司內(nèi)部人員手中,而不能隨意進(jìn)行修改的理念。五、調(diào)試及

14、其測(cè)試(調(diào)試出現(xiàn)的主要問(wèn)題,編譯語(yǔ)法錯(cuò)誤及修改,重點(diǎn)是運(yùn)行邏輯問(wèn)題修改和調(diào)整)1、由于本次設(shè)計(jì)用到了類,而類中有受保護(hù)的對(duì)像和私有對(duì)象,他們都不可以在 類外使用。于是使得下邊一些數(shù)據(jù)不能使用。最后我只能將數(shù)據(jù)全改成公有數(shù) 據(jù)。這樣也讓繼承的時(shí)候不會(huì)出現(xiàn)問(wèn)題。2、本次程序幾經(jīng)修改才做到了現(xiàn)在這個(gè)樣子,起初是一個(gè)長(zhǎng)達(dá)700多行的程序,沒(méi)有運(yùn)用封裝和工程,顯得程序比較冗長(zhǎng)。但是有個(gè)嚴(yán)重的問(wèn)題就是每次程序 重新啟動(dòng)的時(shí)候上次錄入的信息和記錄就全部清零,必須重新錄入才可以進(jìn)行 出、入庫(kù)處理,這樣就使程序喪失了實(shí)用性,所以針對(duì)這個(gè)問(wèn)題我特意書寫的 錄入代碼,讓程序可以在一開(kāi)始運(yùn)行的時(shí)候就把庫(kù)存清單里的信息

15、先讀入系 統(tǒng),然后再在這個(gè)基礎(chǔ)上進(jìn)行添加刪除等操作,這樣才能真正做到一個(gè)實(shí)用的系統(tǒng)。3、3、4、4、5、5、6、6、因?yàn)橄到y(tǒng)要求必須把庫(kù)存的信息保存到文本文件,這個(gè)操作我們課上只做了簡(jiǎn) 單的介紹,而且憑借現(xiàn)有的知識(shí)還有所欠缺,我在查閱了大量資料和請(qǐng)教他人 之后才逐步搞懂了這個(gè)環(huán)節(jié)。由此經(jīng)過(guò)修改寫出了第二個(gè)程序,能夠調(diào)用文本 文件并且可以進(jìn)行復(fù)雜操作的程序。除此之外,一開(kāi)始我保存和顯示庫(kù)存信息的文件方式也有所欠缺,沒(méi)有做到空間的合理利用,經(jīng)過(guò)老師的點(diǎn)撥和修改后,我設(shè)立了“string ”字符串,讓所有信息以字符串的形式顯示和保存,并控制了每一個(gè)字段的長(zhǎng)度,這樣在現(xiàn)實(shí) 的時(shí)候就顯得十分美觀,也便于

16、讀取和觀察。之后,我又在這個(gè)程序的基礎(chǔ)上,進(jìn)行了進(jìn)一步的延伸。因?yàn)槌绦蛞蟊仨毎?每一個(gè)庫(kù)存信息都要儲(chǔ)存,為了避免重復(fù)與不好記錄的方面,我只好把添加信 息的菜單隱藏,放于后臺(tái)處理。對(duì)于用戶界面只對(duì)現(xiàn)有庫(kù)存信息進(jìn)行顯示、查 找、入庫(kù)、出庫(kù)的操作。如果想要添加信息,那就得在“庫(kù)存菜單.txt ”的這個(gè)文件里直接進(jìn)行輸入。這樣修改的好處在于,我可以把信息做的系統(tǒng)化,并 且能夠記錄每一次的出、入庫(kù)記錄,并加以顯示。最后,我將四個(gè)類封裝處理,設(shè)立工程,程序模塊化設(shè)計(jì),真正的體現(xiàn)了一個(gè)C+程序設(shè)計(jì)的思想。1、顯示菜單M-M-MMMMM-Mr自a自3自a自4 一 - 信信信信 妙妙fel/tAr.F:!=

17、s = 顯杳A出 =itmtC2(5情輸入對(duì)應(yīng)數(shù)字進(jìn)行你所要執(zhí)行地下一步動(dòng)作:岸插轉(zhuǎn)MMiKxHl_J在這里輸入“ 1、2、3、4、5”進(jìn)行菜單操作,每一步都會(huì)有系統(tǒng)字樣提示,根據(jù)提示 進(jìn)行信息錄入即可。如果錄入錯(cuò)誤,系統(tǒng)會(huì)有自動(dòng)提示,重新錄入正確信息即可。I4K-NKKliKKMip揄入對(duì)應(yīng)貲字ifl f7你劇姜擁魂耶一涉動(dòng)作:2、顯示信息。在主菜單中直接輸入數(shù)字 1,進(jìn)行菜單顯示,因?yàn)轱@示信息較多,所以最好調(diào)整一下顯示框大小,避免出現(xiàn)顯示錯(cuò)位的現(xiàn)象。fpft見(jiàn)勺 亠一 3h_lslsli-TI ; CAU5MUJ5比tesfetofAS詞輛聲坯iftWrbuMP佬理.曲清甫,甘應(yīng)械宇i行怩

18、所豆匸巧包下一步話卡!興witbJULl JIJA:申 D B D 印 . 0 u u h_ 臼小!flE u- D. p hu 4?13! L A- H c 1S?_-FMI1 ./hLiillldULI-fcWwHTFxrwi# BT| Fhlllpn Phj 1 ipry Phllg入広編號(hào)1 ulm1WBS1MB1|.MKk1IMM31LHM4b打護(hù)宅曲-:碎甲丁焉吉2 - t瑕T:顯示后,根據(jù)菜單提示輸入“ 1”返回主菜單,輸入“ 2”退出程序。(以下相同,不再提示)3、查找物品信息在主菜單中直接輸入數(shù)字 2,進(jìn)行物品查找,在查找選項(xiàng)中可以通過(guò)入庫(kù)編碼和設(shè)備名稱兩樣分別進(jìn)行查找。人庫(kù)

19、編號(hào)1S301 10002160031630416905 inawfig顫字鎮(zhèn)1返回茹單或趙弁入對(duì)底筋講;tT所號(hào)種電邑 dxs.nrhr w M 心醍腳1瞇!氐軸機(jī) n 卑 wui謹(jǐn) DUDsC-U wn2訓(xùn)巨規(guī)機(jī)J查找后,顯示該物品的詳細(xì)信息并且顯示近期來(lái)針對(duì)于本物品的出、入庫(kù)信息。 iCLXDMriALSlLrpf.工理護(hù)執(zhí)1 *S Exf皆栢人耐應(yīng)龍宇囲亍你所9 fMtifiTJfW=UHiHIl殆誓種類 名科主產(chǎn)舊胭昏它電F機(jī) 謹(jǐn)電視機(jī) *613-1-1rt吐F品*A阡鐮呂LUW1r t . I $ A. , -J J- J- llffl帶工磯畔 IT.I:- 利豐電H豈F.kuE

20、飛卩 fl ta-L J- -( c- c ( c c c rull- : l i r,nT-tilIn或IP.創(chuàng)勺111勺叩” s-wnxolnv- J J J-l -Ll- “ IHr.lll.*Ji Ir 斗nH豈遜甩 魅豊 J L- ft- F 卜 Fk b F Fb.T.J;.刁?豆召有5: jU. JJ -21222 /2 3- 4 ia CJ!r -1/ j- rr h2r t;4Mr E.ASyMNML2BilHill-HL2 1V 4 Uh J也飢:Fi 翼jLfftfl3-ai-ft2 19;42;m lt!imHlphilips1MHE11M1PhilipsIMSIM%I

21、BMJ10iMAg恬轎|人數(shù)課i回縈笙 駿字殛!退匕廷斥;5、退出程序在主菜單中直接輸入數(shù)字5,退出程序。七、附錄:(程序源代碼)1、Device 類#in clude#in clude#in clude#i nclude#in cludeusing n amespacestd;class Devicepublic:bool mask11;II疋義子段是否應(yīng)該被屏敝(true :子段無(wú)效,false :子段有效)void *fs; II指向全局fileSystem 對(duì)象的指針string strCategory; II設(shè)備分類:1-普通電視機(jī), 2-DVD , 3-DVD 電視機(jī)stri ng

22、 strName;II貨物名稱stri ng strDate;II日期IIstri ng strSize;II僅對(duì)TV有效,TV尺寸IIstri ng strType; II僅對(duì)TV有效,TV類型I/string strCharactor;II 僅對(duì) DVD 有效,DVD 規(guī)格stri ng strWeight;II重量stri ng strPrice;II價(jià)格stri ng strBra nd;II品牌int n Total;II數(shù)量stri ng strCode;II入庫(kù)編碼Device();virtual Device();virtual void Update(int n) = 0;I

23、I出入庫(kù)n臺(tái)設(shè)備的操作,n0:入庫(kù);n0:出庫(kù)virtual void Show():-0;II展示當(dāng)前庫(kù)存和出入庫(kù)記錄#include stdafx.h#in clude Device.hDevice:Device()Device:Device()2、DVD 類#in clude Device.h class DVD : virtual public Devicepublic:string strCharactor;/ 僅對(duì) DVD 有效,規(guī)格DVD();virtual DVD();void Update(int n);/入庫(kù)n臺(tái)設(shè)備的操作void Show(); /展示當(dāng)前庫(kù)存和出入庫(kù)記錄

24、;#include stdafx.h#in clude DVD.h#in clude fileSystem.hDVD:DVD()strCategory = DVD;for (int i = 0; i 0) sprintf(buf, %s (%s) 入庫(kù) %d 臺(tái)。, strName.c_str(), strCategory.c_str(), n); else sprintf(buf,%s (%s)出庫(kù) %d 臺(tái)。, strName.c_str(), strCategory.c_str(),-n);(fileSystem *)fs)-Save(buf);進(jìn)行物品記錄保存/顯示當(dāng)前庫(kù)存/顯示標(biāo)題行

25、for(i nt i = 0; i FIELDNUM; i +)if (maski) con ti nue;cout strTitlesi;cout en dl;/顯示全部數(shù)據(jù)stri ng valuesFIELDNUM;char totalBUFSIZE;values0 = strCategory;values1 = strName;values2 = strDate;values6 = strPrice;values7 = strWeight;values8 = strBra nd;spri ntf(total, %d, nTotal);values9 = total;values10 =

26、 strCode;values3 = NA;values4 = NA;values5 = strCharactor;for(i nt ii = 0; ii FIELDNUM; ii +)if (maskii) con ti nue;for(i nt j = valuesii.size(); j COL_WIDTH; j +) valuesii.appe nd(” );cout valuesii;cout en dl;/顯示出入庫(kù)記錄cout endl 出入庫(kù)記錄如下:ShowLog(strName);3、TV 類#in clude Device.h#in clude#i nclude#in c

27、ludeclass TV : virtual public Devicepublic:stri ng strSize;/僅對(duì)TV有效,尺寸stri ng strType;/僅對(duì)TV有效,類型TV();virtual TV();void Update(int n);/出入庫(kù)n臺(tái)設(shè)備的操作,n0:入庫(kù);n0:出庫(kù)void Show(); /展示當(dāng)前庫(kù)存和出入庫(kù)記錄#include stdafx.h#i nclude TV.h#in clude fileSystem.hTV:TV()strCategory = 普通電視機(jī)”for (int i = 0; i 0) sprintf(buf, %s (%

28、s) 入庫(kù) %d 臺(tái)。, strName.c_str(), strCategory.c_str(), n);else sprintf(buf, %s (%s)出庫(kù) %d 臺(tái)。, strName.c_str(), strCategory.c_str(),-n);(fileSystem *)fs)-Save(buf);void TV:Show() /展示當(dāng)前庫(kù)存和出入庫(kù)記錄/顯示當(dāng)前庫(kù)存/顯示標(biāo)題行for(i nt i = 0; i FIELDNUM; i +)if (maski) con ti nue;cout strTitlesi;cout en dl;/顯示全部數(shù)據(jù)stri ng value

29、sFIELDNUM;char totalBUFSIZE;values0 = strCategory;values1 = strName;values2 = strDate;values6 = strPrice;values7 = strWeight;spri ntf(total, %d, nTotal);values9 = total;values10 = strCode;values3 = strSize;values4 = strType;values5 = NA;for(i nt ii = 0; ii FIELDNUM; ii +)if (maskii) con ti nue;for(i

30、 nt j = valuesii.size(); j COL_WIDTH; j +) valuesii.appe nd(” );cout valuesii;cout en dl;/顯示出入庫(kù)記錄cout endl 出入庫(kù)記錄如下:ShowLog(strName);4、TV DVD 類#i nclude DVD.h#i nclude TV.hclass TV_DVD : virtual public TVpublic:DVD inn erDvd;TV_DVD();virtual TV_DVD();void Show(); /展示當(dāng)前庫(kù)存和出入庫(kù)記錄;#include stdafx.h#i ncl

31、ude TV_DVD.h#in clude fileSystem.hTV_DVD:TV_DVD()strCategory = DVD 電視機(jī);for (int i = 0; i FIELDNUM; i +)TV_DVD:TV_DVD()void TV_DVD:Show() /展示當(dāng)前庫(kù)存和出入庫(kù)記錄/顯示當(dāng)前庫(kù)存/顯示標(biāo)題行for(i nt i = 0; i FIELDNUM; i +)if (maski) con ti nue;cout strTitlesi;cout en dl;/顯示全部數(shù)據(jù)stri ng valuesFIELDNUM;char totalBUFSIZE;values0

32、= strCategory;values1 = strName;values6 = strPrice;values7 = strWeight;values8 = strBra nd;spri ntf(total, %d, nTotal);values9 = total;values10 = strCode;values3 = strSize;values4 = strType;values5 = inn erDvd.strCharactor;for(i nt ii = 0; ii FIELDNUM; ii +)if (maskii) con ti nue;for(i nt j = values

33、ii.size(); j COL_WIDTH; j +) valuesii.appe nd(” );cout valuesii;cout en dl;/顯示出入庫(kù)記錄cout endl 出入庫(kù)記錄如下: en dl;5、fileSystem 函數(shù)#in clude#in clude#in clude #i nclude#in cludeusing n amespacestd;#defi ne FIELDNUM11/庫(kù)存數(shù)據(jù)文件的字段數(shù)量#defi ne BUFSIZE100 /庫(kù)存數(shù)據(jù)文件的每行最大字?jǐn)?shù)#define COL WIDTH12 II用于顯示的列寬#defi ne MAXDEVIC

34、E20 II系統(tǒng)最大允許設(shè)備數(shù)量#in clude Device.h#i nclude TV.h#in clude DVD.h#include TV DVD.h#i nclude time.h#in clude stdio.hpublic:void ShowLog(string strName);void Save(stri ng strMsg);void Show();stri ng strTitlesFIELDNUM;void Ini tAllDevices();void * devsMAXDEVICE;2-DVD ,int devsCategoryMAXDEVICE;/ 設(shè)備分類:1-普

35、通電視機(jī),3-DVD電視機(jī)int nDevs;/庫(kù)存設(shè)備個(gè)數(shù)string strKCFileName;/ 庫(kù)存數(shù)據(jù)文件名string strLogFileName;/出入庫(kù)日志文件名fileSystem();virtual fileSystem();private:void release();stri ng strValuesFIELDNUM;#include stdafx.husing n amespace std;fileSystem:fileSystem()strKCFileName = 庫(kù)存清單.txt;strLogFileName =出入庫(kù)日志.txt;n Devs = 0;In

36、itAIIDevices();Show();Save(save);ShowLog(A型電視機(jī));/(DVD *)devs5)-Update(-5);/(TV *)devs5)-Show();fileSystem:fileSystem()release();release。;ifstream in (strKCFileName.c_str();/第一行是字段標(biāo)題for (int i = 0; i strTitlesi;for(i nt j = strTitlesi.size(); j COL_WIDTH; j +) strTitlesi.append();/cout strTitlesi;/co

37、ut en dl;/讀取全部庫(kù)存記錄n Devs = 0;bool bRead = true;while (bRead) for (int i = 0; i strValuesi;if (strValuesi.size() = 0) bRead = false;break;/cout strName = strValues1;tvTemp-strDate = strValues2;tvTemp-strSize = strValues3;tvTemp-strType = strValues4;tvTemp-strPrice = strValues6;tvTemp-strWeight = strV

38、alues7;tvTemp-strBra nd = strValues8;tvTemp-nT otal = atoi(strValues9.c_str(); tvTemp-strCode = strValues10;devsCategory n Devs = 1; else if (strValues3 = NA) / create DVD classDVD *dvdTemp = new DVD();devs nDevs = dvdTemp;dvdTemp-strName = strValues1; dvdTemp-strDate = strValues2; dvdTemp-strCharac

39、tor = strValues5;dvdTemp-strPrice = strValues6; dvdTemp-strWeight = strValues7; dvdTemp-strBra nd = strValues8;dvdTemp-nTotal = atoi(strValues9.c_str();dvdTemp-strCode = strValues10;devsCategory n Devs = 2;dvdTemp-fs = this; else / create TV_DVD classTV_DVD *tdTemp = new TV_DVD();devs nDevs = tdTemp

40、;tdTemp-strName = strValues1;tdTemp-strDate = strValues2;tdTemp-strSize = strValues3;tdTemp-strType = strValues4;tdTemp-strPrice = strValues6;tdTemp-strWeight = strValues7; tdTemp-strBra nd = strValues8;tdTemp-nT otal = atoi(strValues9.c_str(); tdTemp-strCode = strValues10;tdTemp-inn erDvd.strCharac

41、tor = strValues5;devsCategory n Devs = 3; tdTemp-fs = this;/cout en dl;n Devs +;in .close();Show();void fileSystem:release()for (int i = 0; i n Devs; i +) delete(devsi);devsCategoryi = 0;n Devs = 0;void fileSystem:Show()/顯示標(biāo)題行for(i nt i = 0; i FIELDNUM; i +)cout strTitlesi;cout en dl;/顯示全部數(shù)據(jù)for (int

42、 n = 0; n strCategory;values1 = (TV *)devs n)-strName;values6=(TV *)devs n)-strPrice;values7=(TV *)devs n)-strWeight;values8=(TV *)devs n)-strBra nd;sprintf(total, %d, (TV *)devsn)-nTotal);values9=total;values10=(TV *)devs n)-strCode;values3=(TV *)devs n)-strSize;values4=(TV *)devs n)-strType;values

43、5=NA;break;case 2:values0=(DVD *)devs n)-strCategory;values1=(DVD *)devs n)-strName;values2=(DVD *)devs n)-strDate;values6=(DVD *)devs n)-strPrice;values7=(DVD *)devs n)-strWeight;values8=(DVD *)devs n)-strBra nd;spri ntf(total, %d, (DVD *)devs n)- nTotal);values9=total;values10=(DVD *)devs n)-strCode;values3=NA;values5 = (DVD *)devs n)-strCharactor;break;case 3:valuesO = (TV_DVD *)devs n)-strCategory;values1 = (TV_DVD *)devs n)-strName;values2 = (TV_DVD *)devs n)-strDate;values 6 = (TV_DVD *)devs n)-strPrice;values7 = (TV_DVD *)devs n)-strWeight;values8 = (TV_

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論