Board logo

標題: [隨堂測驗] 購物系統 (四) [打印本頁]

作者: 鄭繼威    時間: 2022-11-23 19:24     標題: [隨堂測驗] 購物系統 (四)

本帖最後由 鄭繼威 於 2023-1-9 20:12 編輯

新增 "1-正確無誤 2-重新選購 3-繼續選購" 的選單,
讓使用者在準備結帳時還能反悔,譬如錢帶不夠等情況。
確定結帳後,銜接自動找零系統

[attach]14271[/attach]
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     re:
  7.     system("cls");
  8.     int p,q,sum=0;
  9.    
  10.     string name[]={"遙控汽車","飛機模型","足球    ","拼圖    ","玩具槍  ","可愛玩偶","籃球    "};
  11.     int price[]={450,550,325,200,660,150,380};
  12.     int count[]={0,0,0,0,0,0,0};        //計算東西買了幾個
  13.    
  14.     cout<<"☆★☆智能玩具店☆★☆"<<endl<<endl;
  15.     cout<<"[商品價目表]"<<endl;
  16.     for(int i=0; i<7; i++)
  17.          cout<<"("<<i+1<<")"<<name[i]<<"\t"<<price[i]<<"元"<<endl;
  18.     cout<<"(8)結帳"<<endl<<endl;
  19.     re2:
  20.     cout<<"請輸入商品代碼: ";
  21.     cin>>p;
  22.     if(p==8)
  23.     {
  24.         goto checkout;
  25.     }else if(p>=1 && p<=7)
  26.     {
  27.         cout<<"數量: ";
  28.         cin>>q;
  29.         sum+=price[p-1]*q;        //計算價錢
  30.                  
  31.         //把東西放入購物車
  32.         count[p-1]=count[p-1]+q;
  33.                  
  34.         goto re2;  
  35.     }else
  36.     {
  37.         goto re;     
  38.     }
  39.     checkout:
  40.             cout<<"[購物清單]"<<endl;
  41.                 cout<<"-----------------------------"<<endl;
  42.                 for(int i=0;i<=6;i++){
  43.                         if(count[i]==0){
  44.                                 continue;
  45.                         }
  46.                         cout<<name[i]<<"\t"<<price[i]<<"元"<<"*"<<count[i]<<"個"<<endl;
  47.                 }
  48.             cout<<"-----------------------------"<<endl;
  49.             cout<<endl<<"總共"<<sum<<"元!"<<endl;     
  50.                
  51.                 cout<<"1.確定結帳\t2.重新選購(清空購物車)\t3.繼續選購" <<endl;
  52.                 int option;
  53.                 cin>>option;
  54.                 if(option==1){
  55.                         //確定結帳
  56.                         //執行智慧找零系統
  57.                         goto smart;
  58.                 }   
  59.                 else if(option==2){
  60.                         //重新選購(清空購物車)
  61.                         goto re;
  62.                 }
  63.                 else if(option==3){
  64.                         //繼續選購
  65.                         goto re2;
  66.                 }
  67.                 else{
  68.                         //輸入錯誤
  69.                         cout<<"輸入錯誤"<<endl;
  70.                         goto checkout;
  71.                 }
  72.         smart:
  73. //                cout<<"請輸入商品價格: ";
  74. //            cin>>price;
  75.                 //sum商品總價

  76.             cout<<"請付錢: ";
  77.             int pay;
  78.             cin>>pay;
  79.             if(pay<0)
  80.                 goto smart;
  81.             int money=pay-sum;
  82.             if(money==0)
  83.             {
  84.                 cout<<endl<<"剛剛好!銘謝惠顧!"<<endl;            
  85.             }else if(money<0)
  86.             {
  87.                 cout<<endl<<"錢不夠喔!還差"<<-money<<"元!"<<endl;  
  88.                         goto smart;   
  89.             }else if(money>=1000)
  90.             {
  91.                 cout<<endl<<"錢太多?全部送我吧!"<<endl;     
  92.             }else
  93.             {
  94.                 cout<<endl<<"需找客人"<<money<<"元"<<endl<<endl;
  95.                 if(money>=500)
  96.                 {
  97.                     cout<<"五百元鈔票"<<money/500<<"張"<<endl;
  98.                     money%=500;   //money=money%500;
  99.                 }
  100.                 if(money>=100)
  101.                 {
  102.                     cout<<"一百元鈔票"<<money/100<<"張"<<endl;
  103.                     money%=100;
  104.                 }
  105.                 if(money>=50)
  106.                 {
  107.                     cout<<"五十元硬幣"<<money/50<<"枚"<<endl;
  108.                     money%=50;
  109.                 }
  110.                 if(money>=10)
  111.                 {
  112.                     cout<<"十元硬幣"<<money/10<<"枚"<<endl;
  113.                     money%=10;
  114.                 }
  115.                 if(money>=5)
  116.                 {
  117.                     cout<<"五元硬幣"<<money/5<<"枚"<<endl;
  118.                     money%=5;
  119.                 }
  120.                 if(money>0)
  121.                     cout<<"一元硬幣"<<money<<"枚"<<endl;   
  122.             }
  123.     system("pause");
  124.     goto re;   
  125.     return 0;
  126. }
複製代碼

作者: 林劭杰    時間: 2022-11-23 21:10

此帖僅作者可見
作者: 李彣    時間: 2022-11-23 21:20

此帖僅作者可見
作者: 黃裕恩    時間: 2022-11-27 13:21

此帖僅作者可見




歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2