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

下載本文檔

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

文檔簡介

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

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

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

4、 p ublic:char * n ame ;/商品名稱int nu mber;/商品編號float cost_ p;/成本單價float unit_p;/銷售單價intnu m_all;/共計商品件數(shù)intnum_now;/現(xiàn)存商品件數(shù)intnu m_sell;/已售出商品件數(shù)float cost_all;/進貨總計成本價float P rofit;/已銷售商品獲得的利潤Goods Info * n ext;/指向下一個商/構(gòu)造函數(shù)重載構(gòu)造函數(shù)GoodsI nfo();GoodsI nfo(char * a,i nt b,float c,float u,i nt all,i nt sell)

5、 ; /void op erator=(const Goods Info &nght);/重載=/數(shù)據(jù)載入void set In fo(char * a,float c,float u,i nt all,i nt sell);char* get name()retur n n ame;/返回姓名用于查找顯示商品信息void Ame nd(Goods Info *);void show(Goods Info *);GoodsI nfo() delete n ame;商品類鏈表class GoodList :p ublic Goods Infopublic:GoodListO;/構(gòu)造函數(shù),指針初始

6、化GoodList();/析構(gòu)函數(shù),釋放Goods Info * head;Goods Info * p; /頭指針活動指針1活動指針2(指向最后一個)/創(chuàng)建函數(shù)Goods Info * p2; / void create();/顯示void show in fo(Goods Info *);Goods Info * search(); /查找void saveI nfo();/信息存檔void getI nfo(); / 上傳信息 void add In fo(Goods Info *);/ 添加數(shù)據(jù)void sort(); /按銷量顯示 void menu();void delete_()

7、;/刪除節(jié)點;六.模塊分析菜單: ca=3 1;醤十神*闊十商場銷售管理系統(tǒng):* .眸號養(yǎng)粋帶畢尊雋哥IK歸同i_ 1 1111111”創(chuàng)建2 添加3/窗改i11!4顯示5-存檔查找:11G上傳8-排序務(wù)清屛!113 刪除0 退出11P1請選S操作十=111- CAUs ersVAtJ mini wtr 抽5 lctop 梢售善曇袞統(tǒng) TD e b ug怕頸第告菩逗垂癥.exe =.回 I 2所有函數(shù)均封裝在商品類及商品鏈表類中(GoodsI nfo 和GoodList) 信息存儲在類 Goods Info中,類中定義了Goods Info 指針,一個是*head,作為鏈表的頭指針,另一個是*

8、p,作為活動指針,一個*p2,指向鏈表的尾節(jié)。在不同的類的成員函數(shù)中都可使用,為了防止該活動指針使用過頻,造成幾個函數(shù)同時使用同一個指針指向不明,在有些函數(shù)里還定義了一些 臨時指針。1. 創(chuàng)建此函數(shù)為是創(chuàng)建商品信息數(shù)據(jù),構(gòu)成商品信息表是使用,用于讓用戶批量添加商品。 CAUs ersAd mini stratorXDe s let。小奇近誚嘗管逗竟疣iD此省告昔走手甘讓xhI U. I 回3售菓平選商稱號=r-ns- - - 眞番出繼番出繼 缺輸品品空口計售否品品#W計售否 畫gtg銷共巳是閒商咸銷夬已是1 : 4:數(shù)?蕉昭5數(shù)件入香伯7=口囂隸號=:數(shù)? 0攙件入 件口嶄V按照程序的提示,可

9、依次添加商品信息,按Y 繼續(xù),其他建則停止,返回主菜單。此時鏈表創(chuàng)建成功,*head指向鏈表的頭,p2指向尾??捎糜诤罄m(xù)函數(shù)的操作。2. 添加跟創(chuàng)建有一樣的用途,用于添加商品信息,不同的是添加只能用 于已有原鏈表存在的情況下。 但這個不能批量添加,一次只能添 加一個,并且存放在原鏈表尾節(jié)點的后一個, 形成一個新的鏈表。3. 查找顧名思義,此函數(shù)用于查找商品信息。在原始信息過多的時候,可以 通過查找(按商品編號和商品名稱兩鐘方式) 查看自己想看的商品詳 細信息。*請選擇撫作: 6請選擇查我方式11請輸入需查找的商品編號! 10023名:-介嚴(yán)2% t 1 銷銷庫已LA239若不存在該商品,程序則

