设计对象:职工
对象属性:姓名、职工号、性别、年龄、所在部门、联系方式、职工号、完成的产品数量。
实现功能:
(1)添加功能:程序能够添加职工的记录和工作量,可提供选择界面供用户选择所要添加
的类别,要求职工的编号要唯一,如果添加了重复职工号的职工记录时,则提示数据添加重
复并取消添加。
(2)查询功能:可根据职工号、姓名等信息对已添加的职工记录进行查询。还可以按职工
号对工作量进行查询。如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信
息。
(3)显示功能:可显示当前系统中所有职工记录和工作量统计信息,每条记录占据一行。
(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。
(5)删除功能:主要实现对已添加的人员记录进行删除和工作量进行删除。如果当前系统
中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编
号,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存
在。
(6)统计功能:对职工可按工作量进行统计,并排名次。可将职工信息按照职工号或者完成的产品数量进行相应的排序,以及升序降序任选。
(7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。
(8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。
(3.1)类:worker类,Dy_arr类
(3.2)数据成员:string w_name;
int w_id;
int w_age;
string w_gender;
string w_department;
long long w_contact;//联系方式
int w_number;//完成产品的数量
T* parr;
int m_Capacity;
int m_Size;
worker(string name, int id,string gender,int age, string department, long long contact, int number)//创建对象——职工
void Push_back(const T& val)//尾插法,添加数据
void Pop_back()//尾删法。删除选定的数据
Dy_arr(const Dy_arr& arr)//深拷贝,改变新数组的时候,不改变原数组
T& operator[](int index)//通过下标访问
Dy_arr& operator=(const Dy_arr& arr) //operator深拷贝
void input(Dy_arr<worker>& arr)//输入
void query(Dy_arr<worker>& arr)//查询
void display(Dy_arr<worker>& arr)//显示
void modify(Dy_arr<worker>& arr)//编辑
void strike(Dy_arr<worker>& arr) //删除信息
void count(Dy_arr<worker>& arr) //排序
void save(Dy_arr<worker>& arr) //写入文档
void init_Emp(Dy_arr<worker>& arr) //读取文档数据
部分代码
尾插法
void Push_back(const T& val) {
if (this->m_Capacity == this->m_Size) {
return;
}
this->parr[this->m_Size] = val;
this->m_Size++;
}
尾删法
void Pop_back() {//用户无法访问最后一个元素,逻辑删除
if (this->m_Size = 0)
return 0;
this->m_Size--;
}
深拷贝
Dy_arr(const Dy_arr& arr) {
this->m_Capacity = arr.m_Capacity;
this->m_Size = arr.m_Size;
this->parr = new T[arr.m_Capacity];
for (int i = 0; i < this->m_Size; i++) {//拷贝原有数据
this->parr[i] = arr.parr[i];
}
}
完整代码和word请私聊我