C++商品銷售統計課程設計_第1頁
C++商品銷售統計課程設計_第2頁
C++商品銷售統計課程設計_第3頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄1問題描述31.1目的1.2要求1.3商品銷售統計2問題分析33. 算法設計4UML圖54. 測試結果與分析6總結105. 代碼附錄10一、問題描述1.1目的在面向對象程序設計課程教學的基礎上,根據軟件工程的方法與流程,在相對集中的實訓教學時間內,通過一個功能較完整的小型應用系統的設計與開發(fā),深入復習并進一步掌握面向對象的程序設計思想與方法。同時,作為整個實踐教學體系一部分,系統培養(yǎng)采用面向對象的方法分析問題與解決問題的能力及團體組織與協作能力。1.2要求從課程設計的目的出發(fā),通過設計工作的各個環(huán)節(jié),達到以下教學要求:1)根據實現的功能,劃分出合理的對象類,明確對象類間的關系。2)為每個對

2、象類設計正確的域和方法,為每個方法設計合理的方法體。同時,為對象類及內部的域和方法運用正確的修飾符,如訪問控制符等。3)編程簡練,程序功能齊全,能正確運行。1.3商品銷售統計問題描述編寫商品銷售統計程序,商品的信息有:商品的名稱,計量單位(重量或件),單價。所有商品的信息事先已存入計算機,屏幕上顯示所有商品的名稱,選擇商品名,輸入商品計量單位(如重量,件數等),根據單價算出總價??蛻粢淮钨徫锟赡苜徺I多種商品,程序應計算出客戶應付的錢款數。基本要求程序分為兩個部分:第一部分用于輸入商品的信息并允許修改和刪除;第二部分實現銷售統計。程序運行時由用戶選擇進入哪一部分功能,并能在運行時在兩部分之間切換

3、。第二部分運行時,首先顯示所有商品名稱及代碼(商品數目較多時,應考慮分屏顯示),用戶輸入商品代碼及商品重量或件數,用戶一次操作可輸入若干商品的購買信息,然后輸入一個特殊的代碼(如-1)表示本次購物結束。此時。程序計算出應付錢款數并顯示。實現提示本程序的商品信息管理可采用與課程設計題目二類似的數據結構,既定義一個商品類,每種商品作為商品類的實例(對象)存儲在鏈表節(jié)點中。二、問題分析:按照要求這個程序的編寫要求,由于包含多種實現要求,所以在編寫時需要多個實現函數,這樣就要定義一個類或機構體來統籌各個函數以及用鏈表或指針數組來儲存輸入的常量數據,并且在各個轉換點設置相應的提示語句使整個程序便于操作。

4、在修改數據的函數實現時,由于一個商品包含多個變量,要想在修改某一個數據后而不影響其他的數據,所以就必須要有一個switch語句;在商品信息顯示函數的實現時,由于中間要有一個購買函數的實現,所以商品數量會隨著商品的購買而減少,所以要將購買的數量另外定義一個變量。關于switch語句的運用在這個程序這可能要多次使用,主要在一個函數擁有多個變量或變量函數。三、算法的設計這個程序我是采用類以及函數的調用來寫的。先寫一個tong類,在tong類中聲明所需要的函數,classtongtong();tong(charco20,charn20,chardw20,doublepr,intqu);tong();v

5、oidSet();/商品信息錄入voidAlter();/商品信息修改voiddelete();/商品信息刪除voidlist();/商品信息顯示voidDisplay();floatCheckout(intquantity);/單個商品小結voidTotal();/總計voidbuy();/商品買入在寫了兩個操作函數。在主函數中分別調用所需要的函數。在存儲數據方面,我聲明了一個指針數組*Si,將輸入的商品信息數據按照一一對應方式存儲的。在tong類中一共包括十一個函數,分別為構造函數、析構函數以及各種功能函數。1、在Set函數中通過輸出語句的提示輸入各種數據,并將輸入的數據儲存到定義的指針數

