Too Few Arguments Error

cpp.net Brest, France
  • 13 years ago

    Hello!
    I am trying to write a weird program for a carwash, and keep getting this error:
     
    In function `int super_loop(int, int)':
     error: too few arguments to function `double super_calculate(char, int, int)'
     error:174 at this point in file
     
    Can somebody tell me why? I know the code shouldn't be in C and C++, but that was the instruction. Is that interfering with the compilation? 
     
    [c++]

    #include <cstdio>                                                //Header Files
    #include <iostream>
    #include <cmath>
    using namespace std;
    int display_function ();
    void big_switch(int, int);
    int random;
    static float grandtotal;
    void quit_pattern();
    int init_function();
    int display_function();
    int grand_total();
    void calculate (int, int);
    void calculate (int); 
    int super_loop(int passengers, int age);
    double super_calculate(char passgend, int passage, int age);
    
    int main(){
    int age, choose;   //Initializing variables
    bool notValid; 
    init_function();
    grandtotal=init_function();
    while(true){
                choose=display_function();
                     do{                                                                //Validation for age
                       notValid=false;
                       printf ("\nHow old are you?");
                       cin >> age;
                     if (age<1 || age>115){
                       cout << "Invalid entry.\n"; 
                       notValid=true;
                       }
                       }while (notValid);
                 big_switch(choose, age);
                 }
    }
    
    void big_switch(int choose, int age){
    switch(choose){
                        case 1:
                              int passengers;
                              cout << "\nHow many passengers do you have?";
                              cin >> passengers;
                              calculate(passengers, age);
                             break;
                        case 2:
                             calculate(age);
                            
                        break;
                        case 3:
                            
                             bool notValid;
                             do{
                                notValid=false;                                            //Validating for >4 passengers
                                cout << "\nHow many passengers do you have?";
                                cin >> passengers;
                                if (passengers >=4){
                                   cout << "Invalid entry."; 
                                   notValid=true;
                                   }
                             }while (notValid);
                              super_loop(passengers, age);  
                        break;         
                        case 4:
                                quit_pattern();
                        break;
                        default:
                               cout << "Invalid entry\n\n";
                        }       
    }
    
    
     void calculate (int passengers, int age){
                              int a;
                              double fee;
                              if (passengers>3){           
                                 fee=passengers*age;
                                 grandtotal=grandtotal+fee;                             //Calculating price for #1                               printf ("%30s","The price for you is $");
                                 printf ("%-5.2lf", fee);
                                 cout << "\n\n";
                                 printf ("%30s","The grand total is $");
                                 printf ("%-5.2lf\n", grandtotal);
                              }
                              else     
                                   for(a=0;a<passengers;a++){                            //Display as many starts as the number of passengers
                                   cout << "*\n";
                                   grandtotal=grandtotal+fee;
                                   printf ("%30s","The price for you is $");
                                   printf ("%-5.2lf", fee);
                                   cout << "\n\n";
                                   printf ("%30s","The grand total is $");
                                   printf ("%-5.2lf""\n", grandtotal);
                              }
    
    }
    
    void calculate(int age){
                             double fee;                      //Calculating price for #2
                             if  (age>=65){
                                 fee=(age-65)*.5;
                                 printf ("%30s","The price for you is $");
                                 printf ("%-5.2lf", fee);
                                 cout << "\n\n";
                                 }
                             else if(age% 2 == 0)
                                  cout << "\nNo Charge\n\n\n";
                             else{
                                  fee=age;
                                  grandtotal=grandtotal+fee;
                                  printf ("%30s","The price for you is $");
                                  printf ("%-5.2lf", fee);
                                  printf ("%30s","The grand total is $");
                                  printf ("%-5.2lf\n", grandtotal);
                                  cout << "\n\n";
                                  }
                                   grandtotal=grandtotal+fee; 
    }
    
    
     int super_loop(int passengers, int age){
       int a, passage;
       double fee, grandtotal;
       char passgend;
       bool notValid;
       for (a=1;a<passengers;a++){ 
           do{                          //Loop for passengers' ages and genders                    
           notValid=false;
           cout << "\nEnter gender of passenger number ";
           cout << a;
           cin >> passgend;
           if (passgend!='m' && age!='f'){
              cout << "Invalid entry.\n"; 
              notValid=true;
              }
           }while (notValid);
           cout << "\nEnter age of passenger number ";
           cout << a <<":";
           cin >> passage;
       }
      fee = super_calculate();
      grandtotal=grand_total();
      grandtotal=grandtotal+fee;
      printf ("%30s","The price for you is $");
      printf ("%-5.2lf", fee);
      printf ("%30s","The grand total is $");
      printf ("%-5.2lf\n", grandtotal);
      cout << "\n\n";
       
    }
    
    double super_calculate(char passgend,  int passage, int age){
        double fee;
        if (passgend=='f'){                                           //Calculating for f passenger
          fee=passage*1.5;
          return(fee);
       }
       else                                                      //Calculating for f passenger
          fee=2*age;
       return(fee);
    }
    
    int inline init_function(){
       int rand_number = rand()%100+10; 
       return(rand_number);
    }
    
    int grand_total(int, int){
         int fee, rand_number;
         cout << rand_number;
         rand_number=init_function();
         double grandtotal=fee+rand_number;
         cout << "The grand total is :" << grandtotal;
         }
    
    int display_function (){
        int selection;
        cout << "Welcome to the Fair Price Car Wash\n\n";
        cout << "1)  Regular Car Wash\n"; 
        cout << "2)  Super Car Wash\n"; 
        cout << "3)  SuperDooper Car Wash\n"; 
        cout << "4)  Quit\n\n\n";
        cout << "Select one of the options:";
        cin >> selection;
        return  (selection);
    }
    
    void quit_pattern(){
    int row, space, asterisk;
        for(row=1; row<5; row++)
                  {
                  for(space=0; space>4+row; space++)
                     printf (" ");
                  for(asterisk=1; asterisk<=2*row; asterisk++)              //Displaying stars
                     printf("*");
                  cout << endl;
                  }
    }
     
    [/c++]
    

Post a reply

No one has replied yet! Why not be the first?

Sign in or Join us (it's free).

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Never trust a programmer in a suit.” - Anonymous