c++課程設(shè)計(jì)---商品銷售統(tǒng)計(jì)_第1頁
已閱讀1頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計(jì)報告</b></p><p>  設(shè)計(jì)題目:綜合類題目3. 商品銷售統(tǒng)計(jì)</p><p><b>  學(xué)生姓名</b></p><p>  專業(yè)班級:計(jì)算機(jī)科學(xué)以技術(shù)10-01班</p><p><b>  學(xué)號 :</b></

2、p><p><b>  指導(dǎo)老師:</b></p><p>  完成日期:2011年7月2月</p><p>  (一) 需求和規(guī)格說明</p><p><b>  問題描述</b></p><p>  編寫商品銷售統(tǒng)計(jì)程序,商品的信息有:商品的名稱,計(jì)量單位(重量或件),單價。

3、所有商品的信息事先已存入計(jì)算機(jī),屏幕上顯示所有商品的名稱,選擇商品名,輸入商品計(jì)量單位(如重量,件數(shù)等),根據(jù)單價算出總價??蛻粢淮钨徫锟赡苜徺I多種商品,程序應(yīng)計(jì)算出客戶應(yīng)付的錢款數(shù)。</p><p><b>  基本要求</b></p><p>  程序分為兩個部分:第一部分用于輸入商品的信息并允許修改和刪除;第二部分實(shí)現(xiàn)銷售統(tǒng)計(jì)。程序運(yùn)行時由用戶選擇進(jìn)入哪一部分功

4、能,并能在運(yùn)行時在兩部分之間切換。第二部分運(yùn)行時,首先顯示所有商品名稱及代碼(商品數(shù)目較多時,應(yīng)考慮分屏顯示),用戶輸入商品代碼及商品重量或件數(shù),用戶一次操作可輸入若干商品的購買信息,然后輸入一個特殊的代碼(如-1)表示本次購物結(jié)束。此時。程序計(jì)算出應(yīng)付錢款數(shù)并顯示。</p><p><b>  測試數(shù)據(jù)</b></p><p>  程序應(yīng)輸入不少于10種商品的信息,

5、并進(jìn)行模擬運(yùn)行。</p><p><b>  實(shí)現(xiàn)提示</b></p><p>  本程序的商品信息管理可采用與課程設(shè)計(jì)題目二類似的數(shù)據(jù)結(jié)構(gòu),既定義一個商品類,每種商品作為商品類的實(shí)例(對象)存儲在鏈表節(jié)點(diǎn)中。</p><p><b>  選做內(nèi)容</b></p><p>  程序在營業(yè)結(jié)束時統(tǒng)計(jì)每

6、種商品的銷售量,銷售金額及總營業(yè)額。因此第二部分應(yīng)有營業(yè)結(jié)束的選擇,當(dāng)用戶選擇此項(xiàng)時屏幕上顯示當(dāng)天營業(yè)的每種商品的銷售量,銷售金額及總營業(yè)額。注意,商品類的數(shù)據(jù)成員應(yīng)增加有商品的銷售量和銷售金額??偁I業(yè)額是所有商品的營業(yè)額之和,可用靜態(tài)數(shù)據(jù)成員實(shí)現(xiàn)。或可由原商品類派生出一個特殊的類,增加上面的數(shù)據(jù)成員及相應(yīng)的成員函數(shù)。</p><p><b> ?。ǘ?設(shè)計(jì)</b></p>

7、<p>  定義一個結(jié)構(gòu)體,該結(jié)構(gòu)體用來存放商品的代碼,名稱等信息</p><p>  定義list鏈表類,用來動態(tài)的存放商品的信息;</p><p>  定義list的派生類set類,用來對商品進(jìn)行操作;</p><p><b> ?。ㄈ?用戶手冊</b></p><p>  程序運(yùn)行時,首先選擇相關(guān)的操作

8、</p><p><b>  根據(jù)要求</b></p><p><b>  逐步操作</b></p><p><b> ?。ㄋ模?調(diào)試及測試</b></p><p><b>  運(yùn)行實(shí)例:</b></p><p><b>

9、  源程序:</b></p><p>  #include<iostream.h></p><p>  #include <conio.h></p><p>  struct shangpin</p><p>  {int number;</p><p>  char name[30

