c++学习笔记-STL案例-机房预约系统2-创建身份类

news2024/9/26 5:14:53

前言

衔接上一篇“c++学习笔记-STL案例-机房预约系统1-准备工作”,本文主要包括:创建身份类,建立了整个系统的框架,Identity基类,派生类:Sudent、Teacher、Manager,基类无实现源文件,派生类实现源文件创建了功能实现函数接口。


目录

5 创建身份类

5.1 身份的基类

5.2 学生类

5.2.1 功能分析

5.2.2 类的创建

5.3 老师类

5.3.1 功能分析

5.3.2 类的创建

5.4 管理员类

5.4.1 功能分析

5.4.2 类的创建


5 创建身份类

5.1 身份的基类

  • 在整个系统中,有三种身份,分别为:学生代表、老师、管理员
  • 三种身份有其共性,因此我们可以将三种身份抽象出一个身份基类identity
  • 在头文件下创建identity.h文件

identity.h中添加如下代码:

#pragma once
#include<iostream>
using namespace std;

//身份抽象类
class Identity
{
public:

	//操作菜单  纯虚函数  
	virtual void operMenu() = 0;

	string m_Name;//用户名
	string m_Pwd;//密码

};
  • virtual void operMenu() = 0; //纯虚函数,每个身份都有自己的菜单界面,这里留个接口让子类复用,实现多态效果
  • 子类必须重写父类中的纯虚函数,否则子类也是抽象类,无法实例化对象
  • 基类只有.h文件无实现的源文件,子类有“.h”和实现的“.cpp”源文件
  • 派生类:学生类、老师类、管理员类

5.2 学生类

5.2.1 功能分析

(1)学生类主要功能是可以通过类中的成员函数,实现预约实验室操作

(2)学生类主要功能:

  • 显示学生操作的菜单界面
  • 申请预约
  • 查看自身预约
  • 查看所有预约
  • 取消预约

5.2.2 类的创建

  • 在头文件以及源文件下创建student.h和student.cpp文件

  • student.h中添加代码:
#pragma once
#include<iostream>
using namespace std;
#include"identity.h"

//学生类
class Student :public Identity
{
public:
	//默认构造
	Student();

	//有参构造(学号、姓名、密码)
	Student(int id, string name, string pwd);
	
	//菜单界面
	virtual void operMenu();

	//申请预约
	void applyOrder();

	//查看我的预约
	void showMyOrder();

	//查看所有预约
	void showAllOrder();

	//取消预约
	void cancelOrder();

	//学生学号
	int m_Id;

};
  •  student.cpp中添加代码:
#include"student.h"

//构造函数
Student::Student()
{

}

//有参构造 参数:学号、姓名、密码
Student::Student(int id, string name, string pwd)
{

}

//菜单界面
void Student::operMenu()
{

}

//申请预约
void Student::applyOrder()
{

}

//查看我的预约
void Student::showMyOrder()
{

}

//查看所有预约
void Student::showAllOrder()
{

}

//取消预约
void Student::cancelOrder()
{
}

5.3 老师类

5.3.1 功能分析

(1)教师类主要功能是查看学生的预约,并进行审核

(2)教师类中的主要功能:

  • 显示教师操作的菜单界面
  • 查看所有预约
  • 审核预约

5.3.2 类的创建

  • 在头文件以及源文件下创建teacher.h和teacher.cpp文件
  • teacher.h中添加代码:
#pragma once
#include<iostream>
using namespace std;
#include"identity.h"

class Teacher:public Identity
{
public:
	//构造函数
	Teacher();
	
	//有参构造  参数:职工号,姓名,密码
	Teacher(int empid, string name, string pwd);

	//菜单界面
	virtual void operMenu();

	//查看所有预约
	void showAllOrder();

	//审核预约
	void validOrder();

	//职工号
	int m_EmpId;

};
  • teacher.cpp中添加代码:
#include"teacher.h"

//构造函数
Teacher::Teacher()
{

}

//有参构造  参数:职工号,姓名,密码
Teacher::Teacher(int empid, string name, string pwd)
{

}

//菜单界面
void Teacher::operMenu()
{

}

//查看所有预约
void Teacher::showAllOrder()
{

}

//审核预约
void Teacher::validOrder()
{

}

//职工号
int m_EmpId;

5.4 管理员类

5.4.1 功能分析

(1)管理员类的主要功能是对学生和老师账户进行管理,查看机房信息以及清空预约记录

(2)管理员类中的主要功能有:

  • 显示管理员操作的菜单界面
  • 添加账号
  • 查看账号
  • 查看机房信息
  • 清空预约记录

5.4.2 类的创建

