商場(chǎng)庫(kù)存管理系統(tǒng)_第1頁(yè)
商場(chǎng)庫(kù)存管理系統(tǒng)_第2頁(yè)
商場(chǎng)庫(kù)存管理系統(tǒng)_第3頁(yè)
商場(chǎng)庫(kù)存管理系統(tǒng)_第4頁(yè)
商場(chǎng)庫(kù)存管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(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、目 錄一、系統(tǒng)總框圖及函數(shù)定義及說(shuō)明3二、項(xiàng)目要求與簡(jiǎn)介3三、系統(tǒng)分析43.1. 主要類說(shuō)明43.2.系統(tǒng)采用的關(guān)鍵(難點(diǎn))技術(shù)4四、調(diào)試分析5五、源代碼5六、心得體會(huì)16一、系統(tǒng)總框圖及函數(shù)定義及說(shuō)明· 系統(tǒng)總框圖:本系統(tǒng)的功能雖然不是很強(qiáng)大,但是也包括了錄入,添加,刪除,查找,修改,計(jì)算等基本的功能,具體框圖如下。 通過(guò)設(shè)計(jì)一個(gè)較為簡(jiǎn)單的商場(chǎng)庫(kù)存貨物管理系統(tǒng),進(jìn)一步熟悉C+中類的概念、類的封裝、繼承的實(shí)現(xiàn)方式。了解系統(tǒng)開(kāi)發(fā)的需求分析、類層次設(shè)計(jì)、模塊分析、編碼測(cè)試、模塊組裝與整體調(diào)試的全過(guò)程,加深對(duì)C+的理解與Visual C+環(huán)境的使用;逐步熟悉程序設(shè)計(jì)的方法,并養(yǎng)成良好的編程

2、習(xí)慣。二、項(xiàng)目要求與簡(jiǎn)介設(shè)計(jì)某公司的庫(kù)存管理系統(tǒng)。此程序是為了更好的處理貨物的詳細(xì)信息。包括貨物的貨物的入庫(kù)、出庫(kù)、查詢、統(tǒng)計(jì)。并且能夠很好的讓使用者了解庫(kù)存貨物的有關(guān)信息。系統(tǒng)要求能夠按編號(hào)顯示、查找、增加、刪除、和保存各類貨物的信息。輸入和輸出貨物的有關(guān)信息并且對(duì)輸入保存文件里確定程序至少具備以下功能:查詢模塊、增加模塊、刪除模塊、貨物的有關(guān)信息數(shù)據(jù)存盤(pán)等的基本模塊。系統(tǒng)具有“貨物的有關(guān)信息數(shù)據(jù)存盤(pán)”的功能,所以貨物的有關(guān)信息數(shù)據(jù)可以保存到磁盤(pán)文件,那么也就意味著今后可以從磁盤(pán)文件讀出貨物的有關(guān)信息,可以方便用戶使用,避免數(shù)據(jù)重復(fù)錄入,考慮到系統(tǒng)實(shí)現(xiàn)簡(jiǎn)潔,貨物數(shù)據(jù)文件采用文本文件,貨物數(shù)據(jù)

3、文件名:date.dat。作為一個(gè)完整的系統(tǒng),除了具有增加貨物,刪除貨物的信息模塊,還應(yīng)該具有修改貨物相關(guān)信息的功能, 所以本系統(tǒng)具備了“商品入庫(kù)”、“商品出庫(kù)”、“查詢統(tǒng)計(jì)”、“商品報(bào)損”、“退出系統(tǒng)”,這5個(gè)基本功能,就可以以最簡(jiǎn)捷的方式實(shí)現(xiàn)對(duì)貨物的管理,也就實(shí)現(xiàn)了系統(tǒng)的要求。三、系統(tǒng)分析3.1. 主要類說(shuō)明a.倉(cāng)庫(kù)管理員類class adminpublic:admin();private:string name;b.倉(cāng)庫(kù)貨架類class shelfpublic:shelf();private:admin men;/管理員string storeNo;/倉(cāng)庫(kù)編號(hào)string kinds;/

4、商品大類string shelfNo;/貨架號(hào); 3.2.系統(tǒng)采用的關(guān)鍵(難點(diǎn))技術(shù)使用面向?qū)ο蟮某绦蛟O(shè)計(jì)進(jìn)行分析,整個(gè)系統(tǒng)涉及兩大類可操作,倉(cāng)庫(kù)、商品。所以系統(tǒng)主要涉及兩大類:倉(cāng)庫(kù)類、商品類。系統(tǒng)框架就是倉(cāng)庫(kù)類和商品類的定義;主函數(shù)中定義一個(gè)倉(cāng)庫(kù)對(duì)象,循環(huán)顯示主菜單并根據(jù)用戶選擇調(diào)用倉(cāng)庫(kù)類的相應(yīng)方法(成員函數(shù))??紤]系統(tǒng)操作的貨物信息具有不確定性,所以考慮使用鏈表保存、處理貨物信息。倉(cāng)庫(kù)類包含:所有貨物信息的一個(gè)不帶頭結(jié)點(diǎn)的鏈表及可以對(duì)貨物信息進(jìn)行增,改,刪除,查詢,數(shù)量設(shè)置,數(shù)據(jù)存盤(pán)等操作的相關(guān)模塊為成員函數(shù)。所有貨物都具有的公共信息及操作可以使用倉(cāng)庫(kù)類進(jìn)行描述。由于系統(tǒng)具有3類貨物且3類

5、貨物信息數(shù)據(jù),操作基本相同,所以可以為他們創(chuàng)立相同的類,并且采用繼承和派生。四、調(diào)試分析由于這次C+的設(shè)計(jì)課程作業(yè)在許多復(fù)習(xí)之中,還有能力和時(shí)間的限制,雖然沒(méi)有太多的功能但還是出現(xiàn)了各種錯(cuò)誤頻繁。各種類的定義表現(xiàn)出了不足。對(duì)管理員登陸沒(méi)有設(shè)置密碼什么的直接進(jìn)入到了主菜單,沒(méi)有多少安全性,容錯(cuò)性比較低,如果輸入信息有誤就要重新進(jìn)入有點(diǎn)麻煩。對(duì)于這些問(wèn)題,我覺(jué)得只要記住錄入的商品的詳細(xì)信息不發(fā)生錯(cuò)誤還是可以避免的。畢竟能力有限,對(duì)C+領(lǐng)悟沒(méi)怎么透徹,希望老師能夠耐心原諒。五、源代碼 /main.cpp#include <iostream>#include <string>#

6、include <fstream>#include <cassert>#include <iomanip>#include <conio.h>using namespace std;/倉(cāng)庫(kù)管理員類class adminpublic:admin();private:string name;/倉(cāng)庫(kù)貨架類class shelfpublic:shelf();private:admin men;/管理員string storeNo;/倉(cāng)庫(kù)編號(hào)string kinds;/商品大類string shelfNo;/貨架號(hào);/electrical classcla

7、ss elepublic:ele();private:string name;/商品名double price;/價(jià)格shelf sh;/所屬貨架long count;/商品數(shù)量;/管理(組合類)class manapublic:mana();char first_face();/首頁(yè)void in_storage();/入庫(kù)void out_storage();/ 出庫(kù)void select_ele();/查詢void select_name();/按商品名稱查詢void select_price();/按商品價(jià)格查詢void select_kind();/按大類查詢void call_br

8、eak();/商品報(bào)損private:ele aele;shelf ashelf;admin abs;/電器類默認(rèn)構(gòu)造函數(shù)ele:ele():sh()name = "xxx"/商品名price = 0.0;/價(jià)格count = 0;/商品數(shù)量/倉(cāng)庫(kù)貨架類默認(rèn)構(gòu)造函數(shù)shelf:shelf():men()storeNo = "xxx"/倉(cāng)庫(kù)編號(hào)kinds = "xxx"/商品大類shelfNo = "xxx"/貨架號(hào)/倉(cāng)庫(kù)管理員類admin:admin()name = "xxx"/管理類默認(rèn)構(gòu)造函

9、數(shù)mana:mana():aele(), ashelf(), abs()char mana:first_face()system("cls");cout << endl;cout <<endl <<"tt"<<endl <<"tt "<<endl <<"tt 商場(chǎng)庫(kù)存貨物管理系統(tǒng) "<<endl <<"tt "<<endl <<"tt 1. 商品入庫(kù) &q

10、uot;<<endl <<"tt "<<endl <<"tt 2. 商品出庫(kù) "<<endl <<"tt "<<endl <<"tt 3. 查詢統(tǒng)計(jì) "<<endl <<"tt "<<endl <<"tt 4. 商品報(bào)損 "<<endl <<"tt "<<endl <<

11、;"tt 5. 退出系統(tǒng) "<<endl <<"tt "<<endl <<"tt" <<endl <<endl <<"tt"return getch();/入庫(kù)void mana:in_storage()system("cls");string name;/商品名double price;/價(jià)格string storeNo;/倉(cāng)庫(kù)編號(hào)string kinds;/商品大類string shelfNo;/貨架號(hào)lon

