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

下載本文檔

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

文檔簡介

1、目錄1 .問題描述31.1 目的1.2 要求1.3 商品銷售統(tǒng)計2 .問題分析33 .算法設計44 .UML 圖55 .測試結(jié)果與分析66 .總結(jié)107 .代碼附錄10一、問題描述1.1 目的在面向?qū)ο蟪绦蛟O計課程教學的基礎上,根據(jù)軟件工程的方法與流程,在相對集中的實訓教學時間內(nèi),通過一個功能較完整的小型應用系統(tǒng)的設計與開發(fā),深入復習并進一步掌握面向?qū)ο蟮某绦蛟O計思想與方法。同時, 作為整個實踐教學體系一部分,系統(tǒng)培養(yǎng)采用面向?qū)ο蟮姆椒ǚ治鰡栴}與解決問題的能力及團體組織與協(xié)作能力。1.2 要求從課程設計的目的出發(fā),通過設計工作的各個環(huán)節(jié),達到以下教學要求:1)根據(jù)實現(xiàn)的功能,劃分出合理的對象類

2、,明確對象類間的關(guān)系。2) 為每個對象類設計正確的域和方法,為每個方法設計合理的方法體。同時,為對象類及內(nèi)部的域和方法運用正確的修飾符,如訪問控制符等。3)編程簡練,程序功能齊全,能正確運行。1.3 商品銷售統(tǒng)計問題描述編寫商品銷售統(tǒng)計程序,商品的信息有:商品的名稱,計量單位(重量或件),單價。所有商品的信息事先已存入計算機,屏幕上顯示所有商品的名稱,選擇商品名,輸入商品計量單位 ( 如重量,件數(shù)等 ) ,根據(jù)單價算出總價??蛻粢淮钨徫锟赡苜徺I多種商品,程序應計算出客戶應付的錢款數(shù)?;疽蟪绦蚍譃閮蓚€部分:第一部分用于輸入商品的信息并允許修改和刪除;第二部分實現(xiàn)銷售統(tǒng)計。程序運行時由用戶選擇

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

4、且在各個轉(zhuǎn)換點設置相應的提示語句使整個程序便于操作。在修改數(shù)據(jù)的函數(shù)實現(xiàn)時, 由于一個商品包含多個變量,要想在修改某一個數(shù)據(jù)后而不影響其他的數(shù)據(jù),所以就必須要有一個switch 語句;在商品信息顯示函數(shù)的實現(xiàn)時,由于中間要有一個購買函數(shù)的實現(xiàn), 所以商品數(shù)量會隨著商品的購買而減少,所以要將購買的數(shù)量另外定義一個變量。關(guān)于switch 語句的運用在這個程序這可能要多次使用,主要在一個函數(shù)擁有多個變量或變量函三、算法的設計這個程序我是采用類以及函數(shù)的調(diào)用來寫的。先寫一個tong 類, 在 tong 類中聲明所需要的函數(shù),class tongtong();tong(char co20,char n2

5、0,char dw20,double pr,int qu);tong();void Set();/商品信息錄入void Alter();/商品信息修改void delete();/商品信息刪除void list();/商品信息顯示void Display();float Checkout(int quantity); /單個商品小結(jié)void Total();/總計void buy();/商品買入在寫了兩個操作函數(shù)。在主函數(shù)中分別調(diào)用所需要的函數(shù)。在存儲數(shù)據(jù)方面,我聲明了一個指針數(shù)組*Si, 將輸入的商品信息數(shù)據(jù)按照一一對應方式存儲的。在 tong 類中一共包括十一個函數(shù),分別為構(gòu)造函數(shù)、析構(gòu)函

