c++学习笔记-STL案例-机房预约系统6-老师模块

这篇具有很好参考价值的文章主要介绍了c++学习笔记-STL案例-机房预约系统6-老师模块。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

衔接上一篇“c++学习笔记-STL案例-机房预约系统5-学生模块”,本文主要设计老师模块,从,老师登录和注销、查看所有预约、审核预约三个方面进行分析和实现。


目录

9 教师模块

9.1 教师登录和注销

9.1.1 构造函数

9.1.2 教师子菜单

​编辑

9.1.3 菜单功能实现

9.1.4 接口对接

9.1.5 测试结果

9.2 查看所以预约

9.2.1 所有预约功能实现

9.2.2 测试结果

9.3 审核预约

9.3.1 审核功能实现

9.3.2 测试审核功能


9 教师模块

9.1 教师登录和注销

9.1.1 构造函数

在Teacher类的构造函数中,初始化教师信息,代码如下:

//有参构造  参数:职工号,姓名,密码
Teacher::Teacher(int empid, string name, string pwd)
{
	this->m_EmpId = empid;
	this->m_Name = name;
	this->m_Pwd = pwd;
}

 添加位置如图:

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

9.1.2 教师子菜单

  • 在机房预约系统.cpp中,当用户登录的是教师,添加教师菜单接口
  • 将不同的分支提供出

        查看所有预约

        审核预约

        注销功能

  • 实现注销功能:

添加全局函数 void TeacherMenu(Identity*&manager)代码如下:

//进入老师子菜单
void teacherMenu(Identity*& teacher)
{
	while (true)
	{
		//调用子菜单界面
		teacher->operMenu();

		//将父类指针  转为子类指针  调用子类指针特有的功能
		Teacher * tea = (Teacher*)teacher;
		
		int select;//接收用户选择
		cin >> select;

		if (select == 1)  //查看所以预约
		{
			tea->showAllOrder();
		}
		else if (select == 2)  //审核预约
		{
			tea->validOrder();
		}
		else
		{
			delete teacher;
			cout << "注销成功" << endl;
			system("pause");
			system("cls");
			return;
		}
	}
}

  添加位置如图:

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

9.1.3 菜单功能实现

//菜单界面
void Teacher::operMenu()
{
	cout << "欢迎教师" << this->m_Name << "登录!" << endl;
	cout << "\t\t -------------------------------------------------" << endl;
	cout << "\t\t|                                                 |\n";
	cout << "\t\t|                 1.查看所有预约                  |\n";
	cout << "\t\t|                                                 |\n";
	cout << "\t\t|                 2.审核预约                      |\n";
	cout << "\t\t|                                                 |\n";
	cout << "\t\t|                 0.注销登录                      |\n";
	cout << "\t\t|                                                 |\n";
	cout << "\t\t -------------------------------------------------" << endl;
	cout << "请选择您的操作:" << endl;
}

  添加位置如图:

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

9.1.4 接口对接

				//进入教师身份子菜单
				teacherMenu(person);

   添加位置如图:

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

9.1.5 测试结果

登录老师账号:

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

注销老师账号:

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

9.2 查看所以预约

9.2.1 所有预约功能实现

该功能与学生身份的查看所有预约功能相似,用于显示所以预约记录

在Teacher.cpp中实现成员函数void Teacher::showAllOrder()

