行而知之 2015-07-14 02:13 采纳率: 0%
浏览 2453

c++对象数组 构造函数

题目是一个打印工资单(payrate*hours),数组里有七个对象,需要每个对象的输入时间(hour)乘payRate,最后返回到payTotal里,可是不知道怎么把键盘输入的存入对象数组里,而且总是报错,而且后面函数里的变量好像也有点问题,没用到数组,不知道怎么改啊,急求解答!!!!!非常感谢!!

这是main函数的cpp

 #include <iostream>
#include <iomanip>
#include "Payroll.h"

using namespace std;

int main()
{
    const int NUM_EMP = 7;
    double value;
    int num;
    Payroll employee[NUM_EMP];

    cout << "Enter the payRate for the employee: ";
    cin >> num;
    for(int i=0;i<NUM_EMP;i++)
    {

        cout << "Employee" 
             << i+1 << " : " 
             << "Enter the numbers of hours: ";
        cin >> employee[i]; 

    }

    Payroll item();
    cout << setprecision(2) << fixed;

    for(int k=0;k<NUM_EMP;k++)
    {
        cout << "The amount of gross pay for employee" 
             << k+1 << ": "
             << employee[k].getTotalPay << endl;
    }


    return 0;
}

下面是Payroll.cpp

 #include "Payroll.h"   // Needed for the Rectangle class
#include <iostream>      // Needed for cout
#include <cstdlib>       // Needed for the exit function
using namespace std;

Payroll::Payroll()
{
   hours = 0.0;
   payRate = 0.0;

}

void Payroll::setHours(double hou)
{
  if(hou <= 60.00)
      hours = hou;
  else
  {
      cout << "Please Enter the valid numbers: ";
      exit(EXIT_FAILURE);
  }
}

void Payroll::setPayRate(double pay)
{

    payRate = pay;
}

最后是payroll.h

 #ifndef PAYROLL_H
#define PAYROLL_H

class Payroll
{

private:
    double hours;
    double payRate;
public:
    Payroll();
    void setHours(double);
    void setPayRate(double);

    double getHours() const
    {

        return hours;
    }

    double getPayRate() const
    {

        return payRate;
    }

    double getTotalPay() const
    {

        return hours * payRate;
    }
};

#endif
  • 写回答

3条回答

  • yin3353623 2015-07-14 03:05
    关注

    for(int i=0;i<NUM_EMP;i++)
    {

        cout << "Employee" 
             << i+1 << " : " 
             << "Enter the numbers of hours: ";
    
        cin >> employee[i]; 
    
    }
        改成:
         for(int i=0;i<NUM_EMP;i++)
    {
       double _hours;
        cout << "Employee" 
             << i+1 << " : " 
             << "Enter the numbers of hours: ";
        cin >> _hours;
                employee[i].setHours(_hours); 
    
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值