10、自動輸出未找到,然后返回主菜單。若查找 到該商品,函數(shù)返回該節(jié)點的指針,并用單個顯示函數(shù)顯示出來。4. 修改此函數(shù)是基于查找函數(shù)之上的。 在查找到需要修改的單元后,選擇自 己需要修改的項目。B I CAUserAAdmir.i5tratorDesktopA莓迓銷蓋管乏至疣kDebugXi-韻售韋宅系茫exe=1回3請選擇操作*= 3請選擇需要修改的單元JVMsjyiJHST ivfu*ajtjwvuvurrvr請座S查g方式:攙商品名稱EPTivb 7r::T-r-JwHsir: t1請輸人需查找的商品編號;佃0陰g品名=蘋果 綿號:10023 應(yīng)樂* .7 韻tlM觸3.5包#得刑潤:540

11、畫單= 咅套葦干 口艮銷數(shù) 商品蓍 S5 12 3 4 貝 E S 嚴(yán) E*arr0.ri* GJ*=-Lj!7_rj-:-CGLri* :nidTsrJuwc-up3:|IS|b :鴨銷w數(shù)量、幘選擇需要修改的項目編號:5HA修魂啟鬪銷售量,丹9 W要繼Mw-? 丫厲迥ft需要僅改的項目編號;l|A|iS|*= 2 餉。函數(shù)會詢問是否需要繼續(xù)修改,Y繼續(xù),其他鍵則返回主菜單。5. 刪除刪除和修改一樣,基于查找函數(shù)之上,用于刪除不需要的節(jié)點。操作方法也和前面類似。6. 顯示此函數(shù)用于批量顯示商品信息。 該函數(shù)以表格的型式顯示, 明了 清晰,有助于比較。二gU占Er址Aumi品北to感眩上菱舉羞

12、言涯企Deiig辰盪韭聖豈理圣炳e歸 二 回 its* 選1草蘋 請品4 編號 1904 13002 1&QQ 10903進價5374售價8510G銷量sea3QB4且0庫存彌70&608已得利涸210010309008007. 排序排序是基于顯示函數(shù)的一個函數(shù)。該函數(shù)用選擇排序法,以兩種(按銷量和按利潤)方法排序顯示,有助于商家對比比較分析哪 種商品的銷量好利潤高,便于管理和優(yōu)化商城的盈利。8. 上傳當(dāng)需要輸入數(shù)據(jù)過多過大時, 可以通過上傳函數(shù),直接把文件中 的數(shù)據(jù)讀到程序中并形成鏈表, 然后再繼續(xù)后續(xù)操作。這個和創(chuàng) 建函數(shù)具有差不多的功能, 不過一個是從鍵盤讀入, 一個是從文 件中讀入。文

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

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

15、得體會C+是一門很龐大的并它一種非常簡潔高效的語言。類的就以前所學(xué)的C語言而通過這次課程設(shè)計,我清楚的認(rèn)識到了 且很有實用價值的一門學(xué)科, 特色在這次編程過程中有了充分的體會。模塊的分塊化,當(dāng)大大增強了程序的可讀性, 而言,我明顯感覺到C+在編寫這種比較復(fù)雜的程序時的優(yōu)勢, 他的重載函數(shù)運算符的等操作也是一大有點。需要用到某個函數(shù)時再進行調(diào)用, 且代碼也更加合理清晰。商品類的操作是一個 .cpp,文件里面同時也可以另外寫到一個.h課程設(shè)計真的很能就拿這次我所寫的商場銷售管理系統(tǒng)來說, 整體,寫在一個中的頭文件里面,在寫程序的時候再進行調(diào)用。上機也只是編寫的小程序, 把所鍛煉人,平時上課都是講的

16、基礎(chǔ)知識, 不能把知識融會貫通。 然而這次課設(shè)是編寫的一個小系統(tǒng),學(xué)的知識都聯(lián)系起來了,在剛剛看到要求時是覺得有很大的難度 的,畢竟是第一次編寫一個商場銷售管理系統(tǒng)。但是想到有志者事競成,只要敢于思考敢于嘗試,按步驟一步一步來也是能編寫 出程序的。于是我首先把程序類圖先畫了出來,把程序基本結(jié)構(gòu)勾勒出來,化整為零,一個一個小功能慢慢寫起,寫完一個在主 函數(shù)中驗證一個看是否正確,通過后在進行下一個,逐步實現(xiàn)。 而后編寫主函數(shù),菜單等,完善功能。因為我剛剛?cè)腴TC+,基本工還不足,能力還很弱,所以在寫的過程中遇到很多困難, 有些以前很熟悉的代碼也忘了, 于是我開始翻閱以前的書籍, 對照邊回憶,終于完成