6、組中,等一種商品數據信息輸入完畢后,會彈出一個提示語句詢問是否繼續(xù)輸入商品信息,可根據個人意愿輸入Y(或y表示繼續(xù)輸入)N(或n表示中斷輸入),若輸入Y(或y)則調用本函數,進行數據輸入;若輸入N(或n)彈出一個提示語句詢問是否進行其他操作,在根據個人意愿輸入正確的字符來進行相應的操作。2、Delete函數是進行對原始數據(即商品信息)進行刪除。先根據輸出語句的提示輸入您要刪除的商品名稱,商品名稱輸入后通過if語句判斷是否存在這種商品:若不存在則會出現這種商品不存在的提示語句,并同時出現一個提示是否進行其他操作提示語句;若存在則會進行對該商品刪除的操作并提示刪除成功。3、Alter函數是對輸入

7、的商品信息進行修改的。函數運行時,會首先出現一個提示語句,提示管理者輸入所要修改的商品名稱,再通過一個for語句將該商品的所有信息調出,同時出現另一個提示語句,供管理者選擇所要修改商品項,再通過switch語句供管理者輸入所要修改的具體的商品信息,并將管理者修改的信息存入相應的商品信息庫中(即該商品在原始輸入數據時分配的儲存空間中),一個商品信息修改完成后同樣會出現一個詢問是否繼續(xù)修改的語句。4、List函數是將輸入的所有商品信息顯示在屏幕上,根據提示語句將所有的輸入或是修改的商品信息顯示在操作屏幕上。5、buy函數是消費者對屏幕上顯示的商品進行購買的函數。該函數在運行時,會首先出現一個提示語

8、句,提示消費者輸入需要購買的商品名稱和購買數量,輸入完畢后會調用Checkout、Display、Total,進行相應的操作。6、Checkout函數是一個小記函數,主要將消費者購買的每一種商品進行一個初步計費并顯示在屏幕上,這個函數主要是為total函數服務的。7、Total函數則是總計函數,是將消費者購買的所有商品進行計費,并將消費者需要支付的費計算出來顯示在屏幕上。8>Display函數是將Checkout函數中各種商品費用進行累加,在將累加的結果返回給Total函數。9、在主函數的運行過程中會出現一個提示語句將整個程序分成兩個部分,分別為商品信息管理和商品銷售管理。在商品信息管理

9、部分,主要運行Set、Alter三個函數(這三個函數是通過switchy語句封裝在caozuoa這個子函數中的),而在商品銷售統計部分,則運行l(wèi)ist、buy兩個函數(這兩個函數是通過switch語句圭寸裝在caozuob這個子函數中的)。四、UML圖tong-code20:char-namer20:char-danwei20:char-price:double-quantity:double+set():void+alter():void+delete():void+list():void+display():void+total():void+buy():void+tong():void+

10、tong(code20:char,name20:char,danwei20:char,price:int,quantity:int)+tong():void+checkout(quantity:int):float五、測試結果及其分析測試用的輸入輸出數據以及運行結果的截屏圖如下:請選擇您的操作:商品信息管理系統(M)商品銷售系統(S)m商品信息錄入(請輸入0)刪除信息(請輸入1)修改信息(請輸入2):0請輸入商品代碼及名稱:qqw請輸入計量單位:jin請輸入商品單價:1.2請輸入商品數量:100信息錄入成功!是否繼續(xù)錄入?(yorn)請輸入商品代碼及名稱:aas請輸入計量單位:jin請輸入商品

11、單價:12請輸入商品數量:120信息錄入成功!是否繼續(xù)錄入?(yorn)您想繼續(xù)進行其他操作嗎?(y/n)y請選擇您的操作:商品信息管理系統(M)商品銷售系統(S)m* 菜單選項商品信息錄入(請輸入0)修改信息(請輸入1)刪除信息(請輸入2)1請輸入您所修改的商品名稱:as你想要修改:代碼及名稱(請按1)、計量單位(請按2)、單價(請按3)、數量(請按4)3請輸入單價:2.2(將輸入的原始數據:單價為12修改為2.2)數據修改成功!是否繼續(xù)修改?(y/n)您想繼續(xù)進行其他操作嗎?(y/n)y請選擇您的操作:商品信息管理系統(M)商品銷售系統(S)s* 菜單選項*顯示商品信息(請輸入0)商品買入

