机房预约系统

c++实现机房预约系统,可使用学生代表、老师以及管理员身份登陆该系统。

1.菜单页面

1.系统主菜单:

2.学生代表子菜单:

 2.教师子菜单:

3.管理员子菜单:

2.搭建主菜单以及完登录

在主菜单中将注销登录功能实现。

将登陆功能封装起来,留出接口,让主函数调用。

菜单的实现:

int main()
{
	
	while (true)
	{
		cout << "********************欢迎来到机房预约系统****************************" << endl;
		cout << endl;
		cout << "请输入您的身份" << endl;
		cout << "\t\t-------------------------------------------------------\n";
		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|                3.管 理 员                           |\n";
		cout << "\t\t|                                                     |\n";
		cout << "\t\t|                0.退   出                            |\n";
		cout << "\t\t|                                                     |\n";
		cout << "\t\t-------------------------------------------------------\n";
		cout << "请输入您的选择:";
		int chose;
		cin >> chose;
		switch (chose)
		{
		case 1://学生
			/*cout << 1;*/
			loginIn(StudentFile, 1);
			break;
		case 2://老师
			/*cout << 2;*/
			loginIn(TeacherFile, 2);
			break;
		case 3://管理员
			loginIn(AdminFile, 3);
			/*cout << 3;*/
			break;
		case 0://退出
			cout << "欢迎下次使用" << endl;
			system("pause");
			return 0;
			break;


		default:
			cout << "输入有误,请重新选择!" << endl;
			system("pause");
			system("cls");
			break;
		}
		
	}
	system("pause");
	return 0;
}

登录功能:

void loginIn(string FileName, int type)
{
	Identity* Person = NULL;
	ifstream ifs;
	ifs.open(FileName, ios::in);
	if (!ifs.is_open())
	{
		cout << "文件不存在" << endl;
		ifs.close();
		return ;
	}

	int num = 0;
	string name;
	string pwd;

	if (type == 1)
	{
		cout << "请输入您的学号" << endl;
		cin >> num;
	}
	else if (type == 2)
	{
		cout << "请输入您的职工号" << endl;
		cin >> num;
	}

	cout << "请输入您的用户名" << endl;
	cin >> name;
	cout << "请输入您的密码" << endl;
	cin >> pwd;
	if (type == 1)
	{
		//学生身份验证
		int fnum;
		string fname;
		string fpwd;

		while (ifs >> fnum && ifs >> fname && ifs >> fpwd)
		{
			/*cout << fnum << endl;
			cout << fname << endl;
			cout << fpwd << endl;*/
			if (fnum == num && fname == name && fpwd == pwd)
			{
				cout << "学生" << fname << "登录成功!" << endl;

				
				system("pause");
				system("cls");
				Person = new Student(num, name, pwd);
				StudentMenu(Person);
				return;
			}
		}

	}
	else if (type == 2)
	{
		//老师身份验证
		
		int fnum;
		string fname;
		string fpwd;

		while (ifs >> fnum && ifs >> fname && ifs >> fpwd)
		{
			/*cout << fnum << endl;
			cout << fname << endl;
			cout << fpwd << endl;*/
			if (fnum == num && fname == name && fpwd == pwd)
			{
				cout << "老师" << fname << "登录成功!" << endl;
				system("pause");
				system("cls");
				Person=new Teacher(num, name, pwd);
				TeacherMenu(Person);
			
				return;
			}
		}
	}
	else if (type == 3)
	{
		//管理员身份验证
		string fname;
		string fpwd;

		while ( ifs >> fname && ifs >> fpwd)
		{
			if ( fname == name && fpwd == pwd)
			{
				cout << "管理员" << fname << "登录成功!" << endl;

				system("pause");
				system("cls");
				Person=new Manager(name, pwd);
				ManageraMenu(Person);
			
				return;
			}
		}
	}
	cout << "验证登录失败" << endl;

	system("pause");
	system("cls");
	return;
}

3.使用多态的方法创建不同的身份

1.创建身份的抽象基类

菜单函数使用纯虚函数的方法。后期子类继承该纯虚函数完成不同身份的不同菜单的具体实现。

class Identity
{
public:
	//子类菜单
	virtual void operMenu() = 0;

	//用户姓名
	string m_name;


	//用户密码
	string m_pwd;
	
private:

};

 2.管理员

Manager.h文件

//管理员接口
void ManageraMenu(Identity*& manager);
class Manager :public Identity
{
public:
	

	//有参构造
	Manager( string name, string pwd);

	//管理员菜单实现
	virtual void operMenu();

	//增加账号
	void AddPerson();

	//  查看账号
	void showPerson();

	//查看机房信息
	void showComputer();

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

	//初始化容器
	void InitVector();

	//读取机房信息
	void InitComputer();

	//检测添加id是否重复 学号 类型
	//返回真 重复
	bool checkRepeat(int id,int type);


	

	//学生容器
	vector<Student> vStu;

	//老师容器
	vector<Teacher> vTea;