10、];</p><p>  float weight;</p><p>  float price;</p><p>  shangpin *next;</p><p><b>  };</b></p><p>  class list { //定義鏈表類</p><p>

11、  shangpin *elems;</p><p><b>  public:</b></p><p>  list() {elems=0;}</p><p><b>  ~list();</b></p><p>  virtual bool insert();</p><p&

12、gt;  void insert1(shangpin *pr,float wgt);//此虛函數(shù)在派生類中可重新定義</p><p>  bool insert2();</p><p>  virtual bool deletes(int); //此虛函數(shù)在派生類中可重新定義</p><p>  bool contain(int);</p><p

13、>  bool contain1(int);</p><p>  shangpin *chazhao(int);</p><p>  void print();</p><p>  void print1();</p><p>  void shanchu();</p><p><b>  };<

14、/b></p><p>  class set:public list { </p><p>  int card;//將集合類set定義為鏈表類list的派生類</p><p>  struct shangpin shp;</p><p><b>  public:</b></p><p>

15、;<b>  set() {}</b></p><p>  bool insert(); //重定義此函數(shù)</p><p>  bool deletes(int); //重定義此函數(shù)</p><p><b>  };</b></p><p>  shangpin *list::chazhao(in

16、t number)</p><p>  { //若表為空,返回false</p><p>  shangpin *tmp=elems;</p><p>  if(elems->number==number) //若待刪除的元素為表頭元素</p><p>  return tmp;</p&

17、gt;<p><b>  else</b></p><p>  for(shangpin *elem=elems; elem->next!=0; elem=elem->next)</p><p>  if(elem->next->number==number)</p><p>  {

18、 //循環(huán)查找待刪除元素</p><p>  tmp=elem->next;</p><p>  return tmp;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void list::shanc

19、hu()</p><p><b>  {</b></p><p>  shangpin *tmp=elems;</p><p>  for(shangpin *elem=elems; elem!=0;)</p><p><b>  {</b></p><p><b>

20、;  tmp=elem;</b></p><p>  elem=elem->next;</p><p>  delete tmp;</p><p><b>  }</b></p><p><b>  }</b></p><p>  list::~list()

21、 //list類得析構(gòu)函數(shù)定義,循環(huán)釋放各元素所占的存儲</p><p><b>  {</b></p><p>  shangpin *tmp=elems;</p><p>  for(shangpin *elem=elems; elem!=0;)</p><p><b>  {</b><

22、/p><p><b>  tmp=elem;</b></p><p>  elem=elem->next;</p><p>  delete tmp;</p><p><b>  }</b></p><p><b>  }</b></p>

23、<p>  void list::insert1(shangpin *pr,float wgt)</p><p><b>  {</b></p><p>  shangpin *elem=new shangpin; //為新元素分配存儲</p><p>  if (elem!=0) {</p><p>  

24、elem->number=pr->number;</p><p><b>  int i;</b></p><p>  for(i=0;i<30;i++)</p><p>  elem->name[i]=pr->name[i];</p><p>  elem->weight=wgt;&

25、lt;/p><p>  elem->price=pr->price;//將新元素插入到鏈表頭</p><p>  elem->next=elems;</p><p>  elems=elem;</p><p><b>  }</b></p><p><b>  }</

26、b></p><p>  bool list::insert2()</p><p><b>  {</b></p><p><b>  int num;</b></p><p><b>  cin>>num;</b></p><p> 

27、 shangpin *elem=new shangpin; //為新元素分配存儲</p><p>  if (elem!=0) {</p><p>  elem->number=num;</p><p>  elem->next=elems;</p><p>  elems=elem;</p><p> 

28、 return true;</p><p><b>  }</b></p><p>  else return false;</p><p><b>  }</b></p><p>  bool list::insert() //定義list類中插入元素的成員函數(shù)</p><

29、p>  {int num;cout<<"請?jiān)俅屋斎肷唐返拇a"<<endl;</p><p><b>  cin>>num;</b></p><p>  shangpin *elem=new shangpin; //為新元素分配存儲</p><p>  if (elem!=0) {

30、</p><p>  elem->number=num;</p><p>  cout<<"請輸入商品的名稱"<<endl;</p><p>  cin>>elem->name;</p><p>  cout<<"請輸入商品的價格(單位:元)"

31、<<endl;</p><p>  cin>>elem->price;//將新元素插入到鏈表頭</p><p>  elem->next=elems;</p><p>  elems=elem;</p><p>  return true;</p><p><b>  }&

32、lt;/b></p><p>  else return false;</p><p><b>  }</b></p><p>  bool list::deletes(int number) //定義list類中刪除元素的成員函數(shù)</p><p><b>  {</b></p>

