机房预约系统

1.搭建界面

#include<iostream>

using namespace std;

int main()
{
	int select = 0;//用于接收用户的选择

	while (true)
	{
		cout << "==================欢迎来到传智客机房预约系统==============="
			<< endl;
		cout << endl << "请输入您的身份" << 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 << "请输入您的选择: ";

		cin >> select;//接受用户的选择
		switch (select)//根据用户选择 实现不同接口
		{
		case 1://学生身份
			break;
		case 2://老师身份
			break;
		case 3://管理员身份
			break;
		case 0://退出系统
			cout << "欢迎下一次使用!" << endl;
			system("pause");
			return 0;//退出程序
			break;
		default:
			cout << "输入错误,请重新选择!" << endl;
			system("pause");
			system("cls");//清屏
			break;
		}
	}

	
	system("pause");//任意键继续
	return 0;
}

2.退出系统

	case 0://退出系统
			cout << "欢迎下一次使用!" << endl;
			system("pause");
			return 0;//退出程序
			break;

3.创建身份类------Identity.h

#pragma once//防止头文件重复包含
#include<iostream>
using namespace std;

class Identity
{
public:
	//操作菜单 纯虚函数
	virtual void operMenu() = 0;
	//用户名
	string m_Name;
	//密码
	string m_Pwd;
};

创建学生头文件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() = 0;
	//申请预约
	void applyOrder();
	//查看自身预约
	void showMyOrder();
		//查看所有预约
	void showAllOrder();
	//取消预约
	void cancelOrder();

	//学生学号
	int m_Id;

};

创建学生源文件Student.cpp

#include"Student.h"

//默认构造
Student::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()
{
}


当要测试两个源文件cpp时 需要点击 生成–重新生成 就可以了 不会出现文件之间重复定义main报错

教师身份类源文件—Teacher.cpp

#include"Teacher.h"


//默认构造
Teacher::Teacher()
{
}//空实现
//有参构造
Teacher::Teacher(int empId, string name, string pwd)
{
}
//菜单界面
void Teacher::operMenu()
{
}
//查看所有预约
void Teacher::showAllOrder()
{
}
//审核预约
void Teacher::validOrder()
{
}

教师身份类—头文件 Teacher.h

#pragma once
#include<iostream>
using namespace std;
#include"Identity.h"

//教师类设计
class Teacher:public Identity
{
public:
	//操作菜单 纯虚函数
	virtual void operMenu() = 0;
	//默认构造
	Teacher();

	//有参构造
	Teacher(int empId, string name, string pwd);


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

	//职工编号
	int m_EmpId;
};

管理员类 --头文件Manager.h

#pragma once
#include<iostream>
#include"Identity.h"

using namespace std;

//管理员类设计
class Manager :public Identity
{
public:

	//默认构造
	Manager();

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

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

	//添加账号
	void addPerson();

	//查看账号
	void showPerson();

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

	//情况预约记录
	void cleanFile();

};

管理员类源文件----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::cleanFile()
{
}

打开文件所在的位置 再进行文件操作
在这里插入图片描述
总代码

#include<iostream>
#include "Identity.h"
#include<fstream>
#include<string>
#include"globalFile.h"
#include"student.h"
#include"teacher.h"
#include"manager.h"
using namespace std;

//登录功能  参数1 操作文件名 参数2 操作身份类型
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 id = 0;
	string name;
	string pwd;

	//判断身份
	if (type == 1)//学生身份
	{
		cout << "请输入你的学号:" << endl;
		cin >> id;
	}
	else if (type == 2)
	{
		cout << "请输入您的职工号:" << endl;
		cin >> id;
	}

	cout << "请输入用户名:" << endl;
	cin >> name;
	cout << "请输入密码:" << endl;
	cin >> pwd;

	if (type == 1)
	{
		//学生身份验证
		int fId;//从文件中读取的id号
		string fName;//从文件中获取的姓名
		string fPwd;//从文件中获取密码
		while (ifs >> fId && ifs >> fName && ifs >> fPwd)//>>表示右移
		{
			//与用户输入的信息做对比
			if (fId == id && fName == name && fPwd == pwd)
			{
				cout << "学生验证登录成功!" << endl;
				system("pause");
				system("cls");
				//person = new Student(id, name, pwd);
				//进入学生身份的子菜单
			}
			//cout << fId << endl;
			//cout << fName<< endl;
			//cout << fPwd<< endl;
			//cout << endl;
		}
	}
	else if (type == 2)
	{
		//教师身份验证

	}
	else if (type == 3)
	{
		//管理员身份验证
	}
	cout << "验证登录失败!" << endl;
	system("pause");
	system("cls");
	return;
}


int main()
{
	int select = 0;//用于接收用户的选择

	while (true)
	{
		cout << "==================欢迎来到传智客机房预约系统==============="
			<< endl;
		cout << endl << "请输入您的身份" << 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 << "请输入您的选择: ";

		cin >> select;//接受用户的选择
		switch (select)//根据用户选择 实现不同接口
		{
		case 1://学生身份
			LoginIn(STUDENT_FILE,1);
			break;
		case 2://老师身份
			LoginIn(TEACHER_FILE, 2);
			break;
		case 3://管理员身份
			LoginIn(ADMIN_FILE, 3);
			break;
		case 0://退出系统
			cout << "欢迎下一次使用!" << endl;
			system("pause");
			return 0;//退出程序
			break;
		default:
			cout << "输入错误,请重新选择!" << endl;
			system("pause");
			system("cls");//清屏
			break;
		}
	}

	
	system("pause");//任意键继续
	return 0;
}

对某些接口 可以右键-转到定义(查看具体定义)

map<string,string> key代表 属性 value 代表 实值
key date value 1
key interval value 2
key stuId value 1
key stuName value 张三、
key roomId value 3
key status value 1

map<int,map<string,string>> key 预约记录条数
value 代表第一条记录中所有信息

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值