JHSIAO
JHSIAO

Reputation: 95

C# Console Calculator No overload for method take 0 arguement

I have no idea how to use methods in my calculator app. What's wrong with my method? I write this 4 Calculator separately but have no idea ho to use methods to combine it together.

This Calculator will permit the user to choose from the following main menu:

  1. Length calculator
  2. Body Mass Index calculator
  3. Waist to Height calculator
  4. Fuel Consumption calculator
  5. Exit the calculator

My current code has 4 errors said that:

No overload for method 'BMICalculator' takes 0 arguments
No overload for method 'FuelConsumptionCalculator' takes 0 arguments
No overload for method 'LengthCalculator' takes 0 arguments No overload for method 'WaistToHeightCalculator' takes 0 argument

What am i missing??

My Current Code:

        static void LengthCalculator(string[] args) {

        double Centimetres = 0.0, Feet = 0.0, Inches = 0.0;
        string AnotherConversion = null;
        string LengthCalculatorMenu;
        int LengthCalculatorOption;

        do {
            LengthCalculatorMenu = ("Enter 1) Convert centimetres to feet and inches:"
                                 + "\nEnter 2) Convert feet and inches to centimetres:");
            Console.Write(LengthCalculatorMenu);
            LengthCalculatorOption = int.Parse(Console.ReadLine());

            if (LengthCalculatorOption == 1) {
                Console.WriteLine("Please Enter the Centimetres(cm) that you wish to convert to feet and inches");
                Centimetres = double.Parse(Console.ReadLine());
                Feet = (Centimetres / 2.54) / 12;
                int iFeet = (int)Feet;
                Inches = (Feet - (double)iFeet) * 12;
                Console.WriteLine("\nThe equivalent in feet and inches is {0:G1} ft {1:G1} ins", Feet, Inches);
                Console.Write("\nWould you like to make an another conversion? \n\n(Enter Y to make an another conversion/Enter any other key to exit):");
                AnotherConversion = Console.ReadLine();
            } else if (LengthCalculatorOption == 2) {
                Console.WriteLine("Please Enter the Feet");
                Feet = double.Parse(Console.ReadLine());
                Console.WriteLine("Please Enter the Inches");
                Inches = double.Parse(Console.ReadLine());
                Centimetres = ((Feet * 12) + Inches) * 2.54;
                Console.WriteLine("\nThe equivalent in centimetres is {0:G}cm", Centimetres);
                Console.Write("\nWould you like to make an another conversion? \n\n(Enter Y to make an another conversion/Enter any other key to exit):");
                AnotherConversion = Console.ReadLine();
            }
        } while (AnotherConversion == "y" || AnotherConversion == "Y");
    }

    static void BMICalculator(string[] args) {

        double WeightKg = 0.0, HeightCm = 0.0, Weightlbs = 0.0, WeightOz = 0.0, BMI = 0.0, Feet = 0.0, Inches = 0.0;
        int BMIOption;
        string again = null;

        do {
            string BMIMenu = ("Which Measurement You Want to use to enter the weight and height?"
                            + "\n1)Enter 1 for Metric"
                            + "\n2)Enter 2 for British Imperial:");
            Console.Write(BMIMenu);
            BMIOption = int.Parse(Console.ReadLine());

            if (BMIOption == 1) {
                Console.Write("\nPlease Enter your Weight in Kilogram (kg):");
                WeightKg = double.Parse(Console.ReadLine());
                Console.Write("\nPlease Enter your Height in in centimetres (cm):");
                HeightCm = double.Parse(Console.ReadLine());
                BMI = WeightKg / (HeightCm / 100 * HeightCm / 100);

                if (BMI >= 35.0) {
                    Console.WriteLine("\nYour BMI is {0:G},Severe Obesity", BMI);
                } else if (BMI >= 30.0) {
                    Console.WriteLine("\nYour BMI is {0:G},Obese", BMI);
                } else if (BMI >= 25.0) {
                    Console.WriteLine("\nYour BMI is {0:G},OverWeight", BMI);
                } else if (BMI >= 18.5) {
                    Console.WriteLine("\nYour BMI is {0:G},Healthy BodyWeight", BMI);
                } else if (BMI <= 18.5) {
                    Console.WriteLine("\nYour BMI is {0:G},UnderWeight", BMI);
                }//End if
                Console.Write("\nWould you like to make an another conversion? \n\n(Enter Y to make an another conversion/Enter any other key to exit):");
                again = Console.ReadLine();

            } else if (BMIOption == 2) {
                Console.WriteLine("Please Enter your Weight in Pounds (lbs):");
                Weightlbs = double.Parse(Console.ReadLine());
                Console.WriteLine("Please Enter your Weight in Ounces (oz):");
                WeightOz = double.Parse(Console.ReadLine());
                Console.WriteLine("Please Enter your Height in Feet (ft):");
                Feet = double.Parse(Console.ReadLine());
                Console.WriteLine("Please Enter your Height in Inches (ins):");
                Inches = double.Parse(Console.ReadLine());

                WeightKg = ((Weightlbs * 16) + WeightOz) / 35.2;
                HeightCm = ((Feet * 12) + Inches) * 2.54;
                BMI = WeightKg / (HeightCm / 100 * HeightCm / 100);

                if (BMI >= 35) {
                    Console.WriteLine("Your BMI is {0:G},Severe Obesity", BMI);
                } else if (BMI >= 30) {
                    Console.WriteLine("Your BMI is {0:G},Obese", BMI);
                } else if (BMI >= 25) {
                    Console.WriteLine("Your BMI is {0:G},OverWeight", BMI);
                } else if (BMI >= 18.5) {
                    Console.WriteLine("Your BMI is {0:G},Healthy BodyWeight", BMI);
                } else if (BMI <= 18.5) {
                    Console.WriteLine("Your BMI is {0:G},UnderWeight", BMI);
                }//End if
                Console.Write("\nWould you like to make an another conversion? \n\n(Enter Y to make an another conversion/Enter any other key to exit):");
                again = Console.ReadLine();
            }
        } while (again == "y" || again == "Y");
    }


    static void WaistToHeightCalculator(string[] args) {

        int WaistToHeightCalculatorOption;
        int GenderOption;
        string AnotherConversion = null;
        double HeightCm = 0.0, WaistCm = 0.0;
        double WaistToHeightRatio = 0.0;
        double WaistIns = 0.0, HeightFeet = 0.0, HeightIns = 0.0, HeightTotalInIns = 0.0;

        do {
            string WaistToHeightCalculatorMenu = ("\nWhich Measurement You Want to use to enter the weight and height?"
                                               + "\n1)Enter 1 for Metric"
                                               + "\n2)Enter 2 for British Imperial:");
            Console.Write(WaistToHeightCalculatorMenu);
            WaistToHeightCalculatorOption = int.Parse(Console.ReadLine());

            if (WaistToHeightCalculatorOption == 1) {

                Console.Write("\nPlease Enter your Height in cm:");
                HeightCm = double.Parse(Console.ReadLine());
                Console.Write("\nPlease Enter your Waist in centimetres (cm):");
                WaistCm = double.Parse(Console.ReadLine());

                WaistToHeightRatio = WaistCm / HeightCm;
                Console.Write("\n1)Enter 1 If you are Male"
                            + "\n2)Enter 2 If you are Female:");
                GenderOption = int.Parse(Console.ReadLine());

                if (GenderOption == 1 && WaistToHeightRatio >= 0.536) {
                    Console.Write("\nYour Waist to Height Ration is {0}, Your Risk of Obesity Related Cardiovascular Diseases is at High Risk", WaistToHeightRatio);
                } else if (GenderOption == 1 && WaistToHeightRatio < 0.536) {
                    Console.Write("\nYour Waist to Height Ration is {0}, Your Risk of Obesity Related Cardiovascular Diseases is at low Risk", WaistToHeightRatio);
                } else if (GenderOption == 2 && WaistToHeightRatio >= 0.492) {
                    Console.Write("\nYour Waist to Height Ration is {0}, Your Risk of Obesity Related Cardiovascular Diseases is at High Risk", WaistToHeightRatio);
                } else if (GenderOption == 2 && WaistToHeightRatio < 0.492) {
                    Console.Write("\nYour Waist to Height Ration is {0}, Your Risk of Obesity Related Cardiovascular Diseases is at low Risk", WaistToHeightRatio);
                } //End if

                Console.Write("\n\nWhould you like to make an anothe conversion? /n/n Enter Y to make an another conversion/Ener any other key to exit:");
                AnotherConversion = Console.ReadLine();


            } else if (WaistToHeightCalculatorOption == 2) {
                Console.Write("\nPlase Enter your Waist in inches:");
                WaistIns = double.Parse(Console.ReadLine());
                Console.Write("\nPlease Enter the Height in feet:");
                HeightFeet = double.Parse(Console.ReadLine());
                Console.Write("\nPlease Enter the Heigt in inches:");
                HeightIns = double.Parse(Console.ReadLine());
                WaistToHeightRatio = WaistIns / HeightTotalInIns;
                HeightTotalInIns = (HeightFeet * 12) + HeightIns;
                Console.Write("\nMale Enter 1 , Female Enter 2:");
                GenderOption = int.Parse(Console.ReadLine());

                if (GenderOption == 1 && WaistToHeightRatio >= 0.536) {
                    Console.Write("Your Waist to Height Ration is {0}, Your Risk of Obesity Related Cardiovascular Diseases is at High Risk", WaistToHeightRatio);
                } else if (GenderOption == 1 && WaistToHeightRatio < 0.536) {
                    Console.Write("Your Waist to Height Ration is {0}, Your Risk of Obesity Related Cardiovascular Diseases is at low Risk", WaistToHeightRatio);
                } else if (GenderOption == 2 && WaistToHeightRatio >= 0.492) {
                    Console.Write("Your Waist to Height Ration is {0}, Your Risk of Obesity Related Cardiovascular Diseases is at High Risk", WaistToHeightRatio);
                } else if (GenderOption == 2 && WaistToHeightRatio < 0.492) {
                    Console.Write("Your Waist to Height Ration is {0}, Your Risk of Obesity Related Cardiovascular Diseases is at low Risk", WaistToHeightRatio);
                } //End if
                Console.Write("\n\nWhould you like to make an anothe conversion? /n/n Enter Y to make an another conversion/Ener any other key to exit:");
                AnotherConversion = Console.ReadLine();
            }
        } while (AnotherConversion == "Y" || AnotherConversion == "y");
    }

    static void FuelConsumptionCalculator(string[] args) {

        int FuelConsumptionMenuOption;
        double Litre = 0.0, Kilometre = 0.0, Gallon = 0.0, Mile = 0.0;
        double ComsumptionPer100Km = 0.0, ComsumptionPer100KmInMPG = 0.0, ComsumptionPer100KmInKm = 0.0, ComsumptionPerGal = 0.0;
        ComsumptionPer100KmInMPG = ((Kilometre / 1.609) / (Litre / 4.546)) * 100;
        string ToSeeMPerGalOption, ToSeelPerKmOption;
        string AnotherConversion;
        do {
            string FuelConsumptionMenu = ("\nWhich Measurement You Want to use to enter the weight and height?"
                                                   + "\n1)Enter 1 for Metric"
                                                   + "\n2)Enter 2 for British Imperial:");
            Console.Write(FuelConsumptionMenu);
            FuelConsumptionMenuOption = int.Parse(Console.ReadLine());

            if (FuelConsumptionMenuOption == 1) {
                Console.Write("\nPlease Enter Litres(l) of Fuel used over distance travelled:");
                Litre = double.Parse(Console.ReadLine());
                Console.Write("\nPlease Enter Kilometres driven:");
                Kilometre = double.Parse(Console.ReadLine());
                ComsumptionPer100Km = Litre / (Kilometre / 100);
                Console.WriteLine("\nYour Consumption in Litres per 100 Kilometres is {0}", ComsumptionPer100Km);
                Console.Write("\nWould you like to see the equivalent result in miles per gallon (mpg)?"
                                 + "\n(Press Y For yes or Press other key to cancel this option):");
                ToSeeMPerGalOption = Console.ReadLine();
                ComsumptionPer100KmInMPG = ((Kilometre / 1.609) / (Litre / 4.546) * 100);

                if (ToSeeMPerGalOption == "Y" || ToSeeMPerGalOption == "y") {
                    Console.Write("\nThe equivalent result in miles per gallon (mpg) is {0}", ComsumptionPer100KmInMPG);
                }
                Console.Write("\n\nWhould you like to make an anothe conversion? /n/n Enter Y to make an another conversion/Ener any other key to exit:");
                AnotherConversion = Console.ReadLine();

            } else if (FuelConsumptionMenuOption == 2) {
                Console.Write("\nPlease Enter Gallons (gal) of Fuel used over distance travelled:");
                Gallon = double.Parse(Console.ReadLine());
                Console.Write("\nPlease Enter Miles (m)driven:");
                Mile = double.Parse(Console.ReadLine());
                ComsumptionPerGal = Gallon / Mile;
                Console.WriteLine("\nYour Consumption in Miles per Gallon is {0}", ComsumptionPerGal);
                Console.Write("\nWould you like to see the equivalent result in litres per 100 kilometres(km)?"
                                 + "\n(Press Y For yes or Press other key to cancel this option):");
                ToSeelPerKmOption = Console.ReadLine();
                ComsumptionPer100KmInKm = ((Mile * 1.609) / (Gallon * 4.546)) * 100;

                if (ToSeelPerKmOption == "Y" || ToSeelPerKmOption == "y") {
                    Console.Write("\nThe equivalent result in litres per 100 kilometres(km) is {0}", ComsumptionPer100KmInKm);
                }
            }//End if 
            Console.Write("\n\nWhould you like to make an anothe conversion? /n/n Enter Y to make an another conversion/Ener any other key to exit:");
            AnotherConversion = Console.ReadLine();

        } while (AnotherConversion == "Y" || AnotherConversion == "y");

    }

    static int ReadOption() {
        int option =0 ;
        bool ValidMainMenuOption = false;

    do{
       option = int.Parse(Console.ReadLine());

       if ((1 <=option) & (option <= 5)) {
           ValidMainMenuOption = true ;
       } else {
           ValidMainMenuOption = false;
       } // end if

       if (!ValidMainMenuOption){
           Console.WriteLine("\n\t\a Option must be 1,2,3,4,5");
           DisplayMenu();
       } //end if 
     } while (!ValidMainMenuOption);

    return option;
    } //end ReadOption

    /* Displays Main Menu
     * Precondition:true
     * postcondition: mainMenu displayed
     */
    static void DisplayMenu() {
        string mainMenu = "\n1)Length Calculator"
                        + "\n2)Body Mass Index Calculator"
                        + "\n3)Waist to Height Calculator"
                        + "\n4)Fuel Consumption Calculator"
                        + "\n5)Exit the Calculator"
                        + "\n\n Enter your option(1,2,3,4 or 5 to exit):";
        Console.Write(mainMenu);
    } //end mainMenu

    static void Main(string[] args) {
        const int Exit = 5;
        int menuOption = ReadOption();

        do {
            DisplayMenu();

            if (menuOption == 1) {
                LengthCalculator();
            } else if (menuOption == 2) {
                BMICalculator();
            } else if (menuOption == 3) {
                WaistToHeightCalculator();
            } else if (menuOption == 4) {
                FuelConsumptionCalculator();
            } else if (menuOption == 5) {
                Console.Write("Thank you for using this Calculator, See you next time");
                Console.WriteLine("Press any Key to Exit");
                Console.ReadKey();
            } 

        } while (menuOption != Exit);

        // need to output terminating message 
        Console.ReadKey();

    } //end Main

Upvotes: 0

Views: 426

Answers (2)

RadioSpace
RadioSpace

Reputation: 952

My Current Code:
static void LengthCalculator(string[] args) {
// snip for brevity
}

static void BMICalculator(string[] args) {
// snip for brevity
}

static void WaistToHeightCalculator(string[] args) {
// snip for brevity
}

static void FuelConsumptionCalculator(string[] args) {
// snip for brevity
}

static void Main(string[] args) {
const int Exit = 5;
int menuOption = ReadOption();

do {
    DisplayMenu();

    if (menuOption == 1) {///////////////////////////////////////////////////
        LengthCalculator(args); // <------HERE
    } else if (menuOption == 2) {
        BMICalculator(args); // <------HERE
    } else if (menuOption == 3) {
        WaistToHeightCalculator(args); // <------HERE
    } else if (menuOption == 4) {
        FuelConsumptionCalculator(args); // <------HERE
///////////////////////////////////////////////////////////////////////////////////

    } else if (menuOption == 5) {
        Console.Write("Thank you for using this Calculator, See you next time");
        Console.WriteLine("Press any Key to Exit");
        Console.ReadKey();
    } 

} while (menuOption != Exit);

// need to output terminating message 
Console.ReadKey();

} //end Main

Upvotes: 0

rerun
rerun

Reputation: 25505

Your function is defined as

static void WaistToHeightCalculator(string[] args)

you are calling it like this

WaistToHeightCalculator();

you need to call it like this

WaistToHeightCalculator(args);

You must pass all arguments that a function is defined to take. I am assuming you wrote each one of these as main and then tried to pull them all together. The error No overload for method 'BMICalculator' takes 0 arguments simply means the complier could not find a version of that function that takes no arguments. It know only of the version with one argument which is an array of strings.

edit

As @jdpenix says you also don't use args in any of the functions so you could change the functions definitions to static void WaistToHeightCalculator() and continue calling them the way you are.

Upvotes: 2

Related Questions