6、數(shù)以及各種功能函數(shù)。1、 在 Set 函數(shù)中通過輸出語句的提示輸入各種數(shù)據(jù),并將輸入的數(shù)據(jù)儲存到定義的指針數(shù)組中, 等一種商品數(shù)據(jù)信息輸入完畢后,會彈出一個提示語句詢問是否繼續(xù)輸入商品信息,可根據(jù)個人意愿輸入 Y(或y表示繼續(xù)輸入)N(或n表示中斷輸入),若輸入丫(或 y)則調(diào)用本函數(shù),進行數(shù)據(jù)輸入;若輸入NI (或n)彈出一個提示語句詢問是否進行其他操作,在根據(jù)個人意愿輸入正確的字符來進行相應的操作。2、 Delete 函數(shù)是進行對原始數(shù)據(jù)(即商品信息)進行刪除。先根據(jù)輸出語句的提示輸入您要刪除的商品名稱,商品名稱輸入后通過if 語句判斷是否存在這種商品: 若不存在則會出現(xiàn)這種商品不存在的提

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

8、所有的輸入或是修改的商品信息顯示在操作屏幕上。5、buy函數(shù)是消費者對屏幕上顯示的商品進行購買的函數(shù)。該函數(shù)在運行時,會首先出現(xiàn)一個提示語句,提示消費者輸入需要購買的商品名稱和購買數(shù)量,輸入完畢后會調(diào)用Checkout、 Display 、 Total ,進行相應的操作。6、 Checkout 函數(shù)是一個小記函數(shù),主要將消費者購買的每一種商品進行一個初步計費并顯示在屏幕上,這個函數(shù)主要是為total 函數(shù)服務的。7、 Total 函數(shù)則是總計函數(shù),是將消費者購買的所有商品進行計費,并將消費者需要支付的費計算出來顯示在屏幕上。8、 Display 函數(shù)是將Checkout 函數(shù)中各種商品費用進行

9、累加,在將累加的結(jié)果返回給Total函數(shù)。9、在主函數(shù)的運行過程中會出現(xiàn)一個提示語句將整個程序分成兩個部分,分別為商品信息管理和商品銷售管理。在商品信息管理部分,主要運行Set、Alter三個函數(shù)(這三個函數(shù)是通過switchy語句封裝在caozuoa這個子函數(shù)中的),而在商品銷售統(tǒng)計部分, 則運行l(wèi)ist 、buy兩個函數(shù)(這兩個函數(shù)是通過 switch語句封裝在caozuob這個子函數(shù)中 的)。四、UML圖tong -code20:char -namer20:char -danwei20:char -price:double -quantity:double +set():void+alt

10、er():void+delete():void+list():void+display():void+total():void+buy():void+tong():void+tong(code20:char,name20:char,danwei20:char,price:int,quantity:int)+tong():void五、測試結(jié)果及其分析測試用的輸入輸出數(shù)據(jù)以及運行結(jié)果的截屏圖如下:請選擇您的操作:商品信息管理系統(tǒng)(M)商品銷售系統(tǒng)(S)m商品信息錄入(請輸入0)刪除信息(請輸入1)修改信息(請輸入2):0請輸入商品代碼及名稱:q qw請輸入計量單位:jin請輸入商品單價:1.2請輸

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

