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

下載本文檔

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

文檔簡介

1、課程設計報告課程程序設計語言H課程設計課程設計名稱商品銷售統(tǒng)計程序_學生姓名項正武學號11041111專業(yè)班級110411指導教師2014年2月一、課程設計題目:商品銷售統(tǒng)計主要內(nèi)容和要求:編寫商品銷售統(tǒng)計程序,商品的信息有:商品的名稱,計量單位(重量或件),單價。所有商品的信息事先已存入計算機,屏幕上顯示所有商品的名稱,選擇商品名,輸入商品計量單位(如 重量,件數(shù)等),根據(jù)單價算出總價??蛻粢淮钨徫锟赡苜徺I多種商品,程序應計算出客戶應付 的錢款數(shù)。程序分為兩個部分:第一部分用于輸入商品的信息并允許修改和刪除;第二部分實現(xiàn)銷售統(tǒng) 計。程序運行時由用戶選擇進入哪一部分功能,并能在運行時在兩部分之

2、間切換。第二部分運行 時,首先顯示所有商品名稱及代碼(商品數(shù)目較多時,應考慮分屏顯示),用戶輸入商品代碼及商品重量或件數(shù),用戶一次操作可輸入若干商品的購買信息,然后輸入一個特殊的代碼(如-1)表示本次購物結(jié)束。此時。程序計算出應付錢款數(shù)并顯示。測試數(shù)據(jù)程序應輸入不少于10種商品的信息,并進行模擬運行。實現(xiàn)提示本程序的商品信息管理可采用與課程設計題目二類似的數(shù)據(jù)結(jié)構(gòu),既定義一個 商品類,每種商品作為商品類的實例(對象)存儲在鏈表節(jié)點中。選做內(nèi)容程序在營業(yè)結(jié)束時統(tǒng)計每種商品的銷售量,銷售金額及總營業(yè)額。因此第二部 分應有營業(yè)結(jié)束的選擇,當用戶選擇此項時屏幕上顯示當天營業(yè)的每種商品的銷售 量,銷售金

3、額及總營業(yè)額。注意,商品類的數(shù)據(jù)成員應增加有商品的銷售量和銷售金 腹有詩書氣自華額??偁I業(yè)額是所有商品的營業(yè)額之和,可用靜態(tài)數(shù)據(jù)成員實現(xiàn)?;蚩捎稍唐奉惻缮鲆粋€特殊的類,增加上面的數(shù)據(jù)成員及相應的成員函數(shù)。二、問題分析:由設計題目的要求,我們需要對設計一個能夠統(tǒng)計所銷售商品的代碼、名稱、價格、數(shù)量等 信息,并且能夠通過輸入選擇鍵調(diào)出倉庫中所有商品的所有信息;實現(xiàn)通過代碼來查詢某個商品,并且輸出該商品的所有信息;能夠在用戶購買商品時,根據(jù)情況給予用戶反饋信息,其中包括購 買商品名稱、代碼、單價、所買數(shù)量,并對該商品進行一次小結(jié),告知用戶消費情況;購買結(jié)束 后,統(tǒng)計用戶所消費的總金額,記錄其所付

4、金額以及找零金額。實現(xiàn)這些功能,需要聲明構(gòu)造函數(shù)Sale(),包含數(shù)據(jù)成員商品代碼、名字、價格、數(shù)量。另外,創(chuàng)建鏈表,用于儲存商品錄入信息,購買情況,以及所有商品的信息。利用switch語句來實現(xiàn)根據(jù)需要選擇不同的功能。創(chuàng)建鏈表,對頭結(jié)點進行初始化,對數(shù)據(jù)域分配內(nèi)存大小,通過指針域訪問結(jié)點,來實現(xiàn)元 素的儲存調(diào)用等。定義子函數(shù),來實現(xiàn)商品的錄入、查詢、顯示、購買等功能。錄入功能需要包含商品的一些 信息,如:代碼、名稱、價格等;查詢功能則是為了方便用戶獲得所需購買物品的一些信息;顯 示功能可以使用戶對倉庫的儲存情況一目了然;購買功能主要是進行商品的結(jié)算。編寫過程中,代碼和名字需應用字符串,數(shù)量以