12、g count = 0; /商品數(shù)量cout << endl << "商品入庫(kù),請(qǐng)輸入相關(guān)信息 : " << endl << endl ; cout << "t商品名稱 : "cin >> name;cout << endl << "t商品價(jià)格 : "cin >> price;cout << endl << "t商品數(shù)量 : "cin >> count;cout <&

13、lt; endl << "t倉(cāng)庫(kù)編號(hào) : "cin >> storeNo;cout << endl << "t商品大類 : "cin >> kinds;cout << endl << "t貨架編號(hào) : " ;cin >> shelfNo;ofstream storeFile("store.txt", ios:app);storeFile << setiosflags(ios:left) << se

14、tw(20) << name << " "<< setw(15) << price << " " << setw(10) << count << " "<< setw(10) << storeNo << " " << setw(20) << kinds << " "<< shelfNo << endl;st

15、oreFile.close();cout << endl << endl << "t該商品已經(jīng)入庫(kù)." << endl << endl << "t" system("pause");/ 出庫(kù)void mana:out_storage()system("cls");string name;/商品名cout << endl << "t商品出庫(kù),輸入出庫(kù)商品信息 : " << endl <

16、< endl; cout << "t商品名稱 : "cin >> name;ifstream storeFile("store.txt");if (!storeFile)ofstream storeFile1("store.txt");storeFile1.close();cout << endl << endl << "t倉(cāng)存為空!" << endl << endl << "t" system

17、("pause");return;bool flag = false;string name1;/商品名double price1;/價(jià)格string storeNo1;/倉(cāng)庫(kù)編號(hào)string kinds1;/商品大類string shelfNo1;/貨架號(hào)long count1 = 0; /商品數(shù)量ofstream tempFile("temp.txt");while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 &

18、gt;> shelfNo1)if (name1=name)flag = true;elsetempFile << setiosflags(ios:left) << setw(20) << name1 << " "<< setw(15) << price1 << " " << setw(10) << count1 << " "<< setw(10) << storeNo1 <<

19、 " " << setw(20) << kinds1 << " "<< shelfNo1 << endl;tempFile.close();storeFile.close();if (!flag)cout << endl << endl << "t倉(cāng)庫(kù)中沒(méi)有這種商品!" << endl << endl << "t"system("pause");return;ofs

20、tream storeFile1("store.txt");ifstream tempFile1("temp.txt");storeFile1 << tempFile1.rdbuf();storeFile1.close();tempFile1.close();cout << endl << "t這些商品已經(jīng)出庫(kù), 請(qǐng)仔細(xì)檢查!" << endl << endl << "t"system("pause");/查詢void ma

21、na:select_ele()while (1)system("cls");cout << endl << endl;cout << "t=" << endl<< "t| |" << endl<< "t| 商 品 查 詢 |" << endl<< "t| |" << endl<< "t| 1. 按商品名稱查詢 |" << endl&l

22、t;< "t| |" << endl<< "t| 2. 按商品價(jià)格查詢 |" << endl<< "t| |" << endl<< "t| 3. 按大類查詢 |" << endl<< "t| |" << endl<< "t| 4. 返回 |" << endl<< "t| |" << endl<

23、;< "t=" << endl << endl << "tt"char select = getch();switch (select)case '1':select_name();break;case '2':select_price();break;case '3':select_kind();break;case '4':return;default:break;/按商品名稱查詢void mana:select_name()system(&qu

24、ot;cls");cout << endl << "t按商品名查詢 : " << endl << endl ;cout << "t輸入商品名 : "string name;cin >> name;string name1;/商品名double price1;/價(jià)格string storeNo1;/倉(cāng)庫(kù)編號(hào)string kinds1;/商品大類string shelfNo1;/貨架號(hào)long count1 = 0; /商品數(shù)量ifstream storeFile("

25、store.txt");if (!storeFile)cout << endl << endl << "t對(duì)不起,你的庫(kù)存為空!" << endl << endl << "t"system("pause");return;bool flag = false;cout << endl << "商品名 " << "價(jià)格 " << "商品數(shù)量 " <

26、;< "倉(cāng)庫(kù)編號(hào) "<< "商品大類 " << "貨架號(hào)" << endl << endl;while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 >> shelfNo1)if (name1 = name)flag = true;cout << setiosflags(ios:left) << setw(15

27、) << name1 << " "<< setw(10) << price1 << " " << setw(10) << count1 << " "<< setw(10) << storeNo1 << " " << setw(15) << kinds1 << " "<< shelfNo1 << endl;s

