通过本次课程设计,深入理解类和对象、继承和派生、重载和多态,熟练掌握面向对象的程序设计思想和方法,能够对现实世界中的实际问题进行分析、设计,并学会熟练运用面向对象的编程方法(OOP)—— C++语言进行编程实现。

1. 高校人员信息管理系统

根据高校人员的特点,先设计一个高校人员抽象类,应包含编号、姓名、年龄、性别、系部、联系方式等数据成员,以及显示、统计等成员函数。然后分别设计教师类、学生类和机关人员类,它们的基类均为高校人员抽象类。

创建人员对象,通过链表或对象数组的形式组织全体高校人员(可以定义一个管理类,该类具有新增、修改、删除、查询、统计及保存文件功能)。利用多态理论统一处理高校人员的信息。

​
#include <iostream>
#include<string>
#include<ctime>
#include<typeinfo>
using namespace std;void show_mue() //打印菜单
{cout<<"=====  欢迎来到高校人员信息管理系统  ====="<<endl;cout<<"---======<  输入1添加人员  >======---"<<endl; cout<<"---======<  输入2查询人员  >======---"<<endl;cout<<"---======<  输入3删除人员  >======---"<<endl;cout<<"---======<  输入4修改人员  >======---"<<endl;cout<<"---======<  输入5显示所有人员信息  >---"<<endl;cout<<"---======<  输入0退出系统  >----------->>"<<endl;cout<<"=================================="<<endl;cout<<"======= 请选择您的操作:";
}
void show_add() //打印添加时候的菜单
{cout<<"请选择你要录入的职业类型:"<<endl;cout<<"<输入1录入学生>"<<endl;cout<<"<输入2录入老师>"<<endl;cout<<"<输入3录入职工>"<<endl;cout<<"<输入0退出录入>"<<endl; cout<<"请选择:";
}class people //基类 人员类
{friend class manage; //管理类设为友元protected:string work_num; //编号string name; //姓名string sex;  //性别int age; //年龄string work_sector; //部门string phone_number; //联系方式 people *next=NULL; //基类指针 string id;public:people() //构造函数 {cout<<"请输入编号:";cin>>this->work_num; cout<<"请输入姓名:";cin>>this->name; cout<<"请输入性别:";cin>>this->sex;cout<<"请输入年龄:";cin>>this->age;cout<<"请输入部门:";cin>>this->work_sector;cout<<"请输入联系方式:";cin>>this->phone_number;}string get_work_num() //得到编号 {return this->work_num;}virtual void Show_info()=0;//打印信息 virtual string get_id()=0; //用来获取职业
};class student:public people  //学生类
{protected:string class_room; //班级string major; //专业double score; //成绩public:student(){cout<<"请输入班级:";cin>>this->class_room;cout<<"请输入专业:";cin>>this->major;cout<<"请输入成绩:";cin>>this->score;this->id="student";}virtual void Show_info(){cout<<"该学生的信息:"<<endl;cout<<"编号:"<<this->work_num<<endl;cout<<"姓名:"<<this->name<<endl;cout<<"性别:"<<this->sex<<endl;cout<<"年龄:"<<this->age<<endl;cout<<"部门:"<<this->work_sector<<endl;cout<<"联系方式:"<<this->phone_number<<endl;cout<<"班级:"<<this->class_room<<endl;cout<<"专业:"<<this->major<<endl;cout<<"成绩:"<<this->score<<endl; }virtual string get_id(){return this->id;}
};class teacher:public people //老师类
{protected:string work_title;string major;public:teacher(){cout<<"请输入职称:";cin>>this->work_title;cout<<"请输入专业:";cin>>this->major;this->id="teacher";}virtual void Show_info(){cout<<"该老师的信息:"<<endl;cout<<"编号:"<<this->work_num<<endl;cout<<"姓名:"<<this->name<<endl;cout<<"性别:"<<this->sex<<endl;cout<<"年龄:"<<this->age<<endl;cout<<"部门:"<<this->work_sector<<endl;cout<<"联系方式:"<<this->phone_number<<endl;cout<<"职称:"<<this->work_title<<endl;cout<<"专业:"<<this->major<<endl;}virtual string get_id(){return this->id;}
};class employee:public people //职工类
{protected:string work_post; //职务 string work_level; //级别 public:employee(){cout<<"请输入职务:";cin>>this->work_post;cout<<"请输入级别:";cin>>this->work_level; this->id="employee";}virtual void Show_info(){cout<<"该职工的信息:"<<endl;cout<<"编号:"<<this->work_num<<endl;cout<<"姓名:"<<this->name<<endl;cout<<"性别:"<<this->sex<<endl;cout<<"年龄:"<<this->age<<endl;cout<<"部门:"<<this->work_sector<<endl;cout<<"联系方式:"<<this->phone_number<<endl;cout<<"职务:"<<this->work_post<<endl;cout<<"级别:"<<this->work_level<<endl;}virtual string get_id(){return this->id;}
};
class manage
{protected:int worker_amount; //人员数量people *head; //链表头指针public:manage(){this->worker_amount=0;this->head=NULL;}void add_person() //添加 {int n;do{system("cls");show_add();cin>>n;switch(n){case 1:system("cls");cout<<"现在正在录入学生信息...."<<endl;if(this->head==NULL){head = new student;this->worker_amount++;}else{people *p = new student;p->next = head->next;head->next = p;this->worker_amount++;}cout<<"录入成功!"<<endl;system("pause");break;case 2:system("cls");cout<<"现在正在录入老师信息...."<<endl;if(this->head==NULL){head = new teacher;this->worker_amount++;}else{people *p = new teacher;p->next = head->next;head->next = p;this->worker_amount++;}cout<<"录入成功!"<<endl;system("pause");break;case 3:system("cls");cout<<"现在正在录入职工信息...."<<endl;if(this->head==NULL){head = new employee;this->worker_amount++;}else{people *p = new employee;p->next = head->next;head->next = p;this->worker_amount++;}cout<<"录入成功!"<<endl;system("pause");break;case 0:break;default:cout<<"输入错误!请重新输入!"<<endl;system("pause");break;}}while(n);}void search_person() //查询 {string num;cout<<"请输入你要查询的编号:";cin>>num;people *p=this->head;while(p!=NULL){if(num==p->get_work_num()){system("cls");cout<<"查询成功!信息如下:"<<endl;p->Show_info();system("pause");return ;}p = p->next;}cout<<"该编号不存在!"<<endl;system("pause");return ;}void delete_person() //删除 {string num;cout<<"请输入你要删除的编号:";cin>>num;people *p=this->head->next;people *p_pre=this->head;while(p_pre!=NULL||p!=NULL){if(num==head->get_work_num())  //如果第一个就是要删除的 {people *s = this->head;this->head = head->next;delete(s);cout<<"成功删除!"<<endl;this->worker_amount--;system("pause");return ;}else if(num==p->get_work_num()){p_pre->next = p->next;delete(p);cout<<"成功删除!"<<endl;this->worker_amount--;system("pause");return ;}p = p->next;p_pre = p_pre->next;}cout<<"该编号不存在!"<<endl;system("pause");}void xg_person() //修改{string num;cout<<"请输入你要修改的编号:";cin>>num;people *p=this->head;people *p_pre=this->head;while(p!=NULL){if(num == head->get_work_num()){if(head->get_id()=="student"){system("cls");cout<<"请录入修改的数据:"<<endl;people *s = head;head = new student;head->next = s->next;delete(s);cout<<"修改成功!"<<endl;system("pause");return ;}if(head->get_id()=="teacher"){system("cls");cout<<"请录入修改的数据:"<<endl;people *s = head;head = new teacher;head->next = s->next;delete(s);cout<<"修改成功!"<<endl;system("pause");return ;}if(head->get_id()=="employee"){system("cls");cout<<"请录入修改的数据:"<<endl;people *s = head;head = new employee;head->next = s->next;delete(s);cout<<"修改成功!"<<endl;system("pause");return ;}}if(num==p->get_work_num()){if(p->get_id()=="student"){system("cls");cout<<"请录入修改的数据:"<<endl;people *s = new student;p_pre->next = s;s->next = p->next;delete(p);cout<<"修改成功!"<<endl;system("pause");return ;}if(p->get_id()=="teacher"){system("cls");cout<<"请录入修改的数据:"<<endl;people *s = new teacher;p_pre->next = s;s->next = p->next;delete(p);cout<<"修改成功!"<<endl;system("pause");return ;}if(p->get_id()=="employee"){system("cls");cout<<"请录入修改的数据:"<<endl;people *s = new employee;p_pre->next = s;s->next = p->next;delete(p);cout<<"修改成功!"<<endl;system("pause");return ;}}if(p == p_pre){p=p->next;continue;}p = p->next;p_pre = p_pre->next;}cout<<"该编号不存在!"<<endl;system("pause");return ;} void show_info() //显示信息{cout<<"下面展示所有教职工信息:"<<endl;people *p=head;while(p!=NULL){p->Show_info();cout<<endl;p=p->next;}system("pause");return ;} };int main()
{system("color B4");int n;manage m;do{system("cls");show_mue();cin>>n;switch(n){case 1:m.add_person();break;case 2:m.search_person();break;case 3:m.delete_person();break;case 4:m.xg_person();break;case 5:m.show_info();break;case 0:cout<<"成功退出!"<<endl;break;default:cout<<"输入错误!请重新输入!"<<endl;system("pause");break;}}while(n);return 0;
}​

c++课设:高校人员信息管理系统 开发一个简易的高校人员信息管理系统,主要针对高校人员的基本信息进行管理。采用对象链表或对象数组存放各个对象,实现新增、修改、删除、查询以及统计等功能。相关推荐

  1. delphi百度人脸搜索(支持人脸搜索、人脸库新增修改删除查询)

    下载链接:https://download.csdn.net/download/liushenglin123/12550077 [delphi百度人脸搜索]支持人脸搜索.人脸库新增修改删除查询

  2. sharepoint 2016 学习系列篇(14)-自定义列表应用篇-(3)列表数据的新增,修改,删除操作

    前面添加完列表的字段之后,接下来介绍列表数据的新增,修改,删除操作,不需要开发,就能实现数据的新增,修改,删除等操作. 重新返回到列表的http://192.168.1.73:7003/Lists/U ...

  3. 稳扎稳打Silverlight(18) - 2.0视频之详解MediaElement, 开发一个简易版的全功能播放器...

    [索引页] [×××] 稳扎稳打Silverlight(18) - 2.0视频之详解MediaElement, 开发一个简易版的全功能播放器 作者:webabcd 介绍 Silverlight 2.0 ...

  4. python的Tkinter库简单应用——开发一个简易计算器

    利用python的Tkinter库开发一个简易计算器 文章目录 利用python的Tkinter库开发一个简易计算器 前言 一.实验准备 二.开发步骤步骤 1.引入库 2.界面设计 3.关键--实现T ...

  5. 生产订单组件新增 修改 删除

    如果CO_XT_COMPONENT_ADD缺少需要的字段 可以拷贝出来, 在ZCO_XT_COMPONENT_ADD 添加字段例如:I_TEST 和 I_TESTX 或者memory id传值 在22 ...

  6. 【课设生成器】我做了一个代码生成器

    文章目录 一.什么是代码生成器 0.视频介绍 1.做生成器的初衷 2.生成器的功能 4.资源内容 二.代码生成器的使用 1.文件目录介绍 2.启动系统 3.使用教程 3.1界面 3.2 生成 3.3 ...

  7. js数组再倒数第二个添加元素_归纳JS中数组的使用(一)元素新增和删除

    新增元素 js中给数组新增元素主要通过2个方法 push 和 unshift Array.prototype.push 功能概述 push() 方法将一个或多个元素添加到数组的末尾,并返回该数组的新长 ...

  8. 第十二讲 dom对象(DOM对象、document对象的常用方法、节点、查找结点、 查看/修改/删除属性节点、创建和增加节点)

    一.查看节点 getElementById( ) 元素的ID名称来访问,返回对拥有指定id的第一个对象的引用 getElementsByName( )  按元素的name名称来访问,返回带有指定名称的 ...

  9. Vue3教程:开发一个 Vue 3 + element-plus 的后台管理系统

    2021-03-30更新:<Vue3教程:Vue 3 + Element Plus + Vite 2 的后台管理系统开源啦> 最近在开发一个 Vue 3.0 + element plus ...

最新文章

  1. 特斯拉fsd全自动驾驶与华为自动驾驶
  2. 探讨ASP.NET 2.0中的Web控件改进技术(3)
  3. 小清新简约风个人简历PPT模板
  4. python编程学习笔记_python编程:从入门到实践学习笔记-Django开发用户账户(一)...
  5. 2020-11-6(简述html)
  6. linux修改文件名常用命令
  7. html css精灵,谈谈CSS Sprites(css精灵)
  8. Docker小白到实战之开篇概述
  9. Mina学习之搭建项目工程目录
  10. “培训班”出身的AI工程师,要得要不得?
  11. day16 Python 类的实现关系
  12. 查 oracle 的sid,oracle 查询sid 运行的sql语句
  13. Word如何转换成PDF格式
  14. 高分卫星影像查询地址
  15. ecs云服务器操作系统选择
  16. 凯撒密码加密你的姓名拼音(c)
  17. 阿里云被攻击封多久,又该怎么解决?
  18. 最全的web前端自学教程视频,免费分享
  19. 1.GraphPad Prism 8软件安装
  20. Hive SQL查询效率提升之Analyze方案的实施

热门文章

  1. lis通道号_LIS接口编程的基本框架与入门
  2. 为什么电脑待机时间一长就自动关机
  3. ssm框架连接两个MySQL数据库随笔
  4. SV学习笔记—function函数和task任务
  5. 全网通用Python点赞器(俗称刷分机器)
  6. 常用的一维时间序列滤波方法
  7. 【linux下多实例Tomcat+Nginx+redis+mysql环境搭建】
  8. 文件操作 with open xxx as f: 的用法
  9. GUETCTF第三届梦极光杯初赛部分WP
  10. 文件系统NTFS和FAT32有什么不同