商場銷售管理系統(tǒng)課程設(shè)計_第1頁
商場銷售管理系統(tǒng)課程設(shè)計_第2頁
商場銷售管理系統(tǒng)課程設(shè)計_第3頁
商場銷售管理系統(tǒng)課程設(shè)計_第4頁
商場銷售管理系統(tǒng)課程設(shè)計_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、*大學(xué)程序設(shè)計課程設(shè)計報告商場銷售管理系統(tǒng)學(xué)號姓名日期目 錄一.需求分析.3二.程序主要功能.3三.程序運行平臺.4四.系統(tǒng)功能框架圖.5五.程序類說明.6六.模塊分析.7七.比較有特色的地方.13八.存在的不足與對策.13九.編程體會14十.程序源代碼.15一.需求分析本系統(tǒng)旨在實現(xiàn)一個小型的商城銷售管理系統(tǒng),對于一個小型的商場或銷售店鋪來說,實施本系統(tǒng)不僅可以減少工作人員數(shù)量,降低成本,而且可以大大提高工作效率,降低工作強(qiáng)度,方便賣家記錄商品流通信息,統(tǒng)計銷售情況,分析市場需求,幫助賣家更好的管理商場,以獲取跟多的利潤。程序主要實現(xiàn)進(jìn)貨管理、商品基本信息查詢與修改、利潤計算與銷售統(tǒng)計、庫存

2、管理等及一些輔助功能。二.程序主要功能該程序的主要功能有1.商品信息管理可對商品信息進(jìn)行查看、按一定規(guī)則排序及商品查找,其中具體信息包括 商品名稱,編號,進(jìn)貨成本價,銷售價,進(jìn)貨總量,銷售量,可以對庫存,已獲得利潤,總體成本價等進(jìn)行計算2.管理員功能可實現(xiàn)對商品信息的進(jìn)行修改,添加,刪除等功能,并進(jìn)行文件的操作儲存,以更好的保護(hù)信息,能有效的管理好商品信息的隱秘性。3.輔助功能該程序?qū)崿F(xiàn)了一下清屏,清空文件,操作提示等善后輔助功能,能幫助用戶更好的應(yīng)用該程序,使程序的功能最大化實現(xiàn)。三程序運行平臺該程序是用VC+6.0制做的,使用Microsoft Visual C+ 6.0運行該程序,具體操

3、作是:打開Microsoft Visual C+ 6.0,菜單欄里點文件打開工作區(qū)找到“圖書管理系統(tǒng).dsw”這個文件打開,或者在資源管理器中雙擊該文件,此時,VC+6.0會自動打開,并載入該系統(tǒng)相關(guān)資源,點擊Run命令菜單或者或用快捷鍵Ctrl+F5運行該程序。trl計分析能四.系統(tǒng)功能框架圖商城銷售管理系統(tǒng)進(jìn)入系統(tǒng)退出系統(tǒng)商品信息查看顯示全部內(nèi)容商品查找顯示商品信息按銷量排序按利潤排序商品基本信息名稱編號成本單價銷量庫存總量利潤商品管理修改數(shù)據(jù)創(chuàng)建新表增加商品刪除商品文件存檔從文件中提取數(shù)據(jù)其它輔助功能使用說明及幫助等五.程序類說明有關(guān)商品信息的類/存儲商品信息class GoodsInf

4、opublic:char * name ; /商品名稱int number; /商品編號float cost_p; /成本單價float unit_p; /銷售單價int num_all; /共計商品件數(shù)int num_now; /現(xiàn)存商品件數(shù)int num_sell; /已售出商品件數(shù)float cost_all; /進(jìn)貨總計成本價float profit; /已銷售商品獲得的利潤GoodsInfo * next; /指向下一個商GoodsInfo(); /構(gòu)造函數(shù)GoodsInfo(char * a,int b,float c,float u,int all,int sell) ; /重載