17、了。特別是在文件操作方面尤為薄弱,我 意思到了自己的弱點。由于自己的不足,以后學(xué)習(xí)還要更加努力, 不懂時多問老師多向同學(xué)學(xué)習(xí)。作為一個計算機專業(yè)的學(xué)生,計算機語言是我們的基本功, 我們應(yīng)該扎實自己的基礎(chǔ), 才能更 快更好的發(fā)展。.源代碼#ifndef LIST_H#defi ne LIST_H#i nclude GOODSINFO.H class GoodList :p ublic Goods Info public: GoodListO;GoodList();Goods Info * head;Goods Info * p;Goods Info * p2;/構(gòu)造函數(shù),指針初始化/析構(gòu)函數(shù),釋

18、放/頭指針/活動指針1/活動指針2(指向最后一個)void create();/創(chuàng)建函數(shù)void show in fo(Goods Info *);Goods Info * search(); / 查找/顯示void save lnfo();/信息存檔void getl nfo();/上傳信息void addI nfo(Goods Info *);/添加數(shù)據(jù)void sort();/按銷量顯示void menu();void delete_();/刪除節(jié)點;#en dif/存儲商品信息#ifndef GOODSINFOJH#defineGOODSINFO Hclass Goods Infop

19、ublic:char * n ame ;/商品名稱int nu mber;/商品編號/成本單價/銷售單價float cost_ p;float unit_p;intnu m_all;/共計商品件數(shù)intnum_now;/現(xiàn)存商品件數(shù)intnu m_sell;/已售出商品件數(shù)/進貨總計成本價float cost_all;float P rofit;/已銷售商品獲得的利潤Goods Info * n ext;/指向下一個商/構(gòu)造函數(shù)/重載構(gòu)造函數(shù)void op erator=(const Goods Info &right);/重載=GoodsI nfo();Goods In fo(char *

20、a,i nt b,float c,float u,i nt all,i nt sell);/數(shù)據(jù)載入/返回姓名用于查找void set In fo(char * a,float c,float u,i nt all,i nt sell);char* get name()retur n n ame;/顯示商品信息void Ame nd(Goods Info *);void show(Goods Info *);GoodsI nfo() delete n ame; ; #en dif #in clude using n ames pace std;#i ncludeGOODSINFO.H/構(gòu)造函數(shù)

21、#in cludeGoodsI nfo:Goodsl nfo() n ame=new char 21;nu mber=cost_ p=unit_p=nu m_all=num_now=nu m_sell=cost_all=p rofit=0;n ext=NULL;/重載構(gòu)造函數(shù)Goods In fo:Goods In fo(char * a,i nt b,float c,float u,i nt all,i nt sell) strc py(n ame,a);nu mber=b;cost_ p=c;unit_p=u;nu m_all=all;num _sell=sell;num_no w=all

22、-sell;cost_all=c*all;p rofit=(u-c)*sell;n ext=NULL;void Goods In fo:o perator=(const Goods Info &right)/重載=strc py(n ame,right. name);nu mber=nght. nu mber ;cost_ p=nght.cost_ p;unit_p=right.u nit_p ;nu m_all=right .nu m_all ;nu m_sell=right .nu m_sell ;num_no w=right. num_now ;cost_all=nght.cost_al

23、l;p rofit=right. profit ;void Goods In fo:setl nfo(char * a,float c,float u,i nt all,i nt sell)/數(shù)據(jù)載入strc py(n ame,a);cost_ p=c;unit_p=u;nu m_all=all;num _sell=sell;num_no w=all-sell;cost_all=c*all;p rofit=(u-c)*sell;n ext=NULL;void Goods In fo:show(Goods Info * h)/顯示if(h=NULL) coutNULL!n;elsecoutrr商