12、改?(y/n)您想繼續(xù)進行其他操作嗎?(y/n)y請選擇您的操作: 商品信息管理系統(tǒng)(M) 商品銷售系統(tǒng)(S)s* 菜單選項* *顯示商品信息(請輸入 0) 商品買入( 請輸入 1)0=所有商品信息清單=貨品代碼=貨品名稱=貨品價格=貨品數(shù)量=計量單位qqw1.2100jinaas2.2120jin您想繼續(xù)進行其他操作嗎?(y/n)y請選擇您的操作: 商品信息管理系統(tǒng)(M) 商品銷售系統(tǒng)(S)s* 菜單選項*顯示商品信息(請輸入 0) 商品買入( 請輸入 1)1請輸入你想購買的商品的代碼及名稱:q qw請輸入您想購買的商品的數(shù)量:12貨品代碼=瞪品名稱=瞪品彳格=0勾買數(shù)量=計量單位=小計 (

13、元尸q qw 1.212 jin14.4要結(jié)束商品買入請按'N/n',其繼續(xù)買入請按Y/y':n你應該付14.4元!你實際付(元):20應該找回你5.6元!您想繼續(xù)進行其他操作嗎 ?(y/n)n其截屏圖如下:叱:"Ci XDocrmcnt s: axid Sg±± inerat orVJfeffil Debn:EX06 W (2) 項福如 cx:cMMMPCM MX MM MM M MM MM: MMX MM MM MM MM MM M M M M M M M M M M M M M M M M M M M M M M:p歡迎進入 商 品銷

14、售計 系統(tǒng)MMM M: M HIMMMIMMMMMMMM MXMMMMMMMMM M M MMMMMMMMKMMMMMMMMMMMM:話選擇您的操作:商品信息,管理系銃小,商品銷售系統(tǒng)小 m一一一一一一Jl一一一 M-Hr商品信息錄入請輸入0刪除信息請輸入i> 修改信息(請編入八二請輸入商品代碼及名稱;h QW請輸入VI量單位;jin請輸入商品單價.1.2請輸入商品數(shù)星100信息錄入成功I(7: 否乘小 口片 門c MC: DocuBents and $,1:£11M人(1>:££5t1&1:01:桌面061)11808網(wǎng)工出 項福如.exe.

15、日回<y or n>請輸入商品代弱及名稱: a as請輸入計量單位:jin請輸入商品單價:請輸入商品數(shù)量:120信息錄入成功!是否繼續(xù)錄入? <y or n>您想繼續(xù)迸行其他操作嗎?y/n)y請選擇您的操作:商品信息管理系統(tǒng)<M>商品銷售系統(tǒng)Sni菜單選項*MM商品信息錄入請輸入。刪除信息請輸入1>修改信息請輸入2:1請輸入您要刪除的商品名稱:ZX刪除失物 nix您要求戒除的對象本來就不存在!請檢查輸入的正確性!選定 *C: Docuaent s and Sett ingsAd>inist rat orDebug08F4X (2) 項. 就n&g

16、t;嗎 來V作 本。操 象。他 >?其 ><仃 閑刪進 冊賣賣 石世性 <否想 儂是您請檢查輸入的正確性I請選擇您的操作:商品信息管理系統(tǒng)商品銷售系統(tǒng)(S)菜單選項商品信息錄入 < 請輸入。)刪除信息、< 請輸入1)修改信息、< 請輸入2):2,輸入您所修改的商品名稱:as際所要修改的人的信息不存在,請修正后在更改!除地要修改:代碼及名稱籍按4 計量單位請按2)、隼價請按3)、數(shù)量請按4)3慢輸入單價:22數(shù)據(jù)修改成功!是否繼續(xù)修改? <y/n>律繼續(xù)進行其他操祚嗎? < y/n >福選擇您的操作:商品信息管理系統(tǒng)商品銷售系統(tǒng)S

17、調(diào)試分析:在起始階段,出現(xiàn)提示語句,詢問進入哪部分操作,輸入字符m進入商品信息管理部分,再根據(jù)提示,輸入字符 0,進入商品信息輸入部分,按照提示輸入的數(shù)據(jù)被儲存在指針 數(shù)組中,一個完整的商品信息錄入后,就會出現(xiàn)一個詢問是否繼續(xù)輸入的語句,按此方法輸入幾種商品信息后, 終止商品信息的輸入, 在按照提示語句進入商品信息修改部分,在此部分修改部分商品信息后,退出,再在提示語句的提示下輸入字符s進入商品銷售管理部分,在此部分,車入字符 0進入商品信息顯示部分,將顯示在第一部分輸入以及修改后的所有 商品信息,以供消費者選擇,退出后再進入商品買入部分,根據(jù)提示輸入正確的字符或字符串, 購買您所需的商品,結(jié)

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

