返回列表 發帖

[隨堂練習] 多載-函數的練習

請利用多載函式 撰寫 名為area函數
讓使用者輸入 1 正方形2 三角形  3 梯形 根據不同的函數引數,計算面積

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int area (int x)
  5.    {
  6.      return x*x;
  7.    }

  8. int area (int x,int y)
  9.    {
  10.      return x*y/2;
  11.    }

  12. int area (int x,int y,int z)
  13.    {
  14.      return (x+y)*z/2;
  15.    }

  16. int main()
  17. {
  18. int num,x,y,z;
  19. cout<<"計算(1)正方形 (2)三角形 (3)梯形"<<endl;
  20. cin>>num;
  21.    if(area==1)
  22.      {
  23.       cout<<"邊長:";
  24.       cin >>x;
  25.       cout<<"面積:"<<area(x)<<endl;   
  26.       break;
  27.      }
  28.    if(area==2)
  29.      {  
  30.       cout<<"底:";
  31.       cin >>x;
  32.       cout<<"高:";
  33.       cin >>y;
  34.       cout<<"面積:"<<area(x,y)<<endl;
  35.       break;
  36.      }
  37.    if(area==3)
  38.      }
  39.       cout<<"上底:";
  40.       cin >>x;
  41.       cout<<"下底:";
  42.       cin >>y;
  43.       cout<<"高:";
  44.       cin >>z;
  45.       cout<<"面積:"<<area(x,y,z)<<endl;
  46.       break;
  47.      }

  48. system("pause");
  49. return 0;
  50. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. double area(double num1)
  5. {
  6.        return num1*num1;
  7. }
  8. double area(double num2,double num3)
  9. {
  10.        return (num2*num3)/2;
  11. }
  12. double area(double num4,double num5,double num6)
  13. {
  14.        return (num4+num5)*num6/2;}
  15. int main()
  16. {
  17.     int num=0,num1=0,num2=0,num3=0,num4=0,num5=0,num6=0;
  18.     cout<<"請輸入形狀(1)正方形(2)三角形(3)梯形"<<endl;
  19.     cin>>num;
  20.     if(num==1)
  21.     {
  22.       cout<<"請輸入正方形的lenth"<<endl;
  23.       cin>>num1;
  24.       cout<<area(num1)<<endl;
  25.     }
  26.     else if(num==2)
  27.     {
  28.       cout<<"請輸入三角形的Bottom height" <<endl;
  29.       cout<<"Bottom :";
  30.       cin>>num2;
  31.       cout<<endl;
  32.       cout<<"height:";
  33.       cin>>num3;
  34.       cout<<endl;
  35.       cout<<area(num2,num3)<<endl;
  36.     }
  37.     else if(num==3)
  38.     {
  39.          cout<<"請輸入梯形的上底,下底,高"<<endl;
  40.          cout<<"上底:";
  41.          cin>>num4;
  42.          cout<<endl;
  43.          cout<<"下底:";
  44.          cin>>num5;
  45.          cout<<endl;
  46.          cout<<"高:";
  47.          cin>>num6;
  48.          cout<<endl;
  49.          cout<<area(num4,num5,num6)<<endl;
  50.     }
  51.     system("pause");
  52.     return 0;
  53. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4.         double area(double num1)
  5.         {
  6.                 return num1*num1;
  7.         }
  8.         double area(double num2,double num3)
  9.         {
  10.                 return (num2*num3)/2;
  11.         }
  12.         double area(double num4,double num5,double num6)
  13.         {
  14.                 return (num4+num5)*num6/2;       
  15.         }
  16. int main()
  17. {
  18.         int ans=0;
  19.         int num1=0,num2=0,num3=0,num4=0,num5=0,num6=0;
  20.         while(true)
  21.         {
  22.                 cout<<"(1)正方形(2)三角形(3)梯形,請輸入數字,會依照數字對應到的形狀蒜面積:";
  23.                 cin>>ans;
  24.                 if(ans==1)
  25.                 {
  26.                         cout<<"請輸入邊長:";
  27.                         cin>>num1;
  28.                         cout<<"正方形面積:"<<area(num1)<<endl;
  29.                         break;
  30.                 }
  31.                 if(ans==2)
  32.                 {
  33.                         cout<<"請輸入底長:";
  34.                         cin>>num2;
  35.                         cout<<"請輸入高長:";
  36.                         cin>>num3;
  37.                         cout<<"三角形面積:"<<area(num2,num3)<<endl;
  38.                         break;
  39.                 }
  40.                 if(ans==3)
  41.                 {
  42.                         cout<<"請輸入上底:";
  43.                         cin>>num4;
  44.                         cout<<"請輸入下底:";
  45.                         cin>>num5;
  46.                         cout<<"請輸入高長:";
  47.                         cin>>num6;
  48.                         cout<<"梯形面積:"<<area(num4,num5,num6)<<endl;
  49.                         break;
  50.                 }
  51.                 if(ans!=1||2||3)
  52.                 {
  53.                         cout<<"輸入錯誤,請重新輸入";
  54.                         _sleep(500);
  55.                         system("cls");
  56.                 }
  57.         }
  58.        
  59.         system("pause");
  60.         return 0;
  61. }
複製代碼

TOP

本帖最後由 顏詢 於 2018-7-7 15:29 編輯
  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. double area(double num1)

  5. {
  6.      return num1*num1;
  7. }
  8.      double area(double num2,double num3)
  9. {
  10.      return (num2*num3)/2;
  11. }
  12.      double area(double num4,double num5,double num6)
  13. {
  14.      return (num4+num5)*num6/2;   
  15. }
  16.      main()
  17.      {  
  18.            int num=0,num1=0, num2=0,num3=0, num4=0,num5=0, num6=0;
  19.            cout<<"輸入要運算的形狀(1)正方形(2)三角形(3)梯形"<<endl;
  20.            cin>>num;
  21.            if(num==1){
  22.            cout<<area(num1)<<endl;
  23.            cout<<"請輸入正方形的邊長"<<endl;
  24.            cin>>num1;
  25.            cout<<area(num1)<<endl;
  26.            }
  27.              else if(num==2)
  28.             {
  29.            cout<<"請輸入三角形的底高" <<endl;
  30.            cout<<"底:";
  31.             cin>>num2;
  32.            cout<<endl;
  33.            cout<<"高:";
  34.             cin>>num3;
  35.            cout<<endl;
  36.            cout<<area(num2,num3)<<endl;
  37.     }
  38.       else if(num==3)
  39.     {
  40.          cout<<"請輸入梯形的上底,下底,高"<<endl;
  41.          cout<<"上底:";
  42.          cin>>num4;
  43.          cout<<endl;
  44.          cout<<"下底:";
  45.          cin>>num5;
  46.          cout<<endl;
  47.          cout<<"高:";
  48.          cin>>num6;
  49.          cout<<endl;
  50.          cout<<area(num4,num5,num6)<<endl;
  51.     }
  52.     system("pause");
  53.     return 0;
  54. }
  55.            
  56.   
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. double area (int a)
  5.    {
  6.      return a*a;
  7.    }

  8. double area (int a,int b)
  9.    {
  10.      return a*b/2;
  11.    }

  12. double area (int a,int b,int c)
  13.    {
  14.      return (a+b)*c/2;
  15.    }

  16. int main()
  17. {
  18. int num,a,b,c;
  19. cout<<"☆★☆嘉禾豬面積計算器☆★☆"<<endl;
  20. cout<<"請輸入代號 => (1)正方形 (2)三角形 (3)梯形"<<endl;
  21. cin>>num;
  22.    switch(num)
  23. {
  24.    case 1:
  25.    cout<<"邊長:";
  26.    cin >>a;
  27.    cout<<"面積:"<<area(a)<<endl;   
  28.    break;
  29.    
  30.    case 2:
  31.    cout<<"底:";
  32.    cin >>a;
  33.    cout<<"高:";
  34.    cin >>b;
  35.    cout<<"面積:"<<area(a,b)<<endl;
  36.    break;
  37.    
  38.    case 3:
  39.    cout<<"上底:";
  40.    cin >>a;
  41.    cout<<"下底:";
  42.    cin >>b;
  43.    cout<<"高:";
  44.    cin >>c;
  45.    cout<<"面積:"<<area(a,b,c)<<endl;
  46.    break;
  47. }

  48. system("pause");
  49. return 0;
  50. }
複製代碼
我是嘉禾豬   我是嘉禾豬   我是嘉禾豬

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. int area(double ground,double height)
  5. {
  6.     return ground*height/2;
  7. }
  8. int area(double side)
  9. {
  10.     return side*side;
  11. }
  12. int area(double top,double ground,double height)
  13. {
  14.     return (top+ground)*height/2;
  15. }
  16. int main()
  17. {
  18.     int select;
  19.     cout<<"(1)三角形(2)正方形(3)梯形:";
  20.     cin>>select;
  21.     if(select==1)
  22.     {
  23.         double ground,height;
  24.         cin>>ground;
  25.         cin>>height;
  26.         cout<<area(ground,height);
  27.     }
  28.     if(select==2)
  29.     {
  30.         double side;
  31.         cin>>side;
  32.         cout<<area(side);
  33.     }
  34.     if(select==3)
  35.     {
  36.         double top,ground,height;
  37.         cin>>top;
  38.         cin>>ground;
  39.         cin>>height;
  40.         cout<<area(top,ground,height);
  41.     }
  42.     system("pause");
  43.     return 0;
  44. }
複製代碼

TOP

  1. #include<iostream>
  2. #include<cstdlib>
  3. using namespace std;
  4. double area(double num1)
  5. {
  6.        return num1*num1;
  7. }
  8. double area(double num2,double num3)
  9. {
  10.        return (num2*num3)/2;
  11. }
  12. double area(double num4,double num5,double num6)
  13. {
  14.        return (num4+num5)*num6/2;
  15. }
  16. main()
  17. {
  18.     int num=0,num1=0,num2=0,num3=0,num4=0,num5=0,num6=0;
  19.     cout<<"請輸入形狀(1)正方形(2)三角形(3)梯形"<<endl;
  20.     cin>>num;
  21.     if(num==1)
  22.     {
  23.       
  24.       cout<<"請輸入正方形的邊長"<<endl;
  25.       cin>>num1;
  26.       cout<<area(num1)<<endl;
  27.     }
  28.     else if(num==2)
  29.     {
  30.       cout<<"請輸入三角形的底高" <<endl;
  31.       cout<<"底:";
  32.       cin>>num2;
  33.       cout<<endl;
  34.       cout<<"高:";
  35.       cin>>num3;
  36.       cout<<endl;
  37.       cout<<area(num2,num3)<<endl;
  38.     }
  39.     else if(num==3)
  40.     {
  41.          cout<<"請輸入梯形的上底,下底,高"<<endl;
  42.          cout<<"上底:";
  43.          cin>>num4;
  44.          cout<<endl;
  45.          cout<<"下底:";
  46.          cin>>num5;
  47.          cout<<endl;
  48.          cout<<"高:";
  49.          cin>>num6;
  50.          cout<<endl;
  51.          cout<<area(num4,num5,num6)<<endl;
  52.     }
  53.     system("pause");
  54.     return 0;
  55. }
複製代碼

TOP

返回列表