C++ c++;赋值在if语句中不起作用
您好,我正在使用两个数组为指定员工创建工资单。一个用于保存员工详细信息,另一个用于所需的计算。具有高级身份的员工与初级成员支付不同的税费和租金。我尝试在for循环中使用条件来使用条件分配不同的租金和税收值,但是下级(后者else if)超过了条件,并且条件不能正常工作。 这是我的密码C++ c++;赋值在if语句中不起作用,c++,arrays,C++,Arrays,您好,我正在使用两个数组为指定员工创建工资单。一个用于保存员工详细信息,另一个用于所需的计算。具有高级身份的员工与初级成员支付不同的税费和租金。我尝试在for循环中使用条件来使用条件分配不同的租金和税收值,但是下级(后者else if)超过了条件,并且条件不能正常工作。 这是我的密码 #include<iostream> #include<string> #include<iomanip> using namespace std; int main() {
#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
int main()
{
cout<<"\t\t\t\t business application developers association \n";
cout<<" \t\t\t\t\t\t payroll for month ending\n \t\t\t\t\t\t\n\n";
cout<<"employee id\t"<<"name\t"<<"gender\t"<<"department\t"<<"date engaged\t"
<<"status\t"<<"annual gross\t"<<"monthly basic\t"<< "ssnit\t"<<"taxable
income\t"<<"income tax\t"<< "transport\t rent\t"<<" total deduction\t"<< "take home \n";
const int names=14;
const int attributes=6;
string employee[names][attributes]={
{"AB/1001","KOFI","MALE","SOFTWARE","31-AUG-10","SENIOR" },
{"AB/1002","AMA","FEMALE","HARDWARE","31-AUG-10","SENIOR" },
{"AB/1003","AKOS","FEMALE","HARDWARE","31-AUG-10","JUNIOR" },
{"AB/1004","JAMES","MALE","HARDWARE","31-AUG-10","JUNIOR" },
{"AB/1005","JONES","MALE","PRODUCTION","31-AUG-10","SENIOR" },
{"AB/1006","BEAUTY","FEMALE","PRODUCTION","31-AUG-10","JUNIOR" },
{"AB/1007","KWESI","MALE","HARDWARE","31-JUL-12","JUNIOR" },
{"AB/1008","AFI","FEMALE","SOFTWARE","31-JUL-12","JUNIOR" },
{"AB/1009","ROGER","MALE","SOFTWARE","31-JUL-12","SENIOR" },
{"AB/1010","WISDOM","MALE","HARDWARE","31-JUL-12","JUNIOR" },
{"AB/1011","HOPE","MALE","PRODUCTION","31-JUL-12","JUNIOR" },
{"AB/1012","MAGGI","FEMALE","PRODUCTION","31-JUL-12","JUNIOR" },
{"AB/1013","FRED","MALE","HARDWARE","31-JUL-12","SENIOR" },
{"AB/1014","PAT","FEMALE","HARDWARE","31-JUL-12","JUNIOR" },
}
;//end of array initialisation for employees
double wages[11];
for(int a=0;a<=13;a++){
if(employee[a][5]=="SENIOR"){
wages[0]=120000;//annual salary
wages[1]=0.15;//income tax rate
wages[2]=600;//transport allowance
wages[3]=300; //rent
}//end of if
else if(employee[a][5]=="JUNIOR"){
wages[0]=40000;//annual salary
wages[1]=0.10;//income tax rate
wages[2]=300;//transport allowance
wages[3]=150; //rent
}//end of else
wages[4]=wages[0]/12;//monthly basic
wages[5]=wages[4]*0.05;//ssnit employee
wages[6]=wages[4]*0.125;//ssnit employer
wages[7]=wages[4]-wages[6];//taxable income
wages[8]=wages[7]*wages[1];//income tax
wages[9]=wages[5]+wages[8];//total deduction
wages[10]=wages[2]+wages[3];//total allowance
wages[11]=wages[4]+wages[10]-wages[9];//take home
//ready for printing.
}//end of major for loop
for (int m=0;m<=13;m++){
for(int n=0;n<=5;n++){
cout<<employee[m][n]<<"\t";
}
for(int b=0;b<=10;b++){
cout <<wages[b]<<"\t";
}
cout<<endl;
}//end of printing for loop
return 0;
}
#包括
#包括
#包括
使用名称空间std;
int main()
{
cout问题在于您只有一个数组,工资
,用于存储所有员工的信息。因此,当您打印工资
时,您只打印与最后一名员工对应的工资信息
您可以使用以下方法之一解决此问题
计算完工资后,立即在employee循环中打印工资
使用二维数组存储工资,然后像现在一样在末尾打印工资
解决方案1
计算工资并在一个循环中打印
for(int a=0;a<=13;a++){
if(employee[a][5]=="SENIOR"){
wages[0]=120000;//annual salary
wages[1]=0.15;//income tax rate
wages[2]=600;//transport allowance
wages[3]=300; //rent
}//end of if
else if(employee[a][5]=="JUNIOR"){
wages[0]=40000;//annual salary
wages[1]=0.10;//income tax rate
wages[2]=300;//transport allowance
wages[3]=150; //rent
}//end of else
wages[4]=wages[0]/12;//monthly basic
wages[5]=wages[4]*0.05;//ssnit employee
wages[6]=wages[4]*0.125;//ssnit employer
wages[7]=wages[4]-wages[6];//taxable income
wages[8]=wages[7]*wages[1];//income tax
wages[9]=wages[5]+wages[8];//total deduction
wages[10]=wages[2]+wages[3];//total allowance
wages[11]=wages[4]+wages[10]-wages[9];//take home
//ready for printing.
for(int n=0;n<=5;n++){
cout<<employee[a][n]<<"\t";
}
for(int b=0;b<=10;b++){
cout <<wages[b]<<"\t";
}
cout<<endl;
}//end of major for loop
for(inta=0;a您的数据应该这样表示
struct Wages
{
double Salary;
double TaxRate;
double TransportAllowance;
// etc
}
那就有
std::vector<Wages> EmployeeWages();
对员工也一样你到底面临什么问题?我的if条件不起作用。我想使用if条件计算不同的税率和老年人和老年人的租金津贴。但它只给我老年人和老年人的税率和租金津贴。你能详细说明一下吗?另外,这是一种可怕的存储数据的方法工资[0]=工资,工资[1]=tax,…您应该创建一个结构并存储在vector@pglinnaeus,我同意pm100。而且,numberOfEmployees
将比name
更好。
std::vector<Wages> EmployeeWages();
Wages w = new Wages();
if(employee[a][5]=="SENIOR"){
w.Salary=120000;//annual salary
w.Tax=0.15;//income tax rate
w.TransportAllowance=600;//transport allowance
}
// etc
EmployeeWages.push_back(w);