Board logo

標題: [作業] 電費計算機 (二) [打印本頁]

作者: 方浩葦    時間: 2024-7-27 11:17     標題: [作業] 電費計算機 (二)

改寫 電費計算機 (一) 的程式碼,將所有 if...else 判斷的部分,以 switch...case 語法改寫。

本帖隱藏的內容需要回復才可以瀏覽

作者: 陳妍蓁    時間: 2024-8-10 11:55

本帖最後由 陳妍蓁 於 2024-8-10 15:32 編輯
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     re:
  7.     system("cls");
  8.     int month,w;
  9.     float sum=0.0;
  10.     cout<<"***歡迎使用小米電費計算機***"<<endl<<endl;
  11.     cout<<"請輸入月份:";
  12.     cin>>month;
  13.     cout<<"用電度數:";
  14.     cin>>w;
  15.     switch (month) {
  16.     case 10 ... 12:
  17.     case 1 ... 5:

  18.         switch(w){
  19.         case 1001 ... 50000000:
  20.             sum=120*2.1+(330-120)*2.68+(500-330)*3.61+(700-500)*4.48+(1000-700)*5.03+(w-1000)*5.28;
  21.             break;
  22.         case 701 ... 1000:
  23.             sum=120*2.1+(330-120)*2.68+(500-330)*3.61+(700-500)*4.48+(w-700)*5.03;
  24.             break;
  25.         case 501 ... 700:
  26.             sum=120*2.1+(330-120)*2.68+(500-330)*3.61+(w-500)*4.48;
  27.             break;
  28.         case 331 ... 500:
  29.             sum=120*2.1+(330-120)*2.68+(w-330)*3.61;
  30.             break;
  31.         case 121 ... 330:
  32.             sum=120*2.1+(w-120)*2.68;
  33.             break;
  34.         case 1 ... 120:
  35.             sum=w*2.1;
  36.         default:
  37.             cout<<"輸入錯誤"<<endl;
  38.         }

  39.     case 6 ... 9:

  40.         switch(w)
  41.         {
  42.         case 1001 ... 50000000:
  43.             sum=120*2.1+(330-120)*3.02+(500-330)*4.39+(700-500)*5.44+(1000-700)*6.16+(w-1000)*6.71;
  44.             break;
  45.         case 701 ... 1000:
  46.             sum=120*2.1+(330-120)*3.02+(500-330)*4.39+(700-500)*5.44+(w-700)*6.16;
  47.             break;
  48.         case 501 ... 700:
  49.             sum=120*2.1+(330-120)*3.02+(500-330)*4.39+(w-500)*5.44;
  50.             break;
  51.         case 331 ... 500:
  52.             sum=120*2.1+(330-120)*3.02+(w-330)*4.39;
  53.             break;
  54.         case 121 ... 330:
  55.             sum=120*2.1+(w-120)*3.02;
  56.             break;
  57.         case 1 ... 120:
  58.             sum=w*2.1;
  59.             break;
  60.         default:
  61.             cout<<"輸入錯誤"<<endl;
  62.     }
  63.     default:
  64.             cout<<"輸入錯誤"<<endl;
  65. }
  66.     cout<<endl<<"您要交的電費共:"<<sum<<"元"<<endl;
  67.     system("pause");
  68.     goto re;
  69.     return 0;

  70. }
複製代碼

作者: 李唯銘    時間: 2024-8-10 15:32

本帖最後由 李唯銘 於 2024-8-10 15:36 編輯
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     int m,d;
  7.     float p;
  8.     cout<<"***歡迎使用小米的電費計算機***"<<endl<<endl;
  9.     cout<<"請輸入月份: ";
  10.     cin>>m;
  11.     cout<<"用電度數: ";
  12.     cin>>d;
  13.     switch(m)
  14.     {
  15.         case 1 ... 5:
  16.         case 10 ... 12:

  17.         switch(d){
  18.             case 1001 ... 9999:
  19.                 p=120*2.1+(330-120)*2.68+(500-330)*3.61+(700-500)*4.48+(1000-700)*5.03+(d-1000)*5.28;
  20.                 break;
  21.             case 701 ... 1000:
  22.                 p=120*2.1+(330-120)*2.68+(500-330)*3.61+(700-500)*4.48+(d-700)*5.03;
  23.                 break;
  24.             case 501 ... 700:
  25.                 p=120*2.1+(330-120)*2.68+(500-330)*3.61+(d-500)*4.48;
  26.                 break;
  27.             case 331 ... 500:
  28.                 p=120*2.1+(330-120)*2.68+(d-330)*3.61;
  29.                 break;
  30.             case 121 ... 330:
  31.                 p=120*2.1+(d-120)*2.68;
  32.                 break;
  33.             default:
  34.              p=d*2.1;
  35.              break;
  36.     }
  37.         case 6 ... 9:

  38.         switch(d){
  39.             case 1001 ... 9999:
  40.                 p=120*2.1+(330-120)*3.02+(500-330)*4.39+(700-500)*5.44+(1000-700)*6.16+(d-1000)*6.71;
  41.                 break;
  42.             case 701 ... 1000:
  43.                 p=120*2.1+(330-120)*3.02+(500-330)*4.39+(700-500)*5.44+(d-700)*6.16;
  44.                 break;
  45.             case 501 ... 700:
  46.                 p=120*2.1+(330-120)*3.02+(500-330)*4.39+(d-500)*5.44;
  47.                 break;
  48.             case 331 ... 500:
  49.                 p=120*2.1+(330-120)*3.02+(d-330)*4.39;
  50.                 break;
  51.             case 120 ... 330:
  52.                 p=120*2.1+(d-120)*3.02;
  53.                 break;
  54.             default:
  55.              p=d*2.1;
  56.              break;
  57.     }
  58.     }
  59.     cout<<endl<<"您要繳交的電費共: "<<p<<"元!"<<endl;
  60.     system("pause");
  61.     return 0;
  62. }
複製代碼

作者: 劉奕劭    時間: 2024-8-10 15:53

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     re:
  7.     system("cls");
  8.     int month,w;
  9.     float sum=0.0;
  10.     cout<<"**小米電費計算機**"<<endl<<endl;
  11.     cout<<"請輸入月份:";
  12.     cin>>month;
  13.     cout<<"用電度數:";
  14.     cin>>w;
  15.     switch (month) {
  16.     case 10 ... 12:
  17.     case 1 ... 5:
  18.         switch(w){
  19.         case 1001 ... 50000000:
  20.             sum=120*2.1+(330-120)*2.68+(500-330)*3.61+(700-500)*4.48+(1000-700)*5.03+(w-1000)*5.28;
  21.             break;
  22.         case 701 ... 1000:
  23.             sum=120*2.1+(330-120)*2.68+(500-330)*3.61+(700-500)*4.48+(w-700)*5.03;
  24.             break;
  25.         case 501 ... 700:
  26.             sum=120*2.1+(330-120)*2.68+(500-330)*3.61+(w-500)*4.48;
  27.             break;
  28.         case 331 ... 500:
  29.             sum=120*2.1+(330-120)*2.68+(w-330)*3.61;
  30.             break;
  31.         case 121 ... 330:
  32.             sum=120*2.1+(w-120)*2.68;
  33.             break;
  34.         case 1 ... 120:
  35.             sum=w*2.1;

  36.         }
  37.     case 6 ... 9:
  38.         switch(w)
  39.         {


  40.         case 1001 ... 50000000:
  41.             sum=120*2.1+(330-120)*3.02+(500-330)*4.39+(700-500)*5.44+(1000-700)*6.16+(w-1000)*6.71;
  42.             break;
  43.         case 701 ... 1000:
  44.             sum=120*2.1+(330-120)*3.02+(500-330)*4.39+(700-500)*5.44+(w-700)*6.16;
  45.             break;
  46.         case 501 ... 700:
  47.             sum=120*2.1+(330-120)*3.02+(500-330)*4.39+(w-500)*5.44;
  48.             break;
  49.         case 331 ... 500:
  50.             sum=120*2.1+(330-120)*3.02+(w-330)*4.39;
  51.             break;
  52.         case 121 ... 330:
  53.             sum=120*2.1+(w-120)*3.02;
  54.             break;
  55.         case 1 ... 120:
  56.             sum=w*2.1;
  57.             break;


  58.     }
  59. break;
  60. }
  61.     cout<<endl<<"您的電費共:"<<sum<<"元"<<endl;
  62.     system("pause");
  63.     goto re;
  64.     return 0;

  65. }
複製代碼

作者: 洪榮辰    時間: 2024-8-11 16:31

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     int m,d;
  7.     float x;
  8.     re:
  9.     cout<<"***歡迎使用小米的電費計算機***"<<endl<<endl;
  10.     cout<<"請輸入月份: ";
  11.     cin>>m;
  12.     cout<<"用電度數: ";
  13.     cin>>d;
  14.     switch(m)
  15.     {
  16.         case 1 ... 5:
  17.         case 10 ... 12:
  18.         switch(d)
  19.         {
  20.             case 1001 ... 9999:
  21.                 x=120*2.1+(330-120)*2.68+(500-330)*3.61+(700-500)*4.48+(1000-700)*5.03+(d-1000)*5.28;
  22.                 break;
  23.             case 701 ... 1000:
  24.                 x=120*2.1+(330-120)*2.68+(500-330)*3.61+(700-500)*4.48+(d-700)*5.03;
  25.                 break;
  26.             case 501 ... 700:
  27.                 x=120*2.1+(330-120)*2.68+(500-330)*3.61+(d-500)*4.48;
  28.                 break;
  29.             case 331 ... 500:
  30.                 x=120*2.1+(330-120)*2.68+(d-330)*3.61;
  31.                 break;
  32.             case 121 ... 330:
  33.                 x=120*2.1+(d-120)*2.68;
  34.                 break;
  35.                 default:
  36.                 x=d*2.1;
  37.                 break;
  38.         }
  39.         case 6 ... 9:
  40.         switch(d)
  41.         {
  42.             case 1001 ... 9999:
  43.                 x=120*2.1+(330-120)*3.02+(500-330)*4.39+(700-500)*5.44+(1000-700)*6.16+(d-1000)*6.71;
  44.                 break;
  45.             case 701 ... 1000:
  46.                 x=120*2.1+(330-120)*3.02+(500-330)*4.39+(700-500)*5.44+(d-700)*6.16;
  47.                 break;
  48.             case 501 ... 700:
  49.                 x=120*2.1+(330-120)*3.02+(500-330)*4.39+(d-500)*5.44;
  50.                 break;
  51.             case 331 ... 500:
  52.                 x=120*2.1+(330-120)*3.02+(d-330)*4.39;
  53.                 break;
  54.             case 120 ... 330:
  55.                 x=120*2.1+(d-120)*3.02;
  56.                 break;
  57.                 default:
  58.                 x=d*2.1;
  59.                 break;
  60.         }
  61.     }
  62.     cout<<endl<<"您要繳交的電費共: "<<x<<"元!"<<endl;
  63.     system("pause");
  64.     system("cls");
  65.     goto re;
  66.     return 0;
  67. }
複製代碼

作者: 林少謙    時間: 2024-8-11 20:36

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int main()
  5. {
  6.     re:
  7.     system("cls");
  8.     int month,w;
  9.     float sum=0.0;
  10.     cout<<"***歡迎使用小米電費計算機***"<<endl<<endl;
  11.     cout<<"請輸入月份:";
  12.     cin>>month;
  13.     cout<<"用電度數:";
  14.     cin>>w;
  15.     switch (month) {
  16.     case 10 ... 12:
  17.     case 1 ... 5:

  18.         switch(w){
  19.         case 1001 ... 50000000:
  20.             sum=120*2.1+(330-120)*2.68+(500-330)*3.61+(700-500)*4.48+(1000-700)*5.03+(w-1000)*5.28;
  21.             break;
  22.         case 701 ... 1000:
  23.             sum=120*2.1+(330-120)*2.68+(500-330)*3.61+(700-500)*4.48+(w-700)*5.03;
  24.             break;
  25.         case 501 ... 700:
  26.             sum=120*2.1+(330-120)*2.68+(500-330)*3.61+(w-500)*4.48;
  27.             break;
  28.         case 331 ... 500:
  29.             sum=120*2.1+(330-120)*2.68+(w-330)*3.61;
  30.             break;
  31.         case 121 ... 330:
  32.             sum=120*2.1+(w-120)*2.68;
  33.             break;
  34.         case 1 ... 120:
  35.             sum=w*2.1;
  36.         default:
  37.             cout<<"輸入錯誤"<<endl;
  38.         }

  39.     case 6 ... 9:

  40.         switch(w)
  41.         {
  42.         case 1001 ... 50000000:
  43.             sum=120*2.1+(330-120)*3.02+(500-330)*4.39+(700-500)*5.44+(1000-700)*6.16+(w-1000)*6.71;
  44.             break;
  45.         case 701 ... 1000:
  46.             sum=120*2.1+(330-120)*3.02+(500-330)*4.39+(700-500)*5.44+(w-700)*6.16;
  47.             break;
  48.         case 501 ... 700:
  49.             sum=120*2.1+(330-120)*3.02+(500-330)*4.39+(w-500)*5.44;
  50.             break;
  51.         case 331 ... 500:
  52.             sum=120*2.1+(330-120)*3.02+(w-330)*4.39;
  53.             break;
  54.         case 121 ... 330:
  55.             sum=120*2.1+(w-120)*3.02;
  56.             break;
  57.         case 1 ... 120:
  58.             sum=w*2.1;
  59.             break;
  60.         default:
  61.             cout<<"輸入錯誤"<<endl;
  62.     }

  63. }
  64.     cout<<endl<<"您要交的電費共:"<<sum<<"元"<<endl;
  65.     system("pause");
  66.     goto re;
  67.     return 0;

  68. }
複製代碼





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