5、構(gòu)造函數(shù)void operator= (const GoodsInfo &right); /重載=void setInfo(char * a,float c,float u,int all,int sell) ; /數(shù)據(jù)載入char* getname()return name; /返回姓名用于查找 顯示商品信息void Amend(GoodsInfo *);void show(GoodsInfo *);GoodsInfo() delete name;;商品類鏈表class GoodList :public GoodsInfopublic:GoodList();/構(gòu)造函數(shù),指針初始化Go

6、odList();/析構(gòu)函數(shù),釋放GoodsInfo * head; /頭指針GoodsInfo * p; /活動指針1GoodsInfo * p2; /活動指針2(指向最后一個)void create(); /創(chuàng)建函數(shù)void showinfo(GoodsInfo *); /顯示GoodsInfo * search(); /查找void saveInfo();/信息存檔void getInfo(); /上傳信息void addInfo(GoodsInfo *);/添加數(shù)據(jù)void sort(); /按銷量顯示void menu();void delete_();/刪除節(jié)點;六.模塊分析菜單:

7、所有函數(shù)均封裝在商品類及商品鏈表類中(GoodsInfo 和 GoodList)信息存儲在類GoodsInfo中,類中定義了3個GoodsInfo指針,一個是*head,作為鏈表的頭指針,另一個是*p,作為活動指針,一個*p2,指向鏈表的尾節(jié)。在不同的類的成員函數(shù)中都可使用,為了防止該活動指針使用過頻,造成幾個函數(shù)同時使用同一個指針指向不明,在有些函數(shù)里還定義了一些臨時指針。1.創(chuàng)建此函數(shù)為是創(chuàng)建商品信息數(shù)據(jù),構(gòu)成商品信息表是使用,用于讓用戶批量添加商品。按照程序的提示,可依次添加商品信息,按Y繼續(xù),其他建則停止,返回主菜單。此時鏈表創(chuàng)建成功,*head指向鏈表的頭,p2指向尾。可用于后續(xù)函數(shù)

8、的操作。2.添加跟創(chuàng)建有一樣的用途,用于添加商品信息,不同的是添加只能用于已有原鏈表存在的情況下。但這個不能批量添加,一次只能添加一個,并且存放在原鏈表尾節(jié)點的后一個,形成一個新的鏈表。3.查找顧名思義,此函數(shù)用于查找商品信息。在原始信息過多的時候,可以通過查找(按商品編號和商品名稱兩鐘方式)查看自己想看的商品詳細(xì)信息。若不存在該商品,程序則自動輸出未找到,然后返回主菜單。若查找到該商品,函數(shù)返回該節(jié)點的指針,并用單個顯示函數(shù)顯示出來。4.修改此函數(shù)是基于查找函數(shù)之上的。在查找到需要修改的單元后,選擇自己需要修改的項目。函數(shù)會詢問是否需要繼續(xù)修改,Y繼續(xù),其他鍵則返回主菜單。5.刪除刪除和修改

9、一樣,基于查找函數(shù)之上,用于刪除不需要的節(jié)點。操作方法也和前面類似。6.顯示此函數(shù)用于批量顯示商品信息。該函數(shù)以表格的型式顯示,明了清晰,有助于比較。7.排序排序是基于顯示函數(shù)的一個函數(shù)。該函數(shù)用選擇排序法,以兩種(按銷量和按利潤)方法排序顯示,有助于商家對比比較分析哪種商品的銷量好利潤高,便于管理和優(yōu)化商城的盈利。8.上傳當(dāng)需要輸入數(shù)據(jù)過多過大時,可以通過上傳函數(shù),直接把文件中的數(shù)據(jù)讀到程序中并形成鏈表,然后再繼續(xù)后續(xù)操作。這個和創(chuàng)建函數(shù)具有差不多的功能,不過一個是從鍵盤讀入,一個是從文件中讀入。文件上傳成功后,函數(shù)會自動顯示成功,然后跳到主菜單進(jìn)行其他項目。9.存檔上傳和存檔是文件和程序的

