面向?qū)ο笳n程設(shè)計--模擬超市收銀系統(tǒng)_第1頁
已閱讀1頁,還剩27頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  2013—2014學年第一學期</p><p><b>  實踐教學</b></p><p>  課程名稱:面向?qū)ο笳n程設(shè)計(A)</p><p>  指導教師: </p><p>  專業(yè)班級:2012級網(wǎng)絡(luò)工程 2班</p><p>  教學部門:計算機學院<

2、;/p><p><b>  課程設(shè)計任務書</b></p><p>  2013 ~2014 學年第 1 學期</p><p><b>  一、課程設(shè)計題目</b></p><p><b>  模擬超市收銀系統(tǒng)</b></p><p>  二、課程設(shè)計內(nèi)容

3、(含技術(shù)指標)</p><p><b>  【問題描述】</b></p><p>  使用文本命令行界面模擬超市收銀系統(tǒng)</p><p>  由收銀員輸入顧客的會員卡卡號(若有卡)、所購商品的貨號等。從數(shù)據(jù)庫(或文件)中取出有關(guān)價格信息,再把這些信息返回給收銀臺。同時把該收銀臺的銷售總量和有關(guān)種類商品的剩余量以及該持卡顧客的消費情況交數(shù)據(jù)庫(或

4、文件)存儲以供查詢。</p><p>  另外,對沒有卡的消費情況不記錄該顧客的消費情況等個人信息。如果一個未持卡顧客一次性購物滿200元,可為其發(fā)放一張會員卡,以后在該商場購物可獲得9折優(yōu)惠。</p><p><b>  【任務要求】 </b></p><p>  要求:建立會員賬戶類、商品信息類、文件讀寫類、界面顯示類等以及各相關(guān)接口類

5、。</p><p><b>  三、進度安排</b></p><p>  1.初步設(shè)計:寫出初步設(shè)計思路,進行修改完善,并進行初步設(shè)計。</p><p>  2.詳細設(shè)計:根據(jù)確定的設(shè)計思想,進一步完善初步設(shè)計內(nèi)容,按要求編寫出數(shù)據(jù)結(jié)構(gòu)類型定義、各算法程序、主函數(shù)。編譯分析調(diào)試錯誤。</p><p>  3.測試分析:設(shè)

6、計幾組數(shù)據(jù)進行測試分析,查找存在的設(shè)計缺陷,完善程序。</p><p>  4.報告撰寫:根據(jù)上面設(shè)計過程和結(jié)果,按照要求寫出設(shè)計報告。</p><p>  5.答辯考核驗收:教師按組(人)檢查驗收,并提出相關(guān)問題,以便檢驗設(shè)計完成情況。</p><p><b>  四、基本要求</b></p><p>  1.在設(shè)計時

7、,要嚴格按照題意要求獨立進行設(shè)計,不能隨意更改。若確因條件所限,必須要改變課題要求時,應在征得指導教師同意的前提下進行。 </p><p>  2.在設(shè)計完成后,應當場運行和答辯,由指導教師驗收,只有在驗收合格后才能算設(shè)計部分的結(jié)束。 </p><p>  3.設(shè)計結(jié)束后要寫出課程設(shè)計報告,以作為整個課程設(shè)計評分的書面依據(jù)和存檔材料。設(shè)計報告以規(guī)定格式的電子文檔書寫、打印并裝訂,報告格式嚴

8、格按照模板要求撰寫,排版及圖、表要清楚、工整。</p><p>  從總體來說,所設(shè)計的程序應該全部符合要求,問題模型、求解算法以及存儲結(jié)構(gòu)清晰;具有友好、清晰的界面;設(shè)計要包括所需要的輔助程序,如必要的數(shù)據(jù)輸入、輸出、顯示和錯誤檢測功能;操作使用要簡便;程序的整體結(jié)構(gòu)及局部結(jié)構(gòu)要合理;設(shè)計報告要符合規(guī)范。 </p><p>  課程負責人簽名: </p>

9、<p>  2013年 11 月13 日</p><p>  選題三:模擬超市收銀系統(tǒng)</p><p><b>  摘要</b></p><p>  模擬超市收銀系統(tǒng): </p><p>  隨著計算機的發(fā)展,計算機技術(shù)已經(jīng)融入到社會生活的各個角落,把人們從以前繁瑣的手工操作中解放出來,從而使信息的管理大

