所以,我必须做一道包含以下内容的家庭作业:
在报税季,每周五,强生会计师事务所都会为准备自己报税表的人提供帮助。他们的收费如下。
一个。低收入(<=25000)且咨询时间小于等于30分钟,不收费;否则,超过 30 分钟按正常小时费率的 40% 收取服务费。
对于其他人,如果咨询时间小于或等于20分钟,则不收取服务费;否则,超过 20 分钟的服务费按正常小时费率的 70% 计算。
(例如,假设一个人收入较低,花费了 1 小时 15 分钟,每小时费率为 70.00 美元。那么账单金额为 70.00 x 0.40 x (45/60) = 21.00 美元。)
编写一个程序,提示用户输入小时费率、总咨询时间以及此人是否低收入。该程序应输出账单金额。该程序必须包含一个函数,该函数将小时费率、总咨询时间和一个表明该人是否低收入的值作为输入。该函数应返回账单金额。该程序可能会提示用户以分钟为单位输入咨询时间。
这是我的代码:
#include <iostream>
#include <iomanip>
using namespace std;
const int HOUR = 60;
int minutes = 0;
double intake(payment);
void intake()
{
char income, y('y'), n('n');
cout << "Is the income rate over 25,000? Y - Yes | N - No): ";
cin >> income;
switch(income)
{
case 'n':
case 'N': low_procedure()
break;
case 'y':
case 'y': high_procedure()
break;
default: cout << "Invalid entry. You must indicate low or high income.\n"
break;
}
}
int main()
{
intake();
cout<<"You owe: \n";
cout<< payment <<endl;
}
double low_procedure()
{
const double LOW_DISCOUNT = 0.40;
const int LOW_TIME = 30;
consult = getConsultTime()
rate = getRate()
if consult > LOW_TIME
{
minutes = consult - LOW_TIME
result = rate * LOW_DISCOUNT
payment = calcPay
}
else
cout <<"No additional fees. \n";
return payment;
}
double high_procedure()
{
const double HIGH_DISCOUNT = 0.70;
const int HIGH_TIME = 20;
consult = getConsultTime()
rate = getRate()
if consult > HIGH_TIME
{
minutes = consult - HIGH_TIME
result = rate * HIGH_DISCOUNT
}
else
cout<<"No additional fees.";
}
int getConsultTime()
{
int consult = 0;
cout << "How long was the consult for in minutes? \n";
cin >> consult;
return consult;
}
double getRate()
{
double rate = 0.00;
cout << "What was the hourly rate? \n";
cin >> rate;
return rate;
}
double calcPay
{
double payment = 0.00;
payment = result * (minutes/HOUR);
return payment;
}
自从我意识到我需要在代码中声明变量后,我在这里遇到了很多麻烦。我有一种感觉,我正在使它变得比它需要的更复杂,但是 switch 语句很重要。我正在尝试筛选不重要的不良数据。
最佳答案
您应该在有意义的最小范围内声明它们。由于您显然在多个函数中使用它们,因此文件范围(通常被认为是“全局”,而不是“本地”)似乎是合适的。
作为替代方案,您可以创建一个将变量和函数作为成员的类,但在这种情况下,这似乎有点过分了......
关于c++ - 我需要通过我的函数传递什么样的参数。另外,如何让它根据用户需要循环多次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35819539/