在头文件以及源文件下创建manager.h和manager.cpp文件

  • manager.h中添加代码:
#pragma once
#include<iostream>
using namespace std;
#include"identity.h"

class Manager :public Identity
{
public:
	//构造函数
	Manager();

	//有参构造 参数:管理员姓名、密码
	Manager(string name, string pwd);

	//菜单界面
	virtual void operMenu();

	//添加账号
	void addPerson();

	//查看账号
	void showPerson();

	//查看机房
	void showComputer();

	//清空预约记录
	void clearFile();

};
  • manager.cpp中添加代码:
#include"manager.h"

//构造函数
Manager::Manager()
{

}

//有参构造 参数:管理员姓名、密码
Manager::Manager(string name, string pwd)
{


}

//菜单界面
void Manager::operMenu()
{

}

//添加账号
void Manager::addPerson()
{

}

//查看账号
void Manager::showPerson()
{

}

//查看机房
void Manager::showComputer()
{

}

//清空预约记录
void Manager::clearFile()
{

}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

旺店通·企业版和金蝶云星空接口打通对接实战

旺店通企业版和金蝶云星空接口打通对接实战 对接源平台:旺店通企业版 慧策&#xff08;原旺店通&#xff09;是一家技术驱动型智能零售服务商&#xff0c;基于云计算PaaS、SaaS模式&#xff0c;以一体化智能零售解决方案&#xff0c;帮助零售企业数字化智能化升级&#xff0c;实…

【python】matplotlib画图常用功能汇总

目录: 一、matplotlib画图风格二、matplotlib图像尺寸和保存分辨率三、matplotlib子图相关功能创建子图&#xff1a;绘制子图&#xff1a;设置子图属性&#xff1a;调整布局&#xff1a;示例代码&#xff1a; 四、matplotlib字体设置字体族和字体的区别字体选择和设置1. Matplo…

蓝桥杯单片机组备赛——数码管静态显示

文章目录 一、预备知识1.1 段选&位选1.2 静态显示和动态显示 二、原理图分析三、代码编写思路四、最终代码五、静态数码管显示练习与答案5.1 练习题目5.2 练习答案 一、预备知识 1.1 段选&位选 段选&#xff1a;段选指的是选择数码管哪个“段”应该被点亮。一般情况下…

py连接sqlserver数据库报错问题处理。20009

报错 pymssql模块连接sqlserver出现如下错误&#xff1a; pymssql._pymssql.OperationalError) (20009, bDB-Lib error message 20009, severity 9:\nUnable to connect: Adaptive Server is unavailable or does not exist (passwordlocalhost)\n) 解决办法&#xff1a; 打…

超声波清洗机洗眼镜有用吗?越贵的超声波清洗机洗的越干净吗?

首先&#xff01;作为一个眼镜党同时兼在眼镜店工作的人&#xff0c;用超声波清洗机洗眼镜可以说是非常高效的一种清洁方式&#xff0c;远比于我们手动清洗还要方便&#xff0c;现在市面上有非常多超声波清洗机的清洗技术是不太行的&#xff0c;所以大家在购买的时候还是需要多…

互联网资讯精选:科技爱好者周刊 | 开源日报 No.145

ruanyf/weekly Stars: 37.4k License: NOASSERTION 记录每周值得分享的科技内容&#xff0c;提供大量就业信息。欢迎投稿、推荐或自荐文章/软件/资源&#xff0c;并可通过多种方式进行搜索。 提供丰富的科技内容每周更新可以提交工作/实习岗位支持投稿和推荐功能 GyulyVGC/…

监督、半监督、无监督、自监督学习方法之间的区别

概念辨别 监督学习&#xff08;Supervised Learning&#xff09;&#xff1a;利用大量的标注数据来训练模型&#xff0c;模型最终学习到输入和输出标签之间的相关性&#xff1b;半监督学习&#xff08;Semi-supervised Learning&#xff09;&#xff1a;利用少量有标签的数据和…

行为驱动测试 python + behave

行为驱动&#xff0c;Behave-Driven Development&#xff0c;简称BDD。在行为驱动中运用结构化的自然语言描述场景测试&#xff0c;然后将这些结构化的自然语言转化为可执行的测试脚本或者其他形式。BDD的一种优势是&#xff0c;它建立了一种通用语言&#xff0c;而这种语言可以…

5.MapReduce之Combiner-预聚合

目录 概述本地预计算 Combiner 意义实践前提代码日志观察 结束 概述 在 MR、Spark、Flink 中&#xff0c;常用的减少网络传输的手段。 通常在 Reducer 端合并&#xff0c;shuffle 的数据量比在 Mapper 端要大&#xff0c;根据业务情况及数据量极大时&#xff0c;将大幅度降低效…