10、大簡便起來。超市日常有大量的數(shù)據(jù)需要進行處</p><p>  理,包括收銀員收銀時輸入的消費者購買信息、管理員輸入的入庫商品信息、管理員輸入的人員信息、日常銷售額的統(tǒng)計等等。面對如此大的信息量,就需要有相應的計算機管理系統(tǒng)</p><p>  來提高工作的效率和系統(tǒng)管理的安全性。通過這樣的系統(tǒng),超市就可以由收銀員方便的在收</p><p>  銀柜臺進行銷售額的錄

11、入,管理員也可以方便地進行管理,從而減小手工操作的工作量,</p><p>  本設(shè)計就是為了模擬超市的收銀系統(tǒng)。</p><p><b>  關(guān)鍵字:</b></p><p> ?。保好嫦?qū)ο?;超市收銀系統(tǒng);文件操作</p><p> ?。玻侯惖膶崿F(xiàn), 入庫實現(xiàn), 顯示所有記錄, 結(jié)算的實現(xiàn),查查詢商品信息, 銷售實現(xiàn)

12、,查看指令,主函數(shù)實現(xiàn)。</p><p><b>  目 錄</b></p><p>  封面………………………………………………………… 1</p><p>  說明書……………………………………………………… 2</p><p>  任務書……………………………………………………… 4</p>&l

13、t;p>  成績評定表………………………………………………… 5</p><p>  摘要………………………………………………………… 6</p><p>  關(guān)鍵詞……………………………………………………… 6</p><p>  目錄………………………………………………………… 7</p><p>  正文…………………………………

14、……………………… 8</p><p>  1 前言……………………………………………………… 8</p><p>  2 概要設(shè)計………………………………………………… 9</p><p>  3 詳細設(shè)計…………………………………………………10</p><p>  3.1文件設(shè)計……… ……………………………………11</p>

15、;<p>  3.2程序模塊設(shè)計………………………………………12</p><p>  4軟件測試…………………………………………………15</p><p>  5參考文獻…………………………………………………17</p><p>  6心得體會……………………………………………………18</p><p>  7附錄:程序清單…

16、…………………………………………19</p><p>  教師評語……………………………………………………31</p><p>  答辯記錄表…………………………………………………32</p><p><b>  前言</b></p><p><b>  問題的描述</b></p>&

17、lt;p>  使用文本命令行界面模擬超市收銀系統(tǒng)</p><p>  由收銀員輸入顧客的會員卡卡號(若有卡)、所購商品的貨號等。從數(shù)據(jù)庫(或文件)中取出有關(guān)價格信息,再把這些信息返回給收銀臺。同時把該收銀臺的銷售總量和有關(guān)種類商品的剩余量以及該持卡顧客的消費情況交數(shù)據(jù)庫(或文件)存儲以供查詢。</p><p>  另外,對沒有卡的消費情況不記錄該顧客的消費情況等個人信息。如果一個未持

18、卡顧客一次性購物滿200元,可為其發(fā)放一張會員卡,以后在該商場購物可獲得9折優(yōu)惠。</p><p><b>  內(nèi)容</b></p><p>  設(shè)計一個模擬超市收銀系統(tǒng)操作的程序,輸入你需要的操作(選擇相對的括號里的阿拉伯數(shù)字)程序具體功能有:</p><p>  (1)顧客結(jié)賬{付款方式:1.會員結(jié)賬2.普通結(jié)賬}</p>&

19、lt;p><b> ?。?)增加商品</b></p><p><b> ?。?)增加會員</b></p><p> ?。?)查詢會員消費記錄</p><p><b> ?。?)退出</b></p><p><b>  1.3模塊化設(shè)計</b><

20、/p><p>  為實現(xiàn)系統(tǒng)功能,本程序主要分為五個模塊。它們分別為:顧客結(jié)賬(內(nèi)含付款方式會員結(jié)賬,普通結(jié)賬);增加商品;增加會員;查詢會員消費記錄;退出,這五個函數(shù)再通過主函數(shù)調(diào)用分別得以實現(xiàn)。</p><p>  主函數(shù),首先提供了程序運行時的友好界面,提供客戶選擇的菜單。然后,通過</p><p>  執(zhí)行多分支選擇語句——switch語句,分別實現(xiàn)其它各個函數(shù)

21、的調(diào)用功能。</p><p>  其它各個函數(shù)的功能分別如下:</p><p>  顧客結(jié)賬:{1.會員結(jié)賬vip_count() 2.普通結(jié)賬count()} </p><p>  商品入庫:input() </p><p>  增加會員:CClientele() </p><p>  查詢會員消費記錄:R

