【发布时间】:2014-05-19 03:35:24
【问题描述】:
我正在尝试编写以下内容:
1) 为一个名为 Employee 的类编写类定义,其中名称和薪水作为员工对象。该类包含两个成员函数:构造函数和允许程序为数据成员赋值的函数。
2) 向 Employee 类添加两个成员函数。一个成员函数应该允许任何使用员工对象的程序查看薪水数据成员的内容。另一个成员函数应该允许程序查看员工姓名数据成员的内容。
3) 向 Employee 类添加另一个成员函数。成员函数应根据使用该对象的程序提供的加薪百分比计算员工对象的新工资。在计算加薪之前,成员函数应验证加薪百分比是否大于或等于零。如果提高百分比小于零,则成员函数应显示错误消息。
4) 编写一个 main 函数,该函数将创建一个员工对象数组,分配 对象的值,显示所有对象的名称和当前薪水, 向用户询问加薪百分比,然后计算并显示新的工资 适用于所有对象。
我已尝试使用以下代码:
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
class EMPLOYEE
{
public:
EMPLOYEE();//
EMPLOYEE(string name, int salary);//
public:
string name;//name to be input
int salary;//salary to be input
public:
int enter_values();
int output_values();
int NEW_SALARY( int percentage_raise);
};
//default constructor
EMPLOYEE::EMPLOYEE()
{
name = "";
salary = 0;
}
//constructor with name/salary variables
EMPLOYEE::EMPLOYEE(string NAME, int SALARY)
{
name= NAME;
salary= SALARY;
}
//name and salary to be input...
int EMPLOYEE::enter_values()
{ cout<<"Enter name and salary: ";
cin>> name;
cin>>salary;
}
//output
int EMPLOYEE::output_values()
{ cout<<"Name: "<<name<<endl;
cout<<"Salary: "<<salary<<endl;
}
//
int EMPLOYEE::NEW_SALARY(int percentage_raise)
{
EMPLOYEE updated_salary;
if ( percentage_raise >= 0){salary= salary *(percentage_raise/100);
}
else if(percentage_raise< 0)
{ cout<<"Error Message"<<endl;
}
return percentage_raise;
}
int main()
{
EMPLOYEE employees[100];
EMPLOYEE.NEW_SALARY();
int percent= 0;
int i;
for(i =0 ;i<100 ; i++)
{ employees[i]=EMPLOYEE();
employees[i].enter_values();
employees[i].name;
employees[i].salary;
employees[i].output_values();
cout<<"How much should the salary be raised by?"<<endl;
cin>>percent;
cout<<EMPLOYEE.name<<"'s new salary is "<<percentage_raise<<endl;
}
}
但是,我无法访问我需要将信息存储到主函数中的数组的部分,也无法在程序提示用户时应用百分比提升。 我很确定我有我不知道的语法错误。我不是要求有人为我做所有事情,但我希望能引导我朝着正确的方向前进。我不太了解类以及如何将它们调用到程序的不同部分。感谢您的宝贵时间。
【问题讨论】:
-
我会避免使用全大写标识符,它们通常用于预处理器定义,即我怀疑
EMPLOYEE会扩展为某些代码。
标签: c++ arrays class object constructor