资源简介
学校教职工信息表
设计要求:
设计要求实现如下功能:
(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版
相关资源
- nozzle.cpp
- C++删除指定文件夹下N天及之前日志文
- C++实现简易文本编辑器
- 使用C++实现迷宫游戏
- C++实现银行排队系统
- linux环境下模拟实现简单命令解释器
- stdafx.h头文件
- VC++串口操作的代码及文档
- C++课程设计影碟出租管理
- Visual c++ 网络编程 郑阿奇
- 银行家算法源程序包含C语言+C++两种代
- 吕鑫VS2015之C.C++.MFC完整视频
- C++图书管理系统 C++图书管理系统
- VC++病毒编程入门
- PBIL算法源代码C++
- c++ 屏幕截图源程序,这个截图程序思
- C++ Builder利用PDFLib生成PDF文档
- ICP算法源代码拿走不谢
- c++编写的傅里叶变换FFT程序
- 元胞自动机的NS模型
- 基于SOCKET的文件传输服务端+客户端
- 多边形填充的扫描线c++算法
- VS与串口通信
- 美国Delta Tau公司PMAC多轴运动控制卡的
- c++实现决策树分类算法(内附测试数
- C++ Primer 第五版 中文版 带书签 百度云
- c++代码生成器
- C#加载C++\\C的DLL动态链接库
- c++小游戏五子棋,带AI
- Raize Components 6.1.12 for C++builder XE10的安
评论
共有 条评论