22、ec.read_record(); </p><p>  顯示所有商品:all();</p><p>  找零:change();</p><p><b>  2概要設(shè)計</b></p><p>  2.1 算法要點描述與實現(xiàn)思想</p><p>  從需求分析的角度來看,這個超市管理系統(tǒng)的需求如

23、下所示:</p><p>  該系統(tǒng)的功能主要是模擬超市的收銀的過程,所以不需要設(shè)計數(shù)據(jù)庫,當進入系統(tǒng),就會顯示倉庫里的所有貨物,當管理員輸入貨物編號(索引號)時,就會提示你需要買的數(shù)量,輸入完成就會提示你購買成功。再就是付款。</p><p>  根據(jù)系統(tǒng)需求,這個版本的超市管理系統(tǒng)是一個簡單的管理系統(tǒng)。</p><p>  2.2 面向?qū)ο蟪绦蛟O(shè)計</p&

24、gt;<p>  本程序中,運用了多種函數(shù)。首先商品入庫、加入會員、顯示主界面、再</p><p>  按數(shù)字輸入進行選擇性操作。在主函數(shù)中分別調(diào)用各項的函數(shù)。 3詳細設(shè)計</p><p><b>  3.1文件設(shè)計</b></p><p>  本程序中

25、,運用了多種函數(shù)。首先商品入庫、加入會員、顯示主界面、再按數(shù)字輸入進行選擇性操作。在主函數(shù)中分別調(diào)用各項的函數(shù)。</p><p><b>  //商品入庫</b></p><p>  void Product::input(){</p><p>  cout<<"編號:";</p><p>

26、;<b>  cin>>id;</b></p><p>  ifstream infile("Goods.dat",ios::in|ios::binary); //判斷商品是否已存在</p><p>  if(!infile){</p><p><b>  d_show

