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

下載本文檔

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

文檔簡介

1、一、題目商品銷售統(tǒng)計程序。編寫商品銷售統(tǒng)計程序,商品的信息有:商品的名稱,計量單位(重量或件),單價。所有商品的信息事先已存入計算機,屏幕上顯示所有商品的名稱,選擇商品名,輸入商品計量單位(如重量,件數(shù)等),根據(jù)單價算出總價??蛻粢淮钨徫锟赡苜徺I多種商品,程序應(yīng)計算出客戶應(yīng)付的錢款數(shù)。二、任務(wù)和要求程序分為兩個部分:第一部分用于輸入商品的信息并允許修改和刪除;第二部分實現(xiàn)銷售統(tǒng)計。程序運行時由用戶選擇進(jìn)入哪一部分功能,并能在運行時在兩部分之間切換。第二部分運行時,首先顯示所有商品名稱及代碼(商品數(shù)目較多時,應(yīng)考慮分屏顯示),用戶輸入商品代碼及商品重量或件數(shù),用戶一次操作可輸入若干商品的購買信息

2、,然后輸入一個特殊的代碼(如-1)表示本次購物結(jié)束。此時。程序計算出應(yīng)付錢款數(shù)并顯示。三、問題分析:按照要求這個程序的編寫要求,由于包含多種實現(xiàn)要求,所以在編寫時需要多個實現(xiàn)函數(shù),這樣就要定義一個類或機構(gòu)體來統(tǒng)籌各個函數(shù)以及用鏈表或指針數(shù)組來儲存輸入的常量數(shù)據(jù),并且在各個轉(zhuǎn)換點設(shè)置相應(yīng)的提示語句使整個程序便于操作。在修改數(shù)據(jù)的函數(shù)實現(xiàn)時,由于一個商品包含多個變量,要想在修改某一個數(shù)據(jù)后而不影響其他的數(shù)據(jù),所以就必須要有一個switch語句;在商品信息顯示函數(shù)的實現(xiàn)時,由于中間要有一個購買函數(shù)的實現(xiàn),所以商品數(shù)量會隨著商品的購買而減少,所以要將購買的數(shù)量另外定義一個變量。關(guān)于switch語句的運

3、用在這個程序這可能要多次使用,主要在一個函數(shù)擁有多個變量或變量函數(shù)。四、算法的設(shè)計這個程序我是采用類以及函數(shù)的調(diào)用來寫的。先寫一個tong類,在tong類中聲明所需要的函數(shù),class tongtong();tong(char co20,char n20,char dw20,double pr,int qu);tong();void Set(); /商品信息錄入 void Alter(); /商品信息修改 void list(); /商品信息顯示 void Display(); float Checkout(int quantity); /單個商品小結(jié)void Total(); /總計 voi

4、d buy(); /商品買入在寫了兩個操作函數(shù)。在主函數(shù)中分別調(diào)用所需要的函數(shù)。在存儲數(shù)據(jù)方面,我聲明了一個指針數(shù)組*Si,將輸入的商品信息數(shù)據(jù)按照一一對應(yīng)方式存儲的。在tong類中一共包括十一個函數(shù),分別為構(gòu)造函數(shù)、析構(gòu)函數(shù)以及各種功能函數(shù)。在Set函數(shù)中通過輸出語句的提示輸入各種數(shù)據(jù),并將輸入的數(shù)據(jù)儲存到定義的指針數(shù)組中,等一種商品數(shù)據(jù)信息輸入完畢后,會彈出一個提示語句詢問是否繼續(xù)輸入商品信息,可根據(jù)個人意愿輸入Y(或y表示繼續(xù)輸入)N(或n表示中斷輸入),若輸入Y(或y)則調(diào)用本函數(shù),進(jìn)行數(shù)據(jù)輸入;若輸入N(或n)彈出一個提示語句詢問是否進(jìn)行其他操作,在根據(jù)個人意愿輸入正確的字符來進(jìn)行相

