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

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

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

如果想在程序中维护这个不定长度的数组,可以将数组创建到堆区,并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;
    }

}
昨夜西风凋碧树,独上高楼,望尽天涯路 衣带渐宽终不悔,为伊消得人憔悴 众里寻他千百度。蓦然回首,那人却在,灯火阑珊处
原文地址:https://www.cnblogs.com/X404/p/14619563.html