27、();</b></p><p><b>  exit;</b></p><p><b>  }</b></p><p>  while(infile){</p><p><b>  int n;</b></p><p>  infile.re

28、ad((char*)&G1,sizeof(G1));</p><p>  n=infile.gcount();</p><p>  if(n==sizeof(G1))</p><p>  if(G1.id==id){</p><p>  cout<<"貨物已存在,請核實后再輸入!"<<end

29、l;</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  infile.close();</p><p>  cout<<"商品名:

30、";</p><p>  cin>>Goodsname;</p><p>  cout<<"單價:";</p><p>  cin>>price;</p><p>  cout<<"數(shù)量:";</p><p>  cin&

31、gt;>number;</p><p>  G1.Setdata(id,Goodsname,price,number);</p><p>  ofstream outfile("Goods.dat",ios::app|ios::binary);</p><p>  if(!outfile){</p><p><

32、b>  d_show();</b></p><p><b>  exit;</b></p><p><b>  }</b></p><p>  outfile.write((char*)&G1,sizeof(G1));</p><p>  outfile.close();&

33、lt;/p><p><b>  b_show();</b></p><p><b>  }</b></p><p><b>  //增加會員</b></p><p>  void Clientele::CClientele(){

34、 </p><p>  cout<<"輸入卡號:";</p><p><b>  cin>>num;</b></p><p>  ofstream outfile("Clientele.dat",ios::app|ios::binary); //將文件輸出提前

35、定義,為了能創(chuàng)建文件</p><p>  if(outfile){</p><p>  ifstream infile("Clientele.dat",ios::in|ios::binary); //判斷會員是否已存在</p><p>  if(!infile){</p><p><b>  d_show()

36、;</b></p><p><b>  exit;</b></p><p><b>  }</b></p><p>  while(infile){</p><p><b>  int n;</b></p><p>  infile.read

37、((char*)&C1,sizeof(C1));</p><p>  n=infile.gcount();</p><p>  if(n==sizeof(C1))</p><p>  if(C1.num==num){</p><p>  cout<<"該會員以存在,請核實后再輸入!"<<en

38、dl;</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  infile.close();

39、 </p><p><b>  }</b></p><p>  cout<<"輸入姓名:";</p><p>  cin>>name;</p><p>  C1.Setdata(num,name);</p><p>  outfile.writ

40、e((char*)&C1,sizeof(C1));</p><p>  outfile.close();</p><p><b>  b_show();</b></p><p><b>  }</b></p><p>  3.2程序模塊設(shè)計</p><p>  本程

41、序執(zhí)行的入口是main函數(shù),在main函數(shù)中首先調(diào)用了界面類中的各項操作的函數(shù),在界面類中選擇所需要進行的操作,在switch語句進行界面顯示,實現(xiàn)超市收銀系統(tǒng)算法的操作</p><p><b>  while(1){</b></p><p>  show.a_show();</p><p>  show.b_show();</p>

42、<p>  Goods.all();</p><p>  show.b_show();</p><p>  cout<<"1.顧客結(jié)賬 2.增加商品 3.增加會員 \n\n4.查詢會員消費記錄 \t0.退出\n";</p><p>  show.b_show();</p><

43、;p>  cout<<"請選擇:";</p><p><b>  cin>>i;</b></p><p>  show.b_show();</p><p>  switch (i){</p><p><b>  case 1:</b></p&g

44、t;<p>  cout<<"付款方式:1.會員結(jié)賬 2.普通結(jié)賬"<<endl<<"請選擇:";</p><p><b>  cin>>n;</b></p><p>  show.b_show();</p><p>  switch(n

45、){</p><p><b>  case 1:</b></p><p>  VIP.SClientele();</p><p>  Goods.vip_count();</p><p>  show.c_show();</p><p><b>  break;</b><

46、;/p><p><b>  case 2:</b></p><p>  Goods.count();</p><p>  show.c_show();</p><p><b>  break;</b></p><p><b>  }</b></p>

47、;<p><b>  break;</b></p><p><b>  case 2:</b></p><p>  Goods.input();</p><p><b>  break;</b></p><p><b>  case 3:</b&g

48、t;</p><p>  VIP.CClientele();</p><p><b>  break;</b></p><p><b>  case 4:</b></p><p>  Rec.read_record();</p><p><b>  break;&l

49、t;/b></p><p><b>  case 0:</b></p><p><b>  return 1;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b

50、>  return 0;</b></p><p><b>  }</b></p><p><b>  4軟件測試</b></p><p>  4.1調(diào)試過程中的主要問題</p><p>  由于本程序是分界面設(shè)計的,所以運行時選擇完操作并且執(zhí)行完操作后,又會繼續(xù)回到主菜單,供用戶

51、繼續(xù)選擇操作并執(zhí)行操作。對于本程序的調(diào)試運行,總體上情況良好。但是,其中也出現(xiàn)了一些小問題。我發(fā)現(xiàn)的主要問題有:</p><p>  從文件讀取數(shù)據(jù)到vector時,有時會產(chǎn)生錯誤;以及保存到文件中時,也存在格式上的問題。后來這些問題均以通過探究與測試中解決。</p><p><b>  4.2 測試結(jié)果</b></p><p>  (1)主

52、菜單(如圖)</p><p><b> ?。?)商品入庫</b></p><p><b>  增加新會員</b></p><p><b> ?。?)普通結(jié)賬</b></p><p><b>  會員結(jié)賬</b></p><p>  

53、(6)查詢會員消費記錄(如圖)</p><p><b>  五參考文獻</b></p><p>  [1]曹靜C++面向?qū)ο蟪绦蛟O(shè)計教程。北京:中國水利出版社,2010</p><p>  [2] 陳維興 林小茶,C++面向?qū)ο蟪绦蛟O(shè)計教程(第3版)。北京:清華大學出版社,2004</p><p><b>  

54、[3] 百度文庫</b></p><p><b>  六心得體會</b></p><p>  在為期幾周的課程設(shè)計中,我通過完成本次任務體會頗多,學到很多東西。</p><p>  利用設(shè)計這次超市管理系統(tǒng)的機會使我熟練的掌握了這學期所學的c++面向?qū)ο缶幊?,也更加深入理解了超市收銀系統(tǒng)的操作原理和解了文件的用法以及其作用,為日后的

55、如何熟練使用文件打下堅實的基礎(chǔ)。此外,本算法的實現(xiàn)采用了c++面向?qū)ο缶幊?,使我對基類的?gòu)建,派生類的使用,有更深層次的認識。</p><p>  在這次課程設(shè)計中,我還懂得了程序開發(fā)的一些比較重要的步驟,比如需求分析、總體設(shè)計、程序模塊設(shè)計(含功能需求、程序代碼設(shè)計與分析、運行結(jié)果)等。總之,通過這次課程設(shè)計我們收獲頗豐,相信會為我以的學習和工作帶來很大的好處。最重要的還是激發(fā)了我對編程的興趣和熱情,讓我從一個

