机房预约系统
头文件
computerRoom.h
#pragma once
#include <iostream>
using namespace std;
class ComputerRoom
{
public :
int m_ComId;
int m_MaxNum;
} ;
globalFile.h
#pragma once
#define ADMIN_FILE "admin.txt"
#define STUDENT_FILE "student.txt"
#define TEACHER_FILE "teacher.txt"
#define COMPUTER_FILE "computerRoom.txt"
#define ORDER_FILE "order.txt"
Identity.h
#pragma once
#include <iostream>
#include <string>
using namespace std;
class Identity
{
public :
virtual void operMenu ( ) = 0 ;
string m_Name;
string m_Pwd;
} ;
manager.h
#pragma once
#include <iostream>
#include <string>
#include <fstream>
#include "Identity.h"
#include "globalFile.h"
#include <vector>
#include "student.h"
#include "teacher.h"
#include <algorithm>
#include "computerRoom.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 ( ) ;
void initVector ( ) ;
bool checkRepeat ( int id, int type) ;
vector< Student> vStu;
vector< Teacher> vTea;
vector< ComputerRoom> vCom;
} ;
orderFile.h
#pragma once
#include <iostream>
using namespace std;
#include "globalFile.h"
#include <fstream>
#include <map>
#include <string>
class OrderFile
{
public :
OrderFile ( ) ;
void updateOrder ( ) ;
int m_Size;
map< int , map< string, string>> m_orderData;
} ;
student.h
#pragma once
#include <iostream>
using namespace std;
#include "Identity.h"
#include <string>
#include <vector>
#include "computerRoom.h"
#include <fstream>
#include "globalFile.h"
#include "orderFile.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;
vector< ComputerRoom> vCom;
} ;
teacher.h
#pragma once
#include <iostream>
#include "Identity.h"
#include "globalFile.h"
#include "orderFile.h"
#include <vector>
using namespace std;
class Teacher : public Identity
{
public :
Teacher ( ) ;
Teacher ( int emId, string name, string pwd) ;
virtual void operMenu ( ) ;
void showAllOrder ( ) ;
void validOrder ( ) ;
int m_emId;
} ;
源文件
manager.cpp
#include "manager.h"
Manager:: Manager ( )
{
}
Manager:: Manager ( string name, string pwd)
{
this - > m_Name = name;
this - > m_Pwd = pwd;
this - > initVector ( ) ;
ifstream ifs;
ifs. open ( COMPUTER_FILE, ios:: in) ;
ComputerRoom com;
while ( ifs>> com. m_ComId && ifs>> com. m_MaxNum)
{
vCom. push_back ( com) ;
}
ifs. close ( ) ;
cout << "机房的数量:" << vCom. size ( ) << endl;
}
void Manager:: operMenu ( )
{
cout << "欢迎管理员:" << this - > m_Name<< "登录!" << 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| 4.清空预约 |\n" ;
cout << "\t\t| |\n" ;
cout << "\t\t| 0.注销登录 |\n" ;
cout << "\t\t| |\n" ;
cout << "\t\t---------------------------------------------\n" ;
cout << "请输入您选择:" ;
}
void Manager:: addPerson ( )
{
cout << "请输入添加账号的类型:" << endl;
cout << "1.添加学生" << endl;
cout << "2.添加教师" << endl;
string fileName;
string tip;
string errorTip;
ofstream ofs;
int select = 0 ;
cin >> select;
if ( select == 1 )
{
fileName = STUDENT_FILE;
tip = "请输入学号" ;
errorTip = "学号重复,请重新输入" ;
}
else
{
fileName = TEACHER_FILE;
tip = "请输入职工编号" ;
errorTip = "职工编号重复,请重新输入" ;
}
ofs. open ( fileName, ios:: out | ios:: app) ;
int id;
string name;
string pwd;
while ( true )
{
cin >> id;
bool ret = checkRepeat ( id, select) ;
if ( ret)
{
cout << errorTip << endl;
}
else
{
break ;
}
}
cout << tip << endl;
cin >> id;
cout << "请输入姓名:" << endl;
cin >> name;
cout << "请输入密码:" << endl;
cin >> pwd;
ofs << id << " " << name << " " << pwd << " " << endl;
cout << "添加成功!" << endl;
system ( "pause" ) ;
system ( "cls" ) ;
ofs. close ( ) ;
this - > initVector ( ) ;
}
void printStudent ( Student & s)
{
cout << "学号:" << s. m_Id << " 姓名:" << s. m_Name << " 密码:" << s. m_Pwd << endl;
}
void printTeacher ( Teacher & t)
{
cout << "职工编号:" << t. m_emId << " 姓名:" << t. m_Name << " 密码:" << t. m_Pwd << endl;
}
void Manager:: showPerson ( )
{
cout << "请选择查看的内容:" << endl;
cout << "1.查看所有学生" << endl;
cout << "2.查看所有老师" << endl;
int select = 0 ;
cin >> select;
if ( select == 1 )
{
cout << "所有的学生信息如下" << endl;
for_each ( vStu. begin ( ) , vStu. end ( ) , printStudent) ;
}
else
{
cout << "所有的教师信息如下" << endl;
for_each ( vTea. begin ( ) , vTea. end ( ) , printTeacher) ;
}
system ( "pause" ) ;
system ( "cls" ) ;
}
void Manager:: showComputer ( )
{
cout << "机房的信息如下:" << endl;
for ( vector< ComputerRoom> :: iterator it = vCom. begin ( ) ; it != vCom. end ( ) ; it++ )
{
cout << "机房编号:" << it- > m_ComId << " 机房最大容量:" << it- > m_MaxNum << endl;
}
system ( "pause" ) ;
system ( "cls" ) ;
}
void Manager:: cleanFile ( )
{
ofstream ofs ( ORDER_FILE, ios:: trunc) ;
ofs. close ( ) ;
cout << "预约记录清空成功!" << endl;
system ( "pause" ) ;
system ( "cls" ) ;
}
void Manager:: initVector ( )
{
vStu. clear ( ) ;
vTea. clear ( ) ;
ifstream ifs;
ifs. open ( STUDENT_FILE, ios:: in) ;
if ( ! ifs. is_open ( ) )
{
cout << "文件读取失败!" << endl;
return ;
}
Student s;
while ( ifs >> s. m_Id && ifs >> s. m_Name && ifs >> s. m_Pwd)
{
vStu. push_back ( s) ;
}
cout << "当前的学生数量为:" << vStu. size ( ) << endl;
ifs. close ( ) ;
ifs. open ( TEACHER_FILE, ios:: in) ;
if ( ! ifs. is_open ( ) )
{
cout << "文件读取失败!" << endl;
return ;
}
Teacher t;
while ( ifs >> t. m_emId && ifs >> t. m_Name && ifs >> t. m_Pwd)
{
vTea. push_back ( t) ;
}
cout << "当前的教师数量为:" << vTea. size ( ) << endl;
ifs. close ( ) ;
}
bool Manager:: checkRepeat ( int id, int type)
{
if ( type == 1 )
{
for ( vector< Student> :: iterator it = vStu. begin ( ) ; it != vStu. end ( ) ; it++ )
{
if ( id == it- > m_Id)
{
return true ;
}
}
for ( vector< Teacher> :: iterator it = vTea. begin ( ) ; it != vTea. end ( ) ; it++ )
{
if ( id == it- > m_emId)
{
return true ;
}
}
}
else
{
}
return false ;
}
orderFile.cpp
#include "orderFile.h"
OrderFile:: OrderFile ( )
{
ifstream ifs;
ifs. open ( ORDER_FILE, ios:: in) ;
string date;
string interval;
string stuId;
string stuName;
string roomId;
string status;
this - > m_Size = 0 ;
while ( ifs >> date && ifs >> interval && ifs >> stuId && ifs
>> stuName && ifs >> roomId && ifs >> status)
{
string key;
string value;
map< string, string> m;
int pos = date. find ( ":" ) ;
if ( pos != - 1 )
{
key = date. substr ( 0 , pos) ;
value = date. substr ( pos + 1 , date. size ( ) - pos - 1 ) ;
m. insert ( make_pair ( key, value) ) ;
}
pos = interval. find ( ":" ) ;
if ( pos != - 1 )
{
key = interval. substr ( 0 , pos) ;
value = interval. substr ( pos + 1 , interval. size ( ) - pos - 1 ) ;
m. insert ( make_pair ( key, value) ) ;
}
pos = stuId. find ( ":" ) ;
if ( pos != - 1 )
{
key = stuId. substr ( 0 , pos) ;
value = stuId. substr ( pos + 1 , stuId. size ( ) - pos - 1 ) ;
m. insert ( make_pair ( key, value) ) ;
}
pos = stuName. find ( ":" ) ;
if ( pos != - 1 )
{
key = stuName. substr ( 0 , pos) ;
value = stuName. substr ( pos + 1 , stuName. size ( ) - pos - 1 ) ;
m. insert ( make_pair ( key, value) ) ;
}
pos = roomId. find ( ":" ) ;
if ( pos != - 1 )
{
key = roomId. substr ( 0 , pos) ;
value = roomId. substr ( pos + 1 , roomId. size ( ) - pos - 1 ) ;
m. insert ( make_pair ( key, value) ) ;
}
pos = status. find ( ":" ) ;
if ( pos != - 1 )
{
key = status. substr ( 0 , pos) ;
value = status. substr ( pos + 1 , status. size ( ) - pos - 1 ) ;
m. insert ( make_pair ( key, value) ) ;
}
this - > m_orderData. insert ( make_pair ( this - > m_Size, m) ) ;
this - > m_Size++ ;
}
ifs. close ( ) ;
}
void OrderFile:: updateOrder ( )
{
if ( this - > m_Size == 0 )
{
return ;
}
ofstream ofs ( ORDER_FILE, ios:: out | ios:: trunc) ;
for ( int i = 0 ; i < m_Size; i++ )
{
ofs << "date:" << this - > m_orderData[ i] [ "date" ] << " " ;
ofs << "interval:" << this - > m_orderData[ i] [ "interval" ] << " " ;
ofs << "stuId:" << this - > m_orderData[ i] [ "stuId" ] << " " ;
ofs << "stuName:" << this - > m_orderData[ i] [ "stuName" ] << " " ;
ofs << "roomId:" << this - > m_orderData[ i] [ "roomId" ] << " " ;
ofs << "status:" << this - > m_orderData[ i] [ "status" ] << endl;
}
ofs. close ( ) ;
}
student.cpp
#include "student.h"
Student:: Student ( )
{
}
Student:: Student ( int id, string name, string pwd)
{
this - > m_Id = id;
this - > m_Name = name;
this - > m_Pwd = pwd;
ifstream ifs;
ifs. open ( COMPUTER_FILE, ios:: in) ;
ComputerRoom com;
while ( ifs>> com. m_ComId && ifs>> com. m_MaxNum)
{
vCom. push_back ( com) ;
}
ifs. close ( ) ;
}
void Student:: operMenu ( )
{
cout << "欢迎学生:" << this - > m_Name << "登录!" << 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| 4.取消预约 |\n" ;
cout << "\t\t| |\n" ;
cout << "\t\t| 0.注销登录 |\n" ;
cout << "\t\t| |\n" ;
cout << "\t\t---------------------------------------------\n" ;
cout << "请输入您选择:" ;
}
void Student:: applyOrder ( )
{
cout << "机房开放时间为周一至周五!" << endl;
cout << "请输入申请预约的时间" << endl;
cout << "1.周一" << endl;
cout << "2.周二" << endl;
cout << "3.周三" << endl;
cout << "4.周四" << endl;
cout << "5.周五" << endl;
int date = 0 ;
int interval = 0 ;
int room = 0 ;
while ( true )
{
cin >> date;
if ( date >= 1 && date <= 5 )
{
break ;
}
cout << "输入有误,请重新输入!" << endl;
}
cout << "请输入申请预约的时间段:" << endl;
cout << "1.上午" << endl;
cout << "2.下午" << endl;
while ( true )
{
cin >> interval;
if ( interval >= 1 && interval <= 2 )
{
break ;
}
cout<< "输入有误,请重新输入!" << endl;
}
cout << "请选择机房:" << endl;
for ( int i = 0 ; i < vCom. size ( ) ; i++ )
{
cout << vCom[ i] . m_ComId << "号机房的容量为:" << vCom[ i] . m_MaxNum << endl;
}
while ( true )
{
cin >> room;
if ( room >= 1 && room <= 3 )
{
break ;
}
cout << "输入有误,请重新输入!" << endl;
}
cout << "预约成功!审核中" << endl;
ofstream ofs;
ofs. open ( ORDER_FILE, ios:: app) ;
ofs << "date:" << date << " " ;
ofs << "interval:" << interval << " " ;
ofs << "stuId:" << this - > m_Id << " " ;
ofs << "stuName:" << this - > m_Name << " " ;
ofs << "roomId:" << room << " " ;
ofs << "status:" << 1 << " " << endl;
ofs. close ( ) ;
system ( "pause" ) ;
system ( "cls" ) ;
}
void Student:: showMyOrder ( )
{
OrderFile of;
if ( of. m_Size == 0 )
{
cout << "无预约记录!" << endl;
system ( "pause" ) ;
system ( "cls" ) ;
return ;
}
for ( int i = 0 ; i < of. m_Size; i++ )
{
if ( atoi ( of. m_orderData[ i] [ "stuId" ] . c_str ( ) ) == this - > m_Id)
{
cout << "预约日期: 周" << of. m_orderData[ i] [ "date" ] ;
cout << " 时间段:" << ( of. m_orderData[ i] [ "interval" ] == "1" ? "上午" : "下午" ) ;
cout << " 机房编号:" << of. m_orderData[ i] [ "roomId" ] ;
string status = " 状态:" ;
if ( of. m_orderData[ i] [ "status" ] == "1" )
{
status + = "审核中" ;
}
else if ( of. m_orderData[ i] [ "status" ] == "2" )
{
status + = "预约成功" ;
}
else if ( of. m_orderData[ i] [ "status" ] == "-1" )
{
status + = "预约失败,审核未通过" ;
}
else if ( of. m_orderData[ i] [ "status" ] == "0" )
{
status + = "预约已取消" ;
}
cout << status << endl;
}
}
system ( "pause" ) ;
system ( "cls" ) ;
}
void Student:: 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_orderData[ i] [ "interval" ] == "1" ? "上午" : "下午" ) ;
cout << " 学号:" << of. m_orderData[ i] [ "stuId" ] ;
cout << " 姓名:" << of. m_orderData[ i] [ "stuName" ] ;
cout << " 机房编号:" << of. m_orderData[ i] [ "roomId" ] ;
string status = " 状态:" ;
if ( of. m_orderData[ i] [ "status" ] == "1" )
{
status + = "审核中" ;
}
else if ( of. m_orderData[ i] [ "status" ] == "2" )
{
status + = "预约成功" ;
}
else if ( of. m_orderData[ i] [ "status" ] == "-1" )
{
status + = "预约失败,审核未通过" ;
}
else if ( of. m_orderData[ i] [ "status" ] == "0" )
{
status + = "预约已取消" ;
}
cout << status << endl;
}
system ( "pause" ) ;
system ( "cls" ) ;
}
void Student:: cancelOrder ( )
{
OrderFile of;
if ( of. m_Size == 0 )
{
cout << "无预约记录" << endl;
system ( "pause" ) ;
system ( "cls" ) ;
return ;
}
cout << "审核中或预约成功的记录可以取消,请输入取消的记录:" << endl;
vector< int > v;
int index = 1 ;
for ( int i = 0 ; i < of. m_Size; i++ )
{
if ( atoi ( of. m_orderData[ i] [ "stuId" ] . c_str ( ) ) == this - > m_Id)
{
if ( of. m_orderData[ i] [ "status" ] == "1" || of. m_orderData[ i] [ "status" ] == "2" )
{
v. push_back ( i) ;
cout << index ++ << "、" ;
cout << "预约日期:周" << of. m_orderData[ i] [ "date" ] ;
cout << " 时间段:" << ( of. m_orderData[ i] [ "interval" ] == "1" ? "上午" : "下午" ) ;
cout << " 机房编号:" << of. m_orderData[ i] [ "roomId" ] ;
string status = " 状态:" ;
if ( of. m_orderData[ i] [ "status" ] == "1" )
{
status + = "审核中" ;
}
else if ( of. m_orderData[ i] [ "status" ] == "2" )
{
status + = "预约成功" ;
}
cout << status << endl;
}
}
}
cout << "请输入取消的记录,0代表返回" << endl;
int select = 0 ;
while ( true )
{
cin >> select;
if ( select >= 0 && select <= v. size ( ) )
{
if ( select == 0 )
{
break ;
}
else
{
of. m_orderData[ v[ select - 1 ] ] [ "status" ] = "0" ;
of. updateOrder ( ) ;
cout << "已取消预约" << endl;
break ;
}
}
cout << "输入有误,请重新输入!" << endl;
}
system ( "pause" ) ;
system ( "cls" ) ;
}
teacher.cpp
#include "teacher.h"
Teacher:: Teacher ( )
{
}
Teacher:: Teacher ( int emId, string name, string pwd)
{
this - > m_emId = emId;
this - > m_Name = name;
this - > m_Pwd = pwd;
}
void Teacher:: operMenu ( )
{
cout << "欢迎教师:" << this - > m_Name << "登录!" << 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| 0.注销登录 |\n" ;
cout << "\t\t| |\n" ;
cout << "\t\t---------------------------------------------\n" ;
cout << "请输入您选择:" ;
}
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_orderData[ i] [ "date" ] ;
cout << " 时间段:" << ( of. m_orderData[ i] [ "interval" ] == "1" ? "上午" : "下午" ) ;
cout << " 学号:" << of. m_orderData[ i] [ "stuId" ] ;
cout << " 姓名:" << of. m_orderData[ i] [ "stuName" ] ;
cout << " 机房编号:" << of. m_orderData[ i] [ "roomId" ] ;
string status = " 状态:" ;
if ( of. m_orderData[ i] [ "status" ] == "1" )
{
status + = "审核中" ;
}
else if ( of. m_orderData[ i] [ "status" ] == "2" )
{
status + = "预约成功" ;
}
else if ( of. m_orderData[ i] [ "status" ] == "-1" )
{
status + = "预约失败,审核未通过" ;
}
else if ( of. m_orderData[ i] [ "status" ] == "0" )
{
status + = "预约已取消" ;
}
cout << status << endl;
}
system ( "pause" ) ;
system ( "cls" ) ;
}
void Teacher:: validOrder ( )
{
OrderFile of;
if ( of. m_Size == 0 )
{
cout << "无预约记录" << endl;
system ( "pause" ) ;
system ( "cls" ) ;
return ;
}
vector< int > v;
int index = 1 ;
cout << "待审核的预约记录如下:" << endl;
for ( int i = 0 ; i < of. m_Size; i++ )
{
if ( of. m_orderData[ i] [ "status" ] == "1" )
{
v. push_back ( i) ;
cout << index++ << "、" ;
cout<< "预约日期: 周" << of. m_orderData[ i] [ "date" ] ;
cout << " 时间段:" << ( of. m_orderData[ i] [ "interval" ] == "1" ? "上午" : "下午" ) ;
cout << " 学生编号:" << of. m_orderData[ i] [ "stuId" ] ;
cout << " 学生姓名:" << of. m_orderData[ i] [ "stuName" ] ;
cout << " 机房编号:" << of. m_orderData[ 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_orderData[ v[ select - 1 ] ] [ "status" ] = "2" ;
}
else
{
of. m_orderData[ v[ select - 1 ] ] [ "status" ] = "-1" ;
}
of. updateOrder ( ) ;
cout << "审核完毕!" << endl;
break ;
}
}
cout << "输入有误,请重新输入!" << endl;
}
system ( "pause" ) ;
system ( "cls" ) ;
}
机房预约系统.cpp
#include <iostream>
#include "Identity.h"
#include <fstream>
#include "globalFile.h"
#include "student.h"
#include "teacher.h"
#include "manager.h"
using namespace std;
void managerMenu ( Identity * & manager)
{
while ( true )
{
manager- > operMenu ( ) ;
Manager * man = ( Manager* ) manager;
int select = 0 ;
cin >> select;
if ( select == 1 )
{
man- > addPerson ( ) ;
}
else if ( select == 2 )
{
man- > showPerson ( ) ;
}
else if ( select == 3 )
{
man- > showComputer ( ) ;
}
else if ( select == 4 )
{
man- > cleanFile ( ) ;
}
else
{
delete manager;
cout << "注销成功!" << endl;
system ( "pause" ) ;
system ( "cls" ) ;
return ;
}
}
}
void studentMenu ( Identity * & student)
{
while ( true )
{
student- > operMenu ( ) ;
Student * stu = ( Student * ) student;
int select = 0 ;
cin >> select;
if ( select == 1 )
{
stu- > applyOrder ( ) ;
}
else if ( select == 2 )
{
stu- > showMyOrder ( ) ;
}
else if ( select == 3 )
{
stu- > showAllOrder ( ) ;
}
else if ( select == 4 )
{
stu- > cancelOrder ( ) ;
}
else
{
delete student;
cout << "注销成功!" << endl;
system ( "pause" ) ;
system ( "cls" ) ;
return ;
}
}
}
void teacherMenu ( Identity * & teacher)
{
while ( true )
{
teacher- > operMenu ( ) ;
Teacher * tea = ( Teacher* ) teacher;
int select = 0 ;
cin >> select;
if ( select == 1 )
{
tea- > showAllOrder ( ) ;
}
else if ( select == 2 )
{
tea- > validOrder ( ) ;
}
else
{
delete teacher;
cout << "注销成功!" << endl;
system ( "pause" ) ;
system ( "cls" ) ;
return ;
}
}
}
void LogIn ( 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;
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) ;
studentMenu ( person) ;
return ;
}
}
}
else if ( type == 2 )
{
int fId;
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 Teacher ( id, name, pwd) ;
teacherMenu ( person) ;
return ;
}
}
}
else if ( type == 3 )
{
string fName;
string fPwd;
while ( ifs >> fName && ifs >> fPwd)
{
if ( fName == name && fPwd == pwd)
{
cout << "管理员验证登录成功!" << endl;
system ( "pause" ) ;
system ( "cls" ) ;
person = new Manager ( name, pwd) ;
managerMenu ( person) ;
return ;
}
}
}
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 << "\t\t---------------------------------------------\n" ;
cout << "请输入您选择:" ;
cin >> select;
switch ( select)
{
case 1 :
cout << "欢迎学生代表登录!" << endl;
LogIn ( STUDENT_FILE, 1 ) ;
break ;
case 2 :
cout << "欢迎教师登录!" << endl;
LogIn ( TEACHER_FILE, 2 ) ;
break ;
case 3 :
cout << "欢迎管理员登录!" << endl;
LogIn ( 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 ;
}