//查看所有预约
void Teacher::showAllOrder()
{
	OrderFile of;
	if (of.m_Size == 0)
	{
		cout << "无预约记录!" << endl;
		system("pause");
		system("cls");
		return;
	}
	for (int i = 0; i < of.m_Size; i++)
	{
		cout << i + 1 << "、";

		cout << "预约日期:周" << of.m_orderDate[i]["data"];
		cout << "预约时段:" << (of.m_orderDate[i]["interval"] == "1" ? "上午" : "下午");
		cout << "学号:" << of.m_orderDate[i]["stuId"];
		cout << "姓名:" << of.m_orderDate[i]["stuName"];
		cout << "机房号:" << of.m_orderDate[i]["roomId"];

		string status = "状态:";
		//1审核中  2已预约  -1预约失败 0取消预约

		if (of.m_orderDate[i]["status"] == "1")
		{
			status += "审核中";
		}
		else if (of.m_orderDate[i]["status"] == "2")
		{
			status += "已预约";
		}
		else if (of.m_orderDate[i]["status"] == "-1")
		{
			status += "预约失败,审核未通过";
		}
		else if (of.m_orderDate[i]["status"] == "0")
		{
			status += "预约已经取消";
		}
		cout << status << endl;
	}
	system("pause");
	system("cls");
}

 添加位置如图:

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

9.2.2 测试结果

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

9.3 审核预约

9.3.1 审核功能实现

//审核预约
void Teacher::validOrder()
{
	OrderFile of;
	if (of.m_Size == 0)
	{
		cout << "无预约记录" << endl;
		system("pause");
		system("cls");
		return;
	}

	vector<int>v;
	int index = 0;
	cout << "审核中的预约记录如下:" << endl;

	for (int i = 0; i < of.m_Size; i++)
	{
		if (of.m_orderDate[i]["status"] == "1")//审核中的预约
		{
			v.push_back(i);
			cout << ++index << "、";
			cout << "预约日期:周" << of.m_orderDate[i]["date"];
			cout << "  时间段:" << (of.m_orderDate[i]["interval"] == "1" ? "上午" : "下午");
			cout << "  学生编号:" << of.m_orderDate[i]["stuId"];
			cout << "  学生姓名:" << of.m_orderDate[i]["stuName"];
			cout << "  机房编号:" << of.m_orderDate[i]["roomId"];
			string status = "  状态:审核中";
			cout << status << endl;
		}
	}

	cout << "请输入审核的预约记录,0代表返回" << endl;
	int select = 0;//接受用户选择的预约记录
	int ret = 0;//接受预约结果记录

	while (true)
	{
		cin >> select;
		if (select >= 0 && select <=v.size())
		{
			if (select == 0)
			{
				break;
			}
			else
			{
				cout << "请输入审核结果" << endl;
				cout << "1、通过" << endl;
				cout << "2、不通过" << endl;

				cin >> ret;
				if (ret == 1)
				{
					//通过情况
					of.m_orderDate[v[select - 1]]["status"] = "2";
				}
				else
				{
					//不通过情况
					of.m_orderDate[v[select - 1]]["status"] = "-1";
				}
				of.updateOrder();//更新预约记录
				cout << "审核完毕!" << endl;
				break;
			}
		}
		cout << "输入有误,重新输入!" << endl;
	}
	system("pause");
	system("cls");
}

  添加位置如图:

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

9.3.2 测试审核功能

审核通过测试:

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

order.txt文件第一条预约也对应更改为“2”表示审核通过: 

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

审核不通过测试:

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

order.txt文件第一条预约也对应更改为“-1”表示审核不通过:  

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

查看所有预约, 第一条预约为"已预约”、 第二条预约为"预约失败,审核未通过”,符合上面两个操作审核的过程结果:

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

总结 

教师模块查看预约、审核预约、注销登录三大功能,其中教师的查看所有预约和学生模块的查看所有预约功能一致,审核预约需要筛选出预约状态为“审核中”的预约条目,记录这些条目在实际order.txt中的编号,然后根据人选择的编号更改选中编号的预约状态为“审核通过”或“审核不通过”,在根据审核结果更新orderFile的成员函数m_orderDate从而更新 order.txt文件。

流程图如下:​​​​​​​

c++学习笔记-STL案例-机房预约系统6-老师模块,c++,学习,笔记

数据通过文件方式进行流通。明天加个数据流图文章来源地址https://www.toymoban.com/news/detail-818582.html

