⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menu.h

📁 用C++实现的一个职工工资管理系统
💻 H
📖 第 1 页 / 共 4 页
字号:
    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 + -