19、售統(tǒng)計的分析,設計和實現(xiàn),系統(tǒng)的設計,主控程序設計,并由此設計了類結(jié)構(gòu)和應用程序。系統(tǒng)運行結(jié)果證明,設計的商品銷售統(tǒng)計可以滿足商品管理者完成管理的日常工作,包括商品銷售以及商品信息的管理等軟件還需要哪些改進:在編寫源程序代碼的過程中對語言的運用還需要提高, 應使寫出來的程序更加簡潔, 易讀懂 , 更加滿足實際工作的需要. 要想使做出來的程序更好的利用還需根據(jù)實際需要在今后的運用中不斷的改進和完善.七、代碼附錄#include <stdio.h>#include <stdlib.h>#include <conio.h>#define null 0#includ

20、e<iostream>#include <iomanip>#include<string> / 控制字符串的頭文件using namespace std;class tongpublic:tong();tong(char co20,char n20,char dw20,double pr,int qu);tong();void Set();/商品信息錄入void Alter();/商品信息修改void delete1();/商品信息刪除void list();/商品信息顯示void Display();float Checkout(int quantity)

21、;/單個商品小結(jié)void Total();/總計void buy();/商品買入private :char code20;char name20;char danwei20;double price;int quantity;tong:tong()tong:tong(char co20,char n20,char dw20,double pr,int qu)strcpy(code,co);strcpy(name,n);strcpy(danwei,dw);price=pr;quantity=qu;tong:tong()tong *s50;int i=0;int j=0;char code20;c

22、har name20;char danwei20;double price; int quantity; void tong:Set()/商品信息錄入cout<<" 請輸入商品代碼及名稱:"<<endl;cin>>code>>name;cout<<" 請輸入計量單位:"<<endl;cin>>danwei;cout<<"請輸入商品單價:"<<endl;cin>>price;cout<<"請輸入商

23、品數(shù)量:"<<endl;cin>>quantity;j+;si=new tong(code,name,danwei,price,quantity);i+;cout<<"信息錄入成功!"<<endl;cout<<"是否繼續(xù)錄入?(y or n)"<<endl;if(getch()='y')Set();else return;void tong:Alter()/商品信息修改 cout<<" 請輸入您所修改的商品名稱:"<&l

24、t;endl;cin>>name;for(int h=0;h<i;h+)if(strcmp(name,sh->name)=0)char newcode,newname,newdanwei;double newprice;int newquantity;int n;cout<<" 你想要修改: 代碼及名稱( 請按 1) 、 計量單位( 請按 2) 、 單價 ( 請按 3) 、 數(shù)量 ( 請按 4)"<<endl;cin>>n;switch(n)case 1: cout<<" 請輸入商品代碼及名稱

25、:"<<endl;cin>>newcode>>newname;sh->code20=newcode;sh->name20=newname;cout<<"數(shù)據(jù)修改成功!"break;case 2:cout<<"請輸入計量單位:"<<endl;cin>>newdanwei;sh->danwei20=newdanwei;cout<<"數(shù)據(jù)修改成功!"break;case 3:cout<<"請輸入單

26、價:"<<endl;cin>>newprice;sh->price=newprice;cout<<"數(shù)據(jù)修改成功!"break;case 4:cout<<"請輸入數(shù)量:"<<endl;cin>>newquantity;sh->quantity=newquantity;cout<<"數(shù)據(jù)修改成功!"break;elsecout<<" 你所要修改的商品的信息不存在,請修正后再更改!"<<en

27、dl;cout<<" 是否繼續(xù)修改?(y/n)"<<endl;if(getch()='y')Alter();else return ;void tong:delete1()/商品信息刪除cout<<" 請輸入您所刪除的商品名稱:"<<endl;cin>>name;for(int h=0;h<i;h+)if(strcmp(name,sh->name)=0)char newcode,newname,newdanwei;double newprice;int newquan