28、toreFile.close();if (!flag)cout << endl << endl << "對(duì)不起,庫(kù)存中沒(méi)有這種商品!"cout << endl << endl;system("pause");/按商品價(jià)格查詢void mana:select_price()system("cls");cout << endl << "t按商品價(jià)格查詢 : " << endl << endl ;cout <

29、< "t輸入價(jià)格 : "double price;cin >> price;string name1;/商品名double price1;/價(jià)格string storeNo1;/倉(cāng)庫(kù)編號(hào)string kinds1;/商品大類string shelfNo1;/貨架號(hào)long count1 = 0; /商品數(shù)量ifstream storeFile("store.txt");if (!storeFile)cout << endl << endl << "t對(duì)不起,你的庫(kù)存為空!" <

30、;< endl << endl << "t" system("pause");return;bool flag = false;cout << endl << "商品名 " << "價(jià)格 " << "商品數(shù)量 " << "倉(cāng)庫(kù)編號(hào) " << "商品大類 " << "貨架號(hào)" << endl << en

31、dl;while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 >> shelfNo1) if (price1 = price)flag = true;cout << setiosflags(ios:left) << setw(15) << name1 << " "<< setw(10) << price1 << " " &

32、lt;< setw(10) << count1 << " "<< setw(10) << storeNo1 << " " << setw(15) << kinds1 << " "<< shelfNo1 << endl;storeFile.close();if (!flag)cout << endl << endl << "對(duì)不起,庫(kù)存中沒(méi)有這個(gè)價(jià)格的商品!"

33、;cout << endl << endl;system("pause");/按大類查詢void mana:select_kind()system("cls");cout << endl << "t按商品大類查詢 : " << endl << endl ;cout << "t輸入大類名 : "string kinds;cin >> kinds;string name1;/商品名double price1;/價(jià)格strin

34、g storeNo1;/倉(cāng)庫(kù)編號(hào)string kinds1;/商品大類string shelfNo1;/貨架號(hào)long count1 = 0; /商品數(shù)量ifstream storeFile("store.txt");if (!storeFile)cout << endl << endl << "t對(duì)不起,你的庫(kù)存為空!" << endl << endl << "t" system("pause");return;bool flag = fal

35、se;cout << endl << "商品名 " << "價(jià)格 " << "商品數(shù)量 " << "倉(cāng)庫(kù)編號(hào) " << "商品大類 " << "貨架號(hào)" << endl << endl;while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> ki

36、nds1 >> shelfNo1) if (kinds1 = kinds)flag = true;cout << setiosflags(ios:left) << setw(15) << name1 << " "<< setw(10) << price1 << " " << setw(10) << count1 << " "<< setw(10) << storeNo1 <&

37、lt; " " << setw(15) << kinds1 << " "<< shelfNo1 << endl;storeFile.close();if (!flag)cout << endl << endl << "對(duì)不起,庫(kù)存中沒(méi)有這類商品!"cout << endl << endl;system("pause");/商品報(bào)損void mana:call_break()system("

38、;cls");string name;/商品名cout << endl << "t商品報(bào)損,請(qǐng)輸入要報(bào)損商品信息 : " << endl << endl; cout << "t商品名稱 : "cin >> name;ifstream storeFile("store.txt");if (!storeFile)ofstream storeFile1("store.txt");storeFile1.close();cout <<

39、; endl << endl << "t倉(cāng)存為空!" << endl << endl << "t"system("pause");return;bool flag = false;string name1;/商品名double price1;/價(jià)格string kinds1;/商品大類string shelfNo1;/貨架號(hào)long count1 = 0; /商品數(shù)量ofstream tempFile("temp.txt");string storeNo1

40、;/倉(cāng)庫(kù)編號(hào)cout << endl << endl << "你想報(bào)損商品信息如下 : " << endl << endl;cout << endl << "商品名 " << "價(jià)格 " << "商品數(shù)量 " << "倉(cāng)庫(kù)編號(hào) "<< "商品大類 " << "貨架號(hào)" << endl <<

41、endl;while (storeFile >> name1 >> price1 >> count1 >> storeNo1 >> kinds1 >> shelfNo1) if (name1=name)flag = true;cout << setiosflags(ios:left) << setw(15) << name1 << " "<< setw(10) << price1 << " " <

42、;< setw(10) << count1 << " "<< setw(10) << storeNo1 << " " << setw(15) << kinds1 << " "<< shelfNo1 << endl;shelfNo1 += "(損壞)"tempFile << setiosflags(ios:left) << setw(20) << name1 << " "<< setw(15) << price1 << " " << setw(10) << count1 << " "

溫馨提示

  • 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)論