# Hotel Manager 酒店管理系统
## 问题分析
- 菜单界面 操作员能够方便的选择所需要进行的操作
- 在main函数中对每次操作跳转到不同的函数中
- 执行完操作后返回到管理页面
- 不同房间的标准价格制定,收费方式的制定:/天 或 /小时
- 每个房间的收费方式要写2个 roomNamaPricePerHour / roomNamePricePerDay
- 入住登记 选择收费方式
- 登记所需入住时常时取相对应的收费价格和方式进行储存
- 月末收入查询
- 对目前已经入住并消费的所有房间进行统计 输出总消费额
## 设计
### 总体设计
- main函数进行管理函数和退出函数的控制
- 对不同的功能模块进行划分 写成不同的函数
- 用结构体对入住的信息进行储存
- 管理函数对整个流程的走向和循环进行控制 并对预估出现的错误进行处理
### 详细设计
#### 流程图设计
![](https://www.writebug.com/myres/static/uploads/2022/9/13/d1df80614afa58d3458771247cce3526.writebug)
#### 全局变量设计
4种房间 每种房间不同的收费价格 共8个变量
const int size每种类型的房间的个数
```c++
int a1[30], a2[30], a3[30], a4[30]; int t1 = 0, t2 = 0, t3 = 0, t4 = 0; 房间数设置
```
#### 变量与存储设计
![](https://www.writebug.com/myres/static/uploads/2022/9/13/cdffeb5286ca6c574add0b4f0c9b370c.writebug)
#### 函数的参数与返回值
main 调用管理函数进行流程的跳转和控制
judge 判断该类型的房间人数是否已满
@param int a 传入房间类型
@return bool 返回是否已满
jj 判断房间中是否有人
@param int b 房间类型
@return int 如果没有人 返回房间号
housePricesManager 价格管理主界面
@param void
@return void
housePricesInquire 查询房价
@param void
@return void
@printf 价格
housePricesEdit 房间价格编辑函数
@param int roomNum房间编号
@param int type 价格类型
@param int changeNum 更改的数值 -1为返回对应类型的值
pricecalc 价格计算
@param int hour 小时数
@param int day 天数
@param int type房间类型
@return int 价格
chargeManager 支付
@param void
@scanf 房间编号 入住时常 日期
@return void
@data roomNum Day Hour Date 存储入住信息
income 房间收入类型统计
@param int money 增加的收入
@param int type 房间的类型
@return void
monthlyInfo 查询收入
@param void
@return void
@printf 输出价格
quit 退房系统
@param void
@return void
del 删除房间
@param int number 房号
@param int type 房间类型
## 实现代码说明
```c++
// Created by SonderLau on 2019/12/7.
// Perfected by Alberich on 2019/12/10.
// Debuged by LinBaiYin on 2019/12/11.
// 引入需要的头文件
# include <stdio.h>
# include <stdlib.h>
# include <string.h>
# include <windows.h>
// 房间数
int a1[30], a2[30], a3[30], a4[30];
int t1 = 0, t2 = 0, t3 = 0, t4 = 0;
// 实收入 应收入
int realIncome, shouldBeIncome;
int income1 = 0, income2 = 0, income3 = 0, income4 = 0;
// loveComing 爱意来袭 房价
int loveComingPerDay = 220;
int loveComingPerHour = 30;
// youMakeMeWhole 有你才完整 房价
int youMakeMeWholePerDay = 330;
int youMakeMeWholePerHour = 50;
// letsFallInLove 让我们相爱吧 房价
int letsFallInLovePerDay = 450;
int letsFallInLovePerHour = 66;
// kittyHouse Kitty小屋 房价
int kittyHousePerDay = 550;
int kittyHousePerHour = 75;
// 方法声明
int housePricesEdit(int roomNum, int type, int changeNum);
void housePricesInquire();
void housePricesManager();
void chargeManager();
void income(int money, int type);
void quit();
void del(int number, int type);
int jj(int b);
void monthlyInfo();
bool judge(int a);
void jdj(char& n);
void pri(char& n);
int cg(char n);
void scf(char a[]);
void fscf2();
void fscf1();
void fscf3();
void fpri1();
void fpri2();
void fpri3();
void fscf3()
{
int n, i = 0, m = 0;
FILE* fp;
fp = fopen("C:\\Users\\10482\\Desktop\\C\\3.txt", "r");
while (!feof(fp))
{
fscanf(fp, "%d", &n);
if (m == 30) { i++; m = 0; }
switch (i)
{
case 0: a1[m] = n; break;
case 1: a2[m] = n; break;
case 2: a3[m] = n; break;
case 3: a4[m] = n; break;
default:
break;
}
m++;
}
fclose(fp);
}
void fpri3()
{
int n, i = 0, m = 0;
FILE* fp;
fp = fopen("C:\\Users\\10482\\Desktop\\C\\3.txt", "w");
while (1)
{
if (m == 30) {
i++;
m = 0;
}
if(i==4)
{
break;
}
switch (i)
{
case 0:fprintf(fp, "%d\n", a1[m]);break;
case 1:fprintf(fp, "%d\n", a2[m]);break;
case 2:fprintf(fp, "%d\n", a3[m]);break;
case 3:fprintf(fp, "%d\n", a4[m]);break;
default:
break;
}
m++;
}
fclose(fp);
}
void fscf1()
{
int n[8],i=0;
FILE* fp;
fp = fopen("C:\\Users\\10482\\Desktop\\C\\1.txt", "r");
while (!feof(fp))
{
fscanf(fp, "%d", &n[i]);
i++;
}
loveComingPerDay = n[0];
loveComingPerHour = n[1];
// youMakeMeWhole 有你才完整 房价
youMakeMeWholePerDay = n[2];
youMakeMeWholePerHour = n[3];
// letsFallInLove 让我们相爱吧 房价
letsFallInLovePerDay = n[4];
letsFallInLovePerHour = n[5];
// kittyHouse Kitty小屋 房价
kittyHousePerDay = n[6];
kittyHousePerHour = n[7];
fclose(fp);
}
void fscf2()
{
int n[4], i = 0;
FILE* fp;
fp = fopen("C:\\Users\\10482\\Desktop\\C\\2.txt", "r");
while (!feof(fp))
{
fscanf(fp, "%d", &n[i]);
i++;
}
income1 = n[0];
income2 = n[1];
income3 = n[2];
income4 = n[3];
fclose(fp);
}
void fpri1()
{
int n[4], i = 0;
FILE* fp;
fp = fopen("C:\\Users\\10482\\Desktop\\C\\1.txt", "w");
fprintf(fp, "%d\n", loveComingPerDay);
fprintf(fp, "%d\n", loveComingPerHour);
fprintf(fp, "%d\n", youMakeMeWholePerDay);
fprintf(fp, "%d\n", youMakeMeWholePerHour);
fprintf(fp, "%d\n", letsFallInLovePerDay);
fprintf(fp, "%d\n", letsFallInLovePerHour);
fprintf(fp, "%d\n", kittyHousePerDay);
fprintf(fp, "%d\n", kittyHousePerHour);
fclose(fp);
}
void fpri2()
{
int n[4], i = 0;
FILE* fp;
fp = fopen("C:\\Users\\10482\\Desktop\\C\\2.txt", "w");
fprintf(fp, "%d\n", income1);
fprintf(fp, "%d\n", income2);
fprintf(fp, "%d\n", income3);
fprintf(fp, "%d\n", income4);
fclose(fp);
}
void scf(char a[])
{
memset(a, 0, sizeof(a));
int cnt = 0;
scanf("%s", &a[cnt]);
if (a[0] >= '0' && a[0] < '9')return;
else { printf("\nPlease enter the correct number:"); scf(a); return; }
return;
}
// 全局变量
// 存储:节点结构体
struct node
{
int year;
int month;
int number;
int day;
int roomtype;
int time;
int room;
} oksama[300];
const int size = 20;
// -------------------------------函数部分-----------------------------------
// 判断房间类型是否已满
/* @param int a 传入房间类型
* @return bool 返回是否已满
*/
bool judge(int a)
{
switch (a)
{
case 0:
return true;
break;
case 1:
if (t1 == 30)
{
printf("该类型房间已满,请选择其他房间(输入0回到首页):");
scanf("%d", &a);
if (judge(a))
return true;
}
else
a4[jj(1)] = 1;
t1++;
break;
case 2:
if (t2 == 30)
{
printf("该类型房间已满,请选择其他房间(输入0回到首页):");
scanf("%d", &a);
if (judge(a))
return true;
}
else
a4[jj(2)] = 1;
t2++;
break;
case 3:
if (t3 == 30)
{
printf("该类型房间已满,请选择其他房间(输入0回到首页):");
scanf("%d", &a);
i
没有合适的资源?快使用搜索试试~ 我知道了~
基于C语言实现(控制台)酒店管理系统【100011684】
共35个文件
png:20个
md:5个
c:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 175 浏览量
2023-04-07
14:29:14
上传
评论
收藏 758KB ZIP 举报
温馨提示
菜单界面 操作员能够方便的选择所需要进行的操作 在main函数中对每次操作跳转到不同的函数中 执行完操作后返回到管理页面 不同房间的标准价格制定,收费方式的制定:/天 或 /小时 每个房间的收费方式要写2个 roomNamaPricePerHour / roomNamePricePerDay 入住登记 选择收费方式 登记所需入住时常时取相对应的收费价格和方式进行储存 月末收入查询 对目前已经入住并消费的所有房间进行统计 输出总消费额
资源推荐
资源详情
资源评论
收起资源包目录
100011684-基于C语言实现(控制台)酒店管理系统.zip (35个子文件)
manager
hotelManager.exe 133KB
LICENSE 1KB
文档
C5A大作业_HotelManager.docx 230KB
C5A小作业_DayOfYear.docx 17KB
C5A小作业_GuessNumber.docx 11KB
C5A小作业_BinaryConversion.docx 13KB
Markdown
assets
image-20191212173827962.png 13KB
image-20191212173815521.png 10KB
image-20191212173619523.png 9KB
image-20191212173838727.png 11KB
image-20191212173750799.png 12KB
image-20191227163056447.png 73KB
image-20191212173218873.png 4KB
image-20191212174010069.png 13KB
image-20191212174252489.png 8KB
image-20191212174334014.png 10KB
image-20191212174029376.png 12KB
image-20191212173350990.png 11KB
image-20191212173156967.png 11KB
image-20191212174208640.png 9KB
image-20191227162819983.png 50KB
image-20191227163448073.png 84KB
image-20191212174243947.png 9KB
image-20191227161338449.png 74KB
image-20191212173727745.png 11KB
image-20191212173500936.png 11KB
[LBT]DayOfYear.md 2KB
[XJQ]BinaryConversion.md 4KB
C5A大作业.md 19KB
[XJJ]GuessNumber.md 1022B
源码
C5A小作业_DayOfYear.c 1KB
C5A大作业_HotelManager.c 12KB
C5A小作业_GuessNumber.c 435B
C5A小作业_BinaryConversion.c 2KB
README.md 21KB
共 35 条
- 1
资源评论
神仙别闹
- 粉丝: 2687
- 资源: 7642
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功