📄 menu.h
字号:
system("cls");
}
return 1;
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//按实得工资由高到低排序
bool lessThanSala( InforNode one, InforNode another )
{
return one.salary.getGetSalary() > another.salary.getGetSalary();
}
void sort_salary()
{
cout << " 按全公司的实得工资由高到底排序: "<<endl;
vector <InforNode> vecSalary;
for( iter = myList.begin(); iter != myList.end();iter++ )
{
vecSalary.push_back( *iter );
}
sort(vecSalary.begin(),vecSalary.end(),lessThanSala );
// 排序完成
//显示新链表中的节点信息,按工资顺序
for(int i = 0; i < vecSalary.size() ; i++)
{
vecSalary[i].employee.lookup();
// vecSalary[i].deducted.lookup();
// vecSalary[i].salaryinfo.lookup();
vecSalary[i].salary.lookup();
cout<<"*****************************************************"<<endl;
cout<<"*****************************************************"<<endl;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//按职务工资由高到低排序
bool lessThanPosSala( InforNode one, InforNode another )
{
return one.salaryinfo.getPostionSalary() > another.salaryinfo.getPostionSalary();
}
void sort_posSalary()
{
cout << " 按全公司的职务工资由高到底排序: "<<endl;
vector <InforNode> vecPosSalary;
for( iter = myList.begin(); iter != myList.end();iter++ )
{
vecPosSalary.push_back( *iter );
}
sort(vecPosSalary.begin(),vecPosSalary.end(),lessThanPosSala );
// 排序完成
//显示新链表中的节点信息,按工资顺序
for(int i = 0; i < vecPosSalary.size() ; i++)
{
vecPosSalary[i].employee.lookup();
// vecPosSalary[i].deducted.lookup();
vecPosSalary[i].salaryinfo.lookup();
// vecPosSalary[i].salary.lookup();
cout<<"*****************************************************"<<endl;
cout<<"*****************************************************"<<endl;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//按扣除费用由高到低排序
bool lessThanDeduSala( InforNode one, InforNode another )
{
return one.salary.getSumFee( one.deducted ) > another.salary.getSumFee( another.deducted );
}
void sort_deduSalary()
{
cout << " 按全公司的实得工资由高到底排序: "<<endl;
vector <InforNode> vecDeduSalary;
for( iter = myList.begin(); iter != myList.end();iter++ )
{
vecDeduSalary.push_back( *iter );
}
sort(vecDeduSalary.begin(),vecDeduSalary.end(),lessThanDeduSala );
// 排序完成
//显示新链表中的节点信息,按工资顺序
for(int i = 0; i < vecDeduSalary.size() ; i++)
{
vecDeduSalary[i].employee.lookup();
vecDeduSalary[i].deducted.lookup();
// vecDeduSalary[i].salaryinfo.lookup();
// vecDeduSalary[i].salary.lookup();
cout<<"*****************************************************"<<endl;
cout<<"*****************************************************"<<endl;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//按税收由高到低排序
bool lessThanTax( InforNode one, InforNode another )
{
return one.salary.getTax() > another.salary.getTax();
}
void sort_tax()
{
cout << " 按全公司的交税信息由高到底排序: "<<endl;
vector <InforNode> vecTaxSalary;
for( iter = myList.begin(); iter != myList.end();iter++ )
{
vecTaxSalary.push_back( *iter );
}
sort(vecTaxSalary.begin(),vecTaxSalary.end(),lessThanTax );
// 排序完成
//显示新链表中的节点信息,按工资顺序
for(int i = 0; i < vecTaxSalary.size() ; i++)
{
vecTaxSalary[i].employee.lookup();
// vecTaxSalary[i].deducted.lookup();
// vecTaxSalary[i].salaryinfo.lookup();
vecTaxSalary[i].salary.lookup();
cout<<"*****************************************************"<<endl;
cout<<"*****************************************************"<<endl;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//按姓名排序
bool lessThanName( InforNode one, InforNode another )
{
return one.employee.getName() < another.employee.getName();
}
void sort_name()
{
cout << " 按全公司的员工姓名排序: "<<endl;
vector <InforNode> vecNameSalary;
for( iter = myList.begin(); iter != myList.end();iter++ )
{
vecNameSalary.push_back( *iter );
}
sort(vecNameSalary.begin(),vecNameSalary.end(),lessThanName );
// 排序完成
//显示新链表中的节点信息,按工资顺序
for(int i = 0; i < vecNameSalary.size() ; i++)
{
vecNameSalary[i].employee.lookup();
// vecNameSalary[i].deducted.lookup();
// vecNameSalary[i].salaryinfo.lookup();
// vecNameSalary[i].salary.lookup();
cout<<"*****************************************************"<<endl;
cout<<"*****************************************************"<<endl;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//按职务ID排序
bool lessThanPos( InforNode one, InforNode another )
{
return one.salaryinfo.getPositionID() < another.salaryinfo.getPositionID();
}
void sort_pos()
{
cout << " 按全公司的员工职务ID排序: "<<endl;
vector <InforNode> vecPos;
for( iter = myList.begin(); iter != myList.end();iter++ )
{
vecPos.push_back( *iter );
}
sort(vecPos.begin(),vecPos.end(),lessThanPos );
// 排序完成
//显示新链表中的节点信息,按工资顺序
for(int i = 0; i < vecPos.size() ; i++)
{
vecPos[i].employee.lookup();
// vecPos[i].deducted.lookup();
vecPos[i].salaryinfo.lookup();
// vecPos[i].salary.lookup();
cout<<"*****************************************************"<<endl;
cout<<"*****************************************************"<<endl;
}
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
int search_name() // 按员工姓名查找
{
string str;
cout<<" ***** 请输入要查找的员工姓名:";
cin >> str;
for(iter = myList.begin(); iter != myList.end();iter++) //遍历链表
{
if( (*iter).employee.getName() == str )
{
(*iter).employee.lookup();
(*iter).deducted.lookup();
(*iter).salaryinfo.lookup();
(*iter).salary.lookup();
return 1;
}
}
cout<<" 没有您要找的姓名 !!! "<<endl;
return 0;
}
int search_salaID() //按工资卡号查找
{
string str;
cout<<" ***** 请输入要查找的员工工资卡号:";
cin >> str;
for(iter = myList.begin(); iter != myList.end();iter++) //遍历链表
{
if( (*iter).employee.getSalaryID() == str )
{
(*iter).employee.lookup();
(*iter).deducted.lookup();
(*iter).salaryinfo.lookup();
(*iter).salary.lookup();
return 1;
}
}
cout<<" 没有您要找的工资卡号 !!! "<<endl;
return 0;
}
int search_ID() //按身份证号查找
{
string str;
cout<<" ***** 请输入要查找的员工身份证号:";
cin >> str;
for(iter = myList.begin(); iter != myList.end();iter++) //遍历链表
{
if( (*iter).employee.getIDCard() == str )
{
(*iter).employee.lookup();
(*iter).deducted.lookup();
(*iter).salaryinfo.lookup();
(*iter).salary.lookup();
return 1;
}
}
cout<<" 没有您要找的身份证号 !!! "<<endl;
return 0;
}
int search_dep() //按公司部门查找
{
string str;
cout<<" ***** 请输入要查找的员工部门:";
cin >> str;
for(iter = myList.begin(); iter != myList.end();iter++) //遍历链表
{
if( (*iter).employee.getDepartment() == str )
{
(*iter).employee.lookup();
(*iter).deducted.lookup();
(*iter).salaryinfo.lookup();
(*iter).salary.lookup();
return 1;
}
}
cout<<" 没有您要找的部门 !!! "<<endl;
return 0;
}
int search_posID() //按职称编号查找
{
string str;
cout<<" ***** 请输入要查找的员工职称编号:";
cin >> str;
for(iter = myList.begin(); iter != myList.end();iter++) //遍历链表
{
if( (*iter).employee.getPosID() == str )
{
(*iter).employee.lookup();
(*iter).deducted.lookup();
(*iter).salaryinfo.lookup();
(*iter).salary.lookup();
return 1;
}
}
cout<<" 没有您要找的职称 !!! "<<endl;
return 0;
}
bool lessThandep( InforNode one, InforNode another )
{
return one.employee.getDepartment() > another.employee.getDepartment();
}
//////////////////////////////////////////////////////////////////////////
int statInfo()// 统计函数
{
int flag = 1;
int i = 0;
vector <InforNode> vecdep,vecSalary, vecDeduSalary, vecPos;
while( flag != 0 )
{
cout<<" ************************************************* "<<endl<<endl;
cout<<" ****** 1. 【统计所有公司员工信息】 ****** "<<endl<<endl;
cout<<" ****** 2. 【统计各部门员工信息】 ****** "<<endl<<endl;
cout<<" ****** 3. 【统计所有员工工资TOP10】 ****** "<<endl<<endl;
cout<<" ****** 4. 【统计所有员工扣除费用TOP10】 ****** "<<endl<<endl;
cout<<" ****** 5. 【统计各职务工资信息】 ****** "<<endl<<endl;
cout<<" ****** 6. 【返回上一级菜单】 ****** "<<endl<<endl;
cout<<" ************************************************ "<<endl<<endl;
char chose;
cin>>chose;
switch(chose)
{
case '1':
system("cls");
for(iter = myList.begin(); iter != myList.end();iter++) //遍历链表
{
(*iter).employee.lookup();
(*iter).deducted.lookup();
(*iter).salaryinfo.lookup();
(*iter).salary.lookup();
}
break;
case '2':
system("cls");
//先按部门排序
for( iter = myList.begin(); iter != myList.end();iter++ )
{
vecdep.push_back( *iter );
}
sort(vecdep.begin(),vecdep.end(),lessThandep );
//显示
cout<<" 工资卡号\t\t姓名\t\t部门"<<endl;
for(i = 0 ; i < vecdep.size(); i++) //遍历向量
{
cout << vecdep[i].employee.getSalaryID()<<"\t\t"<< vecdep[i].employee.getName()
<<"\t\t"<< vecdep[i].employee.getDepartment()<<endl;
}
break;
case '3':
system("cls");
//排序
for( iter = myList.begin(); iter != myList.end();iter++ )
{
vecSalary.push_back( *iter );
}
sort(vecSalary.begin(),vecSalary.end(),lessThanSala );
//显示
cout<<" 工资卡号\t\t姓名\t\t实发工资"<<endl;
if(vecSalary.size() >= 10)
{
for(i = 0 ; i < 10; i++) //遍历向量
{
cout << vecSalary[i].employee.getSalaryID()<<"\t\t"<< vecSalary[i].employee.getName()
<<"\t\t"<<vecSalary[i].salary.getGetSalary()<<endl;
}
}
else
{
for(i = 0 ; i < vecSalary.size();i++)
{
cout << vecSalary[i].employee.getSalaryID()<<"\t\t"<< vecSalary[i].employee.getName()
<<"\t\t"<<vecSalary[i].salary.getGetSalary()<<endl;
}
}
break;
case '4':
system("cls");
//排序
for( iter = myList.begin(); iter != myList.end();iter++ )
{
vecDeduSalary.push_back( *iter );
}
sort(vecDeduSalary.begin(),vecDeduSalary.end(),lessThanDeduSala );
//显示
cout<<" 工资卡号\t\t姓名\t\t扣除费用"<<endl;
if(vecDeduSalary.size() >= 10)
{
for( i = 0 ; i < 10; i++) //遍历向量
{
cout << vecDeduSalary[i].employee.getSalaryID()<<"\t\t"<< vecDeduSalary[i].employee.getName()
<<"\t\t"<<vecDeduSalary[i].salary.getSumFee( vecDeduSalary[i].deducted )<<endl;
}
}
else
{
for( i = 0 ; i < vecDeduSalary.size(); i++) //遍历向量
{
cout << vecDeduSalary[i].employee.getSalaryID()<<"\t\t"<< vecDeduSalary[i].employee.getName()
<<"\t\t"<<vecDeduSalary[i].salary.getSumFee( vecDeduSalary[i].deducted )<<endl;
}
}
break;
case '5':
system("cls");
//先按职务排序
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -