资源简介
设计一个虚基类Staff(员工),包含编号、姓名和年龄保护数据成员以及相关的成员函数;由Staff派生出工程师类Engineer,包含专业和职称保护数据成员以及相关的成员函数;再由Staff派生出领导类Leader,包含职务和部门保护数据成员以及相关的成员函数;然后由Engineer和Leader派生出主任工程师类Chairman。
设计一个利用文件处理方式实现对公司人员(包括工程师、领导和主任工程师)进行管理,具有增加数据、更新数据、查询数据、删除数据以及重组文件的功能

代码片段和文件信息
#include“iostream“
#include“fstream“
using namespace std;
class Staff
{
protected:
char num[10];
char name[10];
int age;
public:
Staff * Next;
void set_staff()
{
cout<<“请输入编号:“;cin>>num;
cout<<“请输入姓名:“;cin>>name;
cout<<“请输入年龄:“;cin>>age;
}
void InputFromFile(istream &in)
{
in>>num>>name>>age;
}
void show()
{
cout<<“编号:“< cout<<“姓名:“< cout<<“年龄:“< }
char *get_num()
{
return num;
}
char *get_name()
{
return name;
}
int get_age()
{
return age;
}
};
class Engineer:virtual public Staff
{
protected:
char major[10];
char t_title[10];
public:
Engineer * Next;
void set_engineer()
{
cout<<“请输入编号:“;cin>>num;
cout<<“请输入姓名:“;cin>>name;
cout<<“请输入年龄:“;cin>>age;
cout<<“请输入专业:“;cin>>major;
cout<<“请输入职称:“;cin>>t_title;
}
void InputFromFile(istream &in)
{
in>>num>>name>>age>>major>>t_title;
}
void show_engineer()
{
cout<<“编号:“< cout<<“姓名:“< cout<<“年龄:“< cout<<“专业:“< cout<<“职称:“<tle< }
char *get_major()
{
return major;
}
char *get_t_title()
{
return t_title;
}
};
class Leader:virtual public Staff
{
protected:
char job[10];
char dept[10];
public:
Leader * Next;
void set_leader()
{
cout<<“请输入编号:“;cin>>num;
cout<<“请输入姓名:“;cin>>name;
cout<<“请输入年龄:“;cin>>age;
cout<<“请输入职务:“;cin>>job;
cout<<“请输入部门:“;cin>>dept;
}
void InputFromFile(istream &in)
{
in>>num>>name>>age>>job>>dept;
}
void show_leader()
{
cout<<“编号:“< cout<<“姓名:“< cout<<“年龄:“< cout<<“职务:“< cout<<“部门:“< }
char *get_job()
{
return job;
}
char *get_dept()
{
return dept;
}
};
class Chairman:public Engineerpublic Leader
{
public:
Chairman * Next;
void set_chairman()
{
cout<<“请输入编号:“;cin>>num;
cout<<“请输入姓名:“;cin>>name;
cout<<“请输入年龄:“;cin>>age;
cout<<“请输入专业:“;cin>>major;
cout<<“请输入职称:“;cin>>t_title;
cout<<“请输入职务:“;cin>>job;
cout<<“请输入部门:“;cin>>dept;
}
void InputFromFile(istream &in)
{
in>>num>>name>>age>>major>>t_title>>job>>dept;
}
void show_chairman()
{
cout<<“编号:“< cout<<“姓名:“< cout<<“年龄:“< cout<<“专业:“< cout<<“职称:“<tle< cout<<“职务:“< cout<<“部门:“< }
};
class StaffChart
{
public:
StaffChart();
~StaffChart();
void find(); //输出单个条目
void save(); //将信息输出到文件
void modifyItem(); //修改Staff条目
void removeItem(); //删除Staff条目
void display() //输出全部条目
{
Staff *p=Head->Next;
for(p;p!=End;p=p->Next)
{
p->show();
cout< }
}
void addItem() //添加条目
{
End->set_staff();
End->Next=new Staff;
End=End->Next;
save();
}
private:
Staff *
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14805 2013-01-05 19:15 C++大作业\lyp.cpp
文件 499718 2013-01-05 19:15 C++大作业\lyp.exe
文件 122368 2013-01-05 19:32 C++大作业\lyp员工管理系统.doc
目录 0 2013-01-05 19:33 C++大作业
----------- --------- ---------- ----- ----
636891 4
- 上一篇:DAA算法 VC++实现 画线
- 下一篇:超牛B的汉字识别
相关资源
- C++头文件转delphi工具 + 源码
- 国际象棋的qt源代码
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
评论
共有 条评论