我正在为这项计划工作,所以我不想要答案......只是朝着正确的方向努力。
我编写了一个程序,用户将在该程序中输入一个3位数的ID(必填)和一个月份使用的KWh。输入该标准后,它将打印出一个简短的摘要+每个用户当月的费用。并将其包含在一个循环中,询问是否还有更多ID要输入。
下面是我的开场代码和循环结构:
#include <iostream>
#include <string>
#include <iomanip>
#include <windows.h>
using namespace std;
//function prototypes
string get_user_ID();
int get_cust_kwh();
string display_cust_data();
int main()
{
string userID;
int userKWH;
char answer;
while ((answer !='N')&&(answer !='n')){
userID = get_user_ID();
userKWH =get_cust_kwh();
display_cust_data();
cout << "\n\nWould you like to add another utility ID? : (Y or N)";
cin >> answer;
}
}
system("pause")
return 0;
我可以让循环正常运行,但我的函数似乎没有返回用户输入的值。由于我不熟悉各种功能,我确信这是一个愚蠢的错误,但一直让我发疯。以下是功能:
**********function definitions**********
string get_user_ID(){
string usrID;
cout << "\n\nPlease enter in your 3-digit utility ID: ";
cin >> usrID;
return usrID;
}
int get_cust_kwh(){
int usrKWHs;
cout << "Please enter the total KWH used for the month: ";
cin >> usrKWHs;
return usrKWHs;
}
string display_cust_data(){
string usrID;
int usrKWHs;
double userCharge;
cout << "\n\nUSER ID KWHours Charge($)\n";
cout << fixed << setprecision(2);
cout << usrID << " " << usrKWHs << " " << userCharge << endl;
}
我正在考虑使用函数中变量的方式。
感谢您提供任何推动!
答案 0 :(得分:4)
问题是display_cust_data()
不知道主要功能范围内的变量。你打印的只是具有垃圾值的局部变量。
string display_cust_data(){
string usrID; // This is a different variable and is not equivalent to the
// variable in main.
为什么函数的返回类型是string
?
答案 1 :(得分:1)
看看你的display_cust_data。它如何获得有关显示内容的任何信息?
答案 2 :(得分:1)
您需要找到一种将用户输入变量传递给显示功能的方法。 display_cust_data()
函数中的变量是在那里新创建的,与main()
函数中while循环中的变量不同。您在该函数中显示的所有变量都是未初始化的,因此您不知道它们的值实际上是什么。考虑为函数添加参数,以便在调用它时可以将用户输入变量传递给它,以便显示要显示的值。