10、兩個接頭。在數(shù)據(jù)操作過程中為避免數(shù)據(jù)丟失,可邊操作變保存,在退出程序之前,程序也會自動彈出詢問是否需要保存,這是比較人性化的一點,以免造成不可估量的后果。保存成功后會自動輸出成功字樣,并退出或繼續(xù)程序。存檔和上傳合并利用,下一次運行程序時,可以直接上傳上次所保存的數(shù)據(jù)然后繼續(xù)操作,就不需要工作人員一個一個慢慢輸入了。10.其他清屏是一個輔助函數(shù),為了清晰界面方便操作美化外觀。退出程序是會自動詢問是否保存文件,然后調(diào)用析構(gòu)函數(shù),釋放鏈表清除數(shù)據(jù),然后安全退出。七、比較有特色的地方有特色的函數(shù)指的是實現(xiàn)地較為巧妙的類的構(gòu)造函數(shù)、成員函數(shù)、析構(gòu)函數(shù)等函數(shù),也可以是指針處理的函數(shù),文件處理的函數(shù)等比較

11、有特色的函數(shù),能體現(xiàn)巧妙構(gòu)思即可。特別是運算附的重載,大大減小了代碼的數(shù)量,簡潔了程序。還有就是文件操作方面,比較合理和人性化。八.存在的不足在文件編寫的時候我此次采用的是txt儲存數(shù)據(jù),雖然有助于使用者查看數(shù)據(jù),但是在面對一串龐大數(shù)據(jù)是,dat文件的效率明顯會高很多。還有就是由于學(xué)得不夠深,程序的功能總體來說還比較少,有待以后更深層的學(xué)習(xí)后完善。比如界面方面的處理,和對每天銷售情況的記錄等等。商品流通的具體過程等該程序都沒有記錄。需要改進(jìn)的地方還有很多。九、心得體會通過這次課程設(shè)計,我清楚的認(rèn)識到了C+是一門很龐大的并且很有實用價值的一門學(xué)科,它一種非常簡潔高效的語言。類的特色在這次編程過程

12、中有了充分的體會。就以前所學(xué)的C語言而言,我明顯感覺到C+在編寫這種比較復(fù)雜的程序時的優(yōu)勢,他的重載函數(shù)運算符的等操作也是一大有點。模塊的分塊化,當(dāng)需要用到某個函數(shù)時再進(jìn)行調(diào)用,大大增強(qiáng)了程序的可讀性,而且代碼也更加合理清晰。就拿這次我所寫的商場銷售管理系統(tǒng)來說,商品類的操作是一個整體,寫在一個中.cpp,文件里面同時也可以另外寫到一個.h的頭文件里面,在寫程序的時候再進(jìn)行調(diào)用。課程設(shè)計真的很能鍛煉人,平時上課都是講的基礎(chǔ)知識,上機(jī)也只是編寫的小程序,不能把知識融會貫通。然而這次課設(shè)是編寫的一個小系統(tǒng),把所學(xué)的知識都聯(lián)系起來了,在剛剛看到要求時是覺得有很大的難度的,畢竟是第一次編寫一個商場銷售

13、管理系統(tǒng)。但是想到有志者事競成,只要敢于思考敢于嘗試,按步驟一步一步來也是能編寫出程序的。于是我首先把程序類圖先畫了出來,把程序基本結(jié)構(gòu)勾勒出來,化整為零,一個一個小功能慢慢寫起,寫完一個在主函數(shù)中驗證一個看是否正確,通過后在進(jìn)行下一個,逐步實現(xiàn)。而后編寫主函數(shù),菜單等,完善功能。因為我剛剛?cè)腴Tc+,基本工還不足,能力還很弱,所以在寫的過程中遇到很多困難,有些以前很熟悉的代碼也忘了,于是我開始翻閱以前的書籍,邊對照邊回憶,終于完成了。特別是在文件操作方面尤為薄弱,我意思到了自己的弱點。由于自己的不足,以后學(xué)習(xí)還要更加努力,不懂時多問老師多向同學(xué)學(xué)習(xí)。作為一個計算機(jī)專業(yè)的學(xué)生,計算機(jī)語言是我們的

