商場銷售管理系統C課程設計_第1頁
商場銷售管理系統C課程設計_第2頁
商場銷售管理系統C課程設計_第3頁
商場銷售管理系統C課程設計_第4頁
商場銷售管理系統C課程設計_第5頁
已閱讀5頁,還剩34頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、 p ublic:char * n ame ;/商品名稱int nu mber;/商品編號float cost_ p;/成本單價float unit_p;/銷售單價intnu m_all;/共計商品件數intnum_now;/現存商品件數intnu m_sell;/已售出商品件數float cost_all;/進貨總計成本價float P rofit;/已銷售商品獲得的利潤Goods Info * n ext;/指向下一個商/構造函數重載構造函數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);/重載=/數據載入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;/構造函數,指針初始

6、化GoodList();/析構函數,釋放Goods Info * head;Goods Info * p; /頭指針活動指針1活動指針2(指向最后一個)/創建函數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 *);/ 添加數據void sort(); /按銷量顯示 void menu();void delete_()

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

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

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

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

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

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

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

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

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

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

17、了。特別是在文件操作方面尤為薄弱,我 意思到了自己的弱點。由于自己的不足,以后學習還要更加努力, 不懂時多問老師多向同學學習。作為一個計算機專業的學生,計算機語言是我們的基本功, 我們應該扎實自己的基礎, 才能更 快更好的發展。.源代碼#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;/構造函數,指針初始化/析構函數,釋

18、放/頭指針/活動指針1/活動指針2(指向最后一個)void create();/創建函數void show in fo(Goods Info *);Goods Info * search(); / 查找/顯示void save lnfo();/信息存檔void getl nfo();/上傳信息void addI nfo(Goods Info *);/添加數據void sort();/按銷量顯示void menu();void delete_();/刪除節點;#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;/共計商品件數intnum_now;/現存商品件數intnu m_sell;/已售出商品件數/進貨總計成本價float cost_all;float P rofit;/已銷售商品獲得的利潤Goods Info * n ext;/指向下一個商/構造函數/重載構造函數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);/數據載入/返回姓名用于查找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/構造函數

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;/重載構造函數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)/數據載入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.進貨數量Ae ndl人5.銷售數量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是否需要繼續修改?;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()/構造函數p=new Goods Info sizeof(Goods In fo);head=NULL;p2=NULL;p- next =NULL;GoodList:GoodList()/析構函數w

27、hile(head!=NULL)p=head;head=p-next ;delete p;void GoodList:create()/創建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是否繼續輸入?(輸入丫繼續);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 數據為空!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_()/刪除節點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是否確定刪除該節點?;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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論