超市收銀管理程序的設計與實現_第1頁
超市收銀管理程序的設計與實現_第2頁
超市收銀管理程序的設計與實現_第3頁
超市收銀管理程序的設計與實現_第4頁
超市收銀管理程序的設計與實現_第5頁
已閱讀5頁,還剩12頁未讀 繼續免費閱讀

付費下載

VIP免費下載

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

文檔簡介

1、學 號: 武漢理工大學華夏學院數據結構課程設計題 目超市收銀管理程序的設計與實現院 系信息工程系專 業軟件工程 班 級1101 姓 名指導教師2011年6月24日課程設計任務書學生姓名: 熊偉 專業班級: 軟件1101班 指導教師: 夏紅霞 工作單位: 信息工程系 題 目: 超市收銀管理程序的設計與實現初始條件:理論:學習了數據結構課程,掌握了基本的數據結構和常用的算法;實踐:信息工程系實驗室提供計算機及軟件開發環境。要求完成的主要任務: (包括課程設計工作量及其技術要求,以及說明書撰寫等具體要求)1、系統應具備的功能:(1)商品管理人員對商品信息(商品號、商品名、單價)進行輸入、刪除、修改和

2、查詢。(2)收銀人員錄入商品號及購買數量,計算應付錢數,實收錢數和應找錢數。(3)對銷售情況進行查詢。2、數據結構設計;3、主要算法設計;4、編程及上機實現;5、撰寫課程設計報告,包括:(1)設計題目;(2)摘要和關鍵字;(3)正文,包括引言、需求分析、數據結構設計、算法設計、程序實現及測試等;(4)結束語;(5)參考文獻。時間安排: 2011年6月20日24日 (第18周)星期一 查閱資料星期二 系統設計,數據結構設計,算法設計星期三-星期四 編程并上機調試星期五 撰寫報告星期五 驗收程序,提交設計報告書。指導教師簽名: 2011年6月20日 系主任(或責任教師)簽名: 2011年6月20日

3、 超市收銀管理程序的設計與實現摘要:該程序主要用于實現登陸超市商品管理系統的界面;超市工作人員對商品的管理系統主要包括對商品名,貨號及商品庫存量的存儲修改以及查;。實現顧客購買商品的系統界面;以及結賬系統主要顯示顧客當前購物清單,應付金額,以及實收金額,找零。本程序將實現不同功能的程序寫入具有共同頭文件的不同文件中,以便在其他程序中可以直接調用而不要重新聲明定義。關鍵字:登陸系統 商品統計 超市管理 查詢 付款引言:隨著科技的發展,社會的進步,人們對產品的質量和服務的要求越來越高,市場競爭日趨激烈。超市需要處理大量的庫存信息,還要時刻更新產品的銷售信息,不斷添加商品信息。這些對傳統的人工記錄、

4、操作來說越來越復雜、困難。因此,面對不同種類的信息,需要合理的數據庫結構來保存數據信息,需要有效的程序結構支持各種數據操作的執行。所以超市收銀管理程序是當今社會所必不可少的,它的特點就是能夠實時的和準確的控制店內的銷售情況。如果能夠實時掌握銷售流程及銷售情況,則可以有效地加速商品的周轉率并提高服務質量,而且可以減少產品售價不符等所產生的問題。一個好的超市收銀管理程序能夠給企業帶來巨大的便利,以及效益。1 需求分析:(1) 商品管理人員對商品信息(商品號、商品名、單價)進行輸入、刪除、修改和查詢。(2) 收銀人員錄入商品號及購買數量,計算應付錢數,實收錢數和應找錢數。(3) 對銷售情況進行查詢。

5、(4) 顧客能看到自己已經購買的商品及價格數量以及找零。2 數據結構設計:struct item _node:商品元素;全局變量;FILE :存儲商品信息的文件; goodsi:文件中存儲的商品; int select:操作選項; fp:指向文件的指針; p,p1:指向商品元素的指針; storage:記載商品庫存量 amount:記錄顧客購買同樣商品的數量; id:商品號; brand:商品名; in_price/out_price:商品進價/售價; Total:應付金額; Pay: 實收金額。 3 算法設計:該程序主要包括登錄系統、顯示商品清單、購物車、結賬系統3.1登陸系統用于超市管理人

