学校员工管理系统 C++语言(继承、虚函数)

学校C++课程设计,前面是代码,后面是要读取的文件。
//代码
 
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

//CPerson类
class CPerson{
public:
 CPerson(){};
    CPerson(string nm,string pnum,string addr);
    ~CPerson();
    CPerson * next;
    virtual void startMeeting();
private:
    string name;
    string phoneNumber;
    string address;
};
CPerson::CPerson(string nm,string pnum,string addr){
    name = nm;
    phoneNumber = pnum;
    address = addr;
// cout<<"CPerson正在构造..."<<endl;
}
CPerson::~CPerson(){
//    cout<<name<<"CPerson正在析构..."<<endl;
}
void CPerson::startMeeting(){
    cout<<"这是"<<name<<"在开会"<<endl;
    cout<<"电话:"<<phoneNumber<<endl;
    cout<<"地址:"<<address<<endl;
}

//CStudent类
class CStudent:public CPerson{
public:
 CStudent(){};
    CStudent(string nm,string pnum,string addr,string sco):CPerson(nm,pnum,addr){
        score = sco;
//        cout<<"CStudent正在构造..."<<endl;
    }
    ~CStudent();
    CStudent * next;
    virtual void startMeeting();
private:
    string score;
};
CStudent::~CStudent(){
//    cout<<"CStudent 正在析构 "<<endl;
}
void CStudent::startMeeting(){
    CPerson::startMeeting();
    cout<<"分数:"<<score<<endl;
}

//CTeacher类
class CTeacher:public CPerson{
public:
 CTeacher(){};
    CTeacher(string nm,string pnum,string addr,string wg,string couName):CPerson(nm,pnum,addr){
 wage = wg;
 courseName = couName;
// cout<<"CTeacher正在构造..."<<endl;
    }
    ~CTeacher();
    virtual void startMeeting();
    CTeacher * next;
private:
    string wage;
    string courseName;
};
CTeacher::~CTeacher(){
// cout<<"CTeacher 正在析构..."<<endl;
}
void CTeacher::startMeeting(){
 CPerson::startMeeting();
 cout<<"工资:"<<wage<<endl;
 cout<<"课程名称:"<<courseName<<endl;
}
//CProfessor类
class CProfessor:public CTeacher{
public:
 CProfessor(){};
 CProfessor(string nm,string pnum,string addr,string wg,string couName,string bookb,string yjs):CTeacher(nm,pnum,addr,wg,couName){
  bookName = bookb;
  yanjiusheng = yjs;
//  cout<<"CProfessor正在构造..."<<endl;
 }
 ~CProfessor();
 virtual void startMeeting();
 CProfessor *next;
private:
 string bookName;
 string yanjiusheng;
};
CProfessor::~CProfessor(){
// cout<<"CProfessor正在析构..."<<endl;
}
void CProfessor::startMeeting(){
 CTeacher::startMeeting();
 cout<<"出版书:"<<bookName<<endl;
 cout<<"研究生:"<<yanjiusheng<<endl;
}
//CDean类
class CDean:public CProfessor{
public:
 CDean(){};
 CDean(string nm,string pnum,string addr,string wg,string couName,string bookb,string yjs,string tx):CProfessor(nm,pnum,addr,wg,couName,bookb,yjs){
  touxian = tx;
//  cout<<"CDean正在构造..."<<endl;
 }
 ~CDean();
 virtual void startMeeting();
private:
 string touxian;
};
CDean::~CDean(){
// cout<<"CDean正在析构..."<<endl;
}
void CDean::startMeeting(){
 CProfessor::startMeeting();
 cout<<"头衔:"<<touxian<<endl;
}
class CDepartment{
public:
 CDepartment(CPerson *Head);
 ~CDepartment();
 void start();
private:
 CPerson *END;
};
CDepartment::CDepartment(CPerson *Head){
 END = Head;
}
CDepartment::~CDepartment(){
 
}
void CDepartment::start(){
 END = END->next;
 while(END!=NULL){
  END->startMeeting();
  END = END->next;
  
 }
}
//主函数
int main(){
//   构造函数,析构函数,开会函数测试
//    CPerson per("person","17864181946","jinan");
//    per.startMeeting();
//    CStudent stu("student","17864181946","jinan","50");
//    stu.startMeeting();
//    CTeacher teach("teacher","17864181946","jinan","10000","English");
//    teach.startMeeting();
//    CProfessor pro("professor","17864181946","jinan","1000000","Chinese","hulianwang","Chinese");
//    pro.startMeeting();
 CPerson *pHead = new CPerson("name","number","address");
 CPerson *pEnd = pHead;
 fstream file("database2.txt",ios::in);
 if(!file){
  cerr<<"文件打开失败!!";
  exit(-1);
 }
 int count;
 int i;
 string a,b,c,d,e,f,g,h;
//CDean类
 file>>count;
 file>>a;
 file>>b;
 file>>c;
 file>>d;
 file>>e;
 file>>f;
 file>>g;
 file>>h;
 CDean *Temp = new CDean(a,b,c,d,e,f,g,h);
 pEnd->next = Temp;
 pEnd = Temp;
 //CProfessor类
 file>>count;
 for(i=0;i<count;i++){
 file>>a;
 file>>b;
 file>>c;
 file>>d;
 file>>e;
 file>>f;
 file>>g;
 CProfessor *Temp = new CProfessor(a,b,c,d,e,f,g);// 创建新的节点
 pEnd->next = Temp;
 pEnd = Temp;
 }
 //CTeacher类
 file>>count;
 for(i=0;i<count;i++){
 file>>a;
 file>>b;
 file>>c;
 file>>d;
 file>>e;
 CTeacher *Temp = new CTeacher(a,b,c,d,e);// 创建新的节点
 pEnd->next = Temp;
 pEnd = Temp;
 }
 //CStudent类
 file>>count;
 for(i=0;i<count;i++){
 file>>a;
 file>>b;
 file>>c;
 file>>d;
 CStudent *Temp = new CStudent(a,b,c,d);
 pEnd->next = Temp;
 pEnd = Temp;
 }
 CDepartment headmaster(pHead);
 headmaster.start();
 file.close();
 return 0;
}

 

 
//要读取的文件,文件名为database2.txt
 
