高校人员信息管理系统C++

代码:https://mbd.pub/o/bread/ZZeZk5lx
一、基本内容论述
1、问题描述 某高校有四类员工:教师、实验员、行政人员、教师兼行政人员;共有的信息包括:编号、姓名、性别、年龄等。其中,教师还包含的信息有:所在系部、专业、职称;实验员还包含的信息由:所在实验室、职务;行政人员还包含的信息有:政治面貌、职称等。

2、功能要求

(1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求员工的编号要唯一,如果添加了重复编号的记录时,则提示数据添加重复并取消添加。

(2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

(3)显示功能:可显示当前系统中所有记录,每条记录占据一行。

(4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

(5)删除功能:主要实现对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则,输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存。

(6)统计功能:能根据多种参数进行人员的统计。能统计四类人员数量以及总数,统计男、女员工的数量。

(7)保存功能:可将当前系统中各类人员记录存入文件中,存入方式任意。

(8)读取功能:可将保存在文件中的人员信息读入到当前系统中,供用户进行使用。

1、系统总体方案
使用面向对象的编程思想,系统分为四大板块,分别为教师、实验员、行政人员、教师兼行政人员等管理信息模块,定义高校员工类保存公共属性,共有的信息包括:编号、姓名、性别、年龄等,学校员工类为college_staff, 教师、实验员、行政人员、教师兼行政人员等类分别继承此员工类。工类派生出教师类、实验员类、行政人员类,教师类和行政人员类派生出教师兼行政人员类。程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求人员的编号要唯一,如果添加了重复编号的记录时,则提示用户数据添加重复并取消添加。各个功能选择循环和分支选择完成各个功能的选择。

(1) 教师类teacher:继承员工类college_staff,实现添加,查询,显示,删除,统计,保存,读取等功能,通过继承可以很好的实现功能的继承使用。成员函数分别有 int Add();int Search();void Show();void Edit();int Delete();void Save();

void Read();。

(2) 实验员类tester:继承员工类college_staff,实现添加,查询,显示,删除,统计,保存,读取等功能,实验员还包含的信息有:所在实验室、职务。 成员函数分别有 int Add();int Search();void Show();void Edit();int Delete();void Save();

void Read();。

(3) 行政人员类officer,继承员工类college_staff,实现添加,查询,显示,删除,统计,保存,读取等功能,成员函数分别有  int Add();int Search();void Show();void Edit();int Delete();void Save();void Read();。行政人员还包含的信息有:政治面貌、职称等。(4) 教师兼职行政人员类teacher_officer ,继承员工类college_staff,教师类teacher和行政人员类officer,实现添加,查询,显示,删除,统计,保存,读取等功能,成员函数分别有   int Add();int Search();void Show();void Edit();int Delete();void Save();void Read();。

2、设计思路和主要步骤
根据需求分析,首先我们需要建立员工college_staff基类,由此派生出了教师类(teacher),实验员类(tester),行政人员类officer,教师兼职行政人员类teacher_officer。通过进一步分析,由于基类中的构造函数不能被继承,而且在派生类中又需要增加自己的数据成员,所以我们必须定义派生类的构造函数来完成相应的初始化。我们通过类的继承实现增加不同功能的成员函数如:void Add(); //增加人员 void Delete(); //删除人员 void Edit (); //编辑人员信息void Search (); //查询人员, void Save(); //数据存盘 void Read(); //读取文件———为了实现多文件的效果,我们对员工类各个属性继承,然后逐一对各功能函数进行代码编写。最后,我们定义了主函数,通过公司类创建了一个对象,并通过此对象完成相应的操作。在调试并测试代码过程中,当输入相应的指令后,该系统自动调用相应的功能函数来达到需求效果,至此,一个高校人员信息管理系统的实现才算基本成功。

3、各功能模块和流程图
(1)各功能模块

1)添加功能:程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求人员的编号要唯一,如果添加了重复编号的记录时,则提示用户数据添加重复并取消添加。2)查询功能:可根据编号、姓名等信息对已添加的记录进行查询。如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。3)显示功能:可显示当前系统中所有记录。4)修改功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。5)删除功能:对已添加的人员记录进行删除。如果当前系统中没有相应的人员记录,则提示“记录为空!”并返回操作;否则输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。6)统计功能:能根据多种参数进行人员的统计。例如:统计四类人员数量以及总数,统计男、女员工的数量,统计某年龄段人员的数量等。7)保存功能:将当前系统中各类人员记录存入文件中。8)读取功能:将保存在文件中的人员信息读入到当前系统中,以供用户使用。

(2)流程图

1主函数流程
在这里插入图片描述

界面:
在这里插入图片描述
在这里插入图片描述

二、实验结果测试
列出各功能具体的输入数据及对应的输出结果,说明其是否符合设计要求:

三、心得体会
通过本次设计课学到了很多,相比之前的C++语言上机,难度有很大的提升,以前仅仅涉及变量,函数和条件语句,和循环语句等基本概念,而这次像老师说的那样是一个工程。本学期的学期期间也进行过几次的上机实习,不过是根据老师给的现成题目进行简单编程,并没有像C++课设那样庞大。在一开始进行课程的时候,我感到有些无法适应并且跟不上进度。前两次上课的时候,对于本次的题目“学生成绩管理系统”感觉无从下手,根据老师发的源代码,才有一点点眉目。本次C++语言课程设计对我来说是一一个挑战, 虽说不上一波三折,但过程绝不轻松。同时也让我认识到扎实基本功的重要性。在课设过程中,有许多的细节需要去注意和纠正,太过于草率导致的后果就是会忽略掉很多必需的点,最终结果就是程序不能成功地运行。在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了。最后,我认为C++语言课程设计是一个可以供我们慢慢钻研的课程,而学会最基本的C++语言知识是非常重要的。要沉下心来认真钻研。感谢老师能从多个角度提供帮助,启发我们自己发现问题并解决,引导我们独立思考。祝老师万事胜意!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/209435.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

堆排序(C语言)

前言 在上一篇内容:大小堆的实现(C语言),我们实现了关于创建大小堆的各函数与实现。但是如果突然要使用一个堆排序但是此时并没有一个现成的堆,这就需要花费时间去新建实现堆的插入删除这些操作从而实现一个堆&#xf…

51单片机应用从零开始(十)·指针

指针 C语言指针是一种保存变量地址的数据类型。它可以让程序直接访问内存中的数据,而不需要通过变量名来访问。指针变量存储的是一个地址,这个地址指向内存中的某个位置,该位置存储了一个值。 在C语言中,可以使用&运算符取得一…

Endnote加入新的style(参考文献格式)

1. 下载模板 可以从官网上下载模板,比如某些常见的期刊都有自己的模板,还有写中文论文的话有专门的GBT7714。 2. 示范 以下图MDPI为例,下载下来是一个ens文件。 双击打开此文件 file -> save as 输入保存的名字,我这里保…

字符串转换整数

字符串转换整数 描述 : 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)。 函数 myAtoi(string s) 的算法如下: 读入字符串并丢弃无用的前导空格检查下一个字符&am…

Linux:docker镜像的创建(5)

1.基于已有镜像创建 步骤: 1.将原始镜像加入容器并运行 2.在原始镜像中部署各种服务 3.退出容器 4.使用下面命令将容器生成新的镜像 现在我们在这个容器里做了一些配置,我们要把他做成自己镜像 docker commit -m "centos7_123" -a "tarr…

【工具使用-Audition】如何使用Audition查看频率

一,简介 在工作过程中要对处理后的音频进行频率分析,本文以Audition 2020为例进行说明,供参考。 二,操作步骤 2.1 生成测试音源 使用Audition生成左通道为1KHz,右通道为10KHz的音源信号 如图所示: 2.…

Android Init系统:引领设备启动的先锋

Android Init系统:引领设备启动的先锋 引言 Init系统是一个操作系统启动的必要组件,负责在启动时初始化所有系统资源、服务和应用程序。在Android设备中,Init系统起到了至关重要的作用,它是启动过程中的第一个进程,负…

学习知识回顾随笔(远程连接MySQL|远程访问Django|HTTP协议|Web框架)

文章目录 如何远程连接MySQL数据库1.创建用户来运行,此用户从任何主机连接到mysql数据库2.使用IP地址来访问MySQL数据库 如何远程访问Django项目Web应用什么是Web应用应用程序的两种模式Web应用程序的优缺点 HTTP协议(超文本传输协议)简介HTT…

C++-模板

目录 一.泛型编程 二.模板的分类 三.函数模板 1.函数模板的概念 2.函数模板格式 3.函数模板的原理 4.函数模板的实例化 a.隐式实例化 b.显式实例化 5.模板参数的匹配原则 四.类模板 1.类模板的定义格式 2.类模板的实例化 五.class和typename的区别 六.非类型模板…

路由策略,gRPC 路由如何实现

目录 一、为啥我们要路由策略: 二、基于gRPC 路由策略 一、为啥我们要路由策略: 我们可以重新回到调用方发起 RPC 调用的流程。在 RPC 发起真实请求的时候,有一个步骤就是从服务提供方节点集合里面选择一个合适的节点(就是我们…

C++基础 -37- 模板函数与普通函数调用规则

当模板函数比普通函数更好匹配形参的时候&#xff0c;会优先调用模板函数 #include "iostream"using namespace std;template <class T> void show(T a, T b) {cout << a << endl;cout << b << endl;cout << "temp show&…

Matlab论文插图绘制模板第129期—函数网格曲面图

在之前的文章中&#xff0c;分享了Matlab函数折线图的绘制模板&#xff1a; 函数三维折线图&#xff1a; 进一步&#xff0c;再来分享一下函数网格曲面图。 先来看一下成品效果&#xff1a; 特别提示&#xff1a;本期内容『数据代码』已上传资源群中&#xff0c;加群的朋友请自…

Unity DOTS《群体战斗弹幕游戏》核心技术分析之3D角色动画

最近DOTS发布了正式的版本, 我们来分享现在流行基于群体战斗的弹幕类游戏&#xff0c;实现的核心原理。今天给大家介绍大规模战斗群体3D角色的动画如何来实现。 DOTS 对角色动画支持的局限性 截止到Unity DOTS发布的版本1.0.16,目前还是无法很好的支持3D角色动画。在DOTS 的b…

陷同质化“高端”悖论,良品铺子降价应对,沃隆食品IPO已终止

撰稿|行星 来源|贝多财经 坚持“高端零食”战略多年的良品铺子&#xff0c;脱下了自己的“长衫”。 近日&#xff0c;良品铺子&#xff08;SH.603719&#xff09;仅上任三天的董事长、总经理杨银芬在全员公开信中表示&#xff0c;该品牌将实施17年来最大规模降价&#xff0c…

oops-framework框架 之 界面管理(三)

引擎&#xff1a; CocosCreator 3.8.0 环境&#xff1a; Mac Gitee: oops-game-kit 注&#xff1a; 作者dgflash的oops-framework框架QQ群&#xff1a; 628575875 回顾 在上文中主要通过oops-game-kit大家了一个新的模版项目&#xff0c; 主要注意项是resources目录下的两个文…

TS版LangChain实战:基于文档的增强检索(RAG) | 京东云技术团队

LangChain LangChain是一个以 LLM &#xff08;大语言模型&#xff09;模型为核心的开发框架&#xff0c;LangChain的主要特性&#xff1a; 可以连接多种数据源&#xff0c;比如网页链接、本地PDF文件、向量数据库等允许语言模型与其环境交互封装了Model I/O&#xff08;输入…

【力扣206】反转链表

【力扣206】反转链表 一.题目描述 给你单链表的头节点 head &#xff0c;请你反转链表&#xff0c;并返回反转后的链表。 示例 1 &#xff1a; 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[5,4,3,2,1]示例 2 &#xff1a; 输入&#xff1a;head [1,2] 输出&#x…

码云配置遇到秘钥不正确

你这个就是秘钥没有和git绑定&#xff0c; 需要 git config --global user.name "你的用户名随便写" git config --global user.email "你的邮箱"

阿里云租赁费用_阿里云服务器多配置报价表

阿里云服务器租用费用&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、轻量应用服务器2核2G3M带宽轻量服务器一年87元&#xff0c;2核4G4M带宽轻量服务器一年165元12个月&#xff0c;ECS云服务器e系列2核2G配置99元一年、2核4G配置365元一年、2核8G配置522元一年…

跨网文件摆渡系统:安全、可控的数字传输桥梁

在企业高度信息化的时代&#xff0c;数据的流通与共享已经成为企业、组织乃至个人之间不可或缺的沟通方式。然而&#xff0c;在数据流通的过程中&#xff0c;我们经常会遇到各种难题和挑战&#xff0c;尤其是当涉及到不同网络环境之间的文件传输。这不仅需要保证文件的安全性&a…