C++基于控制台和类对象的公司职员管理系统



1.添加员工(若不存在则添加, 存在则提示添加失败)



2.查找员工


3.输出所有员工


4.删除单个员工后输出所有员工和退出操作


代码:

#include <iostream>
#include <iomanip>
using namespace std;

const int MAXN = 2e2 + 10;

void put_welcome(int mode)		//输出欢迎界面 
{
	if(mode == 0)
	{
		cout<<"	**-----------------------------------**"<<endl;
		cout<<"	*                                     *"<<endl;
		cout<<"	|     欢迎进入公司职员信息管理系统    |"<<endl;
		cout<<"	|                                     |"<<endl;
		cout<<"	|             By 张峻溥               |"<<endl;
		cout<<"	|                                     |"<<endl;
		cout<<"	*                                     *"<<endl;
		cout<<"	**-----------------------------------**"<<endl;
	}
	
	else if(mode == 1)
	{
		cout<<endl<<"请选择您的操作:"<<endl<<endl;
		cout<<"		1 增加职工信息"<<endl;
		cout<<"		2 查找职工信息"<<endl;
		cout<<"		3 显示所有职工信息"<<endl;
		cout<<"		4 删除职工信息"<<endl;
		cout<<"		0 退出"<<endl<<endl;
		cout<<"请输入序号 0 - 4:"<<endl;
	}
	
	else if(mode == -1)
	{
		cout<<endl<<"输入错误, 请重新输入。"<<endl<<endl;
	}
}

class set_staff		//员工类 
{
public:
    string name; 	//姓名
    int num;		//职员号
    int wage;		//工资
    string pos;		//职位
    set_staff()		//构造函数 
    {
        name = "unkown";
        num = -1;
        wage = -1;
        pos = "unkown";
    }
}arr[MAXN];

class set_company	//公司类 
{
public:
    int flag;
    set_staff *add[MAXN];
    void init();
    bool oprt();
    
};

void set_company::init()	//初始化员工指针数组 
{
	for(int i = 0; i < MAXN; i++)
	{
		add[i] = &arr[i];
	}
}

bool set_company::oprt()	//公司类的操作函数 
{
    set_staff unit;
    put_welcome(1);
    int mode;
    bool here;
    cin>>mode;
    switch(mode)
    {
        case(0):			//退出 
            return false;
        case(1):			//添加员工 
    	{
    		cout<<"请输入职工姓名:";
            	cin>>unit.name;
			cout<<"请输入职工号:";
				cin>>unit.num;
			cout<<"请输入职工工资:";
				cin>>unit.wage;
			cout<<"请输入职工职位:";
				cin>>unit.pos;
			here = false;					//查重 
			for(int i = 0; i < MAXN; i++)
			{
				if((*add[i]).num == unit.num)	 
				{
					here = true;
					break;
				}
			}
			if(!here)						//不存在,添加 
			{
				cout<<endl<<"添加成功!"<<endl;
				arr[flag++] = unit;	
			}
			else							//存在, 不添加 
			{
				cout<<endl<<"该职工已经存在,添加不成功。"<<endl;
			}
            break;
		}
        case(2):							//查找单个员工 
        {
        	cout<<"请输入要查找的员工编号:"<<endl;
            cin>>unit.num;
            here = false;
            for(int i = 0; i < MAXN; i++)	//查找是否存在 
            {
                if((*add[i]).num == unit.num)
                {
                    cout<<"查找成功,该员工存在!"<<endl<<endl;
                    cout<<"-------------------------------------------------------------"<<endl;
                    cout<<left<<setw(10)<<"姓名"<<setw(10)<<"编号"<<setw(10)<<"工资"<<setw(10)<<"职位"
					<<setw(10)<<endl<<setw(10)<<(*add[i]).name<<setw(10)<<(*add[i]).num<<setw(10)<<
					(*add[i]).wage<<setw(10)<<(*add[i]).pos<<setw(10)<<endl;
					cout<<"-------------------------------------------------------------"<<endl<<endl;
        			here = true;
                }
            }
            if(!here)
            	cout<<"查找失败,该员工不存在!"<<endl;
            break;
        }
        case(3):						//输出所有不为初值的员工单元 
        {
        	for(int i = 0; i < MAXN; i++)
        	{
        		if((*add[i]).num != -1)
        		{
        			cout<<"-------------------------------------------------------------"<<endl;
                    cout<<left<<setw(10)<<"姓名"<<setw(10)<<"编号"<<setw(10)<<"工资"<<setw(10)<<"职位"
					<<setw(10)<<endl<<setw(10)<<(*add[i]).name<<setw(10)<<(*add[i]).num<<setw(10)<<
					(*add[i]).wage<<setw(10)<<(*add[i]).pos<<setw(10)<<endl;
					cout<<"-------------------------------------------------------------"<<endl<<endl;
				}
			}
			break;
        }
        case(4):						//删除员工 
        {
        	int tmp;
        	cout<<"请输入要删除的职工号:";
        	cin>>tmp;
        	for(int i = 0; i < MAXN; i++)
        	{
        		if((*add[i]).num == tmp)
        		{
        			(*add[i]).num = -1;		//若存在, 将该员工删除(赋初值) 
        			cout<<endl<<"删除成功"<<endl; 
        			break;
				}
			}
			break;
        }
        default:							//范围错误 
        {
        	put_welcome(-1);
        	break;
		}
	}
	return true;
}

