⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 manage.cpp

📁 此代码为数据结构课程设计代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#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 + -