14、基本功,我們應(yīng)該扎實自己的基礎(chǔ),才能更快更好的發(fā)展。十.源代碼#ifndef LIST_H#define LIST_H#include "GOODSINFO.H"class GoodList :public GoodsInfopublic:GoodList();/構(gòu)造函數(shù),指針初始化GoodList();/析構(gòu)函數(shù),釋放GoodsInfo * head; /頭指針GoodsInfo * p; /活動指針1GoodsInfo * p2; /活動指針2(指向最后一個)void create(); /創(chuàng)建函數(shù)void showinfo(GoodsInfo *); /顯示Goods

15、Info * search(); /查找void saveInfo(); /信息存檔void getInfo(); /上傳信息void addInfo(GoodsInfo *);/添加數(shù)據(jù)void sort(); /按銷量顯示void menu();void delete_();/刪除節(jié)點;#endif/存儲商品信息#ifndef GOODSINFO_H#define GOODSINFO_Hclass GoodsInfopublic:char * name ; /商品名稱int number; /商品編號float cost_p; /成本單價float unit_p;/銷售單價int num_

16、all;/共計商品件數(shù)int num_now;/現(xiàn)存商品件數(shù)int num_sell;/已售出商品件數(shù)float cost_all;/進(jìn)貨總計成本價float profit;/已銷售商品獲得的利潤GoodsInfo * next;/指向下一個商GoodsInfo(); /構(gòu)造函數(shù)GoodsInfo(char * a,int b,float c,float u,int all,int sell) ; /重載構(gòu)造函數(shù)void operator= (const GoodsInfo &right); /重載=void setInfo(char * a,float c,float u,int a

17、ll,int sell) ; /數(shù)據(jù)載入char* getname()return name; /返回姓名用于查找/顯示商品信息void Amend(GoodsInfo *);void show(GoodsInfo *);GoodsInfo() delete name;#endif#include<iostream>using namespace std;#include"GOODSINFO.H"#include<string.h>GoodsInfo:GoodsInfo() /構(gòu)造函數(shù)name=new char 21;number=cost_p=un

18、it_p=num_all=num_now=num_sell=cost_all=profit=0;next=NULL;GoodsInfo:GoodsInfo(char * a,int b,float c,float u,int all,int sell) /重載構(gòu)造函數(shù)strcpy(name,a);number=b;cost_p=c;unit_p=u;num_all=all;num_sell=sell;num_now=all-sell;cost_all=c*all;profit=(u-c)*sell;next=NULL;void GoodsInfo:operator= (const GoodsI

19、nfo &right) /重載=strcpy(name,);number=right.number ;cost_p=right.cost_p;unit_p=right.unit_p ;num_all=right.num_all ;num_sell=right.num_sell ;num_now=right.num_now ;cost_all=right.cost_all;profit=fit ;void GoodsInfo:setInfo(char * a,float c,float u,int all,int sell) /數(shù)據(jù)載入strcpy(

20、name,a);cost_p=c;unit_p=u;num_all=all;num_sell=sell;num_now=all-sell;cost_all=c*all;profit=(u-c)*sell;next=NULL;void GoodsInfo:show(GoodsInfo * h) /顯示if(h=NULL) cout<<"NULL!n"elsecout<<"-n"<<"商品名: "<<h->name<<endl;cout<<"編號: &

21、quot;<<h->number<<endl<<"成本: "<<h->cost_p<<endl<<"銷售單價: "<<h->unit_p<<endl<<"銷量:"<<h->num_sell <<endl<<"庫存: "<<h->num_now<<endl<<"已獲得利潤:"<<

22、h->profit<<endl;void GoodsInfo: Amend(GoodsInfo * h) /修改信息 int F;char S;cout<<"n"<<"2.商品成本單價 "<<endl<<"3.商品銷售單價 "<<endl<<"4.進(jìn)貨數(shù)量 "<<endl<<"5.銷售數(shù)量 "<<endl<<"n"docout<<