到了这里,关于c++学习笔记-STL案例-机房预约系统6-老师模块的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java校园家教老师预约系统设计与实现(Idea+Springboot+mysql)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,学习后应对毕业设计答辩。 项目配有对应开发文档、

    2024年03月16日
    浏览(35)
  • 【操作系统OS】学习笔记:第二章 进程与线程 (上)【哈工大李治军老师】

    基于本人观看学习 哈工大李治军老师主讲的操作系统课程 所做的笔记,仅进行交流分享 特此鸣谢李治军老师,操作系统的神作! 如果本篇笔记帮助到了你,还请点赞 关注 支持一下 ♡𖥦)!! 主页专栏有更多,如有疑问欢迎大家指正讨论,共同进步! 给大家跳段街舞感谢支持

    2024年02月02日
    浏览(38)
  • C++进阶语法——STL 标准模板库(下)(Standard Template Library)【学习笔记(七)】

    1、迭代器 迭代器可以将任意的容器抽象成一个序列,可以使用迭代器遍历容器中的元素 迭代器设计的目的是为了解决容器与算法之间的耦合问题,与指针类似,可以通过迭代器访问容器中的元素 迭代器的声明方式为: 容器类型::iterator 变量名称 , 可以理解为一个普通的指

    2024年02月06日
    浏览(38)
  • 基于Java(SpringBoot框架)毕业设计作品成品(14)网上在线老师预约家教系统设计与实现

    博主介绍 :《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、PPT、论文模版

    2024年02月08日
    浏览(45)
  • 【信息安全案例】——系统软件安全(学习笔记)

    📖 前言:操作系统是管理系统资源、控制程序执行、提供良好人机界面和各种服务的一种系统软件,是连接计算机硬件与上层软件和用户之间的桥梁。因此,操作系统是其他系统软件、应用软件运行的基础,操作系统的安全性对于保障其他系统软件和应用软件的安全至关重

    2024年02月02日
    浏览(33)
  • 【蓝桥杯单片机】工厂灯光控制系统案例解析(小蜜蜂老师基础综合实训)

    设备检测——移位 L1~L8在板子上是从左至右,但是在对P0口赋值时是16进制从 高位(L8)—低位(L0) 根据原理图,LED赋值 0亮1灭 为了方便赋值,可以把板子转一下,让LED排序与赋值顺序相同 左移 右移 控制移位补0 ,使LED依次点亮、依次熄灭 unsigned char i 作为下文表格中的循环变量

    2023年04月09日
    浏览(29)
  • 区块链北大肖老师学习笔记3

    第四节:比特币的共识协议 数字货币和纸质货币区别是可以复制,叫作双花攻击  即double spending attack。 去中心化货币要解决两个问题:①数字货币的发行②怎么验证交易的有效性,防止double spending attack。    答案:①比特币的发行是由挖矿决定的 ②依靠区块链的数据结构 比特

    2024年02月09日
    浏览(24)
  • 区块链北大肖老师学习笔记5

    第六节 比特币网络 比特币工作在应用层(application layer:Bitcoin block chain),它的底层是一个网络层(network layer:P2P overlay network)。 比特币的P2P网络是非常简单的,所有节点都是对等的。不像有的P2P网络有所谓的超级节点(super node)、主节点(master node)。 要加入P2P网络首先得知道

    2024年01月17日
    浏览(39)
  • 区块链北大肖老师学习笔记4

    第五节 比特币系统的实现 区块链是去中心化的账本,比特币使用的是基于交易的这种账本模式(transaction[交易]-based ledger[账本])。系统当中并不会显示每个账户有多少钱。 比特币系统的全节点要维护一个叫UTXO(unspent transaction output)(还没有被花出去的交易的输出)的数据结构。区

    2023年04月19日
    浏览(26)
  • C++笔记-effective stl

    熟悉stl本身 慎重选择stl容器,每一种stl容器对应不同的使用场景,比如deque往往比vector更加合适 封装stl容器,积极的使用stl,可以高效的使用它 积极使用其对应迭代器使用的函数,比如做相加运算使用accumulate替代for循环,可以更加高效 调用对应的函数的时候,不使用过于复

    2024年01月18日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包