56、只懂理論變成了能做一些小型程序,讓我們對編程更加熱愛了。</p><p>  這次的課程設(shè)計經(jīng)過多次的資料查詢,以及各隊友的積極參與,使這次的實踐課進行的非常成功,在學習的過程中,同時也增強了集體的凝聚力。同時程序設(shè)計最重要的是要敢于創(chuàng)新,而不應該止步于舊知識的應用,唯有不安于現(xiàn)狀,才會有更大的發(fā)展空間。</p><p><b>  七附錄:程序清單</b></

57、p><p>  #include<iostream></p><p>  #include<string></p><p>  #include<fstream></p><p>  using namespace std;</p><p><b>  //顯示類</b&

58、gt;</p><p>  class Show{</p><p><b>  public:</b></p><p>  void a_show(){</p><p>  cout<<"\t******************************************************

59、*********\n";</p><p>  cout<<"\t** 歡 迎 來 到 超 級 超 市 **\n";</p><p>  cout<<"\t****************************************************

60、***********\n";</p><p><b>  }</b></p><p>  static void b_show(){</p><p>  cout<<"------------------------------------------------------\n";</p>

61、;<p><b>  }</b></p><p>  void c_show(){</p><p>  cout<<"\n\t************************歡迎再次光臨!*************************\n\n";</p><p>  cout<<&q

62、uot;\t**************************************************************\n\n\n\n";</p><p><b>  }</b></p><p>  static void d_show(){</p><p>  cout<<"open erro

63、r!";</p><p><b>  }</b></p><p><b>  };</b></p><p><b>  //會員類</b></p><p>  class Clientele:public Show{</p><p>  int

64、 num; //卡號</p><p>  char name[20]; //會員名</p><p><b>  public:</b></p><p>  Clientele(){ //初始化</p><p><b>  num=0;<

65、;/b></p><p>  name[0]=0;</p><p><b>  }</b></p><p>  Clientele(int numl,char *namel){</p><p>  Setdata(numl,namel);</p><p><b>  }</b

66、></p><p>  ~Clientele(){}</p><p>  int Getnum(){return num;}</p><p>  char* Getname(){return name;}</p><p>  void Setdata(int,char*); //對Clientele進行賦值<

67、/p><p>  void ShowClientele(); //顯示會員信息</p><p>  void SClientele(); //搜索會員</p><p>  void CClientele(); //添加會員</p><p><b&

68、gt;  };</b></p><p><b>  //產(chǎn)品類</b></p><p>  class Product:public Show{</p><p><b>  public:</b></p><p>  void input(); //商品入

69、庫</p><p>  void count(); //普通結(jié)賬</p><p>  void vip_count(); //會員結(jié)賬</p><p>  void all(); //顯示所有商品</p><p>  void change();

70、 //找零</p><p>  void Setdata(int,char*,int,int); //對Product進行賦值</p><p>  void Show(int);</p><p>  void Showl(){</p><p>  cout<<id<<"\t&

71、quot;<<name<<"\t"<<price<<"\t"<<number<<endl;</p><p><b>  }</b></p><p>  Product(){ //初始化</p><p>&l

72、t;b>  id=0;</b></p><p>  name[0]=0;</p><p><b>  price=0;</b></p><p><b>  number=0;</b></p><p><b>  }</b></p><p&g

73、t;  Product(int idl,char *namel,int pricel,int numberl){</p><p>  Setdata(idl,namel,pricel,numberl);</p><p><b>  }</b></p><p>  ~Product(){}</p><p>  int Ge

74、tid(){return id;}</p><p>  char* Getname(){return name;}</p><p>  int Getprice(){return price;}</p><p>  int Getnumber(){return number;}</p><p><b>  private:<

75、/b></p><p>  int id; //商品編號</p><p>  char name[20]; //商品名</p><p>  int price; //單價</p><p>  int number; //數(shù)量&

76、lt;/p><p><b>  };</b></p><p>  //記錄會員消費記錄類</p><p>  class record:public Clientele,public Product{</p><p><b>  private:</b></p><p>  in

77、t num,goodsid,goodsprice,goodsnum;</p><p>  char name[20],goodsname[20];</p><p><b>  public:</b></p><p><b>  record(){</b></p><p><b>  num

78、=0;</b></p><p>  name[0]=0;</p><p>  goodsid=0;</p><p>  goodsname[0]=0;</p><p>  goodsprice=0;</p><p>  goodsnum=0;</p><p><b>  }

79、</b></p><p>  record(int numl,char*namel,int goodsidl,char*goodsnamel,int goodspricel,int goodsnuml):Clientele(numl,namel),Product(goodsidl,goodsnamel,goodspricel,goodsnuml){</p><p>  Setd

80、ata(numl,namel,goodsidl,goodsnamel,goodspricel,goodsnuml);</p><p><b>  }</b></p><p>  ~record(){}</p><p><b>  //賦值</b></p><p>  void Setdata(int

81、 numl,char*namel,int goodsidl,char*goodsnamel,int goodspricel,int goodsnuml){</p><p><b>  num=numl;</b></p><p>  strcpy_s(name,namel);</p><p>  goodsid=goodsidl;</p&g

82、t;<p>  strcpy_s(goodsname,goodsnamel);</p><p>  goodsprice=goodspricel;</p><p>  goodsnum=goodsnuml;</p><p><b>  }</b></p><p>  void viprecord();

83、 //記錄會員消費</p><p>  void read_record(); //查詢記錄</p><p>  void Show();</p><p><b>  };</b></p><p><b>  //全局變量<

84、/b></p><p>  Clientele C1;</p><p>  Product G1;</p><p>  record R1;</p><p>  int num,i,j,n,id,price,number;</p><p>  char name[20],Goodsname[20];</p&

85、gt;<p>  //對Clientele進行賦值</p><p>  void Clientele::Setdata(int numl,char *namel){</p><p><b>  num=numl;</b></p><p>  strcpy_s(name,namel);</p><p>&

86、lt;b>  }</b></p><p>  //Product賦值</p><p>  void Product::Setdata(int idl,char *namel,int pricel,int numberl){</p><p><b>  id=idl;</b></p><p>  strc

87、py_s(name,namel);</p><p>  price=pricel;</p><p>  number=numberl;</p><p><b>  }</b></p><p><b>  //查詢會員信息</b></p><p>  void Clientel

88、e::SClientele(){ </p><p>  cout<<"輸入卡號:";</p><p>  cin>>num;</p><p><b>  b_show();</b></p><p>  ifstream in

89、file("Clientele.dat",ios::in|ios::binary);</p><p>  if(!infile){</p><p><b>  d_show();</b></p><p><b>  exit;</b></p><p><b>  }&l

90、t;/b></p><p>  while(infile){</p><p><b>  int n;</b></p><p>  infile.read((char*)&C1,sizeof(C1));</p><p>  n=infile.gcount();</p><p>  i

91、f(n==sizeof(C1))</p><p>  if(C1.num==num){</p><p>  C1.ShowClientele();</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  

92、}</b></p><p>  infile.close();</p><p><b>  b_show();</b></p><p><b>  }</b></p><p><b>  //記錄新會員</b></p><p>  void

93、Clientele::CClientele(){ </p><p>  cout<<"輸入卡號:";</p><p><b>  cin>>num;</b></p><p>  ofstream outfile("Clien

94、tele.dat",ios::app|ios::binary); //將文件輸出提前定義,為了能創(chuàng)建文件</p><p>  if(outfile){</p><p>  ifstream infile("Clientele.dat",ios::in|ios::binary); //判斷會員是否已存在</p><p>  i

95、f(!infile){</p><p><b>  d_show();</b></p><p><b>  exit;</b></p><p><b>  }</b></p><p>  while(infile){</p><p><b> 

96、 int n;</b></p><p>  infile.read((char*)&C1,sizeof(C1)); //從文件中讀取C1數(shù)據(jù),長度為C1</p><p>  n=infile.gcount(); //gcount()用來獲得實際讀取的字節(jié)數(shù),不出錯n是等于C1的長度</p><p>  if(n

97、==sizeof(C1)) //如果n等于C1的長度,就可以執(zhí)行</p><p>  if(C1.num==num){</p><p>  cout<<"該會員以存在,請核實后再輸入!"<<endl;</p><p><b>  return;</b></p>

98、<p><b>  }</b></p><p><b>  }</b></p><p>  infile.close(); </p><p><b>  }</b></p>&

99、lt;p>  cout<<"輸入姓名:";</p><p>  cin>>name;</p><p>  C1.Setdata(num,name);</p><p>  outfile.write((char*)&C1,sizeof(C1));</p><p>  outfile.cl

