0

クラスの割り当てのために、クラス定義を書かなければなりません。それは Employee クラスと呼ばれ、私の最初の C++ クラスにとって非常に基本的なものです。

私の問題は、新しいパーセンテージに基づいて給与を調整しようとする最初の forloop にあります。その後、クラス内の変数は変更されません。もう何が悪いのかわかりません。

コードは次のとおりです。

#include <iostream>
#include <string>

using namespace std;


class Employee
{
private:
    int emplSalary;
    string employeeName;

public:
    Employee();
    Employee(string name,int salary);
    string getName();
    int getSalary();
    void newSalary(int percent); 
    void input();
    void output();
};
Employee::Employee()
{
    emplSalary=0;
    employeeName="";
}
Employee::Employee(string name,int sal)
{
    employeeName=name;
    emplSalary =sal;
}
string Employee::getName()
{
    return employeeName;
}
int Employee::getSalary()
{
    return emplSalary;
}
void Employee::newSalary(int percent)
{

    emplSalary= emplSalary *(1+(percent/100));
    cout<<"I calculated"<<endl;
    /*
    if(percent < 0) 
    {
        cout<<"Invalid Percentage";
        cout<<"I calculated"<<endl;
    }
    else
    {
        emplSalary= emplSalary *(1+(percent/100));
        cout<<"I calculated"<<endl;
    }
    */
}
void Employee::input()
{
    cout << "Enter Name: "; 
        cin>> employeeName;
        cout<<"\n";
        cout<<"Enter Salary: " ;
        cin>>emplSalary;
        cout<<"\n";
}
void Employee::output()
{
    cout << "Name: " << employeeName <<" : "<< "Salary: " << emplSalary << endl;
    cout<<"\n";
}


int main()
{
    const int NUMBER_EMPLOYEE =1;
    Employee employees[NUMBER_EMPLOYEE];
    int percent;
    cout<<"Welcome to Employee program. Enter Name and Salary when prompted."<<endl;
    cout<<"\n";
    cout<<"\n";


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

        employees[i]=Employee();
        employees[i].input();
        cout<<"What percentage to raise the salary: ";
        cin>>percent;
        employees[i].newSalary(percent);
    }
    for (int i=0; i<NUMBER_EMPLOYEE; i++)
    {
        employees[i].output();
    }


    return EXIT_SUCCESS;
}

出力は次のとおりです。

Welcome to Employee program. Enter Name and Salary when prompted.


Enter Name: 
Enter Salary: 
What percentage to raise the salary: I calculated
Name:  : Salary: 0
4

4 に答える 4