23、;"請選擇需要修改的項目編號:"<<endl;cin>>F;switch(F)case 1 :cout<<"n"<<"|請輸入修改后的名稱|n"<<""cin.ignore ();cin.getline(h->name,21);break;case 2 :cout<<"n"<<"|請輸入修改后的成本價: n"<<""cin>>h->cos

24、t_p;break;case 3 :cout<<"請輸入修改后的銷售單價: "cin>>h->unit_p;break;case 4 :cout<<"請輸入修改后的進(jìn)貨量: "cin>>h->num_all;break;case 5 :cout<<"請輸入修改后的銷售量: "cin>>h->num_sell;break;h->cost_all=h->cost_p*(h->num_all);h->num_now=h->

25、num_all -(h->num_sell);h->profit=(h->unit_p -(h->cost_p )*h->num_sell;cout<<"是否需要繼續(xù)修改?"cin>>S;while(S='Y');#include <iostream>using namespace std;#include <string>#include<iomanip>#include <fstream>#include"LIST.H"GoodLis

26、t:GoodList()/構(gòu)造函數(shù)p=new GoodsInfo sizeof(GoodsInfo);head=NULL;p2=NULL;p->next =NULL;GoodList:GoodList()/析構(gòu)函數(shù)while(head!=NULL)p=head;head=p->next ;delete p;void GoodList:create()/創(chuàng)建int n=0;char f='Y'cout<<"請輸入商品信息:"<<endl;while(f='Y')n+=1;if(n=1) head=p;else

27、 p=new GoodsInfo sizeof(GoodsInfo);p2->next=p;cout<<"商品名稱: "if(n=1) cin.ignore ();cin.getline (p->name,21);cout<<"商品編號:"cin>>p->number;cout<<"成本價: "cin>>p->cost_p;cout<<"銷售價: "cin>>p->unit_p;cout<<

28、"共計商品件數(shù): "cin>>p->num_all;cout<<"已售出商品件數(shù): "cin>>p->num_sell;p->num_now=p->num_all-(p->num_sell);p->cost_all=p->cost_p*(p->num_all);p->profit=(p->unit_p)-(p->cost_p)*(p->num_sell);p2=p;cout<<"是否繼續(xù)輸入?(輸入Y繼續(xù))"cin&

29、gt;>f;cin.ignore();if(head!=NULL) p2->next=NULL; /P2指向最后一個void GoodList:showinfo(GoodsInfo * h)/顯示信息cout<<setw(10)<<"商品名稱"<<setw(10)<<"編號"<<setw(8)<<"進(jìn)價"<<setw(8)<<"售價"<<setw(8)<<"銷量"&

30、lt;<setw(8)<<"庫存"<<setw(12)<<"已得利潤"<<endl;while(h!=NULL)cout<<setw(10)<<h->name<<setw(10)<<h->number<<setw(8)<<h->cost_p<<setw(8)<<h->unit_p<<setw(8)<<h->num_sell<<setw(8)&

31、lt;<h->num_now<<setw(12)<<h->profit<<endl;h=h->next; GoodsInfo * GoodList:search() /查找if(head=NULL) cout<<"數(shù)據(jù)為空!n"return NULL;elseGoodsInfo *h;h=head;int f;cout<<"n"<<"請選擇查找方式: n"<<"1.按商品編號 n"<<"

32、2.按商品名稱 "<<endl<<"n"cin>>f;switch(f)case 1:int x,y;cout<<"請輸入需查找的商品編號:"cin>>x;while(h!=NULL&&(x!=(y=h->number)h=h->next;if(x=y) return h;lse cout<<"沒有找到該商品!n"return NULL;case 2:char x21;int c;cout<<"請輸入需查

33、找的商品名稱:"cin.ignore ();cin.getline(x,21);while(h!=NULL&&(c=strcmp(x,h->name)!=0)h=h->next;if(c=0)return h;else cout<<"沒有找到該商品!n"return NULL;void GoodList:saveInfo() /存檔fstream File;File.open("GoodsInformation.txt",ios:out|ios:binary);if(!File)cout<<&

34、quot;文件打開失敗!n"exit(0);p=head;GoodsInfo X;File<<"商品名稱編號進(jìn)價售價總量銷量庫存已得利潤n"while(p!=NULL)X=*p;File<<X.name<<""<<X.number<<""<<X.cost_p<<""<<X.unit_p<<""<<X.num_all <<""<&l

35、t;X.num_sell<<""<<X.num_now <<""<<X.profit<<endl;p=p->next;cout<<"文件保存成功!n"File.close();void GoodList:getInfo() /上傳fstream File;File.open("GoodsInformation.txt",ios:in);if(!File)cout<<"文件打開失敗!n"exit(0);cha

36、r s81;GoodsInfo h;File.getline (s,81);int n=0;while(!File.eof ()if(File.fail() break;n+=1;if(n=1)head=p;elsep=new GoodsInfo sizeof(GoodsInfo);p2->next=p;File>>>>h.number>>h.cost_p>>h.unit_p>>h.num_all>>h.num_sell>>h.num_now>>fit;*p=h;p2=p

37、;cout<<"上傳顯示完畢!"<<endl;File.close();void GoodList:addInfo(GoodsInfo * h) /添加cout<<"請輸入商品信息:"<<endl;p=new GoodsInfo sizeof(GoodsInfo);h->next=p;cin.ignore();cout<<"商品名稱: "cin.getline (p->name,21);cout<<"商品編號:"cin>>

38、;p->number;cout<<"成本價: "cin>>p->cost_p;cout<<"銷售價: "cin>>p->unit_p;cout<<"共計商品件數(shù): "cin>>p->num_all;cout<<"已售出商品件數(shù): "cin>>p->num_sell;p->num_now=p->num_all-(p->num_sell);p->cost_all=p-&g

39、t;cost_p*(p->num_all);p->profit=(p->unit_p)-(p->cost_p)*(p->num_sell);p2=p;p2->next=NULL;void GoodList:delete_() /刪除節(jié)點if(head=NULL)cout<<"NULL!n"elsecout<<"請輸入需要刪除的商品編號:"int n;GoodsInfo * h;cin>>n;h=head;while(h->next!=NULL&&h->nu

40、mber!=n)p=h;h=h->next;if(h->number=n)char F;cout<<"是否確定刪除該節(jié)點?"cin>>F;if(F='Y')if(h=head) head=h->next;else p->next=h->next;delete h;cout<<"刪除成功!n"else cout<<"未找到該節(jié)點!n"void GoodList:sort () /按銷量排序顯示GoodsInfo *h1,*h2,t;int n;

41、if(head=NULL) cout<<"NULL!n"elseint F;cout<<"n"<<"請選擇排序方式:n"<<"1.按銷量降序排列n"<<"2.按利潤降序排列n"<<"n"cin>>F;switch(F)case 1:for(h1=head;h1->next!=NULL;h1=h1->next)n=h1->num_sell;for(h2=h1->next;

42、h2!=NULL;h2=h2->next)if(h2->num_sell)>(h1->num_sell)n=h2->num_sell;if(n!=h1->num_sell)t=*h2;*h2=*h1;*h1=t;break;case 2:for(h1=head;h1->next!=NULL;h1=h1->next)n=h1->profit;for(h2=h1->next;h2!=NULL;h2=h2->next)if(h2->profit)>(h1->profit)n=h2->profit;if(n!=h

43、1->profit)t=*h2;*h2=*h1;*h1=t;break;showinfo(head);void GoodList:menu() /菜單cout<<endl<<endl<<" -n"<<" |*商場銷售管理系統(tǒng)*|n"<<" |-|n"<<" | |n"<<" |-*菜單*-|n"<<" | |n"<<" |1.創(chuàng)建 2.添加 3.修改 |n"<<" | |n"<<" |4.顯示 5.存檔 6.查找 |n

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論