资源简介
学校教职工信息表
设计要求:
设计要求实现如下功能:
(1)建立职工信息数据,包括职工号、姓名、性别、工资、出生时间、参加工作时间和年龄(必须计算得到)。
(2)根据职工信息表,建立只含有姓名和年龄的职工信息简表。
(3)使用继承的方法构造3个类,(即雇员类——虚基类,教师类和工人类——派生类)使用相应的对象放置10个(或以上)职工信息。
(4)编写同名display()成员函数,用来输出数组的内容。
(5)按不同类别输出职工信息,比如按系输出教师信息。
(6)要求对“<<”和“>>”运算符进行重载。考虑到输人职工编号时,也会因不小心引人空格,而且名字中也需要有空格,所以重载“>>’’运算符时,需要满足这个要求。
(7)抽取并计算职工的平均年龄。
(8)检索(查找)指定信息。(如按姓名检索、按年龄检索)
(9)显示各年龄段分布的情况
(10)参考界面如下:
增加 (一位教师记录 、增加一位工人记录)
计算 (教师平均年龄、计算工人平均年龄)
删除 (一个教师、删除一个工人)
显示 (全部职工记录、按系输出教师信息)
检索 (按姓名检索所有信息 按按职工号检索所有信息)
结束程序运行

代码片段和文件信息
#include
#include
#include
#include
#define cutline cout<<“* * * * * * * * * * * * * * * * * * * * * * * * * * * *“< using namespace std;
const int maxsize = 100;
class Time{
public:
int year;
int month;
int day;
};
class base{
//此类为基类,是所有员工共有的属性。
public:
char name[20];
Time birth_day;
char sex[10];
int age;
int id;
int paid;
Time work_time;
char xibie[20];
friend istream& operator>>(istream& isbase& b);
friend ostream& operator<<(ostream& obase& b);
friend int operator-(Time & t1Time & t2);
};
class employee:virtual public base {
//雇员类
public:
employee();
virtual void add(base &b); //添加一个成员
virtual void display(); //输出数组的内容
virtual void cal();//计算平均年龄
virtual void del(int id);//删除一个成员
virtual void Find(char name[]);//按姓名检索
virtual void Find(int id);//按工号检索
protected:
base data[maxsize];
Time now;
int length;
};
employee Allworker;
void employee::add(base &b){
data[length++] = b;
}
void employee::display(){
if(length == 0){
cout << endl;
cout << “无任何职工信息“ < return;
}
cout<<“* * * * * * * * *全体职工信息* * * * * * * * * *“< for(int i = 0;i < length;i++)
cout << data[i];
}
void employee::cal(){
if(length == 0){
cout << endl;
cout << “无任何职工信息“ < return;
}
int sum = 0;
for(int i = 0;i < length;i++)
sum+=data[i].age;
cout << endl;
cout << “全体职工平均年龄为:“ << sum/length << endl;
}
void employee::del(int id){
bool flag = false;
int i;
for(i = 0;i < length;i++)
if(data[i].id == id){
flag = true;
break;
}
for(;i < length-1;i++) data[i] = data[i+1];
length--;
if(flag) cout << “id为“< else cout<<“未发现id为“< }
void employee::Find(char name[]){
int i;
for( i = 0;i < length;i++)
if(strcmp(data[i].namename) == 0){
cout << data[i];
break;
}
if(i == length) cout<<“未找到姓名为“ << name << “的职工“< }
void employee::Find(int id){
int i;
for( i =0;i < length;i++)
if(data[i].id == id){
cout << data[i];
break;
}
if(i == length) cout<<“未找到工号为“ << id << “的职工“< }
employee::employee(){
length=0;
now.year=2018;
now.month=6;
now.day=5;
}
class teacher:virtual employee{
public:
void add();
void display();
void cal();
void del(int id);
};
void teacher::add(){
cin >> data[length];
Allworker.add(data[length]);
length++;
}
void teacher::display(){
if(length == 0){
cout << endl;
cout << “无任何职工信息“ < return;
}
cout<<“* * * * * * * * *教师信息* * * * * * * * * *“< for(int i = 0;i < length;i++)
cout << data[i];
}
void teacher::cal(){
if(length == 0){
cout << endl;
cout << “无任何职工信息“ < return;
}
int sum = 0;
for(int i = 0;i < length;i++)
sum+=data[i].age;
co
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7293 2018-06-05 19:12 教职工信息管理系统\教职工信息管理系统.cpp
文件 130005 2018-06-05 19:14 教职工信息管理系统\教职工信息管理系统.exe
文件 60 2018-06-05 19:17 教职工信息管理系统\新建文本文档.txt
目录 0 2018-06-05 19:16 教职工信息管理系统\
- 上一篇:电子琴.zip
- 下一篇:TCP/IP聊天室群聊MFC版
相关资源
- 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)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
评论
共有 条评论