24、品名:nameendl;cout 編號:numberendl成本:cost_ pendl 銷售單價:unit_pendl 銷量:num sell endl庫存:num nowendl33已獲得利潤: profite ndl;修改信息void Goodsl nfo: Ame nd(Goodsl nfo * h) / int F;char S;A2.商品成本單價Ae ndlA3.商品銷售單價Ae ndl人4.進貨數(shù)量Ae ndl人5.銷售數(shù)量AF;switch(F)case 1 :coutvvnvv|請輸入修改后的名稱|nH.VV cin .ig nore ();cin. getl in e(h-

25、n ame,21);break; case 2 :coutvv vv|請輸入修改后的成本價:nH.vv cin h-cost_ p;break;case 3 :coutvv請輸入修改后的銷售單價:;cin h- unit_p ;break;case 4 :coutvv請輸入修改后的進貨量:;cin h-nu m_all;break;case 5 :coutvv請輸入修改后的銷售量:;cin h-nu m_sell;break; h-cost_all=h-cost_ p*(h-nu m_all);h-num_no w=h-nu m_all -(h-nu m_sell);h-p rofit=(h-

26、 unit_p -(h-cost_ p )*h-nu m_sell; coutvv是否需要繼續(xù)修改?;cin S;while(S=Y);#in clude viostreamus ing n ames pace std;#in clude vstri ng #in cludevioma nip #in clude vfstream #i ncludeLIST.HGoodList:GoodList()/構(gòu)造函數(shù)p=new Goods Info sizeof(Goods In fo);head=NULL;p2=NULL;p- next =NULL;GoodList:GoodList()/析構(gòu)函數(shù)w

27、hile(head!=NULL)p=head;head=p-next ;delete p;void GoodList:create()/創(chuàng)建int n=0;char f=Y;cout 請輸入商品信息:n ext=p;coutn ame,21); coutp-nu mber; coutp-cost_ p;coutp-unit_p;coutp-nu m_all;coutp-nu m_sell;p-num_now=p- num _all-( p- num _sell);p-cost_all=p-cost_ p*(p-nu m_all);p-p rofit=(p-unit_p)-(p-cost_ p)

28、*(p-nu m_sell);p2=p;coutvv是否繼續(xù)輸入?(輸入丫繼續(xù));cinf;cin .ig no re();if(head!=NULL) p2-n ext=NULL;P2指向最后一個/顯示信息void GoodList:show in fo(Goods Info * h)coutvvsetw(10)vv 商品名稱vvsetw(10)vv 編號vvsetw(8)vv 進價vvsetw(8)vv 售價”vvsetw(8)vv 銷量vvsetw(8)vv 庫存vvsetw(12)vv 已得利潤vvendl;while(h!=NULL)coutsetw(10)n amesetw(10)

29、nu mbersetw(8)cost_ psetw(8) unit_psetw(8)nu m_sellsetw(8)num_no wsetw(12)p rofitn ext;Goods Info * GoodList:search()/查找if(head=NULL) cout 數(shù)據(jù)為空!n”;return NULL;else GoodsI nfo *h;h=head;int f;vv請選擇查找方式:nvv1.按商品編號 n2.按商品名稱 f;switch (f) case 1: int x,y;H.coutx;while(h!=NULL&(x!=(y=h- nu mber) h=h-n ext

30、;if(x=y) return h;lse cout沒有找到該商品!n;return NULL; case 2: char x21;int c;cout name)!=0) h=h-n ext;if(c=0)return h;else cout沒有找到該商品!n;return NULL;void GoodList:save lnfo()/存檔fstream File;File. open (Goods In formati on. txt,ios:out|ios:b in ary);if(!File)cout文件打開失敗!n;exit(0);p=head;Goods Info X;File商品

31、名稱編號進價 售價總量 銷量 庫存 已得利潤n;while( p!=NULL)X=* p;FileX .n ameX. nu mberX.cost_ pX.u nit_p HX. num _all X. nu m_sellX .num_now X .p rofitn ext;cout 文件保存成功!n;File.close();void GoodList:getl nfo()/上傳File. open (Goods In formati on. txt,ios:i n);fstream File;if(!File)coutn ext=p;Fileh .n ameh. nu mberh.cost

32、_ p h. unit_ph. nu m_allh. nu m_sellh. num_nowh. profit;*p=h;P2=P; cout 上傳顯示完畢!n ext =p;cin .ig nore();coutn ame,21); coutp-nu mber; coutp-cost_ p; coutp-unit_p;coutp-nu m_all;coutp-nu m_sell;cout請輸入商品信息:num_now=p-nu m_all-(p-nu m_sell);p-cost_all=p-cost_ p*(p-nu m_all);p-p rofit=(p-unit_p)-(p-cost_ p)*(p-nu m_sell);p2=p;p2- next=NULL;void GoodList:delete_()/刪除節(jié)點coutNULL!n;elseif(head=NULL)coutn;while(h- next!=NULL&h- nu mber!=n)p=h;h=h-n ext;if(h-nu mber=n) char F;coutvv是否確定刪除該節(jié)點?;cinF;if(F=Y)if(h=head) head=h-n ext;else p-n ext=h-n ext;delet

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論