1
赵本山2 12345678 中戏 4500 二人转 音乐基础理论欣赏 盘长江 系主任
4
冯巩2 23456789 中戏 4000 相声 现代相声大全 冯巩1号
候宝林2 34567890 中戏 4000 相声 现代相声大全 候军保
杨春2 76543210 中戏 4000 声乐 通俗音乐读本 白雪
陈凯歌2 78965432 北影 4000 表演 导演艺术大全 陈红
20
张艺谋2 87956430 北影 3000 表演
王海珍2 87956430 北影 3000 表演
小桃红2 87956430 北影 3000 表演
张国立2 87956430 北影 3000 表演
邓节2 87956430 北影 3000 表演
王港2 87956430 北影 3000 表演
张铁林2 87956430 北影 3000 表演
赵微2 87956430 北影 3000 表演
林新如2 87956430 北影 3000 表演
素有朋2 87956430 北影 3000 表演
小昭2 87956430 北影 3000 表演
张无计2 87956430 北影 3000 表演
猪八戒2 87956430 北影 3000 表演
孙悟空2 87956430 北影 3000 表演
沙和尚2 87956430 北影 3000 表演
唐玄奘2 87956430 北影 3000 表演
李世民2 87956430 北影 3000 表演
成吉思汗2 87956430 北影 3000 表演
朱元章2 87956430 北影 3000 表演
黄太极2 87956430 北影 3000 表演
100
六小灵通2 87690543 北影 88
朱无能2 87690543 北影 88
灵角大王2 87690543 北影 88
红孩儿2 87690543 北影 88
着行孙2 87690543 北影 88
孙行者2 87690543 北影 88
白骨精2 87690543 北影 88
如来2 87690543 北影 88
观音2 87690543 北影 88
东海龙王2 87690543 北影 88
西海龙王2 87690543 北影 88
男孩龙王2 87690543 北影 88
北海龙王2 87690543 北影 88
白龙马2 87690543 北影 88
女儿国国王2 87690543 北影 88
雷音寺主持2 87690543 北影 88
阿弥陀佛2 87690543 北影 88
弥勒佛2 87690543 北影 88
玉皇大帝2 87690543 北影 88
王母2 87690543 北影 88
二郎神2 87690543 北影 88
嫦娥2 87690543 北影 88
七仙女2 87690543 北影 88
托塔李天王2 87690543 北影 88
哪扎2 87690543 北影 88
蜘蛛精2 87690543 北影 88
狐狸精2 87690543 北影 88
狮子精2 87690543 北影 88
土地2 87690543 北影 88
牛魔王2 87690543 北影 88
铁扇公主2 87690543 北影 88
紫霞仙子2 87690543 北影 88
周星驰2 87690543 北影 88
菩提2 87690543 北影 88
白晶晶2 87690543 北影 88
张国老2 87690543 北影 88
李铁拐2 87690543 北影 88
曹国舅2 87690543 北影 88
蓝才和2 87690543 北影 88
何仙姑2 87690543 北影 88
韩祥子2 87690543 北影 88
吕动宾2 87690543 北影 88
太上老君2 87690543 北影 88
乌鸡国王2 87690543 北影 88
郭靖2 87690543 北影 88
黄蓉2 87690543 北影 88
黄药师2 87690543 北影 88
柯镇恶2 87690543 北影 88
洪气功2 87690543 北影 88
西毒2 87690543 北影 88
丘处级2 87690543 北影 88
马玉2 87690543 北影 88
孙不二2 87690543 北影 88
王重阳2 87690543 北影 88
南帝2 87690543 北影 88
朱子柳2 87690543 北影 88
周伯通2 87690543 北影 88
英姑2 87690543 北影 88
托雷2 87690543 北影 88
华筝2 87690543 北影 88
哲别2 87690543 北影 88
王罕2 87690543 北影 88
欧阳克2 87690543 北影 88
穆念磁2 87690543 北影 88
杨康2 87690543 北影 88
杨铁心2 87690543 北影 88
郭笑天2 87690543 北影 88
包氏2 87690543 北影 88
李平2 87690543 北影 88
岳灵珊2 87690543 北影 88
林平之2 87690543 北影 88
令弧冲2 87690543 北影 88
陆大有2 87690543 北影 88
岳不群2 87690543 北影 88
莫大2 87690543 北影 88
左冷禅2 87690543 北影 88
定逸师太2 87690543 北影 88
仪琳2 87690543 北影 88
田伯光2 87690543 北影 88
桃根仙2 87690543 北影 88
桃纸仙2 87690543 北影 88
桃实仙2 87690543 北影 88
少林寺方丈2 87690543 北影 88
武当道长2 87690543 北影 88
杨莲亭2 87690543 北影 88
东方不败2 87690543 北影 88
任我行2 87690543 北影 88
任滢滢2 87690543 北影 88
西湖大庄主2 87690543 北影 88
西湖二庄主2 87690543 北影 88
西湖三庄主2 87690543 北影 88
西湖四庄主2 87690543 北影 88
杨过2 87690543 北影 88
小龙女2 87690543 北影 88
金轮发网2 87690543 北影 88
霍都王子2 87690543 北影 88
阿而巴2 87690543 北影 88
郭芙2 87690543 北影 88
郭镶2 87690543 北影 88
郭破虏2 87690543 北影 88
 
