前言
衔接上一篇“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()
{}