问题过多,无法发挥作用

时间:2019-03-16 01:48:18

标签: c++ computer-science

我目前正在为我所学的计算机科学从事家庭作业,并且我是C ++的新手。但是,当我编译程序时,它说它参数太多,无法执行'void results()'

有人可以解释一下如何解决此问题。您的时间将不胜感激。

以下是作业的说明

我需要创建一个程序,该程序实现将温度从任一刻度转换为另一刻度的相应值的功能。 用F代表华氏温度,C代表摄氏温度,使用以下公式在两个温度标度之间进行转换

F = 1.8C +32 C = F-32 / 1.8

程序必须提示用户进行初始温度的比例和度测量,并同时显示所提供温度的华氏度和摄氏度,并四舍五入到小数点后两位。如果为秤或温度提供了不合适的输入,则程序必须显示适当的错误消息并终止执行而不会显示任何结果。温度标尺的适当输入将取决于如何获取信息。合适的温度是大于或等于绝对零的任何值,即-459.67 F或-273.15 C。

程序的主要功能只能包含变量声明和函数调用。要至少处理数据,您的程序必须为以下每个任务正确使用适当的功能,尽管您可以根据需要添加尽可能多的其他功能:

1。显示简短的概述和/或向用户解释程序的指令集

2。让用户输入使用的温度标尺

3。让用户输入初始温度读数

4。将华氏温度转换为摄氏

5。将摄氏温度转换为华氏温度

6。显示结果

#include <iostream>
#include <iomanip>
#include <string>


using namespace std;

// Prototype
void overView();
void results();
char tempScale();
float tempReading();
float convertFtoC(float);
float convertCtoF(float);

int main(){


    overView ();
    cout << setprecision (2) << fixed;

    float degree = tempReading();
    char scale = tempScale();
    float fahrenheit, celsius;

    if(scale == 'F'){
          celsius = convertFtoC(degree);
          fahrenheit = degree;

    }
    else if (scale == 'C'){
          fahrenheit = convertCtoF(degree);
          celsius = degree;
    }
    else{
        cout << "***Error: Invalid temperature Scale Please try again!" << endl;
        return 0;
    }

    results(fahrenheit, celsius);

   return 0;

}

// this function was build to give an overview to the user explaining the program
void overView(){
    cout << "This program will convert a temperature reading provided in" << endl;
    cout << "either Fahrenheit or Celsius to the other measurement scale." << endl;
    cout << "------------------------------------------------------------" << endl;
    cout << endl;
}

// this function was build to ask the user to chose the temperature scale
char tempScale(){
    char scale;
    cout << "Please chose the temperature scale that you wish to use (F = Fahrenheit; C = Celsius): ";
    cin >> scale;
    return scale;
}

// this function was build to ask the user to enter the temperature reading in degree
float tempReading(){
    float degree;
    cout << "Please enter your temperature reading (in degrees): ";
    cin >> degree;
    return degree;
}

// This function was build to converts a Fahrenheit temperature to celsius
float convertFtoC(float fahrenheit){
    float celsius;
    celsius = (fahrenheit - 32) / 1.8;
    return celsius;
}

// This function was build to converts a Celsius temperature to Fahrenheit
float convertCtoF(float celsius){

    float fahrenheit;
    fahrenheit = 1.8 * (celsius + 32);
    return fahrenheit;

}

// This function will display the results to the user
void results(float fahrenheit, float celsius){

cout <<"Your temperature reading converts as follows:" << endl;
cout << "Fahrenheit: " << fahrenheit << endl;
cout << "Celsius: " << celsius << endl;

}

2 个答案:

答案 0 :(得分:1)

您的原型没有参数,因此C ++认为您做错了(期望没有输入)。

更改:

// Prototype
void overView();
void results();

// Prototype
void overView();
void results(float fahrenheit, float celsius);

应该修复它! C ++倾向于比实现更重视原型。在C中也会发生这种情况。

答案 1 :(得分:1)

在前向函数声明中,将void results();更改为void results(float, float);。该错误基本上是在说“您定义了一个没有参数的函数,但是您正在使用两个参数调用它”。