gpt4 book ai didi

c++ - 接收错误变量的类型不完整 "void"

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:03:30 24 4
gpt4 key购买 nike

我正在编写一个基本的 C++ 程序来计算直线的长度和斜率。用户输入一组 x 和 y 坐标点,然后程序会显示一个菜单,询问用户他/她是想只计算斜率、只计算长度,还是同时计算斜率和长度。但是,我的 void Menu 函数出现错误,指出该变量具有不完整的类型“void”。我现在的代码如下。

#include <iostream>
#include <cmath>

void Menu (int& MenuNum);
void CalculateSlope (int& X1, int& X2, int& Y1, int& Y2);
void CalculateLength (int& X1, int& X2, int& Y1, int& Y2);

using namespace std;

int main(int argc, const char * argv[])
{

int X1;
int X2;
int Y1;
int Y2;
int MenuNum;
//Ask User for Points

cout << "Enter points (X1,Y1) and (X2,Y2) for the line." << endl;
cout << " " << endl;
cout << "X1:" << endl;
cin >> X1;
cout << "Y1:" << endl;
cin >> Y1;
cout << "X2:" << endl;
cin >> X2;
cout << "Y2:" << endl;
cin >> Y2;

cout << "Points entered are"
<< " : " << X1 << ","
<< Y1 << " and "
<< X2 << "," << Y2 << endl;
cout << " "<< endl;

//Menu

void Menu (MenuNum);
{
cout << "To calculate the slope of the line, enter 1 " << endl;
cout << "To calculate the length of the line, enter 2" << endl;
cout << "To calculate the length and slope of the line, enter 3" << endl;
cin >> MenuNum;

}

此外,如果您能就如何从菜单函数中调用斜率和长度计算函数提供一些指导,那就太好了。

谢谢!

最佳答案

首先,您看到错误“incomplete type void”的原因是因为您有一个分号,它基本上结束了 Menu 函数的函数定义。通俗地说,你还没有完全定义完你的功能。

其次,按照惯例,像您编写的简单 C++ 程序应该遵循以下代码布局。

  1. 计划包括
  2. 函数原型(prototype)
  3. 主要功能
  4. 函数定义

除了需要在开始函数定义之前结束 main 函数之外,您的程序顺序正确。

所以你应该:

main()
{
...
}//End main function

void menu()
{
...
}

我注意到的另一件事是,如果您要从命令行获取输入,通常会使用您为主要函数提供的参数。由于您在程序中要求用户输入,因此您应该更改声明 main 函数的方式。

而不是使用

int main(int argc, const char * argv[])
{
...
}

这样声明

int main()
{
...
}

在我回答您的最后一个问题之前,您需要构建功能来处理用户输入。这可以通过 switch case 语句来完成。如果您需要有关在 C++ 中使用 switch case 语句的信息,可以在 http://www.cplusplus.com/doc/tutorial/control/ 找到很好的解释。

实现此 switch 语句的一种方法是调用函数来计算 switch case 中直线的斜率和长度。如果这样做,您将需要更改有关菜单功能参数的一件事。您还需要将坐标值传递给菜单函数。例如,

void Menu (MenuNum, X1, X2, Y1, Y2)
{
cout << "To calculate the slope of the line, enter 1 " << endl;
cout << "To calculate the length of the line, enter 2" << endl;
cout << "To calculate the length and slope of the line, enter 3" << endl;
cin >> MenuNum;

switch(MenuNume)
{
case 1:
{
//call calculate slope function
break;
}
case 2:
{
//call calculate length function
break;
}
case 3:
{
//call both calculate slope and calculate length functions
break;
}
default:
{
cout << "Please enter a correct value." << endl;
}
}

}

我认为这回答了您所有的问题。希望这对您有所帮助!

关于c++ - 接收错误变量的类型不完整 "void",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16848150/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com