• 职工管理系统-------添加职工


    用户在批量创建时,可能会创建不同种类的职工

    如果想这样所有不同种类的员工都放入到一个数组种,可以将所有员工的指针维护到一个数组内,

    如果想在程序中维护这个不定长度的数组,可以将数组创建到堆区,并lion给worker**的指针维护

    workermanager.cpp

        //记录职工人数
        int m_EmpNum;
        //职工数组指针
        worker ** m_EmpArray;
        //添加职工函数
        void Add_Emp();

     在构造函数中实现函数

    //增加员工信息
    void workManager::Add_Emp() {
        cout << "请输入添加职工的数量:" << endl;
        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 < this->m_EmpNum; i++) {
                    newSpace[i] = this->m_EmpArray[i];
                }
                //批量添加新数据
            }
            for (int i = 0; i < addNum; i++) {
                int id;//职工编号
                string name;//职工姓名
                int dSelect;//部门选择
                cout << "请输入第" << i + 1 << "个新职工编号:" << endl;
                cin >> id;
                cout<< "请输入第" << i + 1 << "个新职工姓名:" << endl;
                cin >> name;
                cout << "请选择改职工岗位:" << endl;
                cout << "1.普通员工" << endl;
                cout << "2.经理" << endl;
                cout << "3.老板" << endl;
                cin >> dSelect;
                worker *worker = NULL;
                switch (dSelect)
                {
                case 1:
                    worker = new Employee(id, name, 1);
                    break;
                case 2:
                    worker = new Manager(id, name, 2);
                    break;
                case 3:
                    worker = new Boos(id, name, 3);
                    break;
    
                default:
                    break;
                }
                //将创建职工职责,保持到数组中
                newSpace[this->m_EmpNum + i] = worker;
            }
            //释放原有的空间
            delete[]this->m_EmpArray;
            //更改新空间的指向
            this->m_EmpArray = newSpace;
            //更新新员工人数
            this->m_EmpNum = newSize;
            //提示添加成功
            cout << "成功添加" << addNum << "名职工~~" << endl;
    
            system("pause");
            system("cls");
        }
        else
        {
            cout << "输入数据有误~" << endl;
        }
    
    }
    昨夜西风凋碧树,独上高楼,望尽天涯路 衣带渐宽终不悔,为伊消得人憔悴 众里寻他千百度。蓦然回首,那人却在,灯火阑珊处
  • 相关阅读:
    排序之插入排序
    swfupload在chrome中点击上传图片按钮无反应的解决办法
    ASP.NET网站限制访问频率
    SQL 合并列值和拆分列值
    替换字符串第一次出现的某个字符
    HttpWebResponse远程服务器返回错误: (500) 内部服务器错误
    撒列实现关键字过虑
    sql关键字过滤C#方法
    WebRequest 对象的使用
    Request 分别获取具有相同 name 属性表单元素值
  • 原文地址:https://www.cnblogs.com/X404/p/14619563.html
Copyright © 2020-2023  润新知