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 代表第一条记录中所有信息