c++ - 我需要通过我的函数传递什么样的参数。另外,如何让它根据用户需要循环多次?

标签 c++ function variables scope declaration

所以,我必须做一道包含以下内容的家庭作业:

在报税季,每周五,强生会计师事务所都会为准备自己报税表的人提供帮助。他们的收费如下。

一个。低收入(<=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/

相关文章:

c++ - 只有未指定数量的参数的函数的目的是什么?

具有查询优化功能的 php 函数

c - 为什么指针起作用而不是这段代码中的普通变量?

c - 返回声明中的评估

java - 我如何配置我的 .htaccess 文件,以便对 myurl.com/imageX.bmp(其中 X 是某个整数)的查询都提供相同的图像?

JavaScript 变量不起作用。为什么?

c++ - 扩展精度浮点库 C/C++

c# - 如何在 Window 10 中获取窗口内 TextBox 控件的句柄

c++ - 将继承的方法传递给另一个方法

function - phpmyadmin:创建一个函数