版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、倉庫管理系統(tǒng)課程設(shè)計(jì)報(bào)告指導(dǎo)教師:孫暘姓名:黃志浩 學(xué)院:計(jì)算機(jī)科學(xué)與工程學(xué)班級(jí): 150407需求分析倉庫管理系統(tǒng)應(yīng)完成以下功能:(1)基礎(chǔ)數(shù)據(jù)設(shè)定 主要包括倉庫類型定義、倉庫定義、倉庫產(chǎn)品低儲(chǔ)、高儲(chǔ)、存儲(chǔ)限量及存儲(chǔ)期限、貨位定義、貨位存 儲(chǔ)能力、定義成本統(tǒng)計(jì)參數(shù)(包括總體系數(shù)、每種產(chǎn)品成本系數(shù))、預(yù)警機(jī)制時(shí)間系數(shù)定義。(2)倉庫入庫 包括原材料入庫和成品入庫1. 原材料入庫:一種是本地的采購:首先由采購處編寫請(qǐng)檢單,經(jīng)過質(zhì)檢部門質(zhì)檢合格后(質(zhì)檢部門 記錄質(zhì)檢結(jié)果,合格數(shù)、不合格數(shù)),倉庫保管員將質(zhì)檢合格的原料入庫(記錄采購部門定義的當(dāng)時(shí) 單價(jià))。系統(tǒng)自動(dòng)產(chǎn)生入庫單號(hào)(相當(dāng)于入庫批次號(hào)形式為
2、年月日)。此時(shí)為倉庫的假入庫狀態(tài)。辦 理入庫后,由倉庫管理員對(duì)入庫單明細(xì)確認(rèn)是否真入庫。入庫需要記錄項(xiàng)目有:倉庫、倉庫貨位、庫 管員、圖號(hào)、型號(hào)、顏色、數(shù)量。若質(zhì)檢不合格,則對(duì)不合格原料進(jìn)行挑選,把合格原料入庫。 另一種是外地的采購:首先由庫管員辦理入庫(放入待檢區(qū))。向采購部門和質(zhì)檢部門發(fā)消息。經(jīng)過 質(zhì)檢部門質(zhì)檢合格后方可入庫(入庫的操作同上)。不合格原料由倉庫管理員辦理手續(xù)進(jìn)入相應(yīng)的倉 庫,入庫時(shí)應(yīng)分貨位存儲(chǔ)(相應(yīng)的倉庫:如待檢區(qū)的不合格區(qū)),系統(tǒng)自動(dòng)產(chǎn)生入庫單號(hào)(相當(dāng)于批 次號(hào))。2. 成品入庫 :由生產(chǎn)車間經(jīng)過質(zhì)檢部門質(zhì)檢合格后 ,由生產(chǎn)車間填寫成品入庫單提交到倉庫管理員 , 不 合格
3、的入到待處理庫房。(3)倉庫出庫 包括原材料出庫、銷售出庫 1.原材料出庫:由生產(chǎn)車間填寫領(lǐng)料單(標(biāo)注班組),倉庫管理員辦理出庫確認(rèn)約束條件:按照批次 號(hào)先進(jìn)先出的原則。車間填寫領(lǐng)料單時(shí)可以是成品。提交倉庫時(shí),由倉庫通過質(zhì)部門提供的物資配料 清單分解需要的零部件數(shù)量,根據(jù)現(xiàn)庫存辦理出庫確認(rèn)。2.銷售出庫:銷售出庫由生產(chǎn)部門填寫的銷售出庫單,辦理出庫。銷售退庫經(jīng)質(zhì)檢部門合格后的成品 入到成品庫。(4)倉庫退庫 包括原材料退庫、成品退庫、銷售退庫 1.原材料退庫:生產(chǎn)車間將零部件或成品退回倉庫。首先有生產(chǎn)車間填寫退庫單(相當(dāng)于出庫為負(fù)) ,由質(zhì)檢部門確認(rèn)后方可由倉庫確認(rèn)。生產(chǎn)車間退庫時(shí),需要知道哪
4、個(gè)批次的貨物。2.成品退庫:成品退庫,首先由質(zhì)檢部門同意將產(chǎn)品從生產(chǎn)車間退回庫中。由車間填寫退庫單。經(jīng)過 倉庫管理員確定后辦理退庫。3. 銷售退庫:由廠商將產(chǎn)品退回倉庫,首先由質(zhì)檢部門質(zhì)檢,質(zhì)檢合格由倉 庫管理員辦理退庫單。不合格的存放待處理成品區(qū)中。(5)倉庫庫存查詢:根據(jù)倉庫一段時(shí)間內(nèi)發(fā)生的入、出、退匯總數(shù)量、金額。( 6 )統(tǒng)計(jì)分析:查詢倉庫產(chǎn)品數(shù)量分布情況。(7)自動(dòng)提醒預(yù)警信息:根據(jù)產(chǎn)品入出退庫時(shí)間和系統(tǒng)參數(shù)定義,統(tǒng)計(jì)倉庫目前的超量及庫存已低 于低儲(chǔ) ,存儲(chǔ)期限超出查詢。(8)倉庫臺(tái)帳:及時(shí)反映倉庫產(chǎn)品的入、出、退明細(xì)帳。( 9) 倉庫存儲(chǔ)成本統(tǒng)計(jì):根據(jù)產(chǎn)品成本系數(shù)和存儲(chǔ)時(shí)間計(jì)算存儲(chǔ)
5、成本 公式:產(chǎn)品在倉庫存儲(chǔ)時(shí)間差 *數(shù)量 *單價(jià) *相應(yīng)的總體系數(shù) *該產(chǎn)品自定義系數(shù)計(jì)算倉庫存儲(chǔ)成本概要設(shè)計(jì)源程序有 7 個(gè)文件:main.cpp 程序入口,顯示主菜單并跳轉(zhuǎn)到工具類相應(yīng)成員函數(shù)部分。tools.cpp tools.hpp 工具類,程序由 main.cpp 跳轉(zhuǎn)到工具類,有工具類具體跳轉(zhuǎn)到相應(yīng)部分。product.cpp product.hpp 產(chǎn)品類,主要負(fù)責(zé)保存產(chǎn)品信息,即對(duì)象模型,同時(shí)還負(fù)責(zé)將對(duì)象保存的數(shù) 據(jù)寫入文件,或?qū)⑽募械臄?shù)據(jù)經(jīng)過鏈表類保存到對(duì)象中。該文件中還有一個(gè)日志類 WareLogs ,繼承自 product ,負(fù)責(zé)每次入、出、退庫時(shí)需要記錄的信息,如 日
6、期、產(chǎn)品型號(hào)、數(shù)量,還負(fù)責(zé)將對(duì)象保存的數(shù)據(jù)寫入另外的日志文件,或?qū)⑷罩疚募械臄?shù)據(jù)讀取 到對(duì)象中。同時(shí)日志類對(duì)象還有另外一個(gè)功能:將基礎(chǔ)數(shù)據(jù)設(shè)定的數(shù)據(jù)寫入單獨(dú)的文件中。linkList.cpp linkList.hpp 鏈表類,保存的是節(jié)點(diǎn)類對(duì)象,節(jié)點(diǎn)類對(duì)象的數(shù)據(jù)域?yàn)楫a(chǎn)品類對(duì)象。鏈表類 的主要功能是將某文件中所有數(shù)據(jù)讀取為鏈表,或在鏈表對(duì)象中搜索出某產(chǎn)品并對(duì)該產(chǎn)品進(jìn)行相應(yīng)更 改之后再次將鏈表對(duì)象的數(shù)據(jù)域?qū)懭胛募? 成品不合格文件名/ 成品合格文件名/ 原材料不合格文件名/ 原材料合格文件名/ 基礎(chǔ)/ 保存入出退日用來保存數(shù)據(jù)的文件有 6 個(gè):const string noQuilityPro
7、dCFileName = "noQuilityProdCFile.txt" const string QuilityProdCFileName = "QuilityProdCFile.txt"const string noQuilityProdYFileName = "noQuilityProdYFile.txt" const string QuilityProdYFileName = "QuilityProdYFile.txt"const string LogsToTheFile = "logsFile
8、.txt" 信息設(shè)定配置文件const string ProductLogFileName = "productLog.txt" 志信息詳細(xì)設(shè)計(jì)產(chǎn)品類 數(shù)據(jù)成員部分: 貨物型號(hào)貨物數(shù)量貨位號(hào)單價(jià)該產(chǎn)品的自定義成本系數(shù)顏色庫管員倉庫名稱入出 退庫時(shí)間戳 成員方法:int setInWareList(); / 填寫入庫單,將數(shù)據(jù)保存在對(duì)象模型中 void setSaleWareList();/ 填寫銷售出庫單,將數(shù)據(jù)保存在對(duì)象模型中void setReceiveList(); / 填寫領(lǐng)料單,將數(shù)據(jù)保存在對(duì)象模型中 void setOutWareList();/ 填寫
9、退庫單,將數(shù)據(jù)保存在對(duì)象模型中int inToFile(string fileName); / 根據(jù)入庫單確認(rèn)入庫 void setProdModel(); / 填寫產(chǎn)品型號(hào) 供查詢使用 int getDayByChrono(); / 計(jì)算時(shí)間戳 時(shí)間戳的計(jì)算通過庫函數(shù)來實(shí)現(xiàn),需要包含頭文件 chrono 和 ratio ,每入出退庫是都需要調(diào)用該函 數(shù)記錄時(shí)間日期,供查詢使用。int product:getDayByChrono()using namespace std:chrono;typedef duration<int,std:ratio<60*60*24>>
10、days_type; time_point<system_clock,days_type> today = time_point_cast<days_type>(system_clock:now(); return today.time_since_epoch().count(); 鏈表類: 將鏈表的頭節(jié)點(diǎn)放在鏈表類中,節(jié)點(diǎn)類對(duì)象中含有數(shù)據(jù)域和指向下一個(gè)節(jié)點(diǎn)的指針域。 鏈表類的成員方法負(fù)責(zé)將鏈表的節(jié)點(diǎn)存儲(chǔ)的產(chǎn)品類對(duì)象數(shù)據(jù)寫入文件或?qū)⑽募械臄?shù)據(jù)提取為鏈 表。鏈表類的成員方法/ 提取數(shù)據(jù)為鏈表void getlinkListFromTheFile(string fileN
11、ame);/ 遍歷鏈表找到節(jié)點(diǎn)void forInLinkListForInAndOut(product *prod,string type);/ 根據(jù)產(chǎn)品型號(hào)搜索出倉庫名稱 / 產(chǎn)品分布型號(hào)void forInLinkListForLocation(product *prod,string type);/ 根據(jù)基本數(shù)據(jù)設(shè)定信息查詢高儲(chǔ)低儲(chǔ) 以及超出存儲(chǔ)期限的產(chǎn)品void forInLinkListForRemind(WareLogs *logs,string type);/ 根據(jù)產(chǎn)品對(duì)象的型號(hào)和該產(chǎn)品成本系數(shù)以及日志文件中的基本數(shù)據(jù)設(shè)定信息 計(jì)算該產(chǎn)品的存 儲(chǔ)成本void forInLink
12、ListForCost(product *prod,WareLogs *logs,string type);/ 將鏈表數(shù)據(jù)重新寫入文件void writeNodeToTheFile(string fileName);調(diào)試分析遇到過的問題:1.計(jì)算倉庫存儲(chǔ)成本和預(yù)警存儲(chǔ)期限時(shí),需要知道產(chǎn)品入出退庫的時(shí)間,這里采用庫函數(shù)實(shí)現(xiàn),可以 獲取當(dāng)前的時(shí)間戳,產(chǎn)品每次入出退庫時(shí)都需要將這個(gè)時(shí)間戳保存。用途如:通過當(dāng)前的時(shí)間戳減去 產(chǎn)品入庫的時(shí)間戳就是產(chǎn)品在倉庫的保存時(shí)間。C+2至于文件數(shù)據(jù)提取及修改,是通過鏈表實(shí)現(xiàn)的。對(duì)于鏈表的處理,C+和C是有些不同的,里,可以把節(jié)點(diǎn)類和鏈表類分別聲明,將頭節(jié)點(diǎn)作為鏈表類
13、對(duì)象的成員屬性,而每個(gè)節(jié)點(diǎn)的數(shù)據(jù)域保 存了產(chǎn)品類對(duì)象,指針域指向下一個(gè)節(jié)點(diǎn)。3入庫退庫功能之外的查詢工作,需要產(chǎn)品入出退庫時(shí)間、基礎(chǔ)數(shù)據(jù)設(shè)定等信息,這些信息保存在產(chǎn) 品對(duì)象中不合適,而且這樣使得產(chǎn)品對(duì)象過于龐大,但是又和產(chǎn)品對(duì)象的數(shù)據(jù)有密切關(guān)系,所以這里 采用繼承的方式,日志類繼承產(chǎn)品類,需要完成的功能是將基礎(chǔ)數(shù)據(jù)設(shè)定的數(shù)據(jù)和產(chǎn)品每次入出退庫 的時(shí)間寫入文件。寫入的時(shí)間需要和對(duì)應(yīng)產(chǎn)品進(jìn)行聯(lián)系,所以需要獲取對(duì)應(yīng)產(chǎn)品的型號(hào)、數(shù)量、單價(jià) 來計(jì)算總金額。4. C+當(dāng)自定義的頭文件過多時(shí),會(huì)有文件重復(fù)包含,即文件重復(fù)編譯的情況出現(xiàn)。這里采用宏的方 式處理:#ifndef identifier#defin
14、e identifier#endif5入庫時(shí)需要判斷入庫產(chǎn)品數(shù)量是否大于自定義的貨位存儲(chǔ)能力,同樣出庫時(shí)需要判斷出庫產(chǎn)品的數(shù) 量是否大于倉庫存儲(chǔ)產(chǎn)品數(shù)量。為此在入庫或出庫時(shí)通過鏈表類對(duì)象提取文件中保存的對(duì)應(yīng)型號(hào)產(chǎn)品 的數(shù)量與將要入庫或出庫的產(chǎn)品數(shù)量做比較,不符合就要終止入庫或退庫。用戶使用說明1第一次使用時(shí)需要到基礎(chǔ)數(shù)據(jù)設(shè)定模塊中設(shè)定數(shù)據(jù),這些數(shù)據(jù)在以后入出退庫時(shí)都會(huì)默認(rèn)調(diào)用 2入庫時(shí)填寫的入庫單中產(chǎn)品的成本系數(shù)不能大于基本數(shù)據(jù)設(shè)定中自定義的總體成本系數(shù)。3當(dāng)天入庫的產(chǎn)品暫時(shí)不計(jì)存儲(chǔ)成本 (該產(chǎn)品存儲(chǔ)天數(shù)為0 )。4.牢記產(chǎn)品型號(hào),倉庫的查詢功能除了 “倉庫庫存分析查詢 ”是通過時(shí)間段查詢數(shù)據(jù)
15、,其余都是通過產(chǎn) 品型號(hào)來查詢。測試結(jié)果1.基礎(chǔ)數(shù)據(jù)設(shè)定測試倉魔骨理索堀-】-搭礎(chǔ)嗾據(jù)設(shè)定i2-倉庫入庫它庫出庫斗-住庫逼庫5尢庫庫存查詢=_! =_G-址計(jì)分祈7-HKlff 佶息£-倉庫合箱一一9-產(chǎn)品存儒成本宣詢©-遇出慕址1瑞入它陽高存儲(chǔ)n昶0錨入它陽低存儲(chǔ)債se輪入播蒞存儲(chǔ)能力se新入它甫盤丸存儲(chǔ)期國3編入侖馬存帽思伸咸本系齟【已辿冋主菓單2入庫測試它疳置理眾現(xiàn)1 基黜敘蝎說定2倉 EfAff3- 纟庫出陣4- 它庫退即5- 纟胃馬存登詢 專觀計(jì)另析了驥琨憩腎信鼠 鼻&廉臺(tái)儀產(chǎn)品存麗咸本查詢 醱退岀系址2丄-睡品入芹2凍材啣入PF1隨卷驢門確認(rèn)合權(quán)?y增曙
16、入暉單 輔入貨糊型號(hào)4凸5 錯(cuò)入薦舊敵播3&輪入第估游列號(hào)沖鶴入嚴(yán)品單悄M騙入旺本泵敢0,5 騙入壇物臨色red綣入庫晡員J1名zhangsar揣人它甫名稱歡庶 交件寫入完畢3適冋主盤單a-Jt出雷4- 它陣退庫5- ffirs 詢6- iftH分析丁報(bào)買朋憩信忌B它眸善振9-產(chǎn)品存層陡澤直詢樸返出系笛丄-成品人障2-原材廻人岸2 癥趨陽門號(hào)認(rèn)合格H錯(cuò)誤處理輪入黃務(wù)堂號(hào)19T& 埔入存?zhèn)蛟]握30 人貨位序列號(hào)2 特入產(chǎn)品單橋45 輔人成本釆跟“ 錯(cuò)入貨期戰(zhàn)世yellow sSAfffegftS Lisi 輸入倉甫客稱kkck 衣件寫入完筆 已迪冋王菜單1- 厳品入I?2- 原材
17、HAFT1康檢彰門酬認(rèn)作幫了 丫輸入貨羯型號(hào)3£4箱入存儲(chǔ)腔顯51謹(jǐn)嚴(yán)晶在貸怕的蝕筠過細(xì)設(shè)的貨負(fù)哼體鏈力50文件寫入失阪已返回主朶單3出庫測試 j6l-"舌 9- MJ £ 4FJ-羽礎(chǔ)融姑設(shè)迄2-倉眸人障1A倉背出芹4-ftWjEW"倉育甫存査詢4煩計(jì)分析-提耀枝信恵4色庫白梅g 產(chǎn)品吏儲(chǔ)成本宣詢盲退出系尿3i-M料出陣 工-鎖鶉出磚211行甜比出甫捷峯入!5物坐號(hào)RT W1 LJ IrUJT '14r55諭入施物藪避20己返回主菜單錯(cuò)誤處理出庫2時(shí)入賀栩聖號(hào)4r55篇入貨徹飯: 31撓趙的貫恂菸丸于常存IS顯 己返回至黑單4退庫測試倉睥管理慕
18、織g庫入庫弓-倉(?出庫斗4庫退庫5-Et存言詢 卜憂計(jì)分祈7 -提纏碩*借息P-總庫臺(tái)厳*-產(chǎn)品存儒旺本時(shí) 詛出系舞1-戀材耦遇庫2 -成品追岸L底拾部門確認(rèn)合林?丫»" Lj| _JWW瑞入貨物型號(hào)19t5備入貨檢畝豎J5.倉庫庫存查詢測試填寫退PF®不英于15字) badn X b +井陽 fa-=!I l 士 *'e*M'9K-Hria*«ri-!V L-墓建SS8S設(shè)定 Z-倉庫入庫3-住庫出庫 4-隹庫退陽 5-它庠庫存變?cè)?6-里計(jì)分折 丁-提程預(yù)*潔息8_-&S臺(tái)厳 9-產(chǎn)品存貳版本譽(yù)詢 0-遇出船址5藝能插述:堪
19、宛輸人的股時(shí)£晝洶倉殲岌生的入H!退總數(shù) /蠱粧竜扎要査詢的賤間敲t單位;天】3 M卜是該時(shí)間民內(nèi)它酶的入即信總 產(chǎn)品犁號(hào)人甫齊戰(zhàn)打總金莊4r553972919t5301350WTft該時(shí)問段內(nèi)它馬的出陽信息 產(chǎn)品里號(hào)出睥前敷總金貶4r551«240W卜是謹(jǐn)阿同踐肉電障藥追庫広息 產(chǎn)話型號(hào)直岸的融:島金履l?t?331485已返冋主黑單6統(tǒng)計(jì)分析測試B 19 MW- WB b '一基碣罪嬉迎忑 2-15人陣 3 它暉出席"4-&ff J&1¥ 與-倉靑岸善童詢一京細(xì)計(jì)分折了 握展預(yù)*信思 B-倉應(yīng)臺(tái)恢 g-產(chǎn)品彈藕咸木宜詢 齊遇岀
20、梟址塌莊摳込;曰嚴(yán)品生號(hào)戰(zhàn)恵岀廣矗分昂惜尿(它睥名稱/ Sti)包拮成品倉青和篙埒料它璋總?cè)氪痹~嚴(yán)品圭號(hào)r55成品它帝去詢活杲如下產(chǎn)品型尋甌在在障IS悅存代皴帝4r55xkck410原榜爲(wèi)乜庫查詢紅卑姐下7.提醒預(yù)警信息測試漫肓在原捕型倉腎中松到諧型號(hào)產(chǎn)品已建回王采單-1-基峨裁曙設(shè)定 21&陣入庫-勺倉庫出庫 4-rr退麻 與倉庫庫存臺(tái)詢 g 址計(jì)分析«7-握禪預(yù)餐信兌-R倉庫合HS一勺-產(chǎn)品存儲(chǔ)成才查詢 0-退出系貌功能播迖;根據(jù)址姦數(shù)據(jù)踰龍述出倉障高儈i惟儲(chǔ)/存儲(chǔ)朋腿 咸品倉即沒有達(dá)到存儲(chǔ)朗限的貨栩磁品倉育育存已底于低儲(chǔ) 目前倉疔魅59B為19篠材蛙奩靑浚肓達(dá)到存儲(chǔ)魁
21、餛的賞耦原牯料倉庫陣存已低于低儲(chǔ)目前倉庫fil費(fèi)為33己適回主柴單8倉庫臺(tái)賬測試基腳KJS逛定2 倉陣人庫 =e陣出障 4 倉庫退庫5 倉陣薛存克詢召駅計(jì)分析 7-WlSra»fSfl a-ftSUJi g-產(chǎn)品再儲(chǔ)磁本査詢 0-遇出矗班 it能幅超;電據(jù)產(chǎn)品3;號(hào)輪秋它席產(chǎn)品的人、出、週明如花輸入特查悔產(chǎn)品型可r55 WTfiAPrS產(chǎn)島生號(hào)入唐的戲產(chǎn)暑單價(jià)總金砸ffiisi?列號(hào)色障曽員倉肝專狗4r5530247294redZtlAAQSafixkekUTS岀陽情總產(chǎn)品世號(hào)人肓的戰(zhàn)產(chǎn)帛單價(jià)總金顓at位序列號(hào)質(zhì)拘怖色侖曽員諄離時(shí)何Jr5510242404redxkeke沒有找到諺丹
22、品退陽相關(guān)信忌 已返冋主菜單錯(cuò)誤處理 它 岸管 理 靈 迺1 畐礎(chǔ)故據(jù)設(shè)定 2-倉陣入庫一3-倉席出庫 4-倉庫退庫一5-倉所所存査詢 6-旣計(jì)號(hào)靳一丁-提 srasfss g 它罪臺(tái)弱一4產(chǎn)品存檎舷本倉詞 0-ig出系址功腿描述;揺搖產(chǎn)品翌號(hào)16岀它庫產(chǎn)品的入岀、退明±ffl帳 端入待萱詢產(chǎn)品型號(hào)345沒肓在成踴它厲中找到該產(chǎn)品正在愿材料&商申搜案沒有在原材曉£庫中撰索到該產(chǎn)品三返回主加單9產(chǎn)品存儲(chǔ)成本查詢它障營坯糸熱孚礎(chǔ)S5裾說疋2-它腎人育砰出阡4 幺肝退肯5-空匝廊存查詢 蠱禺計(jì)分新"擬預(yù)嚳倍忌a-ftrt臺(tái)魅9-產(chǎn)品存倍雀本色厲 ,退出系統(tǒng)9功能
23、說陰:探攜嚴(yán)呂生號(hào)計(jì)鼻蓬廣品存儁阪那繾入待査詞產(chǎn)品型號(hào)斗5B訓(xùn)下晶誡產(chǎn)品幷咸品代甫曲幡當(dāng)釧峑iS 13物今天入肓皆時(shí)不計(jì)殍情曲那IU下足該產(chǎn)品在原材料倉庫的捆壺皓噩當(dāng)天入庫的產(chǎn)品由于存儲(chǔ)天數(shù)為0,無法計(jì)算存儲(chǔ)成本。為了測試改功能,將文件中該產(chǎn)品的入庫時(shí)間戳),測試結(jié)果如下沿有在原材料隹陽中找到£r5$ 已返回主菜單由16996修改為16990后(入庫時(shí)間修改為前六天一倉犀官理系境-1 蚤礎(chǔ)教鷹役疋3仝序出庫4倉廉週庫 &障陽言詢6-統(tǒng)計(jì)分折 7捉隆預(yù)&信忘&庫臺(tái)忙9-產(chǎn)品存悟施本旨詢 臼“退岀系址9切陲說明;根據(jù)產(chǎn)品也號(hào)計(jì)癢謹(jǐn)產(chǎn)鬲存儲(chǔ)慮n 箱人待宣詢產(chǎn)品型號(hào)4
24、r55以下是該存嘉在咸昌倉肯的捜拿蜓果455的存埔曲本為72專H卜呈該產(chǎn)晶在原対蹲倉帶呂震愛V;果沒有在原材斡倉甫中找到455已逋回生黑單附錄/ main.cpp/ 倉庫管理系統(tǒng)/ Created by xiaoka on 16/7/4./ Copyright ? 2016 年 黃志浩 . All rights reserved. / #include "tools.hpp"#include <iostream> using namespace std;void printToScreen() cout<<endl<<endl;cout&
25、lt;<" 倉庫管理系統(tǒng) "<<endl<<"-1- 基礎(chǔ)數(shù)據(jù)設(shè)定 "<<endl<<"-2- 倉庫入庫 "<<endl<<"-3- 倉庫出庫 "<<endl<<"-4- 倉庫退庫 "<<endl<<"-5- 倉庫庫存查詢 "<<endl<<"-6- 統(tǒng)計(jì)分析 "<<endl<<&qu
26、ot;-7- 提醒預(yù)警信息 "<<endl<<"-8- 倉庫臺(tái)帳 "<<endl<<"-9- 產(chǎn)品存儲(chǔ)成本查詢 "<<endl<<"-0- 退出系統(tǒng) "<<endl;cout<<endl<<endl;int main(int argc, const char * argv) printToScreen();int menu = 0; while (1) cin>>menu; tools *t = new t
27、ools(); switch (menu) case 1: / 基本數(shù)據(jù)設(shè)定 t->baseSetting(LogsToTheFile); break;case 2: / 倉庫入庫 t->addProduct(); break;case 3: / 倉庫出庫 t->outProduct(); break;case 4: / 倉庫退庫 t->againProduct(); break;case 5: / 倉庫庫存查詢 t->wareStockAsk(); break;case 6: / 統(tǒng)計(jì)分析t->allAnalyse();/ 提醒預(yù)警/ 倉庫臺(tái)賬break;
28、case 7:t->remindWarning();break;case 8:break;case 9:t->wareAccount();/ 倉庫存儲(chǔ)成本查詢t->productForCost(); break;case 0: delete t; exit(0); break;default: cout<<" 請(qǐng)正確輸入菜單對(duì)應(yīng)序號(hào) "<<endl; break;delete t; cout<<" 已返回主菜單 "<<endl; printToScreen(); return 0;/ to
29、ols.hpp/ 倉庫管理系統(tǒng)/ Created by xiaoka on 16/7/4./ Copyright ? 2016 年 黃志浩 . All rights reserved. /#include <fstream>#include <string> using namespace std;class linkList;class product;/ 成品不合格文件名class WareLogs;const string noQuilityProdCFileName = "noQuilityProdCFile.txt"/ 成品合格文件名/ 原
30、材料不合格文件名/ 原材料合格文件名/ 基礎(chǔ)信息設(shè)定配置文件/ 保存入出退日志信息const string QuilityProdCFileName = "QuilityProdCFile.txt" const string noQuilityProdYFileName = "noQuilityProdYFile.txt" const string QuilityProdYFileName = "QuilityProdYFile.txt" const string LogsToTheFile = "logsFile.txt&
31、quot;const string ProductLogFileName = "productLog.txt"class tools public:/ 設(shè)置基本信息void baseSetting(string fileName);/ 質(zhì)檢部門檢驗(yàn)合格string isQuilified();/ 填寫入庫單 確認(rèn)入庫void addProdToFile(string fileOKName,string fileNOName);/ 倉庫入庫入口函數(shù)void addProduct();/ 填寫領(lǐng)料單銷售出庫單void outProdFromFile(product *prodL
32、ist,string fileName,string type);/ 倉庫出庫入口函數(shù)void outProduct();/ 將退庫的貨物按合格與否分類void OKOrNo(string fileOKName,string fileNoOKName);/ 退庫入口函數(shù)void againProduct();/ 倉庫庫存查詢?nèi)肟趘oid wareStockAsk();/ 統(tǒng)計(jì)分析入口void allAnalyse();/ 提醒預(yù)警void remindWarning();/ 倉庫臺(tái)賬 void wareAccount();/ 產(chǎn)品存儲(chǔ)成本查詢 void productForCost();/ t
33、ools.cpp/ 倉庫管理系統(tǒng)/ Created by xiaoka on 16/7/4./ Copyright ? 2016 年 黃志浩 . All rights reserved. /#include "tools.hpp"#include "linkList.hpp"#include "product.hpp"* 倉庫基礎(chǔ)信息設(shè)定 將設(shè)定的信息寫入文件*/void tools:baseSetting(string fileName)double maxStock,minStock,maxAbility,maxDate,cost
34、Factor;cout<<" 輸入倉庫高存儲(chǔ)量 "cin>>maxStock;cout<<" 輸入倉庫低存儲(chǔ)量 "cin>>minStock;cout<<" 輸入貨位存儲(chǔ)能力 "cin>>maxAbility;cout<<" 輸入倉庫最大存儲(chǔ)期限 "cin>>maxDate;cout<<" 輸入倉庫存儲(chǔ)總體成本系數(shù) "cin>>costFactor;fstream fout(f
35、ileName,ios:out);if (!fout) cout<<" 打開 "<<fileName<<" 失敗 "<<endl;return;fout<<maxStock<<"n"<<minStock<<"n"<<maxAbility<<"n"<<maxDate<<"n"<<costFactor<<"
36、;n"fout.close();* 質(zhì)檢部門確認(rèn)合格與否* return "y/Y" 合格 "n/N 不合格 "*/string tools:isQuilified()string is;while (1) cout<<" 質(zhì)檢部門確認(rèn)合格 ?" cin>>is;if (is="y"|is="Y") return "y"else if (is="n"|is="N")return "n"
37、;cout<<" 合格輸入 y/Y"<<endl<<" 不合格輸入 n/N"<<endl;/*/void tools:addProdToFile(string fileOKName,string fileNOName) string is = isQuilified();if (is="y") product* q = new product();int iss = q->setInWareList(); / 填寫入庫單 if (iss=2) return;q->inToFi
38、le(fileOKName); / 根據(jù)入庫單確認(rèn)入庫 WareLogs *log = new WareLogs();log->wirteChangeToTheFile(q, ProductLogFileName, "1"); delete q; else if(is="n")product* q = new product();int iss = q->setInWareList(); / 填寫入庫單 if (iss=2) return;q->inToFile(fileNOName); / 根據(jù)入庫單放到不合格成品倉庫 WareLog
39、s *log = new WareLogs();log->wirteChangeToTheFile(q, ProductLogFileName, "1"); delete q;填寫入庫單將入庫單數(shù)據(jù) ( 產(chǎn)品詳盡信息 ) 寫入文件/* 倉庫入庫 入口函數(shù)*/void tools:addProduct()string t;while (1) cout<<"1- 成品入庫 "<<endl<<"2- 原材料入庫 "<<endl;cin>>t;if (t="1&quo
40、t;) addProdToFile(QuilityProdCFileName,noQuilityProdCFileName); break;else if (t="2") addProdToFile(QuilityProdYFileName, noQuilityProdYFileName); break;cout<<" 請(qǐng)輸入正確序號(hào) "<<endl;/*提取文件中數(shù)據(jù)為鏈表 根據(jù)出庫單或領(lǐng)料單修改鏈表數(shù)據(jù) 并將數(shù)據(jù)重新寫入文件* param prodList* param fileName* param type */出庫單或領(lǐng)
41、料單數(shù)據(jù) 文件名 2=出庫 3=原材料退庫成品退庫void tools:outProdFromFile(product *prodList,string fileName,string type) linkList *link = new linkList();link->getlinkListFromTheFile(fileName);if (link->head->next=NULL) cout<<" 提取數(shù)據(jù)失敗 "<<endl; return;/ 遍歷鏈表對(duì)鏈表相應(yīng)節(jié)點(diǎn)進(jìn)行修改/ 將鏈表數(shù)據(jù)寫入文件 link->for
42、InLinkListForInAndOut(prodList,type); link->writeNodeToTheFile(fileName);delete link;return;/*倉庫出庫 入口函數(shù)*/ void tools:outProduct()string is;while (1) cout<<"1- 原材料出庫 "<<endl<<"2- 銷售出庫 "<<endl;cin>>is;if (is="1") product *p = new product()
43、;p->setReceiveList();outProdFromFile(p, QuilityProdYFileName,"2");break;else if (is="2") product 退庫入口函數(shù)p = new product(); p->setSaleWareList(); outProdFromFile(p, QuilityProdCFileName,"2"); break;cout<<" 輸入正確序號(hào) "<<endl;/*/void tools:againProd
44、uct()string is,isOK,fileName;while (1) cout<<"1- 原材料退庫 "<<endl<<"2- 成品退庫 "<<endl<<"3- 銷售退庫 "<<endl; cin>>is;if (is="1") / 原材料退庫 需要知道哪個(gè)批次的 貨物OKOrNo(QuilityProdYFileName, noQuilityProdYFileName);else if (is="2"
45、)/ 成品退庫 需要輸入:倉庫名稱、圖號(hào)、型號(hào)、數(shù)量、車間、發(fā)生日期、倉庫管理員、原因OKOrNo(QuilityProdCFileName, noQuilityProdCFileName);else if (is="3")/ 銷售退庫OKOrNo(QuilityProdCFileName, noQuilityProdCFileName);elsecout<<" 請(qǐng)輸入正確序號(hào) "將退庫的貨物按合格與否分類* param fileOKName 合格產(chǎn)品存放 文件名* param fileNoOKName 不合格產(chǎn)品存放 文件名*/void t
46、ools:OKOrNo(string fileOKName,string fileNoOKName)string isOK;isOK = isQuilified();product *p = new product(); if (isOK="y") p->setOutWareList(); / 填寫退庫單 outProdFromFile(p, fileOKName,"3");/ 提取文件中數(shù)據(jù)為鏈表 根據(jù)出庫單或領(lǐng)料單修改鏈表數(shù)據(jù) 并將數(shù)據(jù)重新寫入文件elsecout<<" 填寫入庫單 存入原材料倉庫不合格區(qū) "&l
47、t;<endl;p->setInWareList(); / 填寫入庫單 p->inToFile(fileNoOKName);break;/*/void tools:remindWarning()cout<<" 功能描述 :根據(jù)基本數(shù)據(jù)設(shè)定輸出倉庫高儲(chǔ)/低儲(chǔ)/存儲(chǔ)期限 "<<endl<<endl;WareLogs *w = new WareLogs();int isOK = w->readBaseSettingFromTheFile(LogsToTheFile); if (isOK=2) return;linkLis
48、t *link = new linkList(); link->getlinkListFromTheFile(QuilityProdCFileName); link->forInLinkListForRemind(w,"4");delete link;link = new linkList();倉庫庫存分析查詢?nèi)肟?/void tools:wareStockAsk() int day;cout<<" 功能描述 :根據(jù)輸入的段時(shí)間查詢倉庫發(fā)生的入出退總數(shù)量金額"<<endl<<endl;cout<<
49、;" 輸入要查詢的時(shí)間段 (單位 :天 ) "cin>>day;WareLogs 提醒預(yù)警信息入口 根據(jù)基本數(shù)據(jù)設(shè)定 輸出倉庫高儲(chǔ)/低儲(chǔ)/存儲(chǔ)期限log = new WareLogs(); log->readDateFromFile(day, ProductLogFileName, 1); delete log;log = new WareLogs();log->readDateFromFile(day, ProductLogFileName, 2); delete log;log = new WareLogs();log->readDateF
50、romFile(day, ProductLogFileName, 3); delete log;* 統(tǒng)計(jì)分析入口 由產(chǎn)品型號(hào)搜索出產(chǎn)品分布情況 ( 倉庫名稱貨位 ) 包括成品倉庫和原材料倉庫 */void tools:allAnalyse()coutvv"功能描述:由產(chǎn)品型號(hào)搜索出產(chǎn)品分布情況(倉庫名稱/貨位)包括成品倉庫和原材料倉庫 "<<endl<<endl;linkList *link = new linkList();product *prod = new product();prod->setProdModel();link->
51、getlinkListFromTheFile(QuilityProdCFileName);/ 將文件中的數(shù)據(jù)提取為鏈表link->forInLinkListForLocation(prod,"4");/ 查詢成品倉庫delete link;link = new linkList();link->getlinkListFromTheFile(QuilityProdYFileName);/ 將文件中的數(shù)據(jù)提取為鏈表link->forInLinkListForLocation(prod,"5");/ 查詢?cè)牧蟼}庫delete prod;li
52、nk->getlinkListFromTheFile(QuilityProdYFileName);link->forInLinkListForRemind(w, "5");delete link;/*/void tools:productForCost()cout<<" 功能說明 :根據(jù)產(chǎn)品型號(hào)計(jì)算該產(chǎn)品存儲(chǔ)成本 "<<endl<<endl; product *p = new product();WareLogs *logs = new WareLogs(); logs->readBaseSettin
53、gFromTheFile(LogsToTheFile); p->setProdModel();linkList *link = new linkList(); link->getlinkListFromTheFile(QuilityProdCFileName); link->forInLinkListForCost(p, logs,"4");delete link;link = new linkList(); link->getlinkListFromTheFile(QuilityProdYFileName); link->forInLinkL
54、istForCost(p, logs,"5");delete link;delete p;delete logs;倉庫臺(tái)賬入口*/void tools:wareAccount()cout<<" 功能描述 :根據(jù)產(chǎn)品型號(hào)輸出倉庫產(chǎn)品的入、出、退明細(xì)帳"<<endl<<endl;string model = ""cout<<" 輸入待查詢產(chǎn)品型號(hào) "cin>>model;3 表示退庫WareLogs 產(chǎn)品存儲(chǔ)成本查詢w = new WareLogs(); w-
55、>readFromFileToScreen(ProductLogFileName, model, 1);/1 入庫 2 出庫需要填寫原因delete w;w = new WareLogs(); w->readFromFileToScreen(ProductLogFileName, model, 2); delete w;w = new WareLogs(); w->readFromFileToScreen(ProductLogFileName, model, 3); delete w;/ product.hpp/ 倉庫管理系統(tǒng)/ Created by xiaoka on 16
56、/7/4./ Copyright ? 2016 年 黃志浩 . All rights reserved. /#ifndef product_hpp#define product_hpp#include <iostream> #include <fstream> using namespace std;class product protected: string prodModel; double prodNum; string location; double price; double costNum; string prodColor; string people
57、Name; string wareName; int intoWareDay; int outFromWareDay; int againToWareDay; void print();public: product(); product(const product *p); friend class linkList; friend class wareHouse; friend class WareLogs; string getProdModel(); double getProdNum(); double getProdPrice(); int setInWareList(); voi
58、d setSaleWareList(); void setReceiveList(); void setOutWareList(); int inToFile(string fileName); void setProdModel(); int getDayByChrono();/ 貨物型號(hào)/ 貨物存儲(chǔ)數(shù)量 / 倉庫貨位序列號(hào)/ 產(chǎn)品單價(jià)/ 成本系數(shù)/ 貨物顏色/ 貨物庫管員/ 倉庫名稱/ 入庫時(shí)間戳/ 出庫時(shí)間戳 / 退庫時(shí)間戳/ 數(shù)量/ 單價(jià)/ 填寫入庫單/ 填寫銷售出庫單/ 填寫領(lǐng)料單/ 填寫退庫單/ 根據(jù)入庫單確認(rèn)入庫/ 填寫產(chǎn)品型號(hào) 供查詢使用/ 計(jì)算時(shí)間戳#endif /* product_hpp */ 最大存儲(chǔ)限量class WareLogs:public product private:double maxStock;double minStock; double maxAbility; double maxDate; double costFactor; string type;string changeModel; double changeNum;/ 最小存儲(chǔ)限量/ 最大存儲(chǔ)能力/ 最大存儲(chǔ)期限/ 產(chǎn)品總體存儲(chǔ)成本/1 入庫 2 出庫 3 表示退庫 需要填寫原因double changeToatolMoney; int intoWareDay;in
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 44970-2024糧油機(jī)械氣墊帶式輸送機(jī)
- 《解讀學(xué)習(xí)金字塔》課件
- 【大學(xué)課件】危害公共安全罪
- 《計(jì)算機(jī)安全概述》課件
- 膚色暗黃的臨床護(hù)理
- 孕期同房出血的健康宣教
- 《機(jī)械設(shè)計(jì)基礎(chǔ)》課件-第11章
- 孕期胸痛的健康宣教
- 喉插管損傷的健康宣教
- 孕期痤瘡的健康宣教
- 中醫(yī)內(nèi)科學(xué)虛勞培訓(xùn)課件
- 2024廣東省建筑安全員A證考試題庫附答案
- 3、2024廣西專業(yè)技術(shù)人員繼續(xù)教育公需科目參考答案(99分)
- 2024版房屋市政工程生產(chǎn)安全重大事故隱患判定標(biāo)準(zhǔn)內(nèi)容解讀
- 期末 (試題) -2024-2025學(xué)年人教PEP版(2024)英語三年級(jí)上冊(cè)
- 完整2024年國有企業(yè)管理人員處分條例專題課件
- 馬克思主義基本原理考試題庫附答案【典型題】
- 小學(xué)英語社團(tuán)教案(共19頁)
- 工作文檔有關(guān)于恐龍的資料以及有關(guān)于圖片的資料
- 0-15V直流穩(wěn)壓電源設(shè)計(jì)
- 某高速公路路面改建工程施工監(jiān)理投標(biāo)文件報(bào)價(jià)表
評(píng)論
0/150
提交評(píng)論