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

发布时间:2024年01月12日

前言

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


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()
{

}

文章来源:https://blog.csdn.net/qq_26572229/article/details/135529050
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。