	//机房容器
	vector<Computer> vCom;

};

Manager.cpp文件

void ManageraMenu(Identity *   &manager)
{
	while (true)
	{
		manager->operMenu();
		Manag
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【资源说明】 JSP实验基于JavaWeb的机房预约系统源码+sql数据库+实验说明.zip 该项目是个人毕设项目源码,评审分达到95分,都经过严格调试,确保可以运行!放心下载使用。 该项目资源主要针对计算机、自动化等相关专业的学生或从业者下载使用,也可作为期末课程设计、课程大作业、毕业设计等。 具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现类似其他功能。 编写一个首页,该页面能够自动跳转到WelcomeServlet 编写一个简单的机房预约系统,通过该系统实验室管理员可以完成机房的预约登记操作; 编写展示WelcomeServlet,该Servlet映射到首地址“/”,通过Java Bean获取所有机房的预约信息,并将数据转发到reservation .jsp页面; 编写机房预约页面(reservation .jsp),该页面能够显示所有的机房预约信息,预约界面应该以表格的形式展示每个机房哪些时间段可选,哪些时间段已被哪位教师占用;同时管理员可以在该页面上完成预约登记操作,登记信息包括:教师、机房、时间段。 编写样式表reservation.css,利用DIV+CSS布局对机房预约页面(reservation .jsp)进行美化; 编写JavaScript脚本reservation.js,该脚本主要功能为: (1)处理实验室管理员对时间段、机房的选择操作(可以通过在预约表格上单击单元格的方式来选择某机房的预约时间段,时间段选中与否应有状态区别); (2) 校验预约信息的正确性(当管理员单击已被占用的机房时间段或输入错误的教师信息时报错) 编写ReservationServlet,该Servlet能够接收页面传过来的预约数据,并能够调用Java Bean完成相关预约操作; 编写一个预约处理类ReservationBean,该处理类能够通过JDBC实现预约信息的查询以及预约信息的处理。 简易机房预约系统 拙作 初次接触Servlet做的简单玩意 使用Tomcat10.0.17部署 在JDK16环境下通过测试 默认使用H2数据库,数据库位置为D:\h2db。 如需更改可至src/main/java/beans/ReservationBean.java第57-61行中修改数据库驱动(类型)及数据库位置。 # 预览 静态页面预览地址:https://stallion-x.github.io/RoomReservationSystem/
### 回答1: 黑马机房预约系统是一款用于管理和预约机房资源的系统。该系统可以方便高效地帮助用户进行机房的预约和管理。 首先,该系统提供了一个用户界面,用户可以通过该界面浏览机房的可用时间和预约情况。用户可以根据自己的需要选择合适的时间段进行预约。 其次,系统还提供了预约管理功能。管理员可以登录系统进行机房资源的管理和调度。管理员可以查看所有预约情况,对预约进行审核和处理。如果有冲突或者其他问题,管理员可以通过系统与用户进行沟通和协商。 此外,该系统还提供了提醒功能。系统会在预约时间将近时给用户发送短信或者邮件提醒,确保用户不会忘记约定的使用时间。 黑马机房预约系统的好处是多方面的。首先,它提高了机房资源的利用率,避免了资源的浪费。通过合理的调度和管理,可以确保尽可能多的用户能够享受到机房的使用权。其次,该系统提供了便利的预约和管理功能,方便了用户和管理员的操作,节省了时间和精力。最后,该系统的提醒功能可以避免预约的遗忘,提高了效率和准确性。 总之,黑马机房预约系统是一款方便实用的系统,可以有效管理和预约机房资源,提高资源利用率和用户满意度。 ### 回答2: 黑马机房预约系统是一个方便学生预约机房使用的系统。这个系统主要有以下几个功能: 1. 预约机房:学生可以通过系统预约机房的使用时间。他们可以选择日期和时间段,并在系统中查看机房的实时可用情况。这有助于有效安排机房的使用,避免冲突和浪费。 2. 查看预约记录:学生可以通过系统查看他们的预约记录。这包括他们预约的日期,时间段以及预约成功与否的状态。这一功能方便他们随时了解自己的预约情况以及进行相应的调整。 3. 取消预约:对于一些情况下无法按计划使用机房的学生,他们可以通过系统取消预约。这样可以及时释放机房资源,方便其他学生进行预约。 4. 管理员权限:系统设有管理员权限,负责管理机房资源和学生预约情况。管理员可以查看机房使用情况,审核和确认学生的预约申请。他们还可以处理预约冲突和问题,确保机房资源的最有效利用。 5. 通知功能:系统可以通过短信、邮件等方式通知学生预约情况的变化,以及管理员的审核结果等。这样,学生能及时了解自己的预约状态,管理员也能更方便地与学生进行沟通。 总之,黑马机房预约系统通过有效的预约管理和信息传递,方便了学生对机房的使用,提升了机房资源的利用率。它是一个便捷、高效的工具,为学生和管理员带来了更好的使用体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值