28、tity;int n;cout<<" 你想要刪除: 代碼及名稱( 請按 1) 、 計量單位( 請按 2) 、 單價 ( 請按 3) 、 數(shù)量 ( 請按 4)"<<endl;cin>>n;switch(n)case 1: cout<<" 請輸入商品代碼及名稱:"<<endl;cin>>newcode>>newname;sh->code20=newcode;sh->name20=newname;cout<<"數(shù)據(jù)刪除成功!"brea

29、k;case 2:cout<<"請輸入計量單位:"<<endl;cin>>newdanwei;sh->danwei20=newdanwei;cout<<"數(shù)據(jù)刪除成功!"break;case 3:cout<<"請輸入單價:"<<endl;cin>>newprice;sh->price=newprice;cout<<"數(shù)據(jù)刪除成功!"break;case 4:cout<<"請輸入數(shù)量:&q

30、uot;<<endl;cin>>newquantity;sh->quantity=newquantity;cout<<"數(shù)據(jù)刪除成功!"break;else"<<endl;cout<<" 你所要刪除的商品的信息不存在,請修正后再更改!cout<<"是否繼續(xù)刪除?(y/n)"<<endl;if(getch()="y')delete1();else return ;)void tong:list()/商品信息顯示cout<&l

31、t;"="<<endl;cout<<"=所有商品信息="<<endl;cout<<"="<<endl; cout<<"貨品代碼=嶗品名稱= 貨品價格=嶗品數(shù)量 =+量單位"<<endl;if(i=0)cout<<"系統(tǒng)中沒有錄入商品信息或該商品信息已被刪除!"<<endl;for(int k=0;k<i;k+)cout<<setw(15)<<left<&

32、lt;sk->code<<setw(15)<<left<<sk->name<<setw(15)<<left<<sk->price<<s etw(15)<<left<<sk->quantity<<setw(15)<<left<<sk->danwei<<endl;)void tong:buy()/商品買入cout<<"請輸入你想購買的商品的代碼及名稱:"<<endl;ci

33、n>>code>>name;cout<<"請輸入您想購買的商品的數(shù)量:"<<endl;cin>>quantity;Checkout(quantity);Display();Total();)void tong:Display()cout<<" 貨 品代碼=貨品名稱 =貨 品價格 =購 買數(shù)量=計量 單 位=小 計 (元)="<<endl;cout<<setw(15)<<this->code<<setw(15)<<thi

34、s->quantity<<setw(15)<<this->name<<setw(15)<<this->price<<setw(15)<<this->quantity<<setw(15)<<this->danwei<<endl;)/單個商品小結(jié)float tong:Checkout(int quantity)int k=0;float sum(0.0);sum=sk->price * quantity;return sum;void tong:Total

35、()/總結(jié)帳float sum = 0;float real;char GoOn;while(1)cout<<" 要結(jié)束商品買入請按'N/n', 其繼續(xù)買入請按'Y/y': "<<endl;cin>>GoOn;if(GoOn='Y'|GoOn='y')int quantity;cout<<"請輸入商品代碼:"<<endl;cin>>code>>name;cout<<"請輸入商品數(shù)量:&q

36、uot;<<endl;cin>>quantity;sum+=Checkout(quantity);cout<<" 你購買的商品為:"<<endl;Display();else if(GoOn='N'|GoOn='n')break;cout<<""<<endl;sum+=Checkout(quantity);cout<<" 你應該付"<<sum<<" 元 !"<<en

37、dl;cout<<" 你實際付( 元 ): "cin>>real;cout<<" 應該找回你"<<real-sum<<" 元 !"<<endl;/ 找零。void caozuo1(int p)tong t;switch(p)case 0:t.Set();break;case 1:t. Alter ();break;case 2:t.delete1();break;case 8:exit(0);break;void caozuo2(int p) tong t;switch(p)case 0:t.list();break;case 1:t.buy();break;case 8:exit(0);break;void main()int a;char w;cout<<"*"<<endl;cout&l

溫馨提示

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

評論

0/150

提交評論