6、員登錄及操作,選擇1建立商品數據庫、選擇2顯示商品信息、選擇3進入購物車菜單、選4擇進入結賬目錄、選擇5退出程序。void main()printf(*);printf(歡迎進入商品管理系統);printf(*); while(1) switch(menu() case 1:build(); break; case 2:dis_all(); break; case 3: shop_cart();break; case 4: account();break; case 5: printf(謝謝使用,再見);exit(0); 3.1.1登陸系統操作菜單管理人員登錄后顯示的界面,選擇1. 將會建立商

7、品統計信息、選擇2. 將顯式所有商品、選擇3.顯示購買商品鏈、選擇4. 彈出付賬選擇、選擇5.退出int menu() int select; char str5; printf(請選擇操作序號); printf(n*n); printf(1.建立商品統計信息n); printf(2.顯式所有商品n); printf(3.購買商品鏈n); printf(4.付賬n); printf(5.退出n); printf(*nn); printf(請選擇序號n); while(1) gets(str); select=atoi(str); if(select5|select1) printf(輸入有誤請

8、重新選擇n); else break; return select; 3.2顯示商品信息打開保存的文件并在屏幕上顯示商品的貨號、品名、單價、庫存量void dis_all() int i; FILE *fp; fp=fopen(goods,r); for(i=0;fread(goods+i,sizeof(struct item),1,fp)!=0;i+) printf(*n); printf(貸號 品名 單價 庫存量n);printf(%10s%20s%7,2f%9dn,goodsi.id,goodsi.brand,goodsi.out_price,goodsi.storage ); fclo

9、se(fp); 3.2.1建立商品信息庫建立商品信息庫,首先輸入商品名稱,接著輸入貨號,進價以及售價,最后輸入商品的庫存量void build() FILE *fp; int i; printf(請依次輸入商品信息n); for(i=0;i5|selectwanted.brand,p-wanted.id,p-wanted.out_price,p-wanted.storage); p=p-next ; 3.3.3添加商品添加所購買的物品貨號以及數量,結束后會提示是否繼續添加,如果輸入錯誤將顯示“打開文件失敗”void add() FILE *fp; int i,n; char str20; ch

10、ar choice; struct item_node *p,*p1; do printf(請輸入所購商品貨號); gets(str); if(fp=fopen(goods,r)=NULL) printf(打開文件失敗n); continue; for(i=0;fread(goods+i,sizeof(struct item),1,fp)!=0;i+) if(goodsi.id=str) printf(*n); printf(貨號 品名 售價 庫存量);printf(%10s%20s%7.2f%8dn,goodsi.id,goodsi.brand,goodsi.out_price,goodsi

11、.storage); printf(購買數量); scanf(%d,&n); p1=(struct item_node*)malloc(sizeof(struct item_node); if(p1=NULL) printf(fall); exit(1); p1-amount=n; p1-wanted=goodsi; p1-next =NULL; p=cart; if(cart=NULL) cart=p1; else while(p-next!=NULL) p=p-next ; p1-next =p-next ; p-next =p1; break; fclose(fp); printf(是否

12、繼續購買商品?); choice=getchar(); while(choice=Y|choice=y); 3.4結賬系統顯示購物清單及應找錢數,顯示購物清單,然后輸入實收的錢數,最后會在屏幕上顯示應找的錢數int account() float total=0,pay; struct item_node *p; int i; FILE *fp; printf(以下是您的購物清單:n); display();if(fp=fopen(goods,r)=NULL) printf(打開文件失敗n); return 0; for(i=0;(fread(goods+i,sizeof(struct ite

13、m),1,fp)!=0;i+) ; fclose(fp); p=cart; while(p!=NULL) total+=p-wanted .out_price *p-amount ; for(i=0;goodsi.id!=p-wanted .id ;i+) ; goodsi.storage -=p-amount ; p=p-next ; printf(總計%7.2f,total);printf(n輸入實付金額:);scanf(%f,&pay); printf(實付: %7.2f 找零: %7.2f,pay,pay-total);if(fp=fopen(goods,w)=NULL) printf

14、(打開文件失敗n); return 0; fwrite(goods,sizeof(struct item),NUM,fp); fclose(fp); 4程序實現及測試:4.1進入商品管理系統并顯示相關信息圖4-14.2顯示商品信息圖4-24.3購買商品清單圖4-34.4結賬界面圖4-44.5清屏圖4-55不足之處:本程序設計比較簡單、簡陋,但便于操作、使用,在一些方面存在不足,例如:當輸入大量數據時,顯示會出現錯誤,我會在以后改進。該程序可以進行簡單的商品信息輸入和輸出,以及商品信息查詢和修改,但是在處理大量數據時會比較麻煩,例如:結賬時只有選擇了結賬選項才會執行結賬操作,而不能自動在輸入數據

15、后自動結賬,因此,操作起來時間會花費比較多。而且在輸入的時候如果沒有注意輸入數據的類型,就會導致程序無法執行。另外,在獲取商品號碼時,不能夠自動獲取,人工輸入比較麻煩,我會在以后的學習中解決這一問題,完善這個代碼。6設計體會:通過這次課程設計,我對數據結構有了更深的理解,體會到,看起來復雜的事情只要想好思路,寫好算法,再設計代碼,問題也就會迎刃而解。雖然在具體過程中我遇到了很多困難和錯誤,但經過不斷調試后,還是成功做出了這個簡陋的程序。這次的設計,同樣也使我對以前不熟悉的指針和結構體有了進一步的理解。讓我相信,只要有耐心,肯努力,一定能將程序做出來!這次設計中,我查閱了很多資料,因此,我了解到

16、書本上的知識是遠遠不夠的,只有不斷的擴充自己的知識,才能保證程序的順利制作。參考文獻: 1. 譚浩強C語言程序設計 清華大學出版社 2005年7月 2. 嚴蔚敏 吳偉民 編著 數據結構 清華大學出版社 2001年1月 本科生課程設計成績評定表班級:軟件1101姓名:熊偉學號:序號評分項目滿分實得分1學習態度認真、遵守紀律102設計分析合理性103設計方案正確性、可行性、創造性204設計結果正確性405設計報告的規范性106設計驗收10總得分/等級評語: 該生在數據結構課程設計過程中,態度認真,遵守紀律。數據結構設計合理,算法設計正確,設計結果正確,報告撰寫較為規范,通過了設計驗收。注:最終成績

17、以五級分制記。優(90-100分)、良(80-89分)、中(70-79分)、及格(60-69分)、60分以下為不及格指導教師簽名:2011 年7月2日附錄#include #include #include void main()printf(*);printf(歡迎進入商品管理系統);printf(*); while(1) switch(menu() case 1:build(); break; case 2:dis_all(); break; case 3: shop_cart();break; case 4: account();break; case 5: printf(謝謝使用,再見

18、);exit(0); int menu() int select; char str5; printf(請選擇操作序號); printf(n*n); printf(1.建立商品統計信息n); printf(2.顯式所有商品n); printf(3.購買商品鏈n); printf(4.付賬n); printf(5.退出n); printf(*nn); printf(請選擇序號n); while(1) gets(str); select=atoi(str); if(select5|select1) printf(輸入有誤請重新選擇n); else break; return select; voi

19、d dis_all() int i; FILE *fp; fp=fopen(goods,r); for(i=0;fread(goods+i,sizeof(struct item),1,fp)!=0;i+) printf(*n); printf(貸號 品名 單價 庫存量n);printf(%10s%20s%7,2f%9dn,goodsi.id,goodsi.brand,goodsi.out_price,goodsi.storage); fclose(fp); void build() FILE *fp; int i; printf(請依次輸入商品信息n); for(i=0;i5|selectwa

20、nted.brand,p-wanted.id,p-wanted.out_price,p-wanted.storage); p=p-next ; void add() FILE *fp; int i,n; char str20; char choice; struct item_node *p,*p1; do printf(請輸入所購商品貨號); gets(str); if(fp=fopen(goods,r)=NULL) printf(打開文件失敗n); continue; for(i=0;fread(goods+i,sizeof(struct item),1,fp)!=0;i+) if(goo

21、dsi.id=str) printf(*n); printf(貨號 品名 售價 庫存量);printf(%10s%20s%7.2f%8dn,goodsi.id,goodsi.brand,goodsi.out_price,goodsi.storage); printf(購買數量); scanf(%d,&n); p1=(struct item_node*)malloc(sizeof(struct item_node); if(p1=NULL) printf(fall); exit(1); p1-amount=n; p1-wanted=goodsi; p1-next =NULL; p=cart; if(cart=NULL) cart=p1; else while(p-ne

溫馨提示

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

評論

0/150

提交評論