📄 manage.cpp
字号:
#include <time.h>
#include <iostream>
#include <iomanip>
#include <fstream>
using namespace std;
#include "manage.h"
#include "string2int.h"
manage::manage()
{
state = RUNNING;
//password = "123456";
fstream fp;
fp.open("pass.data", ios::in);
fp >> password;
fp.close();
}
manage::~manage()
{
fstream fp;
fp.open("pass.data", ios::out);
fp << password;
fp.close();
}
int manage::managerLogin()
{
int i;
system("cls");
for (i = 0; i < 5; i++)
cout << endl;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "这里是管理员页面,请输入密码\n";
for (i = 0; i < 20; i++)
cout << ' ';
cout << "密码: ";
string passString;
int lastTime = 3;
cin >> passString;
while (passString != password)
{
for (i = 0; i < 20; i++)
cout << ' ';
cout << "密码错误\n";
lastTime--;
if (!lastTime) break;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "你还有" << lastTime << "次机会\n";
for (i = 0; i < 20; i++)
cout << ' ';
cout << "请输入密码:";
cin >> passString;
}
if (!lastTime)
{
for (i = 0; i < 20; i++)
cout << ' ';
cout << "由于你输入错误次数过多,您的登入已被取消\n";
system("pause");
return 0;
}
while (1)
{
system("cls");
for (i = 0; i < 5; i++)
cout << endl;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "1. 调整房间参数\n\n";
for (i = 0; i < 20; i++)
cout << ' ';
cout << "2. 密码修改\n\n";
for (i = 0; i < 20; i++)
cout << ' ';
cout << "3. 返回主菜单\n\n";
string tmpstr;
int tmpInput;
while (1)
{
for (i = 0; i < 20; i++)
cout << ' ';
cout << "您要进行的操作是: ";
cin >> tmpstr;
if (string2int(tmpstr, tmpInput) && (tmpInput >= 1 && tmpInput <= 3)) break;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "输入错误\n";
}
switch (tmpInput)
{
case 2:
modifyPassword();
break;
case 1:
modifyHotel();
break;
case 3:
return 1;
break;
default:
cout << "输入错误\n";
}
}
return 0;
}
int manage::modifyGradeRoom(int tmpGrade)
{
int i;
string tmpstr;
int tmpRoomNum, tmpBedNum, tmpPrice;
while (1)
{
for (i = 0; i < 20; i++)
cout << ' ';
cout << "请输入等级" << tmpGrade + 1 << "房间的个数: ";
cin >> tmpstr;
cout << endl;
if (string2int(tmpstr, tmpRoomNum)) break;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "输入错误";
}
while (1)
{
for (i = 0; i < 20; i++)
cout << ' ';
cout << "请输入等级" << tmpGrade + 1<< "房间的床位数: ";
cin >> tmpstr;
cout << endl;
if (string2int(tmpstr, tmpBedNum)) break;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "输入错误";
}
while (1)
{
for (i = 0; i < 20; i++)
cout << ' ';
cout << "请输入等级" << tmpGrade + 1 << "房间的价格: ";
cin >> tmpstr;
cout << endl;
if (string2int(tmpstr, tmpPrice)) break;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "输入错误";
}
myHotel.setGradeRoom(tmpGrade, tmpRoomNum, tmpBedNum, tmpPrice);
return 0;
}
int manage::modifyHotel()
{
while (1)
{
system("cls");
int i;
for (i = 0; i < 3; i++)
cout << endl;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "这里是酒店参数修改界面\n\n";
for (i = 0; i < 20; i++)
cout << ' ';
cout << "1. 批量修改房间位数及价格\n\n";
for (i = 0; i < 20; i++)
cout << ' ';
cout << "2. 指定修改房间床位数及价格\n\n";
for (i = 0; i < 20; i++)
cout << ' ';
cout << "3. 修改房间等级数\n\n";
for (i = 0; i < 20; i++)
cout << ' ';
cout << "4. 返回上一层\n\n";
string tmpstr;
int tmpInput;
while (1)
{
for (i = 0; i < 20; i++)
cout << ' ';
cout << "请输入您要进行的操作: ";
cin >> tmpstr;
cout << endl;
if (string2int(tmpstr, tmpInput) && (tmpInput >= 1 && tmpInput <= 4)) break;
cout << endl;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "输入错误!\n\n";
}
switch (tmpInput)
{
case 1:
for (i = 0; i < myHotel.getGradeNumber(); i++)
modifyGradeRoom(i);
break;
case 2:
for (i = 0; i < 20; i++)
cout << ' ';
int tmpGrade;
while (1)
{
cout << "请输入你要修改的房间的等级: ";
cin >> tmpstr;
if (string2int(tmpstr, tmpGrade) && tmpGrade > 0
&& tmpGrade <= myHotel.getGradeNumber())
break;
cout << endl;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "输入错误!\n\n";
}
modifyGradeRoom(tmpGrade - 1);
break;
case 3:
for (i = 0; i < 20; i++)
cout << ' ';
cout << "请输入房间的等级个数: ";
int tmpGradeNum;
cin >> tmpstr;
cout << endl;
if (string2int(tmpstr, tmpGradeNum))
{
myHotel.setGradeNumber(tmpGradeNum);
for (i = 0; i < tmpGradeNum; i++)
modifyGradeRoom(i);
}
else
{
for (i = 0; i < 20; i++)
cout << ' ';
cout << "输入错误!\n\n";
}
break;
case 4:
return 1;
break;
default:
cout << "输入错误!\n\n";
}
}
return 0;
}
int manage::modifyPassword()
{
int i;
system("cls");
for (i = 0; i < 5; i++)
cout << endl;
string newPassword, newPassAgain;
while (1)
{
for (i = 0; i < 20; i++)
cout << ' ';
cout << "请输入新密码: ";
cin >> newPassword;
cout << endl;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "请重新输入密码: ";
cin >> newPassAgain;
if (newPassword == newPassAgain)
break;
cout << endl;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "两次输入密码不一致,请重新输入\n\n";
}
password = newPassword;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "密码修改成功!\n";
system("pause");
return 0;
}
int manage::addCustomer()
{
int i, j;
system("cls");
for (i = 0; i < 2; i++)
cout << endl;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "***酒店欢迎您的到来!\n\n";
for (i = 0; i < 20; i++)
cout << ' ';
cout << "您好,本酒店提供" << myHotel.getGradeNumber() << "种房间\n\n";
for (i = 0; i < 20; i++)
cout << ' ';
cout << "级别 床位 价格\n\n";
for (i = 0; i < myHotel.getGradeNumber(); i++)
{
for (j = 0; j < 20; j++)
cout << ' ';
cout << i + 1 << "." << setfill(' ') << setw(8)
<< myHotel.getGradeBedNumber(i)
<< setw(8) << myHotel.getGradeCost(i) << endl << endl;
}
int tmpGrade;
int tmpSex;
string tmpName;
string tmpID;
string tmpstr;
while (1)
{
for (i = 0; i < 20; i++)
cout << ' ';
cout << "请输入您想入住的房间的级别:";
cin >> tmpstr;
cout << endl;
if (string2int(tmpstr, tmpGrade) && tmpGrade > 0
&& tmpGrade <= myHotel.getGradeNumber())
break;
else
{
for (i = 0; i < 20; i++)
cout << ' ';
cout << "输入错误,请重新输入\n";
}
}
for (j = 0; j < 20; j++)
cout << ' ';
cout << "以下是必要信息,请您如实填写\n";
for (i = 0; i < 20; i++)
cout << ' ';
cout << "姓名: ";
cin >> tmpName;
cout << endl;
while (1)
{
for (i = 0; i < 20; i++)
cout << ' ';
cout << "性别 1.[男] 0.[女] ";
cin >> tmpstr;
cout << endl;
if (string2int(tmpstr, tmpSex) && (tmpSex == 1 || !tmpSex)) break;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "输入性别错误,请重新输入\n";
}
while (1)
{
for (i = 0; i < 20; i++)
cout << ' ';
cout << "输入18位身份证号码: ";
cin >> tmpID;
if (tmpID.size() == 18) break;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "输入身份证号码有误!请重新输入\n";
}
bool boolSex;
boolSex = tmpSex == 1 ? true : false;
Time nowTime;
customer newCustomer(tmpID, boolSex, tmpName, nowTime, 0, 0);
room tmpRoom;
if (myHotel.addNewCustomer(newCustomer, tmpGrade - 1, tmpRoom))
{
system("cls");
for (i = 0; i < 5; i++)
cout << endl;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "您好,我们已经为您安排好了房间!\n\n";
for (i = 0; i < 20; i++)
cout << ' ';
cout << "您的房间号为 " << tmpRoom.getGrade() + 1 << setfill('0')
<< setw(3) << tmpRoom.getRoomNumber() + 1<< "\n\n";
for (i = 0; i < 20; i++)
cout << ' ';
cout << "祝您住宿愉快\n";
}
else
{
system("cls");
for (i = 0; i < 5; i++)
cout << endl;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "对不起,由于住房紧张,我们未能为您分配好房间\n\n";
for (i = 0; i < 20; i++)
cout << ' ';
cout << "请通过住房查询,根据住房状况来定置您的房间\n\n";
}
system("pause");
return 0;
}
int manage::delCustomer()
{
system("cls");
int i;
for (i = 0; i < 3; i++)
cout << endl;
for (i = 0; i < 20; i++)
cout << ' ';
cout << "这里是退房界面\n\n";
string tmpID;
while (1)
{
for (i = 0; i < 20; i++)
cout << ' ';
cout << "请输入18位身份证号码:";
cin >> tmpID;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -