2013-10-02 12 views
-4

Выполнение задания для расчета площади и объема различных фигур. Stuck - это преуменьшение. Получить сообщение об ошибке «showMenu»: функция не принимает 0 аргументов & a также слишком мало аргументов в ошибке вызова функции. Любые указатели на то, как это исправить?слишком мало аргументов в ошибке вызова функции

#include <iostream> 
#include <iomanip> 
using namespace std; 

//Functions 
void showMenu(int &); 
double area (double, double); 
double area (double); 
double volume (double, double, double); 
double volume (double); 
const double PI = 3.14; 

int main() 
{ 
int choice; 
double area, volume, length, width, radius, height; 
const double PI = 3.14; 

do 
{ 
    showMenu(); 
    cin >> choice; 

    if (choice < 1 || choice > 5) 
    { 
     cout << "Please select a valid choice of 1-5: " << endl; 
     cin >> choice; 
    } 
    else if (choice == 1) 
    { 

     double tarea(area); 
     cout << "Enter the length: "; 
     cin >> length; 
     cout << "Enter the width: "; 
     cin >> width; 
     cout << "The area of the rectangle is: " << tarea << endl; 

    } 
    else if (choice == 2) 
    { 

     double tarea(area); 
     cout << "Enter the radius: "; 
     cin >> radius; 
     cout << "The area of the circle is: " << tarea << endl; 

    } 
    else if (choice == 3) 
    { 

     double tvolume (volume); 
     cout << "Enter the length: "; 
     cin >> length; 
     cout << "Enter the width: "; 
     cin >> width; 
     cout << "Enter the height: "; 
     cin >> height; 
     cout << "The volume for a box is: " << tvolume << endl; 

    } 
    else if (choice == 4) 
    { 

     double tvolume (volume); 
     cout << "Enter the radius: "; 
     cin >> radius; 
     cout << "The volume of a sphere is: " << endl; 

    } 
} 
    while (choice != 5); 
return 0; 
} 

void ShowMenu(int &choice) 
{ 
    cout << "1. Calculate the area of a rectangle"; 
    cout << "2. Calculate the area of a circle"; 
    cout << "3. Calculate the volume for a box"; 
    cout << "4. Calculate the volume of a sphere"; 
    cout << "5. Quit"; 

} 

double area (double length, double width) 
{ 
    double tarea = length * width; 
    return tarea; 
} 

double area (double radius) 
{ 
    double tarea = PI * (radius * radius); 
    return tarea; 
} 

double volume (double length, double width, double height) 
{ 

    double tvolume = length * width * height; 
    return tvolume; 
} 

double volume (double radius) 
{ 
    double tvolume = (4/3) * PI * (radius * radius * radius); 
    return tvolume; 
} 
+2

Дайте ему аргумент (или возьмите параметр, так как он даже не использует его)? – chris

ответ

3

Довольно просто:

showMenu(int&); 

объявляет функцию showMenu которая принимает один аргумент.

Вы звоните:

showMenu(); 

Таким образом, вам необходимо пройти в некотором значении:

int i = some_value; 
showMenu(i); 

Или не showMenu принимать аргумент:

void showMenu() { 
    //all those couts 
} 
0

C++ является случай чувствительный. вы объявляете и вызываете showMenu, но вы определяете ShowMenu. Кроме того, ваше определение showMenu имеет аргумент, но вы называете его без аргумента. проверьте его снова.

10

У вас есть эта функция delcaration:

void showMenu(int &); 

Это говорит компилятору:.

ОК, есть функция где-то называется «showMenu` Она возвращает ничего, и принимает один параметр или тип reference-to-int. "

Затем вы пытаетесь вызвать функцию:

showMenu(); 

Это говорит компилятору:

вызов функции "showMenu". Мне все равно, что он возвращает, а я ничего не передающего showMenu.

Компилятор жалуется:

Эй, приятель. Вы сказали мне, что «showMenu» принимает один параметр типа reference-to-int, а затем вы пытались вызвать его без параметров. Что дает?

Компилятор держит вас честными.

Смежные вопросы