Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;赋值在if语句中不起作用_C++_Arrays - Fatal编程技术网

C++ c++;赋值在if语句中不起作用

C++ c++;赋值在if语句中不起作用,c++,arrays,C++,Arrays,您好,我正在使用两个数组为指定员工创建工资单。一个用于保存员工详细信息,另一个用于所需的计算。具有高级身份的员工与初级成员支付不同的税费和租金。我尝试在for循环中使用条件来使用条件分配不同的租金和税收值,但是下级(后者else if)超过了条件,并且条件不能正常工作。 这是我的密码 #include<iostream> #include<string> #include<iomanip> using namespace std; int main() {

您好,我正在使用两个数组为指定员工创建工资单。一个用于保存员工详细信息,另一个用于所需的计算。具有高级身份的员工与初级成员支付不同的税费和租金。我尝试在for循环中使用条件来使用条件分配不同的租金和税收值,但是下级(后者else if)超过了条件,并且条件不能正常工作。 这是我的密码

#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);