5、整型輸出,考慮到上平的數(shù)量可能會很多, 故定義為unsigned int quality,價格以浮點型輸出。三、算法設計:1、需要定義一個構(gòu)造函數(shù) Sale.包含數(shù)據(jù)成員:代碼、名稱、價格、數(shù)量。2、定義主函數(shù),編寫菜單程序,通過判斷輸入的格式是否正確,選擇是否在屏幕上顯示菜 單,利用switch語句來選擇不同的功能。4、 創(chuàng)建鏈表,它包括數(shù)據(jù)域和指針域, 數(shù)據(jù)域用于群體中元素的內(nèi)容,通過指針來訪問結(jié)點。 并對頭結(jié)點進行初始化。對結(jié)點動態(tài)分配內(nèi)存,存儲錄入商品的全部信息,并可以在需需要的時候?qū)⑾鄳男畔⒄{(diào)出來。5、定義子函數(shù),通過調(diào)用來實現(xiàn)所選功能。6、 運用switch語句選擇鍵入0、1、2

6、、3或4,選擇所需進入功能。選擇 1,調(diào)用1號子 函數(shù),進行商品錄入,錄入商品的代碼、名字、價格和數(shù)量;選擇2,調(diào)用2號子函數(shù),進入商品查詢系統(tǒng),輸入所要查詢商品的代碼,如果存在此商品,便會輸出該商品的一切信息。選擇3,可以檢錄到所有庫存商品的信息,方便用戶選擇;選擇4,根據(jù)錄入信息鍵入所要購買商品的代碼和數(shù)量,并在購買一件商品結(jié)束后,輸出用戶的購買信息;選擇0,表示運行結(jié)束,退出系統(tǒng)。6、應用一個功能完成后,都會有提示供用戶選擇,方便用戶,也能使程序運行通暢。四、用戶手冊:程序運行時,首先根據(jù)系統(tǒng)提示來選擇需要進入的功能1、 由于該程序編輯過程中并沒有儲存上平信息,因此需要錄入商品信息,輸入

7、1即可。系統(tǒng)會提示輸入代碼、名稱、價格和數(shù)量。錄入一個后提示是否繼續(xù)輸入,選擇Y/N。2、 商品查詢功能選擇三,根據(jù)所輸入的商品代碼,判斷是否存在所查商品,倉庫中有,輸出該商品的全部信息,供消費者參考;如果沒有則提示:“無此商品”。3、 輸入3,則會顯示當時情況下所有商品的庫存信息。4、 輸入4,2表示購買商品,輸入 2后會提示是否繼續(xù)購買,如果我們要繼續(xù),只需輸入任意 鍵(空格、Enter鍵除外)。必須注意的是,如果輸入數(shù)字,則只能是一位數(shù),兩位或多位,則會 導致程序無法正常運行。購買時會提示輸入所買商品的代碼以及數(shù)量。每一次購買結(jié)束屏幕上都會顯示所買商品的信 息:代碼=名稱=價格=數(shù)量=小

8、計(元)。如果所買商品代碼未曾錄入,會提示沒有該商品。5、鍵入0,退出系統(tǒng)。五、調(diào)試過程:錯誤之處;1、代碼和名字分別定義為整型和字符型。2、未對鏈表頭結(jié)點進行初始化。3、數(shù)據(jù)域中沒有分配內(nèi)存。4、 在do-while語句結(jié)束時沒有返回頭結(jié)點。5、 顯示程序不能實現(xiàn),賣出商品后沒有辦法在原有的數(shù)據(jù)上減去賣出的部分,顯示的仍舊是錄入 商品的全部數(shù)量。導致的后果:第一個錯誤導致在訪問結(jié)點無法進行;與后面的不匹配。第二個錯誤,在運行程序時,無論時錄入商品信息還是購買商品均不能進行第二步操作;第三個錯誤引發(fā)的后果與錯誤2 一樣;錯誤4則導致函數(shù)creat沒有返回值。最后的一個錯誤不符合任務書上的要求改

9、正方法:1、 定義代碼和名字改用string ;2、對頭結(jié)點進行初始化并動態(tài)分配一個內(nèi)存大?。篐ead=(Link)new Node;/每次動態(tài)分配一個 Node內(nèi)存大小。Head-n um=;Head-n ame=;Head-jiage=0.0;Head-shulia ng=0;Head- next=NULL;3、 返回頭結(jié)點:return Head;。收獲:在編寫次程序時,由于對來鏈表不是相當了解,以至于定義變量 num name時沒有注意其類型, 無法與后面 Head- num=;Head- name=;if(p- num=num)相匹配,程序出現(xiàn)錯誤。而后通過問同學才有了一定的了解。

10、同時還了解到應用量表的時候需哎喲注意對頭結(jié)點進行初始化以及分配空間,用以儲存更多的元素內(nèi)容,否則的話在運行的過程中,錄入一鐘商品的信息完成后,程序會自動結(jié)束。最后一個錯誤是由于自己大一造成的。其次,第一次調(diào)試發(fā)現(xiàn),程序無法進行商品查詢功能,這表示,該程序尚不完整,經(jīng)過思考以 及同學的幫助,對其進行了完善: 首先定義一個子函數(shù):Link Search(L ink Head,stri ng& num)Li nk p;p=Head;while(p!=NULL)if(p-num=num)return p;elsep=p-n ext;cout無此商品! endl;return p; 。 通過輸入商品代碼

11、,來查詢倉庫中是否有該商品。另外在運行程序是發(fā)現(xiàn),當選擇查看所有商品信息時輸出結(jié)果太亂信息無法與提示對齊,我們 可以在頭文件中加入#i nclude ,后面的輸出程序可以改成:鍵入3,顯示所有的商品信息,屏幕顯示:根據(jù)提示繼續(xù)進行選擇,鍵入4,進行商品購買,每次購買結(jié)束后均有提示,如圖:選擇Y則繼續(xù)進行上述操作,反之則為:選擇0,屏幕顯示“已退出系統(tǒng)! ”通過對該程序的簡單測試,可以知道它的總工作流程可概括為下圖所示:七、 、課后總結(jié):通過此次課程設計,我學到了好多東西。由于之前對C+勺知識積累不夠,使得本次課程設計遇到了不少的困難。通過咨詢老師同學和查看參考資料,困難逐個兒解決了,隨著困難的

12、解決,我 學到了不少的知識,使我明確了以后的努力方向。本次課程設計讓我有機會能把之前學的C+知識系統(tǒng)的串聯(lián)起來。尤其使對鏈表方面的知識,有了更深入的了解。在此過程中,通過不斷的調(diào)試一一修改一一調(diào)試循環(huán),對程序進行一步步的完善,最后進行 測試,對一些功能進行應用,檢查是否能夠?qū)崿F(xiàn)任務書上的要求到的所有功能,能否完美的實現(xiàn) 這些功能,這不僅僅使對我們知識方面的考驗,也是在考驗我們的細心程度以及檢查問題并改正 問題的能力,更是對我們耐心的考驗。通過這次課程設計,培養(yǎng)了我分析實際應用系統(tǒng)和設計設 計實際應用系統(tǒng)的能力,提高了應用面向?qū)ο蟪绦蛟O計工具進行實際系統(tǒng)的設計的能力。八、 參考文獻1鄭莉,董淵,