5、應(yīng)的操作。Delete函數(shù)是進(jìn)行對原始數(shù)據(jù)(即商品信息)進(jìn)行刪除。先根據(jù)輸出語句的提示輸入您要刪除的商品名稱,商品名稱輸入后通過if語句判斷是否存在這種商品:若不存在則會出現(xiàn)這種商品不存在的提示語句,并同時出現(xiàn)一個提示是否進(jìn)行其他操作提示語句;若存在則會進(jìn)行對該商品刪除的操作并提示刪除成功。Alter函數(shù)是對輸入的商品信息進(jìn)行修改的。函數(shù)運行時,會首先出現(xiàn)一個提示語句,提示管理者輸入所要修改的商品名稱,再通過一個for語句將該商品的所有信息調(diào)出,同時出現(xiàn)另一個提示語句,供管理者選擇所要修改商品項,再通過switch語句供管理者輸入所要修改的具體的商品信息,并將管理者修改的信息存入相應(yīng)的商品信息

6、庫中(即該商品在原始輸入數(shù)據(jù)時分配的儲存空間中),一個商品信息修改完成后同樣會出現(xiàn)一個詢問是否繼續(xù)修改的語句。List函數(shù)是將輸入的所有商品信息顯示在屏幕上,根據(jù)提示語句將所有的輸入或是修改的商品信息顯示在操作屏幕上。buy函數(shù)是消費者對屏幕上顯示的商品進(jìn)行購買的函數(shù)。該函數(shù)在運行時,會首先出現(xiàn)一個提示語句,提示消費者輸入需要購買的商品名稱和購買數(shù)量,輸入完畢后會調(diào)用Checkout、Display、Total,進(jìn)行相應(yīng)的操作。Checkout函數(shù)是一個小記函數(shù),主要將消費者購買的每一種商品進(jìn)行一個初步計費并顯示在屏幕上,這個函數(shù)主要是為total函數(shù)服務(wù)的。Total函數(shù)則是總計函數(shù),是將消

7、費者購買的所有商品進(jìn)行計費,并將消費者需要支付的費計算出來顯示在屏幕上。Display函數(shù)是將Checkout函數(shù)中各種商品費用進(jìn)行累加,在將累加的結(jié)果返回給Total函數(shù)。在主函數(shù)的運行過程中會出現(xiàn)一個提示語句將整個程序分成兩個部分,分別為商品信息管理和商品銷售管理。在商品信息管理部分,主要運行Set、Alter三個函數(shù)(這三個函數(shù)是通過switchy語句封裝在caozuoa這個子函數(shù)中的),而在商品銷售統(tǒng)計部分,則運行l(wèi)ist、buy兩個函數(shù)(這兩個函數(shù)是通過switch語句封裝在caozuob這個子函數(shù)中的)。五、上機調(diào)試過程這個程序我是經(jīng)過在VC+6.0環(huán)境上調(diào)試通過的。在調(diào)試過程中我

8、主要遇到了一下幾個問題。1.在進(jìn)行收費總計的函數(shù)調(diào)試時,我發(fā)現(xiàn)每一次運行,最后的sum值總是零,出現(xiàn)錯誤的部分函數(shù)結(jié)構(gòu)如下:cout要結(jié)束商品買入請按N/n,其繼續(xù)買入請按Y/y: GoOn; if(GoOn=Y|GoOn=y) int quantity; cout請輸入商品代碼:codename; cout請輸入商品數(shù)量:quantity;sum+=Checkout(quantity);cout你購買的商品為:endl; Display(); else if(GoOn=N|GoOn=n)break; cout-endl; cout你應(yīng)該付 sum元!endl; coutfactly; cou

