




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、一、題目商品銷售統(tǒng)計程序。編寫商品銷售統(tǒng)計程序,商品的信息有:商品的名稱,計量單位(重量或件),單價。所有商品的信息事先已存入計算機,屏幕上顯示所有商品的名稱,選擇商品名,輸入商品計量單位(如重量,件數(shù)等),根據單價算出總價??蛻粢淮钨徫锟赡苜徺I多種商品,程序應計算出客戶應付的錢款數(shù)。二、任務和要求程序分為兩個部分:第一部分用于輸入商品的信息并允許修改和刪除;第二部分實現(xiàn)銷售統(tǒng)計。程序運行時由用戶選擇進入哪一部分功能,并能在運行時在兩部分之間切換。第二部分運行時,首先顯示所有商品名稱及代碼(商品數(shù)目較多時,應考慮分屏顯示),用戶輸入商品代碼及商品重量或件數(shù),用戶一次操作可輸入若干商品的購買信息
2、,然后輸入一個特殊的代碼(如-1)表示本次購物結束。此時。程序計算出應付錢款數(shù)并顯示。三、問題分析:按照要求這個程序的編寫要求,由于包含多種實現(xiàn)要求,所以在編寫時需要多個實現(xiàn)函數(shù),這樣就要定義一個類或機構體來統(tǒng)籌各個函數(shù)以及用鏈表或指針數(shù)組來儲存輸入的常量數(shù)據,并且在各個轉換點設置相應的提示語句使整個程序便于操作。在修改數(shù)據的函數(shù)實現(xiàn)時,由于一個商品包含多個變量,要想在修改某一個數(shù)據后而不影響其他的數(shù)據,所以就必須要有一個switch語句;在商品信息顯示函數(shù)的實現(xiàn)時,由于中間要有一個購買函數(shù)的實現(xiàn),所以商品數(shù)量會隨著商品的購買而減少,所以要將購買的數(shù)量另外定義一個變量。關于switch語句的運
3、用在這個程序這可能要多次使用,主要在一個函數(shù)擁有多個變量或變量函數(shù)。四、算法的設計這個程序我是采用類以及函數(shù)的調用來寫的。先寫一個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); /單個商品小結void Total(); /總計 voi
4、d buy(); /商品買入在寫了兩個操作函數(shù)。在主函數(shù)中分別調用所需要的函數(shù)。在存儲數(shù)據方面,我聲明了一個指針數(shù)組*Si,將輸入的商品信息數(shù)據按照一一對應方式存儲的。在tong類中一共包括十一個函數(shù),分別為構造函數(shù)、析構函數(shù)以及各種功能函數(shù)。在Set函數(shù)中通過輸出語句的提示輸入各種數(shù)據,并將輸入的數(shù)據儲存到定義的指針數(shù)組中,等一種商品數(shù)據信息輸入完畢后,會彈出一個提示語句詢問是否繼續(xù)輸入商品信息,可根據個人意愿輸入Y(或y表示繼續(xù)輸入)N(或n表示中斷輸入),若輸入Y(或y)則調用本函數(shù),進行數(shù)據輸入;若輸入N(或n)彈出一個提示語句詢問是否進行其他操作,在根據個人意愿輸入正確的字符來進行相
5、應的操作。Delete函數(shù)是進行對原始數(shù)據(即商品信息)進行刪除。先根據輸出語句的提示輸入您要刪除的商品名稱,商品名稱輸入后通過if語句判斷是否存在這種商品:若不存在則會出現(xiàn)這種商品不存在的提示語句,并同時出現(xiàn)一個提示是否進行其他操作提示語句;若存在則會進行對該商品刪除的操作并提示刪除成功。Alter函數(shù)是對輸入的商品信息進行修改的。函數(shù)運行時,會首先出現(xiàn)一個提示語句,提示管理者輸入所要修改的商品名稱,再通過一個for語句將該商品的所有信息調出,同時出現(xiàn)另一個提示語句,供管理者選擇所要修改商品項,再通過switch語句供管理者輸入所要修改的具體的商品信息,并將管理者修改的信息存入相應的商品信息
6、庫中(即該商品在原始輸入數(shù)據時分配的儲存空間中),一個商品信息修改完成后同樣會出現(xiàn)一個詢問是否繼續(xù)修改的語句。List函數(shù)是將輸入的所有商品信息顯示在屏幕上,根據提示語句將所有的輸入或是修改的商品信息顯示在操作屏幕上。buy函數(shù)是消費者對屏幕上顯示的商品進行購買的函數(shù)。該函數(shù)在運行時,會首先出現(xiàn)一個提示語句,提示消費者輸入需要購買的商品名稱和購買數(shù)量,輸入完畢后會調用Checkout、Display、Total,進行相應的操作。Checkout函數(shù)是一個小記函數(shù),主要將消費者購買的每一種商品進行一個初步計費并顯示在屏幕上,這個函數(shù)主要是為total函數(shù)服務的。Total函數(shù)則是總計函數(shù),是將消
7、費者購買的所有商品進行計費,并將消費者需要支付的費計算出來顯示在屏幕上。Display函數(shù)是將Checkout函數(shù)中各種商品費用進行累加,在將累加的結果返回給Total函數(shù)。在主函數(shù)的運行過程中會出現(xiàn)一個提示語句將整個程序分成兩個部分,分別為商品信息管理和商品銷售管理。在商品信息管理部分,主要運行Set、Alter三個函數(shù)(這三個函數(shù)是通過switchy語句封裝在caozuoa這個子函數(shù)中的),而在商品銷售統(tǒng)計部分,則運行l(wèi)ist、buy兩個函數(shù)(這兩個函數(shù)是通過switch語句封裝在caozuob這個子函數(shù)中的)。五、上機調試過程這個程序我是經過在VC+6.0環(huán)境上調試通過的。在調試過程中我
8、主要遇到了一下幾個問題。1.在進行收費總計的函數(shù)調試時,我發(fā)現(xiàn)每一次運行,最后的sum值總是零,出現(xiàn)錯誤的部分函數(shù)結構如下:cout要結束商品買入請按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你應該付 sum元!endl; coutfactly; cou
9、t應該找回你 factly-sum元!endl; /找零。 通過觀察我在sum+=Checkout(quantity)后面加了一個輸出語句cout“sum=”Sumendl后進行調試發(fā)現(xiàn)仍然無法輸出正確的sum值,觀察發(fā)現(xiàn)sum+=Checkout(quantity)是在if語句中的,只有繼續(xù)購買才會調用,所以在if語句外加了一個sum+=Checkout(quantity)語句。在這個程序中,我是用一個指針數(shù)組來存儲輸入的數(shù)據的,在后面函數(shù)的數(shù)據調用中,我沒有用指針指向來提取輸入的數(shù)據,導致在數(shù)據輸出時,出現(xiàn)數(shù)據輸出混亂:例如將coutsetw(15)leftcode寫為coutsetw(1
10、5)leftcode。這個程序的實現(xiàn)過程很麻煩,特別是商品信息輸入這部分的實現(xiàn),在每一次的運行中,都要重新輸入數(shù)據,在今后碰到類似問題時,我要建一個文件,將要輸入的商品信息儲存在里面,在該程序中應該創(chuàng)建一個鏈表,便于數(shù)據的提取。六、測試結果及其分析測試用的輸入輸出數(shù)據以及運行結果的截屏圖如下:請選擇您的操作:商品信息管理系統(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ù)進行其他操作嗎?(y/n)y請選擇您的操作:商品信息管理系統(tǒng)(M)商品銷售系統(tǒng)(S)m*-菜單選項-商品信息錄入(請輸入0) 修改信息(請輸入1) 1請輸入您所修改的商品名稱:as你想要修改:代碼及名稱(請按1)、計量單位(請按2)、單價(請按3)、數(shù)量(請按4)3請輸入單價:2.2 (將輸入的原始數(shù)據:單價為12修改為2.2)數(shù)據修改成功!是否繼續(xù)修改?(y/n)您想繼續(xù)進行其他操作嗎?(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ù)進行其他操作嗎?(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要結束商品買入請按N/n,其繼續(xù)買入請按Y/y:n你應該付 14.4元!你實際付(元): 20
13、應該找回你 5.6元!您想繼續(xù)進行其他操作嗎?(y/n)n其截屏圖如下:調試分析:在起始階段,出現(xiàn)提示語句,詢問進入哪部分操作,輸入字符m,進入商品信息管理部分,再根據提示,輸入字符0,進入商品信息輸入部分,按照提示輸入的數(shù)據被儲存在指針數(shù)組中,一個完整的商品信息錄入后,就會出現(xiàn)一個詢問是否繼續(xù)輸入的語句,按此方法輸入幾種商品信息后,終止商品信息的輸入,在按照提示語句進入商品信息修改部分,在此部分修改部分商品信息后,退出,再在提示語句的提示下輸入字符s進入商品銷售管理部分,在此部分,輸入字符0 進入商品信息顯示部分,將顯示在第一部分輸入以及修改后的所有商品信息,以供消費者選擇,退出后再進入商品
14、買入部分,根據提示輸入正確的字符或字符串,購買您所需的商品,結束購買后會出現(xiàn)商品消費總計,輸出消費者所需付的費用并根據實際付的費用計算出找零。在測試與調試過程中,我是按照屏幕提示進行操作,輸入符合程序編排的數(shù)據,一步一步進行調試的。參考文獻:1鄭莉等編著C+語言程序設計(第三版)北京:清華大學出版社2鄭莉等編著C+語言程序設計(第三版)學生用書北京:清華大學出版社3李春葆等編著C+程序設計學習與上機實驗指導北京:清華大學出版社4范輝等編著Visual C+6.0程序設計簡明教程高等教育出版社5李龍澍C+程序設計實訓教程北京:清華大學出版社6洪國勝等編著C+ Builder程序設計輕松上手北京:
15、清華大學出版社7嚴蔚敏等數(shù)據結構(c語言版)北京:清華大學出版社,1997年4月第1版。8胡學鋼等數(shù)據結構算法設計指導北京:清華大學出版社,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); /單個商品小結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ù)據修改成功!; break; case 2: cout請輸入計量單位:newdanwei; sh-danwei20=newdanwei; cout數(shù)據修改成功!; break; case 3: cout請輸入單價:newprice; sh-price=newprice; cout數(shù)據修改成功!; break; case 4: cout請輸入數(shù)量:newquantity; sh-quantity=newquantity; cout數(shù)據修改成功!; 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() /總結帳 float sum = 0; float factly; char GoOn; while(1)cout要結束商品買入請按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你應該付 sum元!endl; coutfactly; cout應該找回你 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)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 甘肅省武威市2025屆八下英語期中統(tǒng)考模擬試題含答案
- 2025年云計算服務模式演變與行業(yè)應用場景拓展研究報告
- 2025年元宇宙社交平臺用戶粘性與活躍度提升策略報告
- 綠色物流發(fā)展趨勢與企業(yè)節(jié)能減排技術應用案例分析報告
- 咨詢工程師官方課件
- 2025年醫(yī)療美容行業(yè)激光美容技術發(fā)展及市場監(jiān)督管理研究報告
- 周靖稅務師課件百度網盤
- 北京網約車題庫及答案
- 保育員初級考試試題2019及答案
- 工業(yè)廢氣催化燃燒技術環(huán)保設備維護與管理指南報告
- 學生自信心培養(yǎng)的教育心理學研究
- 2025至2030年中國碳化硅陶瓷行業(yè)市場發(fā)展規(guī)模及市場分析預測報告
- 2025-2030年中國樓宇對講系統(tǒng)行業(yè)市場深度調研及競爭格局與投資研究報告
- 暑假提升部編版小學語文四升五暑假閱讀提升之概括文章中心思想 課件
- 2025年甘肅省隴南市事業(yè)單位招聘247人筆試參考題庫及參考答案詳解1套
- 2025至2030年中國航空發(fā)動機維修行業(yè)市場運營態(tài)勢及發(fā)展前景研判報告
- 2025深圳語文中考作文(10篇)
- 2025春學期三年級語文下冊教學工作總結 (三篇)
- 標準文本-《水運工程大臨建設標準化指南》
- T/CTRA 01-2020廢輪胎/橡膠再生油
- 可信數(shù)據空間解決方案星環(huán)科技
評論
0/150
提交評論