100、ose();</p><p><b>  b_show();</b></p><p><b>  }</b></p><p><b>  //商品入庫</b></p><p>  void Product::input(){</p><p>  cout

101、<<"編號:";</p><p><b>  cin>>id;</b></p><p>  ifstream infile("Goods.dat",ios::in|ios::binary); //判斷商品是否已存在</p><p>  if(!in

102、file){</p><p><b>  d_show();</b></p><p><b>  exit;</b></p><p><b>  }</b></p><p>  while(infile){</p><p><b>  int

103、n;</b></p><p>  infile.read((char*)&G1,sizeof(G1));</p><p>  n=infile.gcount();</p><p>  if(n==sizeof(G1))</p><p>  if(G1.id==id){</p><p>  cout&

104、lt;<"貨物已存在,請核實后再輸入!"<<endl;</p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  infile.close();&

105、lt;/p><p>  cout<<"商品名:";</p><p>  cin>>Goodsname;</p><p>  cout<<"單價:";</p><p>  cin>>price;</p><p>  cout<<

106、;"數(shù)量:";</p><p>  cin>>number;</p><p>  G1.Setdata(id,Goodsname,price,number);</p><p>  ofstream outfile("Goods.dat",ios::app|ios::binary);</p><p

107、>  if(!outfile){</p><p><b>  d_show();</b></p><p><b>  exit;</b></p><p><b>  }</b></p><p>  outfile.write((char*)&G1,sizeof(G

108、1));</p><p>  outfile.close();</p><p><b>  b_show();</b></p><p><b>  }</b></p><p><b>  //顯示所有商品</b></p><p>  void Produ

109、ct::all(){</p><p>  ifstream infile("Goods.dat",ios::in|ios::binary);</p><p>  if(!infile){ //如果打開文件失敗,則創(chuàng)建文件</p><p>  ofstream outfile(&q

110、uot;Goods.dat",ios::binary);</p><p>  outfile.close();</p><p><b>  }</b></p><p>  cout<<"編號\t"<<"名字\t"<<"單價\t"<&l

111、t;"數(shù)量\t"<<endl;</p><p>  while(infile){</p><p><b>  int n;</b></p><p>  infile.read((char*)&G1,sizeof(G1));</p><p>  n=infile.gcount();&

112、lt;/p><p>  if(n==sizeof(G1))</p><p>  G1.Showl();</p><p><b>  }</b></p><p>  infile.close();</p><p><b>  }</b></p><p>&l

113、t;b>  //普通結(jié)賬</b></p><p>  void Product::count(){</p><p>  int s=0,S=0,k;</p><p>  cout<<"結(jié)束輸入按“0”"<<endl;</p><p><b>  do{</b>

114、</p><p>  cout<<"商品編號:";</p><p><b>  cin>>i;</b></p><p>  cout<<"購買數(shù)量:";</p><p><b>  cin>>j;</b><

115、/p><p><b>  b_show();</b></p><p>  ifstream infile("Goods.dat",ios::in|ios::binary);</p><p>  if(!infile){</p><p><b>  d_show();</b></

116、p><p><b>  exit;</b></p><p><b>  }</b></p><p>  while(infile){</p><p><b>  int n;</b></p><p>  infile.read((char*)&G1,

117、sizeof(G1));</p><p>  n=infile.gcount();</p><p>  if(n==sizeof(G1))</p><p>  if(G1.id==i){</p><p>  G1.Show(j);</p><p><b>  b_show();</b></p

118、><p>  s=G1.price*j; //導入單價和購買數(shù)量,進行結(jié)算</p><p><b>  S=S+s;</b></p><p><b>  break;</b></p><p><b>  }</b></p&g

119、t;<p><b>  }</b></p><p>  infile.close();</p><p>  }while(i!=0);</p><p>  cout<<"金額:"<<S<<endl;</p><p>  cout<<&quo

120、t;收款:";</p><p><b>  cin>>k;</b></p><p>  cout<<"找零:"<<k-S<<endl;</p><p>  if(S>200){ //消費超過200,辦理會員</

121、p><p>  cout<<"消費已超過200,可辦理會員,“y/n”"<<endl;</p><p><b>  char l;</b></p><p><b>  cin>>l;</b></p><p><b>  if(l='

122、;y')</b></p><p>  C1.CClientele();</p><p><b>  }</b></p><p><b>  b_show();</b></p><p><b>  }</b></p><p><b

123、>  //會員結(jié)賬 </b></p><p>  void Product::vip_count(){</p><p>  int s=0,S=0,k;</p><p>  cout<<"結(jié)束輸入按“0”"<<endl;</p><p><b>  do{</b&g

124、t;</p><p>  cout<<"商品編號:";</p><p><b>  cin>>i;</b></p><p>  cout<<"購買數(shù)量:";</p><p><b>  cin>>j;</b>&l

125、t;/p><p>  ifstream infile("Goods.dat",ios::in|ios::binary);</p><p>  if(!infile){</p><p><b>  d_show();</b></p><p><b>  exit;</b></p&

126、gt;<p><b>  }</b></p><p>  while(infile){</p><p><b>  int n;</b></p><p>  infile.read((char*)&G1,sizeof(G1));</p><p>  n=infile.gcoun

127、t();</p><p>  if(n==sizeof(G1))</p><p>  if(G1.id==i){</p><p>  G1.Show(j);</p><p><b>  b_show();</b></p><p>  s=G1.price*j;

128、 //導入單價和購買數(shù)量,進行結(jié)算</p><p><b>  S=S+s;</b></p><p>  R1.viprecord();</p><p><b>  break;</b></p><p><b>  }</b></p><p&g

129、t;<b>  }</b></p><p>  infile.close();</p><p>  }while(i!=0);</p><p>  cout<<"金額:"<<S<<endl;</p><p>  cout<<"會員價:"

130、;<<S*0.9<<endl;</p><p>  cout<<"收款:";</p><p><b>  cin>>k;</b></p><p>  cout<<"找零:"<<k-(S*0.9)<<endl;</p&

131、gt;<p><b>  b_show();</b></p><p><b>  }</b></p><p>  //將會員消費記錄到文檔record中</p><p>  void record::viprecord(){</p><p>  ofstream outfile(&qu

132、ot;record.dat",ios::out|ios::app|ios::binary);</p><p>  if(!outfile){</p><p><b>  d_show();</b></p><p><b>  exit;</b></p><p><b>  }&l

133、t;/b></p><p>  Setdata(C1.Getnum(),C1.Getname(),G1.Getid(),G1.Getname(),G1.Getprice(),j);</p><p>  outfile.write((char*)&R1,sizeof(R1));</p><p>  outfile.close();</p>

134、<p><b>  }</b></p><p>  //查詢會員消費記錄</p><p>  void record::read_record(){</p><p><b>  int m;</b></p><p>  ifstream infile("record.dat&qu

135、ot;,ios::in|ios::binary);</p><p>  if(!infile){</p><p><b>  d_show();</b></p><p><b>  exit;</b></p><p><b>  }</b></p><p&g