关注公众号,回复“cpp”获得C++学习视频。

 

1、问题描述 某高校有四类员工教师、实验员、行政人员教师兼行政人员共有的信息包括编号、姓名、性别、年龄等。其中教师还包含的信息有所在系部、专业、职称实验员还包含的信息由所在实验室、职务行政人员还包含的信息有政治面貌、职称等。 2、功能要求 (1)添加功能程序能够任意添加上述四类人员的记录可提供选择界面供用户选择所要添加的人员类别要求员工的编号要唯一如果添加了重复编号的记录时则提示数据添加重复并取消添加。 (2)查询功能可根据编号、姓名等信息对已添加的记录进行查询如果未找到给出相应的提示信息如果找到则显示相应的记录信息。 (3)显示功能可显示当前系统中所有记录每条记录占据一行。 (4)编辑功能可根据查询结果对相应的记录进行修改修改时注意编号的唯一性。 (5)删除功能主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录则提示“记录为空”并返回操作否则输入要删除的人员的编号或姓名根据所输入的信息删除该人员记录如果没有找到该人员信息则提示相应的记录不存。 (6)统计功能能根据多种参数进行人员的统计。能统计四类人员数量以及总数,统计男、女员工的数量。 (7)保存功能可将当前系统中各类人员记录存入文件中存入方式任意。 (8)读取功能可将保存在文件中的人员信息读入到当前系统中供用户进行使用。
修正了已发现的所有错误.欢迎大家下载试用.. 一、项目名称:学校学生信息管理系统。 二、项目目标:实现对学校学生的信息管理——信息的建立和维护、信息的检索。 三、主要功能: 1.信息的输入:建立学生档案文件。 2.信息维护: 添加:增加新学生; 修改:学生信息的改变; 删除:学生减少。 3.信息处理 按要求检索学生信息; 按要求统计信息。 四、界面系统 1.系统管理员进入 (请输入密码) 2.一级菜单 (1 信息维护 2 信息检索 3 信息统计 4 退出) 3. 二级菜单 信息维护 (1 建立学生成绩文件 2 添加学生记录 3 删除学生记录 4 修改学生记录 5 返回上级菜单) 信息检索 (1 按班级查找 2 返回上级菜单) 信息统计 (1 成绩统计 2 返回上级菜单) 五、主要功能说明: 1.用口令(密码)形式验证管理员身份(可输入三次),合法者可进入,否则程序结束。 2.有关功能说明 1)建立学生成绩表(模块a) 建立新的学生成绩文件; 建立若干学生记录,包括姓名、学号、班级、课程编号、成绩。 2)添加学生记录(模块b) 在已存在的学生成绩文件中添加新记录。 3)删除学生记录(模块c) 在学生成绩文件中删除有三门课程不及格的学生记录; 删除前,逐条显示符合删除条件的学生姓名、成绩,确认后再删除。 4)修改学生信息(模块d) 输入学生学号,在学生成绩文件中找出该学生记录; 在屏幕上逐条显示该学生的各条记录; 每显示一条,询问是否修改,如果“Y”,输入修改后数据, 将文件原记录删除,保存新的记录; 5)按姓名和班级查找(模块e) 输入姓名显示相应信息。 6)信息统计(模块f) 同时按照班级和课程统计每门课程、每个班级的平均成绩,最高分、最低分; 在屏幕上先依次显示各门课程,对应的各个班级的统计数据。 7)退出信息管理系统,返回操作系统
C++工资管理系统继承虚函数、虚基类的实现方法如下: 1. 多继承继承是指一个类可以从多个基类中继承属性和方法。在C++中,可以通过在类定义中使用逗号分隔多个基类来实现多继承。例如: ```cpp class Base1 { public: void func1(); }; class Base2 { public: void func2(); }; class Derived : public Base1, public Base2 { public: void func3(); }; ``` 在上面的例子中,Derived类从Base1和Base2两个基类中继承了属性和方法。 2. 虚函数 虚函数是指在基类中声明的函数,在派生类中可以被重。在C++中,可以通过在函数声明前加上virtual关键字来声明虚函数。例如: ```cpp class Base { public: virtual void func(); }; class Derived : public Base { public: void func(); // 重了Base类中的虚函数 }; ``` 在上面的例子中,Base类中的func()函数是虚函数,Derived类中的func()函数重了Base类中的虚函数。 3. 虚基类 虚基类是指在多重继承中,为了避免派生类中出现多个基类的副本,而将某个基类设置为虚基类。在C++中,可以通过在基类名前加上virtual关键字来声明虚基类。例如: ```cpp class Base { public: int num; }; class Base1 : virtual public Base { public: void func1(); }; class Base2 : virtual public Base { public: void func2(); }; class Derived : public Base1, public Base2 { public: void func3(); }; ``` 在上面的例子中,Base类被声明为虚基类,Derived类中只包含一个Base类的副本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值