• 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;
    }


  • 相关阅读:
    AHP
    常用积分公式
    关于纸张尺寸和照片尺寸
    学历学位知多少?
    C++ 类型转换的实现
    CDDIS网站下 GNSS 相关的数据产品下载+命名方式解读+文件格式说明文件下载地址
    windows 获取pc信息
    shell 数组操作
    net use远程重启服务器
    获取邮箱使用情况、以及最后一次logon时间
  • 原文地址:https://www.cnblogs.com/zeolim/p/12270629.html
Copyright © 2020-2023  润新知