33、;<p>  if(elems==0) return false; //若表為空,返回false</p><p>  shangpin *tmp=elems;</p><p>  if(elems->number==number)</p><p>  { //若待刪除的元素為表頭元素</p>

34、;<p>  elems=elems->next;</p><p>  delete tmp;</p><p>  return true;</p><p><b>  }</b></p><p><b>  else</b></p><p>  for(

35、shangpin *elem=elems; elem->next!=0; elem=elem->next)</p><p>  if(elem->next->number==number)</p><p>  { //循環(huán)查找待刪除元素</p><p>  tmp=elem->next;</

36、p><p>  elem->next=tmp->next;</p><p>  delete tmp;</p><p>  return true;</p><p><b>  }</b></p><p>  return false;</p><p><b&

37、gt;  }</b></p><p>  bool list::contain(int number)</p><p>  { //判元素val在鏈表中是否存在</p><p>  if(elems==0)return false;</p><p>  if(elems->numb

38、er==number) return true;</p><p><b>  else</b></p><p>  for(shangpin *elem=elems; elem->next!=0; elem=elem->next)</p><p>  if(elem->next->number==number)</

39、p><p>  return true;</p><p>  return false;</p><p><b>  }</b></p><p>  bool list::contain1(int number)</p><p><b>  {</b></p>&l

40、t;p>  if(elems==0){cout<<"沒有此商品"<<endl;return false;}</p><p>  if(elems->number==number){cout<<"商品代碼:"<<elems->number<<"商品名稱:"<<elem

41、s->name<<"商品價格:"<<elems->price<<endl; return true;}</p><p><b>  else</b></p><p>  for(shangpin *elem=elems; elem->next!=0; elem=elem->next)<

42、;/p><p>  if(elem->next->number==number){</p><p>  cout<<"商品代碼:"<<elem->next->number<<"商品名稱:"<<elem->next->name<<"商品的價格:&quo

43、t;<<elem->next->price<<"元"<<endl;</p><p>  return true;}</p><p>  cout<<"沒有此商品"<<endl;</p><p>  return false;</p><

44、p><b>  }</b></p><p>  void list::print() //輸出鏈表中各元素</p><p><b>  {</b></p><p>  if(elems==0) return;</p><p>  for(shangpin *elem=elems; elem

45、!=0; elem=elem->next)</p><p>  cout<<"商品代碼:"<<elem->number<<" "<<"商品名稱:"<<elem->name<<" "<<"商品價格:"<&l

46、t;elem->price<<"元"<<endl;</p><p>  cout<<endl;</p><p><b>  }</b></p><p>  void list::print1() //輸出鏈表中各元素</p><p><b>  

47、{</b></p><p>  if(elems==0) return;</p><p>  for(shangpin *elem=elems; elem!=0; elem=elem->next)</p><p>  cout<<"商品代碼:"<<elem->number<<"

48、 "<<"商品名稱:"<<elem->name<<" "<<"商品價格:"<<elem->price<<"元"<<"商品的重量或件數(shù):"<<elem->weight<<endl;</p>

49、<p>  cout<<endl;</p><p><b>  }</b></p><p>  bool set::insert() //在set類中的insert的重定義版本</p><p>  {int num1;</p><p>  cout<<"請輸入商品代碼&qu

50、ot;<<endl;</p><p>  cin>>num1;</p><p>  if(list::contain(num1)==false&&list::insert()) </p><p>  { //先判斷此元素是否存在,然后再調(diào)用基類的此函數(shù)版本</p><p><b&

51、gt;  ++card;</b></p><p>  return true;</p><p><b>  }</b></p><p>  return false;</p><p><b>  }</b></p><p>  bool set::deletes(

52、int number) //在set類中的deletes的重定義版本</p><p><b>  {</b></p><p>  if(list::deletes(number)) //調(diào)用基類中的此函數(shù)版本</p><p>  { card--;</p><p>  return true;</p>

