返回列表 發帖

[隨堂練習] 購物系統 (四)

本帖最後由 陳品肇 於 2019-3-9 14:51 編輯

新增 "1-正確無誤 2-重新選購" 的選單,
讓使用者在準備結帳時還能反悔, 譬如錢帶不夠.
確定結帳後, 銜接自動找零系統.
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     restart:
  7.     system("cls"); //畫面清空
  8.     int p,q,sum=0,no; //p放商品代碼 q放商品數量  sum 金額加總的值   no確定結帳
  9.     cout<<"☆★☆智能玩具店☆★☆"<<endl;
  10.     cout<<endl;
  11.     cout<<"[商品價目表]"<<endl;
  12.     string a[7]= {"遙控器車",
  13.                   "飛機模型",
  14.                   "足球    ",
  15.                   "拼圖    ",
  16.                   "玩具槍  ",
  17.                   "可愛玩偶",
  18.                   "籃球    "};
  19.     int price[7]={450,550,325,200,660,150,380};
  20.     int tmpQty[7]={0,0,0,0,0,0,0}; // 暫存購買商品的個數
  21.    
  22.    
  23.     for(int i=0;i<7;i++)   //列出商品清單
  24.     {
  25.        cout<<"("<<i+1<<")"<<a[i]<<"\t"<<price[i]<<"元"<<endl;
  26.     }
  27.     cout<<"(8)結帳"<<endl;
  28.     cout<<endl;
  29.    
  30.     re:
  31.     cout<<"請輸入商品代碼:";
  32.     cin>>p;
  33.     if(p>=1 && p<=7)  //判斷選擇正確的商品 0~6
  34.     {
  35.          cout<<"數量:";
  36.             cin>>q; //輸入數量
  37.             if(q>0) //數量大於0
  38.             {
  39.                sum = sum + price[p-1]*q; //單價*購買數量
  40.                tmpQty[p-1] = tmpQty[p-1] + q;  //計算各別商品總數量
  41.                goto re;
  42.             }else
  43.             {
  44.                  cout<<"您輸入的數量有誤!!"<<endl;
  45.                  goto re;
  46.             }
  47.                
  48.     }else if(p==8)  //結帳
  49.     {
  50.          goto checkout;
  51.     }else
  52.     {
  53.          cout<<"您輸入的代碼有誤"<<endl;
  54.          goto re;
  55.     }
  56.    
  57.     checkout:
  58.          cout<<"[購物清單]"<<endl;
  59.          cout<<"-----------------------------"<<endl;
  60.          for(int i=0;i<7;i++)
  61.          {
  62.             if(tmpQty[i] != 0 )  //過濾清單是0 個的商品  != 不等於 驚嘆號指的是反向結果
  63.             {
  64.                cout<<a[i]<<"\t"<<price[i]<<"元 * "<<tmpQty[i]<<" 個"<<endl;
  65.             }
  66.          }
  67.          
  68.          cout<<"-----------------------------"<<endl<<endl;
  69.          cout<<"總共"<<sum<<"元"<<endl<<endl;
  70.    
  71.     chose:
  72.     cout<<"1-正確無誤 2-重新選擇: ";
  73.     cin>>no;
  74.    
  75.     if(no == 1)
  76.     {
  77.           goto pay;  //支付金額
  78.     }else if(no == 2)
  79.     {
  80.           goto restart; //重新選擇商品
  81.     }else  
  82.     {
  83.            cout<<"您輸入的編號有錯!!"<<endl;  //選擇錯誤  
  84.            goto chose;
  85.     }
  86.    
  87.     int payMoney;
  88.     pay:
  89.        cout<<"請付帳:";
  90.        cin>>payMoney;
  91.        if( payMoney < sum) //支付金額小於總額
  92.        {
  93.            cout<<"您付的錢不夠,還差"<< sum- payMoney<<"元"<<endl;
  94.            goto pay;
  95.        }else
  96.        {
  97.             int money =  payMoney-sum;  //找錢的結果
  98.             cout<<"找您"<<money<<"元!"<<endl;
  99.             
  100.             if(money >=500 )
  101.             {
  102.                      cout<<"五佰元鈔票"<<money/500<<"張"<<endl;
  103.                      money = money%500;  //換完500後的剩餘金額
  104.             }
  105.             if(money >=100 )
  106.             {
  107.                      cout<<"一佰元鈔票"<<money/100<<"張"<<endl;
  108.                      money = money%100;  //換完100後的剩餘金額
  109.             }
  110.             if(money >=50 )
  111.             {
  112.                      cout<<"五十元硬幣"<<money/50<<"枚"<<endl;
  113.                      money = money%50;  //換完500後的剩餘金額
  114.             }
  115.             if(money >=10 )
  116.             {
  117.                      cout<<"十元硬幣"<<money/10<<"枚"<<endl;
  118.                      money = money%10;  //換完500後的剩餘金額
  119.             }
  120.             if(money > 0 )
  121.             {
  122.                      cout<<"一元硬幣"<<money<<"枚"<<endl;
  123.             }
  124.        }
  125.    
  126.    
  127.     system("pause");
  128.     return 0;
  129. }
複製代碼
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

此帖僅作者可見

TOP

返回列表