int main()
{
    set_company nynu;
    nynu.flag = 0;
    nynu.init();
    put_welcome(0);
    while( nynu.oprt() );//循环输入, 直至退出 
    return 0;
}
#include <iostream>
#include <iomanip>
using namespace std;
const int MAXN = 2e2 + 10;
void put_welcome(int mode)		//输出欢迎界面 
{
	if(mode == 0)
	{
		cout<<"	**-----------------------------------**"<<endl;
		cout<<"	*                                     *"<<endl;
		cout<<"	|     欢迎进入公司职员信息管理系统    |"<<endl;
		cout<<"	|                                     |"<<endl;
		cout<<"	|             By 张峻溥               |"<<endl;
		cout<<"	|                                     |"<<endl;
		cout<<"	*                                     *"<<endl;
		cout<<"	**-----------------------------------**"<<endl;
	}
	else if(mode == 1)
	{
		cout<<endl<<"请选择您的操作:"<<endl<<endl;
		cout<<"		1 增加职工信息"<<endl;
		cout<<"		2 查找职工信息"<<endl;
		cout<<"		3 显示所有职工信息"<<endl;
		cout<<"		4 删除职工信息"<<endl;
		cout<<"		0 退出"<<endl<<endl;
		cout<<"请输入序号 0 - 4:"<<endl;
	}
	else if(mode == -1)
	{
		cout<<endl<<"输入错误, 请重新输入。"<<endl<<endl;
	}
}
class set_staff		//员工类 
{
public:
    string name; 	//姓名
    int num;		//职员号
    int wage;		//工资
    string pos;		//职位
    set_staff()		//构造函数 
    {
        name = "unkown";
        num = -1;
        wage = -1;
        pos = "unkown";
    }
}arr[MAXN];
class set_company	//公司类 
{
public:
    int flag;
    set_staff *add[MAXN];
    void init();
    bool oprt();
    
};
void set_company::init()	//初始化员工指针数组 
{
	for(int i = 0; i < MAXN; i++)
	{
		add[i] = &arr[i];
	}
}
bool set_company::oprt()	//公司类的操作函数 
{
    set_staff unit;
    put_welcome(1);
    int mode;
    bool here;
    cin>>mode;
    switch(mode)
    {
        case(0):			//退出 
            return false;
        case(1):			//添加员工 
    	{
    		cout<<"请输入职工姓名:";
            	cin>>unit.name;
			cout<<"请输入职工号:";
				cin>>unit.num;
			cout<<"请输入职工工资:";
				cin>>unit.wage;
			cout<<"请输入职工职位:";
				cin>>unit.pos;
			here = false;					//查重 
			for(int i = 0; i < MAXN; i++)
			{
				if((*add[i]).num == unit.num)	 
				{
					here = true;
					break;
				}
			}
			if(!here)						//不存在,添加 
			{
				cout<<endl<<"添加成功!"<<endl;
				arr[flag++] = unit;	
			}
			else							//存在, 不添加 
			{
				cout<<endl<<"该职工已经存在,添加不成功。"<<endl;
			}
            break;
		}
        case(2):							//查找单个员工 
        {
        	cout<<"请输入要查找的员工编号:"<<endl;
            cin>>unit.num;
            here = false;
            for(int i = 0; i < MAXN; i++)	//查找是否存在 
            {
                if((*add[i]).num == unit.num)
                {
                    cout<<"查找成功,该员工存在!"<<endl<<endl;
                    cout<<"-------------------------------------------------------------"<<endl;
                    cout<<left<<setw(10)<<"姓名"<<setw(10)<<"编号"<<setw(10)
					<<"工资"<<setw(10)<<"职位"
					<<setw(10)<<endl<<setw(10)<<(*add[i]).name<<setw(10)
					<<(*add[i]).num<<setw(10)<<
					(*add[i]).wage<<setw(10)<<(*add[i]).pos<<setw(10)<<endl;
					cout<<"-------------------------------------------------------------"<<endl<<endl;
        			here = true;
                }
            }
            if(!here)
            	cout<<"查找失败,该员工不存在!"<<endl;
            break;
        }
        case(3):						//输出所有不为初值的员工单元 
        {
        	for(int i = 0; i < MAXN; i++)
        	{
        		if((*add[i]).num != -1)
        		{
        			cout<<"-------------------------------------------------------------"<<endl;
                    cout<<left<<setw(10)<<"姓名"<<setw(10)<<"编号"<<setw(10)
					<<"工资"<<setw(10)<<"职位"
					<<setw(10)<<endl<<setw(10)<<(*add[i]).name<<setw(10)
					<<(*add[i]).num<<setw(10)<<
					(*add[i]).wage<<setw(10)<<(*add[i]).pos<<setw(10)<<endl;
					cout<<"-------------------------------------------------------------"<<endl<<endl;
				}
			}
			break;
        }
        case(4):						//删除员工 
        {
        	int tmp;
        	cout<<"请输入要删除的职工号:";
        	cin>>tmp;
        	for(int i = 0; i < MAXN; i++)
        	{
        		if((*add[i]).num == tmp)
        		{
        			(*add[i]).num = -1;		//若存在, 将该员工删除(赋初值) 
        			cout<<endl<<"删除成功"<<endl; 
        			break;
				}
			}
			break;
        }
        default:							//范围错误 
        {
        	put_welcome(-1);
        	break;
		}
	}
	return true;
}
int main()
{
    set_company nynu;
    nynu.flag = 0;
    nynu.init();
    put_welcome(0);
    while( nynu.oprt() );//循环输入, 直至退出 
    return 0;
}


原文地址:https://www.cnblogs.com/zeolim/p/12270629.html