rime中州韵小狼毫 汉语拼音输入方案

在word中&#xff0c;我们可以轻易的给汉字加上拼音&#xff0c;如下&#x1f447;&#xff1a; 但是&#xff0c;如何单独的输入拼音呢&#xff1f;例如输入 pīn yīn, 再如 zhōng guō。今天我们分享一个使用rime中州韵小狼毫须鼠管输入法配置的输入汉语拼音的输入方案。功…

上海AI实验室等开源,音频、音乐统一开发工具包Amphion

上海AI实验室、香港中文大学数据科学院、深圳大数据研究院联合开源了一个名为Amphion的音频、音乐和语音生成工具包。 Amphion可帮助开发人员研究文本生成音频、音乐等与音频相关的领域&#xff0c;可以在一个框架内完成&#xff0c;以解决生成模型黑箱、代码库分散、缺少评估…

【开源】基于JAVA+Vue+SpringBoot的考研专业课程管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 考研高校模块2.3 高校教师管理模块2.4 考研专业模块2.5 考研政策模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 考研高校表3.2.2 高校教师表3.2.3 考研专业表3.2.4 考研政策表 四、系统展示五、核…

面试题:说一下缓存穿透?缓存击穿?缓存雪崩?

文章目录 面试题1&#xff1a;怎么解决缓存穿透问题的&#xff1f;那我们怎样来解决这种缓存穿透问题呢&#xff1f;布隆过滤器的优缺点 面试题2&#xff1a;说一下缓存击穿吧&#xff0c;你们是怎么解决的&#xff1f;解决方案&#xff1a; 面试题3&#xff1a;那缓存雪崩说说…

【服务器数据恢复】服务器硬盘磁头损坏的数据恢复案例

服务器硬盘故障&#xff1a; 一台服务器上raid阵列上有两块硬盘出现故障&#xff0c;用户方已经将故障硬盘送到其他机构检测过&#xff0c;其中一块硬盘已经开盘&#xff0c;检测结果是盘片损伤严重&#xff1b;另一块硬盘尚未开盘&#xff0c;初步判断也存在硬件故障&#xff…

大数据技术原理与应用 期末复习 知识点全总结(林子雨版

目录 1.第一章 大数据概述&#xff1a;&#xff08;一&#xff09;三次信息化浪潮&#xff08;二&#xff09;人类社会数据产生方式的3个阶段&#xff08;三&#xff09;大数据的3个发展阶段&#xff08;四&#xff09;大数据4V概念&#xff08;五&#xff09;数据存储单位之间…

九、IndexedDB前端缓存

前言 在通才 3D 数字工厂项目中,由于场景文件(glb 资源文件)过大,并且每次加载页面时,glb 文件都会被重新加载,造成页面加载缓慢,最后通过保存生成 Blob 格式存储到 IndexedDB 中,增加文件缓存,减少资源重复加载。 为什么需要 IndexedDB 随着前端技术的发展和浏览器…

上门回收小程序开发,让回收更加简单

资源回收一直是当下深受大众关注的话题&#xff0c;如何做到资源不浪费&#xff0c;成为了大众要考虑的问题。在人们环保意识的加深下&#xff0c;回收行业也是获得了大众的关注&#xff0c;逐渐形成了一个新的商业模式。 随着互联网技术的发展&#xff0c;回收行业也更加方便…

中霖教育:CPA注册会计师报考注意事项有哪些?

在报考注册会计师时&#xff0c;以下这些注意事项你一定要了解! 1.CPA报考的条件 考生需要具备完全民事行为能力;具有高等专科以上学校毕业学历&#xff0c;或者具有会计或者相关专业中级以上技术职称。 2.专业阶段考试科目为&#xff1a; 《会计》、《审计》、《税法》、《…

HarmonyOS讲解并演示 animateTo 动画效果

本文 我们一起看一看动画 首先 harmonyos中的东西 其实就是通过改变 响应式数据的值 以及配合动画参数 即可完成 我们先来看 布局更新动画 中的 显示动画 简单说 触发事件 改变组件的位置信息 我们先编写代码如下 Entry Component struct Index {State itemAlign: Horizont…

【Maven】005-基于 IDEA 进行 Maven 依赖管理

【Maven】005-基于 IDEA 进行 Maven 依赖管理 文章目录 【Maven】005-基于 IDEA 进行 Maven 依赖管理一、Maven 依赖管理二、GAVP 再说明三、Maven 工程依赖管理配置1、依赖配置2、版本统一声明和使用3、依赖范围说明4、Maven工程依赖下载失败错误解决&#xff08;重点&#xf…