136、t;  cout<<"輸入查詢會員號:";</p><p><b>  cin>>m;</b></p><p><b>  b_show();</b></p><p>  while(infile){</p><p><b>  int n;&l

137、t;/b></p><p>  infile.read((char*)&R1,sizeof(R1));</p><p>  n=infile.gcount();</p><p>  if(n==sizeof(R1))</p><p>  if(R1.num==m){</p><p>  R1.Show()

138、;</p><p><b>  b_show();</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  //會員顯示&

139、lt;/b></p><p>  void Clientele::ShowClientele(){</p><p>  cout<<"會員卡號:"<<num<<endl<<"會員名:"<<name<<endl;</p><p>&

140、lt;b>  }</b></p><p><b>  //商品顯示</b></p><p>  void Product::Show(int j){</p><p>  cout<<"編號\t"<<"名字\t"<<"單價\t"<

141、;<"余量\t"<<endl<<id<<"\t"<<name<<"\t"<<price<<"\t"<<number-j<<endl;</p><p><b>  }</b></p>&l

142、t;p>  //顯示會員消費記錄</p><p>  void record::Show(){</p><p>  cout<<"會員卡號:"<<num<<endl<<"會員名:"<<name<<endl<<"商品編號:"<<go

143、odsid<<endl<<"商品名:"<<goodsname<<endl<<"單價:"<<goodsprice<<endl<<"數(shù)量"<<goodsnum<<endl;</p><p><b>  }</b><

144、;/p><p><b>  //主函數(shù)</b></p><p>  int main(){</p><p>  Clientele VIP;</p><p>  Product Goods;</p><p>  record Rec;</p><p>  Show show;&

145、lt;/p><p><b>  int i,n;</b></p><p><b>  while(1){</b></p><p>  system("cls");</p><p>  show.a_show();</p><p>  show.b_show()

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論