12、(請輸入1)0=所有商品信息清單=貨品代碼=貨品名稱=貨品價格=貨品數量=十量單位qqw1.2100jinaas2.2120jin您想繼續(xù)進行其他操作嗎?(y/n)y請選擇您的操作:商品信息管理系統(M)商品銷售系統(S)s*菜單選項*顯示商品信息(請輸入0)商品買入(請輸入1)1請輸入你想購買的商品的代碼及名稱qqw請輸入您想購買的商品的數量:12貨品代碼=-貨口仃名稱、=貨品價格購頭數量-=:一-計量單位-小計(元)=qqw1.212jin14.4要結束商品買入請按N/n',其繼續(xù)買入請按'Y/y':n你應該付14.4元!你實際付(元):20應該找回你5.6元!您想

13、繼續(xù)進行其他操作嗎?(y/n)n其截屏圖如下:dXDociLB.cn+驀aandSct-fcinc?AdAin±3"tratDcbn:EX06lnl(2>MMMPCMMXMMMMMMMMM:MMXMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:k歡迎進入商品銷&統計系統*MMMM:MHIMMMIMMMMMMMMMXMMMMMMMMMMMMMMMMMMMKMMMMMMMMMMMM誦選擇您的操作:商品佶總管理系絨5商品銷害基統佔、一一一一一一Jl一一一M-Hr商品佶息菲入請輸入M刪除借總疋請輸入丄>倏改佶息疋請繭入=0請輸入商品代碼及老稱;

