C++简易酒店管理系统,实现(查询、入住、退房、楼层选择、退出)功能
#include <iostream>
#include <string.h>
#include <stdlib.h>
void enter();
void check_in();
void inquire();
void check_out();
void initial_room();
using namespace std;
int i=0;
struct Room
{
int number;
int floor;
int state;
};
class Customer
{
char name[10],ID[19];
int room_number;
int change;
public:
Customer()
{
cout<<"请您输入顾客的姓名\n";
cin>>name;
cout<<"请您输入顾客的身份证号码\n";
cin>>ID;
change=0;
}
void set_name(char *_name){strcpy(name,_name);}
void set_ID(char *_ID){strcpy(ID,_ID);}
void set_room_number(int n){room_number=n;}
char *get_name(){return name;}
char *get_ID(){return ID;}
int get_room_number(){return room_number;}
~Customer()
{
cout<<"该顾客退房成功!"<<endl;
}
};
Room room[80];
Customer *customer[80];
int main()
{
char choice='1';
initial_room();
while(choice=='1')
{
enter();
cout<<endl;
cout<<"继续使用本系统请按\"1\",退出请按\"2\"! ";
cin>>choice;
cout<<endl;
}
}
//系统入口
void enter()
{
int kind_of_service;
while(1)
{
cout<<"请选择服务类别:订房、入住、退房还是查询? \n";
cout<<" 1->查询 2->入住 3->退房 4->退出: ";
cin>>kind_of_service;
if((kind_of_service<=4) && (kind_of_service>=1))
{
switch(kind_of_service)
{
case 1: inquire();
break;
case 2: check_in();
break;
case 3: check_out();
break;
case 4: exit(0);
break;
}
}
else
{
cout<<"您的输入有误,请重试!\n";
continue;
}
}
}
//入住登记
void check_in()
{
char name1[10],id1[19];
customer[i]=new Customer;
int room_floor;
cout<<"请您选择预定房间的楼层:\n";
cout<<"1.一楼\n2.二楼\n3.三楼\n4.四楼\n";
cin>>room_floor;
switch(room_floor)
{
int n;
case 1:
for(n=0;n<20;n++)
{
if(room[n].state==0)
{
cout<<"入住房间号码为: "<<room[n].number<<endl;
room[n].state=1;
customer[i]->set_room_number(room[n].number);
break;
}
}
break;
case 2:
for(n=20;n<40;n++)
{
if(room[n].state==0)
{
cout<<"入住房间号码为: "<<room[n].number<<endl;
room[n].state=1;
customer[i]->set_room_number(room[n].number);
break;
}
}
break;
case 3:
for(n=40;n<60;n++)
{
if(room[n].state==0)
{
cout<<"入住房间号码为: "<<room[n].number<<endl;
room[n].state=1;
customer[i]->set_room_number(room[n].number);
break;
}
}
break;
case 4:
for(n=60;n<80;n++)
{
if(room[n].state==0)
{
cout<<"入住房间号码为: "<<room[n].number<<endl;
room[n].state=1;
customer[i]->set_room_number(room[n].number);
break;
}
}
break;
}
i++;
}
//退房结算
void check_out()
{
char name2[10],id2[19];
int room_number;
cout<<"请输入要退房的顾客姓名和身份证号码:\n";
cin>>name2>>id2;
for(int j=0;j<i;j++)
{
if((strcmp(customer[j]->get_name(),name2)==0)&&(strcmp(customer[j]->get_ID(),id2)==0))
{
room_number=customer[j]->get_room_number();
}
cout<<endl;
cout<<"是否确定退房,请按1: ";
char account;
cin>>account;
if(account=='1')
{
for(int k=0;k<80;k++)
{
if(room[k].number==customer[j]->get_room_number())
room[k].state=0;
}
i--;
for(;j<i;j++)
{
customer[j]=customer[j+1];
}
delete customer[i];
}
}
}
//信息查询
void inquire()
{
int j,k=0;
cout<<endl;
cout<<"下列房间还没人预订,也没人入住:"<<endl;
for(j=0;j<80;j++)
{
if(room[j].state==0)
{
if(k%10==0) cout<<endl;
cout<<room[j].number<<'\t';
k++;
}
}
k=0;
cout<<endl;
cout<<"下列房间有人入住:"<<endl;
for(j=0;j<80;j++)
{
if(room[j].state==1)
{
if(k%10==0) cout<<endl;
cout<<room[j].number<<'\t';
k++;
}
}
cout<<endl;
}
//房间信息初始化
void initial_room()
{
int j,k=101;
for(j=0;j<20;j++)
{
room[j].number=k++;
room[j].floor=1;
room[j].state=0;
}
k=201;
for(j=20;j<40;j++)
{
room[j].number=k++;
room[j].floor=2;
room[j].state=0;
}
k=301;
for(j=40;j<60;j++)
{
room[j].number=k++;
room[j].floor=3;
room[j].state=0;
}
k=401;
for(j=60;j<80;j++)
{
room[j].number=k++;
room[j].floor=4;
room[j].state=0;
}
}
C++简易酒店管理系统,实现(查询、入住、退房、楼层选择、退出)功能的更多相关文章
- 这几天做完简易酒店管理系统,对Sql Server执行计划的浅显了解。
我是一名大三的小学生,今天开始我的第一篇博客,最近随便做了一个简易的酒店管理系统,对sql执行计划有了初步的了解. 查看上面语句的预估执行计划,在工具栏中有这个按钮 聚集索引扫描被称为Index Sc ...
- Linux下C++酒店管理系统
功能要求: 相关源码:码云:传送门,GitHub:传送门 相关图片: 拆分版 make编译 ./hotel运行 输入2,进入开房模块 相关源码: class.cpp #include ...
- Java swing实现酒店管理系统
今天给大家提供一个由今天给大家提供一个由Java swing实现的酒店管理系统,数据库采用sqlserver,我会贴上部分代码,完整的代码请看文章最下方下载,下面看代码: 1.主框架代码: packa ...
- Python 小案例实战 —— 简易银行存取款查询系统
Python 小案例实战 -- 简易银行存取款查询系统 涉及知识点 包的调用 字典.列表的混合运用 列表元素索引.追加 基本的循环与分支结构 源码 import sys import time ban ...
- Angularjs,WebAPI 搭建一个简易权限管理系统 —— Angularjs 前端主体结构(五)
目录 前言 Angularjs名词与概念 Angularjs 基本功能演示 系统业务与实现 WebAPI项目主体结构 Angularjs 前端主体结构 6 Angularjs 前端主体结构 6.1 A ...
- Java编写ArrayBasic制作一个简单的酒店管理系统
听老师讲了一些ArrayBasic的一些知识,让制作一个酒店管理系统,要求:显示酒店所有房间列表,预订房间.... 经过老师的指导写了一个代码,如下: import java.util.Scanner ...
- Angularjs,WebAPI 搭建一个简易权限管理系统
Angularjs,WebAPI 搭建一个简易权限管理系统 Angularjs名词与概念(一) 1. 目录 前言 Angularjs名词与概念 权限系统原型 权限系统业务 数据库设计和实现 Web ...
- 【WPF on .NET Core 3.0】 Stylet演示项目 - 简易图书管理系统(3) - 使用Conductor切换页面
前两章中, 我们已经实现了这个图书管理系统的登录窗口, 并实施了完善的单元测试. 该是时候回过头来关注我们的主窗口了. 一个功能丰富的系统一般会有多个页面, 我们图书管理系统虽然是"简易&q ...
- 简易用户管理系统-前端实现(表单&提交请求&button$基础)
laravel框架编写简易用户管理系统,前端Layui框架. 1.动态生成列表项 实现效果 PHP后台传入用户对象($users). 前端页面接收数据传入table. 逻辑就是在生成表格时,遍历传来的 ...
随机推荐
- css圆角不圆和1px方案
1.圆角不圆 比如需要我们画一个 r 为 5px 的圆,如果我们使用 rem 作为单位,我们很快会发现在一些机型上的图案不圆,会呈现椭圆形.这是由于 rem 转 px 会存在精度丢失问题. 所以这个时 ...
- Hdu1015&&寒假作业第二组I题
题意是A-Z对应1-26,然后给个目标数字和字符串,看看字符串里的某5个字符的组合能不能使v - w^2 + x^3 - y^4 + z^5 = target等式成立,其实多写几个循环也可以达到目的, ...
- 算法设计与分析-HomeWork
ex1(p20) 代码如下: import random def Darts(n): k=0 i=1 while i<=n: x=random.uniform(0,1) #y=random.un ...
- 转Keil 中使用 STM32F4xx 硬件浮点单元
Keil 中使用 STM32F4xx 硬件浮点单元一.前言有工程师反应说 Keil 下无法使用 STM32F4xx 硬件浮点单元, 导致当运算浮点时运算时间过长,还有 一些人反应不知如何使用芯片芯片内 ...
- 判断网站织梦DedeCms版本的方法
这个方法可以判断出目标网站所使用的织梦DedeCms是哪个版本的,打了哪一天的补丁. 在需要判断网站织梦版本的的URL路径后面添加/data/admin/ver.txt 如官方的:http://www ...
- vue2.0:(九)、外卖App弹窗部分星星评分
本篇是星星评分部分,先上代码: 1.header.vue: <template> <transition name="fade"> & ...
- check设置默认值但刷新后就会清空
关于check设置默认值但刷新后就会清空的问题 可能是由于浏览器的问题 我这边就直接在ComponentDidMount里面加jq使得该radio的状态为选中,后边还发现一个问题就是在点击的时候多次点 ...
- [拾零]C语言的数组指针
为了强化记忆,从而写笔记保留. 数组指针,顾名思义,是在说一个指针,这个指针是指向数组的. 区别于指针数组 int* p[5] = NULL; //指针数组 基类型 int* int (*p)[5] ...
- Netweaver和CloudFoundry的服务器日志
Netweaver 事务码SMICM,Goto->HTTP Plug-In->Server Logs: CloudFoundry 假设我部署本地应用到CloudFoundry之后,应用的状 ...
- Android(java)学习笔记117:SharedPreferences(轻量级存储类)
1.SharedPreferences是Android平台上一个轻量级的存储类,简单的说就是可以存储一些我们需要的变量信息.2个activity 之间的数据传递除了可以他通过intent来传递数据,还 ...