#include"Hotel.h"
/**
* if the error times till 3
* end
* modified by xujian
*/
void Hotel::login()
{
char account[10],password[10];
//用于记录错误次数
int i, k=0;
//用于判断是否循环,如果验证错误继续循环
int mark=1;
while(mark)
{
cout<<endl<<endl<<endl;
cout<<endl<<endl<<endl;
cout<<endl<<endl<<endl;
cout<<" 请输入用户名:";
cin>>account;
cout<<" 请输入密码:";
for(i=0;i<10;i++)
{
//回车的ASCII码为13
if((password[i] = getch())!=13)
{
cout<<'*';
}
else break;
}
/* 在字符数组最后加入"\0"结束符,保证可用strcmp对比 */
password[i]='\0';
cout<<endl;
/* 用户名密码为:root 123456 */
if( ( ( strcmp(account,"root")!=0 ) || ( strcmp(password,"123456")!=0 ) )&&(k !=2) )
{
cout<<" 用户名或密码有误!\n";
k++;
system("pause");
system("cls");
}
else if(k == 2)
{
system("cls");
cout<<endl<<endl<<endl;
cout<<endl<<endl<<endl;
cout<<endl<<endl<<endl;
cout<<" 错误次数超过三次,程序中断!\n";
exit(0);
}
else mark=0;
}
}
/**
* user interface
* modified by xujian
*/
void Hotel::menu()
{
int kind_of_service;
system("cls");
cout<<" +─────────────+\n";
cout<<" ┃ ++宾馆客房管理系统++ |\n";
cout<<" +─────────────+\n";
cout<<" ''~`` "<<endl;
cout<<" ( o o ) "<<endl;
cout<<" ------------------------.oooO--(_)--Oooo.------------------------"<<endl;
cout<<" . 1 - 预定房间 ."<<endl;
cout<<" . 2 - 入住房间 ."<<endl;
cout<<" . 3 - 结账退房 ."<<endl;
cout<<" . 4 - 查询信息 ."<<endl;
cout<<" . 5 - 保存退出 ."<<endl;
cout<<" . 6 - 清空数据 ."<<endl;
cout<<" . 7 - 交换房间 ."<<endl;
cout<<" . .oooO ."<<endl;
cout<<" . ( ) Oooo. ."<<endl;
cout<<" ----------------------------\\ (---( )--------------------------"<<endl;
cout<<" \\_) ) / "<<endl;
cout<<" (_/ "<<endl;
cout<<"请输入(1-7)选择项目:";
cin>>kind_of_service;
if((kind_of_service>7) || (kind_of_service<1))
{
cout<<"您的输入有误,请重试!\n";
fflush(stdin); //清除IO缓冲区
system("pause"); //"按任意键继续"
}
else
switch(kind_of_service)
{
case 1: book_room();system("pause"); //预定房间
break;
case 2: check_in();system("pause"); //入住
break;
case 3: check_out();system("pause"); //退房
break;
case 4: inquire();system("pause"); //查询
break;
case 5: saveFile();
exit(0); //保存退出
case 6: delFile();system("pause");
break; //删除文件
case 7: change();system("pause");
break;
}
}
//订房
void Hotel::book_room()
{
//新建一个对象并把对象的地址赋给对象指针
cus_point[cus_count]=new Customer;
int room_standard,day;
cout<<"请您选择预定房间的标准:\n";
cout<<"1.单人间/天150元\n2.双人间/天200元\n3.标准间/天300元\n4.总统套房/天600元\n";
cin>>room_standard;
cout<<"请输入预定天数:\n";
cin>>day;
cus_point[cus_count]->setDay(day);
switch(room_standard)
{
int n;
case 1:
cout<<"住房费用总共为: "<<day*150<<"元\n";
//从第一个级别的房间中查找一个空闲的房间
for(n=0;n<20;n++)
{
if(roo_count[n].getState()==0)
{
cout<<"预定成功,房间号码为: "<<roo_count[n].getId()<<endl;
roo_count[n].setState(1); //将房间状态改为"预定"
cus_point[cus_count]->setRoomId(roo_count[n].getId()); //送房间信息给顾客对象
break;
}
}
break;
case 2:
cout<<"住房费用总共为: "<<day*200<<" 元\n";
for(n=20;n<40;n++)
{
if(roo_count[n].getState()==0)
{
cout<<"预定成功,房间号码为: "<<roo_count[n].getId()<<endl;
roo_count[n].setState(1);
cus_point[cus_count]->setRoomId(roo_count[n].getId());
break;
}
}
break;
case 3:
cout<<"住房费用总共为: "<<day*300<<" 元\n";
for(n=40;n<60;n++)
{
if(roo_count[n].getState()==0)
{
cout<<"预定成功,房间号码为: "<<roo_count[n].getId()<<endl;
roo_count[n].setState(1);
cus_point[cus_count]->setRoomId(roo_count[n].getId());
break;
}
}
break;
case 4:
cout<<"住房费用总共为: "<<day*600<<"元\n";
for(n=60;n<80;n++)
{
if(roo_count[n].getState()==0)
{
cout<<"预定成功,房间号码为: "<<roo_count[n].getId()<<endl;
roo_count[n].setState(1);
cus_point[cus_count]->setRoomId(roo_count[n].getId());
break;
}
}
break;
}
cus_count++; //住房的顾客数加1
}
//入住登记
void Hotel::check_in()
{
char name1[10],id1[19];
int ding_or_no,prepaid;
int mark = 0; //用于记录是否找到匹配对象
cout<<"该顾客订房了吗? (1->订了 2->没订) ";
cin>>ding_or_no;
if(ding_or_no==1) //如果已经预定,去匹配顾客对象数组
{
cout<<"请输入顾客的姓名:"<<endl;
cin>>name1;
cout<<"请输入顾客的身份证号码:"<<endl;
cin>>id1;
for(int j=0;j<cus_count;j++)
{
if((strcmp(cus_point[j]->getName(),name1)==0)&&(strcmp(cus_point[j]->getId(),id1)==0))
{
mark = 1; //表示找到了
int num=cus_point[j]->getRoomId(); //取得定房的房间号
cout<<"顾客"<<name1<<"今天入住本宾馆! 房间号码为: "<<num<<endl;
switch(num/100)
{
case 6:
prepaid=cus_point[j]->getDay()*150;
cus_point[j]->setPrepaid(prepaid);
cout<<"请收房费 "<<prepaid<<"元整!"<<endl; //开始收费
roo_count[num%100-1].setState(2); //修改房间状态为入住状态
break;
case 7:
prepaid=cus_point[j]->getDay()*200;
cus_point[j]->setPrepaid(prepaid);
cout<<"请收房费 "<<prepaid<<"元整!"<<endl;
roo_count[19+num%100].setState(2);
break;
case 8:
prepaid=cus_point[j]->getDay()*300;
cus_point[j]->setPrepaid(prepaid);
cout<<"请收房费 "<<prepaid<<"元整!"<<endl;
roo_count[39+num%100].setState(2);
break;
case 9:
prepaid=cus_point[j]->getDay()*600;
cus_point[j]->setPrepaid(prepaid);
cout<<"请收房费 "<<prepaid<<"元整!"<<endl;
roo_count[59+num%100].setState(2);
break;
}
break;
}
}
if(mark == 0)
cout<<"找不到该顾客信息!"<<endl;
}
else if(ding_or_no==2) //未预定
{
cus_point[cus_count]=new Customer; //新建顾客对象
int room_standard,day;
cout<<"请您选择预定房间的标准:\n";
cout<<"1.单人间/天150元\n2.双人间/天200元\n3.标准间/天300元\n4.总统套房/天600元\n";
cin>>room_standard;
cout<<"请输入住宿天数\n";
cin>>day;
cus_point[cus_count]->setDay(day); //设置天数
switch(room_standard) //判断房间等级
{
int n;
case 1:
prepaid=day*150; //不同房间的等级房费不同
cus_point[cus_count]->setPrepaid(prepaid); //设置顾客对象中的房费
cout<<"请收房费 "<<prepaid<<"元整!\n";
for(n=0;n<20;n++)
{
if(roo_count[n].getState()==0) //如果房间为空
{
cout<<"入住房间号码为: "<<roo_count[n].getId()<<endl;
roo_count[n].setState(2); //状态改为"入住"
cus_point[cus_count]->setR
没有合适的资源?快使用搜索试试~ 我知道了~
宾馆管理系统VC++ MYSQL 控制台应用程序
共96个文件
svn-base:35个
h:14个
cpp:6个
3星 · 超过75%的资源 需积分: 9 22 下载量 40 浏览量
2011-03-12
11:48:05
上传
评论 1
收藏 4.45MB RAR 举报
温馨提示
简单的 宾馆管理系统 加入了MYSQL 数据库支持 可供毕业设计参考~ SVN验出目录:http://subversion.assembla.com/svn/xujian
资源推荐
资源详情
资源评论
收起资源包目录
hotel.rar (96个子文件)
hotel
tags
.svn
props
all-wcprops 68B
entries 193B
text-base
tmp
props
text-base
prop-base
prop-base
.svn
props
all-wcprops 64B
entries 227B
text-base
tmp
props
text-base
prop-base
prop-base
trunk
HotelManage
main.cpp 160B
Hotel.h 893B
libmysql.dll 2.56MB
Room.cpp 559B
resource.h 456B
Person.cpp 275B
HotelManage.ncb 153KB
mysql_version.h 864B
zlb_mysql.h 5KB
Hotel.cpp 21KB
STDAFX.H 564B
mysql.h 33KB
HotelManage.dsw 530B
Person.h 329B
.svn
props
all-wcprops 3KB
entries 4KB
text-base
Script1.aps.svn-base 17KB
Hotel.cpp.svn-base 21KB
fbf.ico.svn-base 766B
zlb_mysql.h.svn-base 5KB
customer.dat.svn-base 192B
main.cpp.svn-base 160B
Customer.cpp.svn-base 990B
mysql_version.h.svn-base 864B
HotelManage.dsp.svn-base 6KB
mysql.h.svn-base 33KB
person.dat.svn-base 1B
mysql_time.h.svn-base 2KB
Person.h.svn-base 329B
my_list.h.svn-base 1KB
Script1.rc.svn-base 2KB
my_alloc.h.svn-base 2KB
resource.h.svn-base 456B
zlb_mysql.cpp.svn-base 12KB
Room.h.svn-base 673B
Hotel.h.svn-base 893B
typelib.h.svn-base 1KB
Person.cpp.svn-base 275B
HotelManage.dsw.svn-base 530B
Room.cpp.svn-base 559B
libmysql.lib.svn-base 34KB
Customer.h.svn-base 429B
mysql_com.h.svn-base 17KB
libmysql.dll.svn-base 2.56MB
STDAFX.H.svn-base 564B
tmp
props
text-base
prop-base
prop-base
Script1.aps.svn-base 53B
fbf.ico.svn-base 53B
customer.dat.svn-base 53B
libmysql.lib.svn-base 53B
libmysql.dll.svn-base 53B
HotelManage.plg 3KB
Customer.h 429B
Room.h 673B
typelib.h 1KB
Script1.aps 17KB
Debug
libmysql.dll 2.56MB
HotelManage.pch 5.84MB
vc60.pdb 348KB
HotelManage.lib 3KB
Hotel.obj 357KB
vc60.idb 313KB
HotelManage.ilk 1.11MB
Room.obj 15KB
Person.obj 13KB
HotelManage.exe 692KB
main.obj 25KB
HotelManage.exp 1KB
zlb_mysql.obj 286KB
Customer.obj 86KB
HotelManage.pdb 1.63MB
Script1.res 860B
HotelManage.opt 50KB
HotelManage.dsp 6KB
fbf.ico 766B
Customer.cpp 990B
my_list.h 1KB
Script1.rc 2KB
mysql_com.h 17KB
libmysql.lib 34KB
customer.dat 192B
zlb_mysql.cpp 12KB
mysql_time.h 2KB
my_alloc.h 2KB
person.dat 1B
.svn
props
all-wcprops 70B
entries 223B
text-base
tmp
props
text-base
prop-base
prop-base
sql
hotel.sql 11KB
.svn
props
all-wcprops 168B
entries 346B
text-base
hotel.sql.svn-base 11KB
tmp
props
text-base
prop-base
prop-base
branches
.svn
props
all-wcprops 72B
entries 197B
text-base
tmp
props
text-base
prop-base
prop-base
共 96 条
- 1
资源评论
- coolbit20122014-03-29可以参考,只可惜是控制台的
MANGXU
- 粉丝: 3
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功