14、KIQW詰輸入VI呈單位*jin請輸入商品單價.丄_2請輸入商品數雖;IHG頊福如.佶息求入感功Ic*選定*C:Docu>entsandSettingsAd>inistrator桌面Debug08F?X(2)|您要求刪除的對象本來就不存在I請檢查輸入的正確性I區(qū)否繼續(xù)刪除?orn粋想繼續(xù)進行其他操作嗎?3加鷺選擇您的操作:商品信息管理系統5商品銷售系統佃mP菜單選項*快*買品信息錄入(請輸入0刪除信息(請輸入丄修改信息(請輸入籍輸入您所修改的商品名稱:as陰所要修改的人的信息不在在,請修正后在更改!協血要修改:代碼及名稱(魯按5計量單位(請按糾單價£請按切數量請按Q星輸入

15、單價:核據修改成功I是否繼續(xù)修改?32陋廻繼續(xù)進行其他操作嗎鷺選擇您的操作:商品信息管理系統商品銷售系統佃-i£宦"C;DucuMent£andSettingsAdBinistrator面DeIhi叭DR網工項H回目kqw科輸入您想購買的商品的數量:幄品代碼口“匕貨品名稱“貨品價格購買數量“計量單位“小計(元”i.2i.21214.4段結東商品買入請按,N/n,,其繼續(xù)買入請按,V/yJ:n懈應該付14.4元?禰買廂付(元“20應錢找回你拜元?阻想挺續(xù)進行其他操作嗎pPressanykeytocontinue調試分析:在起始階段,出現提示語句,詢問進入哪部分操作,

16、輸入字符m,進入商品信息管理部分,再根據提示,輸入字符0,進入商品信息輸入部分,按照提示輸入的數據被儲存在指針數組中,一個完整的商品信息錄入后,就會出現一個詢問是否繼續(xù)輸入的語句,按此方法輸入幾種商品信息后,終止商品信息的輸入,在按照提示語句進入商品信息修改部分,在此部分修改部分商品信息后,退出,再在提示語句的提示下輸入字符s進入商品銷售管理部分,在此部分,輸入字符0進入商品信息顯示部分,將顯示在第一部分輸入以及修改后的所有商品信息,以供消費者選擇,退出后再進入商品買入部分,根據提示輸入正確的字符或字符串,購買您所需的商品,結束購買后會出現商品消費總計,輸出消費者所需付的費用并根據實際付的費用

17、計算出找零。在測試與調試過程中,我是按照屏幕提示進行操作,輸入符合程序編排的數據,一步一步進行調試的。六、總結經過了這次商品銷售統計的課程設計我從中學到了很多,同時明白了做一個小型軟件的步驟和流程如何讓自己設計的軟件運用到具體的實際工作中,這是一個關鍵的環(huán)節(jié)還有就是程序設計和運行測試中遇到的問題該如何解決,從解決問題中我也學到了許多平時課本上所沒有的知識當然,能夠完成這個商品銷售統計我自己也感覺很有成就感運用到的開發(fā)工具和軟件技術:此系統結合商品銷售統計的要求,對C+、C語言的學習和應用,主要完成商品銷售統計的分析,設計和實現,系統的設計,主控程序設計,并由此設計了類結構和應用程序。系統運行結

18、果證明,設計的商品銷售統計可以滿足商品管理者完成管理的日常工作,包括商品銷售以及商品信息的管理等軟件還需要哪些改進:在編寫源程序代碼的過程中對語言的運用還需要提高,應使寫出來的程序更加簡潔,易讀懂,更加滿足實際工作的需要要想使做出來的程序更好的利用還需根據實際需要在今后的運用中不斷的改進和完善七、代碼附錄#include<stdio.h>#include<stdlib.h>#include<conio.h>#definenull0#include<iostream>#include<iomanip>#include<string

19、>控制字符串的頭文件usingnamespacestd;classtongpublic:tong();tong(charco20,charn20,chardw20,doublepr,intqu);tong();/商品信息錄入/商品信息修改/商品信息刪除/商品信息顯示/單個商品小結/總計/商品買入voidSet();voidAlter();voiddelete1();voidlist();voidDisplay。;floatCheckout(intquantity);voidTotal();voidbuy();private:charcode20;charname20;chardanwei

20、20;doubleprice;intquantity;tong:tong()tong:tong(charco20,charn20,chardw20,doublepr,intqu)strcpy(code,co);strcpy(name,n);strcpy(danwei,dw);price=pr;quantity=qu;tong:tong()tong*s50;inti=0;intj=0;charcode20;charname20;chardanwei20;doubleprice;intquantity;voidtong:Set()/商品信息錄入coutvv"請輸入商品代碼及名稱:&quo

21、t;vvendl;cin»code»name;coutvv"請輸入計量單位:"vvendl;cin>>danwei;coutvv"請輸入商品單價:"vvendl;cin»price;coutvv"請輸入商品數量:"vvendl;cin»quantity;j+;si=newtong(code,name,danwei,price,quantity);i+;coutvv"信息錄入成功!"vvendl;coutvv"是否繼續(xù)錄入?(yorn)"vven

22、dl;if(getch()='y')Set();elsereturn;voidtong:Alter()/商品信息修改coutvv"請輸入您所修改的商品名稱:"vvendl;cin»name;for(inth=0;hvi;h+)if(strcmp(name,sh->name)=0)charnewcode,newname,newdanwei;doublenewprice;intnewquantity;intn;coutvv"你想要修改:代碼及名稱(請按1)、計量單位(請按2)、單價(請按3)、數量(請按4)"vvendl;ci

23、n>>n;switch(n)case1:coutvv"請輸入商品代碼及名稱:"vvendl;cin»newcode»newname;sh->code20=newcode;sh->name20=newname;coutvv"數據修改成功!"break;case2:coutvv"請輸入計量單位:"vvendl;cin>>newdanwei;sh->danwei20=newdanwei;coutvv"數據修改成功!"break;case3:coutvv&quo

24、t;請輸入單價:"vvendl;cin>>newprice;sh->price=newprice;coutvv"數據修改成功!"break;case4:coutvv"請輸入數量:"vvendl;cin»newquantity;sh->quantity=newquantity;coutvv"數據修改成功!"break;else"vvendl;"vvendl;coutvv"你所要修改的商品的信息不存在,請修正后再更改!coutvv"是否繼續(xù)修改?(y/n)

25、"vvendl;if(getch()='y')Alter();elsereturn;voidtong:delete1()/商品信息刪除coutvv"請輸入您所刪除的商品名稱:"vvendl;cin>>name;for(inth=O;h<i;h+)if(strcmp(name,sh->name)=O)charnewcode,newname,newdanwei;doublenewprice;intnewquantity;intn;coutvv"你想要刪除:代碼及名稱(請按1)、計量單位(請按2)、單價(請按3)、數量(

26、按4)"<<endl;cin>>n;switch(n)case1:coutvv"請輸入商品代碼及名稱:"vvendl;cin>>newcode>>newname;sh->code20=newcode;sh->name20=newname;coutvv"數據刪除成功!"break;case2:coutvv"請輸入計量單位:"vvendl;cin>>newdanwei;sh->danwei20=newdanwei;coutvv"數據刪除成功!

27、"break;case3:coutvv"請輸入單價:"vvendl;cin>>newprice;sh->price=newprice;coutvv"數據刪除成功!"break;case4:coutvv"請輸入數量:"vvendl;cin>>newquantity;sh->quantity=newquantity;coutvv"數據刪除成功!"break;elsecoutvv"你所要刪除的商品的信息不存在,請修正后再更改!"vvendl;cout

28、71;"是否繼續(xù)刪除?(y/n)"«endl;if(getch()='y')delete1();elsereturn;voidtong:list()/商品信息顯示cout<v"="v<endl;cout<<"=所有商品信息="<<endl;cout<v"="v<endl;coutvv"貨品代碼=貨品名稱=貨品價格=貨品數量=計量單位"vvendl;if(i=0)coutvv"系統中沒有錄入商品信息或該商品信息已被

29、刪除!"vvendl;for(intk=0;kvi;k+)coutvvsetw(15)vvleftvvsk->codevvsetw(15)vvleftvvsk->namevvsetw(15)vvleftvvsk->pricevvsetw(15)vv|eftvvsk->quantityvvsetw(15)vvleftvvsk->danweivvendl;voidtong:buy()/商品買入coutvv"請輸入你想購買的商品的代碼及名稱:"vvendl;cin>>code>>name;coutvv"請輸

30、入您想購買的商品的數量:"vvendl;cin>>quantity;Checkout(quantity);Display();Total();voidtong:Display()coutvv"貨品代碼貨品名稱=貨品價格購買數量=計量單位=小計(元)="vvendl;coutvvsetw(15)vvthis->codevvsetw(15)vvthis->quantityvvsetw(15)vvthis->namevvsetw(15)vvthis->pricevvsetw(15)vvthis->quantityvvsetw(1

31、5)vvthis->danweivvendl;/單個商品小結floattong:Checkout(intquantity)intk=0;floatsum(0.0);sum=sk->price*quantity;returnsum;voidtong:Total()/總結帳floatsum=0;floatreal;charGoOn;while(1)coutvv"要結束商品買入請按N/n',其繼續(xù)買入請按Y/y':"vvendl;cin»GoOn;if(GoOn='Y'|GoOn='y')intquantity

32、;coutvv"請輸入商品代碼:"vvendl;cin>>code>>name;coutvv"請輸入商品數量:"vvendl;cin>>quantity;sum+=Checkout(quantity);coutvv"你購買的商品為:"vvendl;Display();elseif(GoOn='N'|GoOn='n')break;coutvv""vvendl;sum+=Checkout(quantity);coutvv"你應該付"

33、vvsumvv"元!"vvendl;coutvv"你實際付(元):"cin>>real;coutvv"應該找回你"vvreal-sumvv"元!"vvendl;/找零。voidcaozuo1(intp)tongt;switch(p)case0:t.Set();break;case1:t.Alter();break;case2:t.delete1();break;case8:exit(0);break;voidcaozuo2(intp)tongt;switch(p)caseO:t.list();break;case1:t.buy();break;case8:exit

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論