9、t應(yīng)該找回你 factly-sum元!endl; /找零。 通過觀察我在sum+=Checkout(quantity)后面加了一個輸出語句cout“sum=”Sumendl后進(jìn)行調(diào)試發(fā)現(xiàn)仍然無法輸出正確的sum值,觀察發(fā)現(xiàn)sum+=Checkout(quantity)是在if語句中的,只有繼續(xù)購買才會調(diào)用,所以在if語句外加了一個sum+=Checkout(quantity)語句。在這個程序中,我是用一個指針數(shù)組來存儲輸入的數(shù)據(jù)的,在后面函數(shù)的數(shù)據(jù)調(diào)用中,我沒有用指針指向來提取輸入的數(shù)據(jù),導(dǎo)致在數(shù)據(jù)輸出時,出現(xiàn)數(shù)據(jù)輸出混亂:例如將coutsetw(15)leftcode寫為coutsetw(1

10、5)leftcode。這個程序的實現(xiàn)過程很麻煩,特別是商品信息輸入這部分的實現(xiàn),在每一次的運行中,都要重新輸入數(shù)據(jù),在今后碰到類似問題時,我要建一個文件,將要輸入的商品信息儲存在里面,在該程序中應(yīng)該創(chuàng)建一個鏈表,便于數(shù)據(jù)的提取。六、測試結(jié)果及其分析測試用的輸入輸出數(shù)據(jù)以及運行結(jié)果的截屏圖如下:請選擇您的操作:商品信息管理系統(tǒng)(M)商品銷售系統(tǒng)(S)m商品信息錄入(請輸入0) 刪除信息(請輸入1) 修改信息(請輸入2):0請輸入商品代碼及名稱:q qw請輸入計量單位:jin請輸入商品單價:1.2請輸入商品數(shù)量:100信息錄入成功!是否繼續(xù)錄入?(y or n)請輸入商品代碼及名稱:a as請輸入

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

12、信息(請輸入0) 商品買入(請輸入1)0=所有商品信息清單=貨品代碼=貨品名稱=貨品價格=貨品數(shù)量=計量單位q qw 1.2 100 jina as 2.2 120 jin您想繼續(xù)進(jìn)行其他操作嗎?(y/n)y請選擇您的操作:商品信息管理系統(tǒng)(M)商品銷售系統(tǒng)(S)s*-菜單選項-*顯示商品信息(請輸入0) 商品買入(請輸入1)1請輸入你想購買的商品的代碼及名稱:q qw請輸入您想購買的商品的數(shù)量:12貨品代碼=貨品名稱=貨品價格=購買數(shù)量=計量單位=小計(元)=q qw 1.2 12 jin 14.4要結(jié)束商品買入請按N/n,其繼續(xù)買入請按Y/y:n你應(yīng)該付 14.4元!你實際付(元): 20

13、應(yīng)該找回你 5.6元!您想繼續(xù)進(jìn)行其他操作嗎?(y/n)n其截屏圖如下:調(diào)試分析:在起始階段,出現(xiàn)提示語句,詢問進(jìn)入哪部分操作,輸入字符m,進(jìn)入商品信息管理部分,再根據(jù)提示,輸入字符0,進(jìn)入商品信息輸入部分,按照提示輸入的數(shù)據(jù)被儲存在指針數(shù)組中,一個完整的商品信息錄入后,就會出現(xiàn)一個詢問是否繼續(xù)輸入的語句,按此方法輸入幾種商品信息后,終止商品信息的輸入,在按照提示語句進(jìn)入商品信息修改部分,在此部分修改部分商品信息后,退出,再在提示語句的提示下輸入字符s進(jìn)入商品銷售管理部分,在此部分,輸入字符0 進(jìn)入商品信息顯示部分,將顯示在第一部分輸入以及修改后的所有商品信息,以供消費者選擇,退出后再進(jìn)入商品

14、買入部分,根據(jù)提示輸入正確的字符或字符串,購買您所需的商品,結(jié)束購買后會出現(xiàn)商品消費總計,輸出消費者所需付的費用并根據(jù)實際付的費用計算出找零。在測試與調(diào)試過程中,我是按照屏幕提示進(jìn)行操作,輸入符合程序編排的數(shù)據(jù),一步一步進(jìn)行調(diào)試的。參考文獻(xiàn):1鄭莉等編著C+語言程序設(shè)計(第三版)北京:清華大學(xué)出版社2鄭莉等編著C+語言程序設(shè)計(第三版)學(xué)生用書北京:清華大學(xué)出版社3李春葆等編著C+程序設(shè)計學(xué)習(xí)與上機實驗指導(dǎo)北京:清華大學(xué)出版社4范輝等編著Visual C+6.0程序設(shè)計簡明教程高等教育出版社5李龍澍C+程序設(shè)計實訓(xùn)教程北京:清華大學(xué)出版社6洪國勝等編著C+ Builder程序設(shè)計輕松上手北京:

15、清華大學(xué)出版社7嚴(yán)蔚敏等數(shù)據(jù)結(jié)構(gòu)(c語言版)北京:清華大學(xué)出版社,1997年4月第1版。8胡學(xué)鋼等數(shù)據(jù)結(jié)構(gòu)算法設(shè)計指導(dǎo)北京:清華大學(xué)出版社,1999年第1版。附錄:#include #include #include #define null 0 #include#include #include /控制字符串的頭文件using namespace std;class tongpublic:tong();tong(char co20,char n20,char dw20,double pr,int qu);tong();void Set(); /商品信息錄入 void Alter(); /商品

16、信息修改 void list(); /商品信息顯示void Display(); float Checkout(int quantity); /單個商品小結(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

17、);price=pr;quantity=qu;tong:tong()tong *s50;int i=0;int j=0;char code20;char name20;char danwei20;double price; int quantity;void tong:Set() /商品信息錄入cout請輸入商品代碼及名稱:codename; cout請輸入計量單位:danwei; cout請輸入商品單價:price; cout請輸入商品數(shù)量:quantity; j+; si=new tong(code,name,danwei,price,quantity); i+; cout信息錄入成功!e

18、ndl; cout是否繼續(xù)錄入?(y or n)endl; if(getch()=y) Set(); else return;void tong:Alter() /商品信息修改 cout請輸入您所修改的商品名稱:name; for(int h=0;hname)=0) char newcode,newname,newdanwei; double newprice; int newquantity; int n; cout你想要修改:代碼及名稱(請按1)、計量單位(請按2)、單價(請按3)、數(shù)量(請按4)n; switch(n) case 1: cout請輸入商品代碼及名稱:newcodenewn

19、ame; sh-code20=newcode; sh-name20=newname; cout數(shù)據(jù)修改成功!; break; case 2: cout請輸入計量單位:newdanwei; sh-danwei20=newdanwei; cout數(shù)據(jù)修改成功!; break; case 3: cout請輸入單價:newprice; sh-price=newprice; cout數(shù)據(jù)修改成功!; break; case 4: cout請輸入數(shù)量:newquantity; sh-quantity=newquantity; cout數(shù)據(jù)修改成功!; break; else cout你所要修改的人的信息不

20、存在,請修正后在更改!endl; cout是否繼續(xù)修改?(y/n)endl; if(getch()=y)Alter(); else return ; void tong:list() /商品信息顯示cout=endl; cout=所有商品信息=endl; cout=endl; cout貨品代碼=貨品名稱=貨品價格=貨品數(shù)量=計量單位endl; if(i=0) cout系統(tǒng)中沒有錄入商品信息或該商品信息已被刪除!endl;for(int k=0;ki;k+) coutsetw(15)leftcodesetw(15)leftnamesetw(15)leftpricesetw(15)leftquan

21、titysetw(15)leftdanweiendl; void tong:buy() /商品買入cout請輸入你想購買的商品的代碼及名稱:codename;cout請輸入您想購買的商品的數(shù)量:quantity;Checkout(quantity);Display();Total();void tong:Display() int k;cout貨品代碼=貨品名稱=貨品價格=購買數(shù)量=計量單位=小計(元)=endl; for( k=0;k1;k+)coutsetw(15)leftcodesetw(15)l sum+=Checkout(quantity);eftname setw(15)leftp

22、rice setw(15)leftquantitysetw(15)leftdanweisetw(15)leftpriceprice * quantity; return sum; void tong:Total() /總結(jié)帳 float sum = 0; float factly; char GoOn; while(1)cout要結(jié)束商品買入請按N/n,其繼續(xù)買入請按Y/y: GoOn; if(GoOn=Y|GoOn=y) int quantity; cout請輸入商品代碼:codename; cout請輸入商品數(shù)量:quantity;sum+=Checkout(quantity);cout你購買的商品為:endl; Display(); else if(GoOn=N|GoOn=n)break; cout-endl; sum+=Checkout(quantity); cout你應(yīng)該付 sum元!endl; coutfactly; cout應(yīng)該找回你 factly-sum元!endl; /找零。 void caozuoa(int p) tong t;switch(p) case 0:t.Set();break; case 1:t. Alter ();break; case 8:exit(0);break;void ca

溫馨提示

  • 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

提交評論