53、<p><b>  }</b></p><p>  return false;</p><p><b>  }</b></p><p>  void ini()</p><p>  { cout<<endl;</p><p>  cout<&l

54、t;"****************************************************************"<<endl;</p><p>  cout<<" 歡迎進(jìn)入商品管理系統(tǒng),請選擇相應(yīng)的功能,如 按 1 鍵,進(jìn)行添加操作"<<endl;</p><p>  cout<&l

55、t;" 1 :添加 "<<"    "<<"2 :刪徐 "<<endl;</p><p>  cout<<" 3 :查找"<<" "<<"4 :顯示 "<<endl;</

56、p><p>  cout<<" q :退出"<<endl;</p><p>  cout<<"****************************************************************"<<endl;</p><p>  cout<<

57、;"請選擇:";</p><p><b>  }</b></p><p>  void inr()</p><p>  { cout<<endl;</p><p>  cout<<"*******************************************

58、*********************"<<endl;</p><p>  cout<<" 歡迎進(jìn)入商店系統(tǒng),請選擇相應(yīng)的功能,如 按 1 鍵,進(jìn)行商品管理操作"<<endl;</p><p>  cout<<" 1 :商品管理 "<<"    &quo

59、t;<<"2 :購物"<<endl;</p><p>  cout<<" a :退出"<<endl;</p><p>  cout<<"****************************************************************"&l

60、t;<endl;</p><p>  cout<<"請選擇:";</p><p><b>  }</b></p><p>  void main()</p><p>  { list *ptr;</p><p>  set set1; ptr=&set

61、1;</p><p>  list *ptr1;</p><p><b>  set set2;</b></p><p>  ptr1=&set2;</p><p>  char ch1;char ch;float zonge=0;</p><p><b>  inr();&l

62、t;/b></p><p><b>  cin>>ch1;</b></p><p>  while(ch1!='a'&&ch1!='a')</p><p><b>  {</b></p><p>  switch(ch1)</p

63、><p>  {case '1':</p><p><b>  ini();</b></p><p><b>  cin>>ch;</b></p><p>  while(ch!='q'&&ch!='Q')</p>

64、<p><b>  {</b></p><p>  switch( ch)</p><p><b>  { </b></p><p>  case '1':ptr->insert(); break;</p><p>  case '2':int nu

65、m2;cout<<"請輸入你所需要刪除的商品代碼"<<endl;cin>>num2;</p><p>  ptr->deletes(num2); </p><p><b>  break;</b></p><p>  case '3':cout<<&quo

66、t;請輸入你所要查找的商品的代碼"<<endl;int num3;cin>>num3;ptr->contain1(num3);break;</p><p>  case '4':ptr->print();break;</p><p>  case 'q':;</p><p><b&g

67、t;  }</b></p><p><b>  ini();</b></p><p><b>  cin>>ch;</b></p><p><b>  }break;</b></p><p>  case '2': </p>

68、<p>  ptr->print();</p><p><b>  char ch2;</b></p><p>  while(ch2!='b'&&ch2!='B')</p><p>  {int num4;float weight;</p><p>  

69、cout<<"請輸入你所要購買的商品的代碼"<<endl;</p><p>  cin>>num4;</p><p>  cout<<"請輸入你要購買的件數(shù)或重量"<<endl;</p><p>  cin>>weight;</p><

70、p>  shangpin *p;</p><p>  p=ptr->chazhao(num4);</p><p>  ptr1->insert1(p,weight);</p><p>  zonge=zonge+(p->price)*weight;</p><p>  cout<<"是否購物完畢?

71、"<<endl;</p><p>  cout<<"如果購物完畢,請輸入** b **結(jié)束購物"<<endl;</p><p>  cout<<"如果繼續(xù)購物,請隨機(jī)輸入一個字符,但不要輸入**b**或**B**"<<endl;</p><p>  cin

72、>>ch2;}</p><p>  cout<<"你購買的商品清單如下:"<<endl;</p><p>  ptr1->print1();</p><p>  ptr1->shanchu();</p><p>  cout<<"你所要支付的總金額為:&

73、quot;<<zonge<<endl;</p><p><b>  zonge=0;</b></p><p><b>  break;</b></p><p>  case 'a':;</p><p><b>  }</b></p&

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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

提交評論