忘川睡着了zZ 2023-02-08 19:32 采纳率: 66.7%
浏览 12
已结题

做个职工管理系统有错误找不到


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

class worker;
        class Boss;
void header()
{
    cout << "编号\t"<<"姓名\t" <<"岗位\t"<<"\t职责"<<endl;
}

class workermanager
{
    public:
        workermanager()
        {
            m_Empnum=0;
            m_Emparray=NULL;
        }
        void show_menu()//显示功能函数
        {
            cout << "\t**************************" << endl;
            cout << "\t***欢迎使用职工管理系统***"<< endl;
            cout << "\t******0.退出管理系统******"<< endl;
            cout << "\t******1.增加职工信息******"<< endl;
            cout << "\t******2.显示职工信息******"<< endl;
            cout << "\t******3.删除职工信息******"<< endl;
            cout << "\t******4.修改职工信息******"<< endl;
            cout << "\t******5.查找职工信息******"<< endl;
            cout << "\t******6.按照编号排序******"<< endl;
            cout << "\t******7.清空所有文档******"<< endl;
            cout << "\t**************************"<< endl;
        }
        void exitsystem()
        {
            cout << "\t欢迎下次使用"<< endl;
           // system("pause");
            exit(0);
        }
        void add_emp()
        {
            cout << "请输入添加职工数量:";
            int addnum=0;
            cin >> addnum;
            if(addnum>0)
            {
                int newsize=this->m_Empnum+addnum;
                worker ** newspace=new worker*[newsize];
                if(this->m_Emparray!=NULL)
                {
                    for(int i = 0;i < m_Empnum;i++) 
                    {
                        newspace[i]=this->m_Emparray[i];
                    }
                }
                for(int i = 0;i <addnum ;i++) 
                {
                    int id;
                    string name;
                    int Deptid;
                    cout << "请输入第"<< i+1<<"个职工编号";
                    cin >> id;
                    cout << "请输入第"<< i+1<<"个职工姓名";
                    cin >> name;
                    cout<<"请输入第"<<i+1<<"个职工岗位";
                    cout << "1.普通职工"<< endl;
                    cout << "2.经理"<< endl;
                    cout << "3.老板"<< endl;
                    cin >> Deptid;
                    
                  /*  worker * wr=NULL;
                    switch(Deptid)
                    {
                        case 1:
                       wr=new Employaa();
                        break;
                        case 2:
                        wr=new manager(id,name,2);
                        break;
                        case 3:
                        wr=new Boss(id,name,3);
                        break;
                    }
                    newspaper[this->m_Empnum+i]=wr;
                    delete[] this->m_Emparray[i];
                    m_Emparray=newspace;*/
                    worker *w=NULL;
                  w=new  Boss(1,"张三",1);
                }
            }else 
            {
                cout << "数量有误"<< endl;
                return;
            }
        }
        int m_Empnum;
        worker** m_Emparray;
        ~workermanager(){};
            
};
class worker//员工抽象类
{
    public:
        virtual  void showinf()=0;//显示个人信息
        virtual string getDeptName()=0;//获取岗位名称
        int m_id;//职工编号
        string m_name;//职工姓名
        int m_Deptid;//职工所在岗位编号
};
class Employaa:public worker
{
    public:
    Employaa(int id,string name,int Deptid)
    {
        m_name=name;
        m_id=id;
        m_Deptid=Deptid;
    }
    void showinf()
    {
        cout<<m_id<<m_name<<this->getDeptName()<<endl;
    }
    string getDeptName()
    {
        return string("员工");
    }
};
class manager:public worker
{
    public:
        manager(int id,string name,int Deptid)
        {
            m_id=id;
            m_name=name;
            m_Deptid=Deptid;
        }
        void showinf()
        {
            cout<<m_id<<m_name<<this->getDeptName()<<endl;
        }
        string getDeptName()
        {
            return string("经理");
        }
};
class Boss:public worker
{
    public:
        Boss(int id,string name,int Deptid)
        {
            m_id=id;
            m_name=name;
            m_Deptid=Deptid;
        }
        void showinf()
        {
            cout<<m_id<<m_name<<this->getDeptName()<<endl;
        }
        string getDeptName()
        {
            return string("老板");
        }
};

int main() 
{
    workermanager wm;
    int choice=0;
    wm.show_menu();
    while(1)
    {    
        cout<<"请选择操作:";
        cin >> choice;
            switch(choice)
            {
                case 0:
                {
                    wm.exitsystem();
                    break ;
                }
                case 1:
                {
                    break;
                };
                case 2:
                {
                    header();
                    break;
                };
                case 3:
                {
                    break;
                };
                case 4:
                {
                    break;
                };
                ca
  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-02-08 22:42
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月25日
  • 已采纳回答 2月17日
  • 创建了问题 2月8日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改