版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、倉庫管理系統(tǒng)課程設(shè)計報告指導(dǎo)教師:孫暘姓名:黃志浩 學(xué)院:計算機(jī)科學(xué)與工程學(xué)班級: 150407需求分析倉庫管理系統(tǒng)應(yīng)完成以下功能:(1)基礎(chǔ)數(shù)據(jù)設(shè)定 主要包括倉庫類型定義、倉庫定義、倉庫產(chǎn)品低儲、高儲、存儲限量及存儲期限、貨位定義、貨位存 儲能力、定義成本統(tǒng)計參數(shù)(包括總體系數(shù)、每種產(chǎn)品成本系數(shù))、預(yù)警機(jī)制時間系數(shù)定義。(2)倉庫入庫 包括原材料入庫和成品入庫1. 原材料入庫:一種是本地的采購:首先由采購處編寫請檢單,經(jīng)過質(zhì)檢部門質(zhì)檢合格后(質(zhì)檢部門 記錄質(zhì)檢結(jié)果,合格數(shù)、不合格數(shù)),倉庫保管員將質(zhì)檢合格的原料入庫(記錄采購部門定義的當(dāng)時 單價)。系統(tǒng)自動產(chǎn)生入庫單號(相當(dāng)于入庫批次號形式為
2、年月日)。此時為倉庫的假入庫狀態(tài)。辦 理入庫后,由倉庫管理員對入庫單明細(xì)確認(rèn)是否真入庫。入庫需要記錄項目有:倉庫、倉庫貨位、庫 管員、圖號、型號、顏色、數(shù)量。若質(zhì)檢不合格,則對不合格原料進(jìn)行挑選,把合格原料入庫。 另一種是外地的采購:首先由庫管員辦理入庫(放入待檢區(qū))。向采購部門和質(zhì)檢部門發(fā)消息。經(jīng)過 質(zhì)檢部門質(zhì)檢合格后方可入庫(入庫的操作同上)。不合格原料由倉庫管理員辦理手續(xù)進(jìn)入相應(yīng)的倉 庫,入庫時應(yīng)分貨位存儲(相應(yīng)的倉庫:如待檢區(qū)的不合格區(qū)),系統(tǒng)自動產(chǎn)生入庫單號(相當(dāng)于批 次號)。2. 成品入庫 :由生產(chǎn)車間經(jīng)過質(zhì)檢部門質(zhì)檢合格后 ,由生產(chǎn)車間填寫成品入庫單提交到倉庫管理員 , 不 合格
3、的入到待處理庫房。(3)倉庫出庫 包括原材料出庫、銷售出庫 1.原材料出庫:由生產(chǎn)車間填寫領(lǐng)料單(標(biāo)注班組),倉庫管理員辦理出庫確認(rèn)約束條件:按照批次 號先進(jìn)先出的原則。車間填寫領(lǐng)料單時可以是成品。提交倉庫時,由倉庫通過質(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)車間退庫時,需要知道哪
4、個批次的貨物。2.成品退庫:成品退庫,首先由質(zhì)檢部門同意將產(chǎn)品從生產(chǎn)車間退回庫中。由車間填寫退庫單。經(jīng)過 倉庫管理員確定后辦理退庫。3. 銷售退庫:由廠商將產(chǎn)品退回倉庫,首先由質(zhì)檢部門質(zhì)檢,質(zhì)檢合格由倉 庫管理員辦理退庫單。不合格的存放待處理成品區(qū)中。(5)倉庫庫存查詢:根據(jù)倉庫一段時間內(nèi)發(fā)生的入、出、退匯總數(shù)量、金額。( 6 )統(tǒng)計分析:查詢倉庫產(chǎn)品數(shù)量分布情況。(7)自動提醒預(yù)警信息:根據(jù)產(chǎn)品入出退庫時間和系統(tǒng)參數(shù)定義,統(tǒng)計倉庫目前的超量及庫存已低 于低儲 ,存儲期限超出查詢。(8)倉庫臺帳:及時反映倉庫產(chǎn)品的入、出、退明細(xì)帳。( 9) 倉庫存儲成本統(tǒng)計:根據(jù)產(chǎn)品成本系數(shù)和存儲時間計算存儲
5、成本 公式:產(chǎn)品在倉庫存儲時間差 *數(shù)量 *單價 *相應(yīng)的總體系數(shù) *該產(chǎn)品自定義系數(shù)計算倉庫存儲成本概要設(shè)計源程序有 7 個文件: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)品信息,即對象模型,同時還負(fù)責(zé)將對象保存的數(shù) 據(jù)寫入文件,或?qū)⑽募械臄?shù)據(jù)經(jīng)過鏈表類保存到對象中。該文件中還有一個日志類 WareLogs ,繼承自 product ,負(fù)責(zé)每次入、出、退庫時需要記錄的信息,如 日
6、期、產(chǎn)品型號、數(shù)量,還負(fù)責(zé)將對象保存的數(shù)據(jù)寫入另外的日志文件,或?qū)⑷罩疚募械臄?shù)據(jù)讀取 到對象中。同時日志類對象還有另外一個功能:將基礎(chǔ)數(shù)據(jù)設(shè)定的數(shù)據(jù)寫入單獨的文件中。linkList.cpp linkList.hpp 鏈表類,保存的是節(jié)點類對象,節(jié)點類對象的數(shù)據(jù)域為產(chǎn)品類對象。鏈表類 的主要功能是將某文件中所有數(shù)據(jù)讀取為鏈表,或在鏈表對象中搜索出某產(chǎn)品并對該產(chǎn)品進(jìn)行相應(yīng)更 改之后再次將鏈表對象的數(shù)據(jù)域?qū)懭胛募? 成品不合格文件名/ 成品合格文件名/ 原材料不合格文件名/ 原材料合格文件名/ 基礎(chǔ)/ 保存入出退日用來保存數(shù)據(jù)的文件有 6 個: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è)計產(chǎn)品類 數(shù)據(jù)成員部分: 貨物型號貨物數(shù)量貨位號單價該產(chǎn)品的自定義成本系數(shù)顏色庫管員倉庫名稱入出 退庫時間戳 成員方法:int setInWareList(); / 填寫入庫單,將數(shù)據(jù)保存在對象模型中 void setSaleWareList();/ 填寫銷售出庫單,將數(shù)據(jù)保存在對象模型中void setReceiveList(); / 填寫領(lǐng)料單,將數(shù)據(jù)保存在對象模型中 void setOutWareList();/ 填寫
9、退庫單,將數(shù)據(jù)保存在對象模型中int inToFile(string fileName); / 根據(jù)入庫單確認(rèn)入庫 void setProdModel(); / 填寫產(chǎn)品型號 供查詢使用 int getDayByChrono(); / 計算時間戳 時間戳的計算通過庫函數(shù)來實現(xiàn),需要包含頭文件 chrono 和 ratio ,每入出退庫是都需要調(diào)用該函 數(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é)點放在鏈表類中,節(jié)點類對象中含有數(shù)據(jù)域和指向下一個節(jié)點的指針域。 鏈表類的成員方法負(fù)責(zé)將鏈表的節(jié)點存儲的產(chǎn)品類對象數(shù)據(jù)寫入文件或?qū)⑽募械臄?shù)據(jù)提取為鏈 表。鏈表類的成員方法/ 提取數(shù)據(jù)為鏈表void getlinkListFromTheFile(string fileN
11、ame);/ 遍歷鏈表找到節(jié)點void forInLinkListForInAndOut(product *prod,string type);/ 根據(jù)產(chǎn)品型號搜索出倉庫名稱 / 產(chǎn)品分布型號void forInLinkListForLocation(product *prod,string type);/ 根據(jù)基本數(shù)據(jù)設(shè)定信息查詢高儲低儲 以及超出存儲期限的產(chǎn)品void forInLinkListForRemind(WareLogs *logs,string type);/ 根據(jù)產(chǎn)品對象的型號和該產(chǎn)品成本系數(shù)以及日志文件中的基本數(shù)據(jù)設(shè)定信息 計算該產(chǎn)品的存 儲成本void forInLink
12、ListForCost(product *prod,WareLogs *logs,string type);/ 將鏈表數(shù)據(jù)重新寫入文件void writeNodeToTheFile(string fileName);調(diào)試分析遇到過的問題:1.計算倉庫存儲成本和預(yù)警存儲期限時,需要知道產(chǎn)品入出退庫的時間,這里采用庫函數(shù)實現(xiàn),可以 獲取當(dāng)前的時間戳,產(chǎn)品每次入出退庫時都需要將這個時間戳保存。用途如:通過當(dāng)前的時間戳減去 產(chǎn)品入庫的時間戳就是產(chǎn)品在倉庫的保存時間。C+2至于文件數(shù)據(jù)提取及修改,是通過鏈表實現(xiàn)的。對于鏈表的處理,C+和C是有些不同的,里,可以把節(jié)點類和鏈表類分別聲明,將頭節(jié)點作為鏈表類
13、對象的成員屬性,而每個節(jié)點的數(shù)據(jù)域保 存了產(chǎn)品類對象,指針域指向下一個節(jié)點。3入庫退庫功能之外的查詢工作,需要產(chǎn)品入出退庫時間、基礎(chǔ)數(shù)據(jù)設(shè)定等信息,這些信息保存在產(chǎn) 品對象中不合適,而且這樣使得產(chǎn)品對象過于龐大,但是又和產(chǎn)品對象的數(shù)據(jù)有密切關(guān)系,所以這里 采用繼承的方式,日志類繼承產(chǎn)品類,需要完成的功能是將基礎(chǔ)數(shù)據(jù)設(shè)定的數(shù)據(jù)和產(chǎn)品每次入出退庫 的時間寫入文件。寫入的時間需要和對應(yīng)產(chǎn)品進(jìn)行聯(lián)系,所以需要獲取對應(yīng)產(chǎn)品的型號、數(shù)量、單價 來計算總金額。4. C+當(dāng)自定義的頭文件過多時,會有文件重復(fù)包含,即文件重復(fù)編譯的情況出現(xiàn)。這里采用宏的方 式處理:#ifndef identifier#defin
14、e identifier#endif5入庫時需要判斷入庫產(chǎn)品數(shù)量是否大于自定義的貨位存儲能力,同樣出庫時需要判斷出庫產(chǎn)品的數(shù) 量是否大于倉庫存儲產(chǎn)品數(shù)量。為此在入庫或出庫時通過鏈表類對象提取文件中保存的對應(yīng)型號產(chǎn)品 的數(shù)量與將要入庫或出庫的產(chǎn)品數(shù)量做比較,不符合就要終止入庫或退庫。用戶使用說明1第一次使用時需要到基礎(chǔ)數(shù)據(jù)設(shè)定模塊中設(shè)定數(shù)據(jù),這些數(shù)據(jù)在以后入出退庫時都會默認(rèn)調(diào)用 2入庫時填寫的入庫單中產(chǎn)品的成本系數(shù)不能大于基本數(shù)據(jù)設(shè)定中自定義的總體成本系數(shù)。3當(dāng)天入庫的產(chǎn)品暫時不計存儲成本 (該產(chǎn)品存儲天數(shù)為0 )。4.牢記產(chǎn)品型號,倉庫的查詢功能除了 “倉庫庫存分析查詢 ”是通過時間段查詢數(shù)據(jù)
15、,其余都是通過產(chǎn) 品型號來查詢。測試結(jié)果1.基礎(chǔ)數(shù)據(jù)設(shè)定測試倉魔骨理索堀-】-搭礎(chǔ)嗾據(jù)設(shè)定i2-倉庫入庫它庫出庫斗-住庫逼庫5尢庫庫存查詢=_! =_G-址計分祈7-HKlff 佶息£-倉庫合箱一一9-產(chǎn)品存儒成本宣詢©-遇出慕址1瑞入它陽高存儲n昶0錨入它陽低存儲債se輪入播蒞存儲能力se新入它甫盤丸存儲期國3編入侖馬存帽思伸咸本系齟【已辿冋主菓單2入庫測試它疳置理眾現(xiàn)1 基黜敘蝎說定2倉 EfAff3- 纟庫出陣4- 它庫退即5- 纟胃馬存登詢 專觀計另析了驥琨憩腎信鼠 鼻&廉臺儀產(chǎn)品存麗咸本查詢 醱退岀系址2丄-睡品入芹2凍材啣入PF1隨卷驢門確認(rèn)合權(quán)?y增曙
16、入暉單 輔入貨糊型號4凸5 錯入薦舊敵播3&輪入第估游列號沖鶴入嚴(yán)品單悄M騙入旺本泵敢0,5 騙入壇物臨色red綣入庫晡員J1名zhangsar揣人它甫名稱歡庶 交件寫入完畢3適冋主盤單a-Jt出雷4- 它陣退庫5- ffirs 詢6- iftH分析丁報買朋憩信忌B它眸善振9-產(chǎn)品存層陡澤直詢樸返出系笛丄-成品人障2-原材廻人岸2 癥趨陽門號認(rèn)合格H錯誤處理輪入黃務(wù)堂號19T& 埔入存?zhèn)蛟]握30 人貨位序列號2 特入產(chǎn)品單橋45 輔人成本釆跟“ 錯入貨期戰(zhàn)世yellow sSAfffegftS Lisi 輸入倉甫客稱kkck 衣件寫入完筆 已迪冋王菜單1- 厳品入I?2- 原材
17、HAFT1康檢彰門酬認(rèn)作幫了 丫輸入貨羯型號3£4箱入存儲腔顯51謹(jǐn)嚴(yán)晶在貸怕的蝕筠過細(xì)設(shè)的貨負(fù)哼體鏈力50文件寫入失阪已返回主朶單3出庫測試 j6l-"舌 9- MJ £ 4FJ-羽礎(chǔ)融姑設(shè)迄2-倉眸人障1A倉背出芹4-ftWjEW"倉育甫存査詢4煩計分析-提耀枝信恵4色庫白梅g 產(chǎn)品吏儲成本宣詢盲退出系尿3i-M料出陣 工-鎖鶉出磚211行甜比出甫捷峯入!5物坐號RT W1 LJ IrUJT '14r55諭入施物藪避20己返回主菜單錯誤處理出庫2時入賀栩聖號4r55篇入貨徹飯: 31撓趙的貫恂菸丸于常存IS顯 己返回至黑單4退庫測試倉睥管理慕
18、織g庫入庫弓-倉(?出庫斗4庫退庫5-Et存言詢 卜憂計分祈7 -提纏碩*借息P-總庫臺厳*-產(chǎn)品存儒旺本時 詛出系舞1-戀材耦遇庫2 -成品追岸L底拾部門確認(rèn)合林?丫»" Lj| _JWW瑞入貨物型號19t5備入貨檢畝豎J5.倉庫庫存查詢測試填寫退PF®不英于15字) badn X b +井陽 fa-=!I l 士 *'e*M'9K-Hria*«ri-!V L-墓建SS8S設(shè)定 Z-倉庫入庫3-住庫出庫 4-隹庫退陽 5-它庠庫存變詢 6-里計分折 丁-提程預(yù)*潔息8_-&S臺厳 9-產(chǎn)品存貳版本譽(yù)詢 0-遇出船址5藝能插述:堪
19、宛輸人的股時£晝洶倉殲岌生的入H!退總數(shù) /蠱粧竜扎要査詢的賤間敲t單位;天】3 M卜是該時間民內(nèi)它酶的入即信總 產(chǎn)品犁號人甫齊戰(zhàn)打總金莊4r553972919t5301350WTft該時問段內(nèi)它馬的出陽信息 產(chǎn)品里號出睥前敷總金貶4r551«240W卜是謹(jǐn)阿同踐肉電障藥追庫広息 產(chǎn)話型號直岸的融:島金履l?t?331485已返冋主黑單6統(tǒng)計分析測試B 19 MW- WB b '一基碣罪嬉迎忑 2-15人陣 3 它暉出席"4-&ff J&1¥ 與-倉靑岸善童詢一京細(xì)計分折了 握展預(yù)*信思 B-倉應(yīng)臺恢 g-產(chǎn)品彈藕咸木宜詢 齊遇岀
20、梟址塌莊摳込;曰嚴(yán)品生號戰(zhàn)恵岀廣矗分昂惜尿(它睥名稱/ Sti)包拮成品倉青和篙埒料它璋總?cè)氪痹~嚴(yán)品圭號r55成品它帝去詢活杲如下產(chǎn)品型尋甌在在障IS悅存代皴帝4r55xkck410原榜爲(wèi)乜庫查詢紅卑姐下7.提醒預(yù)警信息測試漫肓在原捕型倉腎中松到諧型號產(chǎn)品已建回王采單-1-基峨裁曙設(shè)定 21&陣入庫-勺倉庫出庫 4-rr退麻 與倉庫庫存臺詢 g 址計分析«7-握禪預(yù)餐信兌-R倉庫合HS一勺-產(chǎn)品存儲成才查詢 0-退出系貌功能播迖;根據(jù)址姦數(shù)據(jù)踰龍述出倉障高儈i惟儲/存儲朋腿 咸品倉即沒有達(dá)到存儲朗限的貨栩磁品倉育育存已底于低儲 目前倉疔魅59B為19篠材蛙奩靑浚肓達(dá)到存儲魁
21、餛的賞耦原牯料倉庫陣存已低于低儲目前倉庫fil費為33己適回主柴單8倉庫臺賬測試基腳KJS逛定2 倉陣人庫 =e陣出障 4 倉庫退庫5 倉陣薛存克詢召駅計分析 7-WlSra»fSfl a-ftSUJi g-產(chǎn)品再儲磁本査詢 0-遇出矗班 it能幅超;電據(jù)產(chǎn)品3;號輪秋它席產(chǎn)品的人、出、週明如花輸入特查悔產(chǎn)品型可r55 WTfiAPrS產(chǎn)島生號入唐的戲產(chǎn)暑單價總金砸ffiisi?列號色障曽員倉肝專狗4r5530247294redZtlAAQSafixkekUTS岀陽情總產(chǎn)品世號人肓的戰(zhàn)產(chǎn)帛單價總金顓at位序列號質(zhì)拘怖色侖曽員諄離時何Jr5510242404redxkeke沒有找到諺丹
22、品退陽相關(guān)信忌 已返冋主菜單錯誤處理 它 岸管 理 靈 迺1 畐礎(chǔ)故據(jù)設(shè)定 2-倉陣入庫一3-倉席出庫 4-倉庫退庫一5-倉所所存査詢 6-旣計號靳一丁-提 srasfss g 它罪臺弱一4產(chǎn)品存檎舷本倉詞 0-ig出系址功腿描述;揺搖產(chǎn)品翌號16岀它庫產(chǎn)品的入岀、退明±ffl帳 端入待萱詢產(chǎn)品型號345沒肓在成踴它厲中找到該產(chǎn)品正在愿材料&商申搜案沒有在原材曉£庫中撰索到該產(chǎn)品三返回主加單9產(chǎn)品存儲成本查詢它障營坯糸熱孚礎(chǔ)S5裾說疋2-它腎人育砰出阡4 幺肝退肯5-空匝廊存查詢 蠱禺計分新"擬預(yù)嚳倍忌a-ftrt臺魅9-產(chǎn)品存倍雀本色厲 ,退出系統(tǒng)9功能
23、說陰:探攜嚴(yán)呂生號計鼻蓬廣品存儁阪那繾入待査詞產(chǎn)品型號斗5B訓(xùn)下晶誡產(chǎn)品幷咸品代甫曲幡當(dāng)釧峑iS 13物今天入肓皆時不計殍情曲那IU下足該產(chǎn)品在原材料倉庫的捆壺皓噩當(dāng)天入庫的產(chǎn)品由于存儲天數(shù)為0,無法計算存儲成本。為了測試改功能,將文件中該產(chǎn)品的入庫時間戳),測試結(jié)果如下沿有在原材料隹陽中找到£r5$ 已返回主菜單由16996修改為16990后(入庫時間修改為前六天一倉犀官理系境-1 蚤礎(chǔ)教鷹役疋3仝序出庫4倉廉週庫 &障陽言詢6-統(tǒng)計分折 7捉隆預(yù)&信忘&庫臺忙9-產(chǎn)品存悟施本旨詢 臼“退岀系址9切陲說明;根據(jù)產(chǎn)品也號計癢謹(jǐn)產(chǎn)鬲存儲慮n 箱人待宣詢產(chǎn)品型號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)計分析 "<<endl<<&qu
26、ot;-7- 提醒預(yù)警信息 "<<endl<<"-8- 倉庫臺帳 "<<endl<<"-9- 產(chǎn)品存儲成本查詢 "<<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)計分析t->allAnalyse();/ 提醒預(yù)警/ 倉庫臺賬break;
28、case 7:t->remindWarning();break;case 8:break;case 9:t->wareAccount();/ 倉庫存儲成本查詢t->productForCost(); break;case 0: delete t; exit(0); break;default: cout<<" 請正確輸入菜單對應(yīng)序號 "<<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ì)檢部門檢驗合格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)計分析入口void allAnalyse();/ 提醒預(yù)警void remindWarning();/ 倉庫臺賬 void wareAccount();/ 產(chǎn)品存儲成本查詢 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<<" 輸入倉庫高存儲量 "cin>>maxStock;cout<<" 輸入倉庫低存儲量 "cin>>minStock;cout<<" 輸入貨位存儲能力 "cin>>maxAbility;cout<<" 輸入倉庫最大存儲期限 "cin>>maxDate;cout<<" 輸入倉庫存儲總體成本系數(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<<" 請輸入正確序號 "<<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;/ 遍歷鏈表對鏈表相應(yīng)節(jié)點進(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<<" 輸入正確序號 "<<endl;/*/void tools:againProd
44、uct()string is,isOK,fileName;while (1) cout<<"1- 原材料退庫 "<<endl<<"2- 成品退庫 "<<endl<<"3- 銷售退庫 "<<endl; cin>>is;if (is="1") / 原材料退庫 需要知道哪個批次的 貨物OKOrNo(QuilityProdYFileName, noQuilityProdYFileName);else if (is="2"
45、)/ 成品退庫 需要輸入:倉庫名稱、圖號、型號、數(shù)量、車間、發(fā)生日期、倉庫管理員、原因OKOrNo(QuilityProdCFileName, noQuilityProdCFileName);else if (is="3")/ 銷售退庫OKOrNo(QuilityProdCFileName, noQuilityProdCFileName);elsecout<<" 請輸入正確序號 "將退庫的貨物按合格與否分類* 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è)定輸出倉庫高儲/低儲/存儲期限 "<<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ù)輸入的段時間查詢倉庫發(fā)生的入出退總數(shù)量金額"<<endl<<endl;cout<<
49、;" 輸入要查詢的時間段 (單位 :天 ) "cin>>day;WareLogs 提醒預(yù)警信息入口 根據(jù)基本數(shù)據(jù)設(shè)定 輸出倉庫高儲/低儲/存儲期限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)計分析入口 由產(chǎn)品型號搜索出產(chǎn)品分布情況 ( 倉庫名稱貨位 ) 包括成品倉庫和原材料倉庫 */void tools:allAnalyse()coutvv"功能描述:由產(chǎn)品型號搜索出產(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");/ 查詢原材料倉庫delete prod;li
52、nk->getlinkListFromTheFile(QuilityProdYFileName);link->forInLinkListForRemind(w, "5");delete link;/*/void tools:productForCost()cout<<" 功能說明 :根據(jù)產(chǎn)品型號計算該產(chǎn)品存儲成本 "<<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;倉庫臺賬入口*/void tools:wareAccount()cout<<" 功能描述 :根據(jù)產(chǎn)品型號輸出倉庫產(chǎn)品的入、出、退明細(xì)帳"<<endl<<endl;string model = ""cout<<" 輸入待查詢產(chǎn)品型號 "cin>>model;3 表示退庫WareLogs 產(chǎn)品存儲成本查詢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();/ 貨物型號/ 貨物存儲數(shù)量 / 倉庫貨位序列號/ 產(chǎn)品單價/ 成本系數(shù)/ 貨物顏色/ 貨物庫管員/ 倉庫名稱/ 入庫時間戳/ 出庫時間戳 / 退庫時間戳/ 數(shù)量/ 單價/ 填寫入庫單/ 填寫銷售出庫單/ 填寫領(lǐng)料單/ 填寫退庫單/ 根據(jù)入庫單確認(rèn)入庫/ 填寫產(chǎn)品型號 供查詢使用/ 計算時間戳#endif /* product_hpp */ 最大存儲限量class WareLogs:public product private:double maxStock;double minStock; double maxAbility; double maxDate; double costFactor; string type;string changeModel; double changeNum;/ 最小存儲限量/ 最大存儲能力/ 最大存儲期限/ 產(chǎn)品總體存儲成本/1 入庫 2 出庫 3 表示退庫 需要填寫原因double changeToatolMoney; int intoWareDay;in
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年人教A版九年級地理下冊月考試卷
- 2025年蘇教新版七年級物理下冊階段測試試卷含答案
- 2025年人教版選修3歷史上冊階段測試試卷含答案
- 2025年浙科版七年級物理下冊階段測試試卷含答案
- 2025年湘師大新版八年級生物下冊階段測試試卷含答案
- 2025年北師大版八年級生物上冊階段測試試卷含答案
- 2025年浙教版八年級地理下冊階段測試試卷
- 2025年湘教版選修4歷史下冊月考試卷含答案
- 2025年統(tǒng)編版2024八年級歷史上冊月考試卷
- 2025年新科版八年級地理下冊月考試卷
- 完整版秸稈炭化成型綜合利用項目可行性研究報告
- 油氣行業(yè)人才需求預(yù)測-洞察分析
- 《數(shù)據(jù)采集技術(shù)》課件-Scrapy 框架的基本操作
- 2025年河北省單招語文模擬測試二(原卷版)
- 高一化學(xué)《活潑的金屬單質(zhì)-鈉》分層練習(xí)含答案解析
- DB34∕T 4010-2021 水利工程外觀質(zhì)量評定規(guī)程
- 2024年內(nèi)蒙古中考英語試卷五套合卷附答案
- 2024年電工(高級)證考試題庫及答案
- 三年級上冊脫式計算100題及答案
- 儲能電站火災(zāi)應(yīng)急預(yù)案演練
- 人教版(新插圖)二年級下冊數(shù)學(xué) 第4課時用“進(jìn)一法”和“去尾法”解決簡單的實際問題 教學(xué)課件
評論
0/150
提交評論