13、張瑞豐 C+語言程序設計北京:清華大學出版社,2004年1月第三版。九、 附錄:/商品銷售統(tǒng)計程序#i nclude #in elude using n amespace std;struct Salestri ng num;stri ng n ame;float jiage;un sig ned int shulia ng;struct Sale* n ext;typedef struct Sale Node;typedef Node* Link;/創(chuàng)建鏈表。Link Create(L ink Head)Head=(L ink)new Node;Head-n um=;Head-n ame=;

14、Head-jiage=0.0;Head-shulia ng=0;Head- next=NULL;/-Link p;/定義一個用來運算的指針ptr。p=Head;Li nk DNode;char GoOn;docout商品入庫信息! endl;stri ng num,n ame;float jiage;un sig ned int shulia ng;cout代碼:e ndl;cinnum;cout名稱:e ndl;cinn ame;cout價格: jiage;while(ci n.fail()cout出現(xiàn)錯誤,請重新輸入: jiage;cout數(shù)量: shulia ng;while(ci n.

15、fail()cout出現(xiàn)錯誤,請重新輸入: shulia ng;DNode=(L ink)new Node;DNode-num=num;DNode-n ame=n ame;DNode-jiage=jiage;DNode-shulia ng=shulia ng;DNode- next=NULL;p-n ext=DNode;p=DNode;cout Go On;while(GoO n=Y|Go On=y);return Head;/釋放鏈表。void Release(L ink Head)Li nk p;while(Head!=NULL)p=Head;Head=Head-n ext;delete

16、p;/查詢。Link Search(L ink Head,stri ng& num)Li nk p;p=Head;while(p!=NULL)if(p-num=num)return p;elsep=p-n ext;cout無此商品! n ext;cout所有商品信息endl;cout代碼=名稱=價格=數(shù)量endl;while(p!=NULL)coutnumn amejiage shulia ngn ext;void Display_O ne(L ink Head,stri ng& num,un sig ned shulia ng)Li nk p;p=Search(Head ,nu m);cou

17、t代碼=名稱=價格=數(shù)量=小計(元)endl; coutnumn amejiageshulia ngjiagejiage*shulia ng);return sum;shulia ng=p-shulia ng-shulia ng;/總結(jié)帳。void Total(Link Head) Li nk p;p=Head;float sum(0);float fukua n;char GoOn;while(1)cout Go On;if(GoO n=N|GoO n= n)break;elsestri ng num;un sig ned int shulia ng;cout代碼:endl;cinnum;c

18、out數(shù)量: shulia ng;sum+=CheckOut(p ,nu m,shulia ng);cout你購買的商品為:e ndl;Display_O ne(p ,nu m,shulia ng);xg(Head, nu m,shulia ng);cout該付 sum元!endl;cout fukua n;cout找零fukuan-sum元!endl;*e ndl;int mai n()II-菜單選項 -Link Head=NULL;Link p;stri ng num;in t loop=1;while(loop)cout - 歡迎光臨,選擇進入系統(tǒng) -endl;cout*1錄入信息2查詢

19、商品3顯示數(shù)據(jù)4買入商品0退出系統(tǒng)int menu;cinmenu;if(cin. fail()cout出現(xiàn)錯誤,請重新輸入!endl;cinmenu;switch(me nu)case 0:cout已退出系統(tǒng)!endl;loop=0;break;case 1:Head=Create(Head);break;case 2:cout輸入商品代碼:endl;cinnum;p=Search(Head ,nu m);cout代碼=名稱=價格=數(shù)量endl;coutnumn amejiageshulia nge ndl;break;case 3:Display(Head);break;case 4:To

20、tal(Head);break;Release(Head);return 0;出師表兩漢:諸葛亮先帝創(chuàng)業(yè)未半而中道崩殂,今天下三分,益州疲弊,此誠危急存亡之秋也。然侍衛(wèi)之臣不懈于內(nèi),忠志之士忘身于外者, 蓋追先帝之殊遇, 欲報之于陛下也。 誠宜開張圣聽,以光先帝遺德, 恢弘志士之氣,不宜妄自菲薄,引喻失義,以塞忠諫之路也。宮中府中,俱為一體;陟罰臧否,不宜異同。若有作奸犯科及為忠善者,宜付有司論其刑賞,以昭陛下平明之理;不宜偏私,使內(nèi)外異法也。侍中、侍郎郭攸之、費祎、董允等,此皆良實,志慮忠純,是以先帝簡拔以遺陛下:愚以為宮中之事,事無大小,悉以咨之,然后施行,必能裨補闕漏,有所廣益。將軍向?qū)?,性行淑均,曉暢軍事,試用于昔日,先帝稱之曰能”是以眾議舉寵為督:愚以為營中之事,悉以咨之,必能使行陣和睦,優(yōu)劣得所。親賢臣,遠小人,此先漢所以興隆也;親小人,遠賢臣,此后漢所以傾頹也。先帝在時,每與臣論此事,未嘗不嘆息痛恨于桓、靈也。侍中、尚書、長史、參軍,此悉貞良死節(jié)之臣,愿陛 下親之、信之,則漢室之隆,可計日而待也-臣本布衣,躬耕于南陽,茍全性命于亂世,不求聞達于諸侯。先帝不以臣卑鄙,猥自枉屈,三顧臣于草廬之中, 咨臣以當世之事,由是感激,遂許先帝以驅(qū)馳。 后值傾覆,受任于敗軍之際, 奉命于危難之間,爾來二十有一年矣。先帝知臣謹慎,故臨崩寄臣以大事也。受命以來,夙夜憂嘆

溫馨提示

  • 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

提交評論