#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#include <conio.h>
#define N 10
#define HOURROOM 10
#define NORMALROOM 288
#define BIGROOM 388
#define WORTHROOM 588
#define GREATROOM 998
struct room_message{
int number; //房间号
int people; //有无入住
int floor; //楼层数(不同楼层房间类型不同)
time_t time; //入住时间,无人住则置空
}ROOM[100];
struct administrator{
char name[16];
char password[16];
int number;
int age;
int sex;
}group[25];
int TheUsingAdministrator;
void BuildGroup(){ //建立密码文件
FILE *fp=NULL;
int a;
char b[16]={"0"};
if((fp=fopen("administrator.dat","r"))==NULL){ //创建文件,防止出错
fp=fopen("administrator.dat","w");
for(a=0;a<25;a++){
strcpy(group[a].name,b);
strcpy(group[a].password,b);
group[a].number=a+1;
group[a].sex=group[a].age=0;
fwrite(&group[a],sizeof(struct administrator),1,fp);
}
}
else{
for(a=0;a<25;a++){
fread(&group[a],sizeof(struct administrator),1,fp);
}
}
fclose(fp);
}
void BuildRoom(){ //创建(引用)房间的函数
FILE *fp=NULL;
int i,j;//控制循环
if((fp=fopen("roommessage.dat","r"))==NULL)
{
fp=fopen("roommessage.dat","w");
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
ROOM[i* 10+j].number= j;
ROOM[i* 10+j].floor= i;
ROOM[i* 10+j].people= 0;
ROOM[i* 10+j].time= 0;
fwrite(&ROOM[i* 10+j],sizeof(struct room_message),1,fp);
}
}
}
else {
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
fread(&ROOM[i* 10+j],sizeof(struct room_message),1,fp);
}
}
}
fclose(fp);
}
void PrintFee(int floor,int room,int fee,int people){ //打印所需费用
time_t time1,time2;
int a;
time1 = ROOM[floor*10+room].time;
time2 = time(NULL);
if(people==0){
printf("该房间没有人\n");
}
else {
if(floor<2){
a = ((time2-time1)/3600)+1;
printf("该房间的费用为%d元\n",a*fee);
}
else{
a=(((time2-time1)/3600)/24)+1;
printf("该房间的费用为%d元\n",a*fee);
}
}
}
void CheckOut(){ //退房函数,引用计算费用函数,并更改入住情况
int roomnuber,choose,a,b,floor,room,fee;
FILE *fp=NULL;
do{
printf("\n请输入您想退房的房间的房间号:");
scanf("%d",&roomnuber);
floor=(roomnuber / 100) - 1;
room=roomnuber%100;
floor = (roomnuber/100)-1 ;
room = (roomnuber%100)-1;
if(floor>9||floor<0||room<0||room>9){
printf("您的输入有误,请重新输入\n");
}
}while(floor>9||floor<0||room<0||room>9);
printf("您要退的房为%d,它是",roomnuber);
if(floor==0||floor==1){
printf("钟点房\n");
fee=HOURROOM;
}
if(floor==2||floor==3){
printf("标准间\n");
fee=NORMALROOM;
}
if(floor==4||floor==5){
printf("大床房\n");
fee=BIGROOM;
}
if(floor==6||floor==7){
printf("行政套房\n");
fee=WORTHROOM;
}
if(floor==8||floor==9){
printf("豪华套房\n");
fee=GREATROOM;
}
do{
printf("\n您是否确定要退房。\n");
printf("1.是\n");
printf("2.不是\n");
scanf("%d",&choose);
if(choose!=1&&choose!=2){
printf("\n您的输入有误,请重新输入\n");
}
}while(choose!=1&&choose!=2);
if(choose==1){
PrintFee(floor,room,fee,ROOM[floor*10+room].people);
ROOM[floor*10+room].people=0;
ROOM[floor*10+room].time=0;
fp=fopen("roommessage.dat","w");
for(a=0;a<N;a++){
for(b=0;b<N;b++){
fwrite(&ROOM[a* 10+b],sizeof(struct room_message),1,fp);
}
}
printf("\n退房成功\n");
}
fclose(fp);
system("pause");
}
void CalFee(){ //计费函数,通过时间相减,计算费用
int roomnuber,floor,room,fee;
do{
printf("\n请输入您想查询费用的房间的房间号(例如1001):");
scanf("%d",&roomnuber);
floor = (roomnuber/100)-1 ;
room = (roomnuber%100)-1;
if(floor>9||floor<0||room<0||room>9){
printf("您的输入有误,请重新输入\n");
}
}while(floor<0||floor>9||room<0||room>9);
printf("您要找的%d号房为",roomnuber);
if(floor==0||floor==1){
printf("钟点房\n");
fee=HOURROOM;
}
if(floor==2||floor==3){
printf("标准间\n");
fee=NORMALROOM;
}
if(floor==4||floor==5){
printf("大床房\n");
fee=BIGROOM;
}
if(floor==6||floor==7){
printf("行政套房\n");
fee=WORTHROOM;
}
if(floor==8||floor==9){
printf("豪华套房\n");
fee=GREATROOM;
}
PrintFee(floor,room,fee,ROOM[floor*10+room].people);
}
void ScanRoom(){ //查询函数,读取入住情况
int a,i,j;
FILE *fp=NULL;
void PrintRoomFee(int a);
printf("\n请选择您要查询的房间种类\n");
printf("1.钟点房\n");
printf("2.标准间\n");
printf("3.为大床房\n");
printf("4.为行政套房\n");
printf("5.为豪华套房\n");
scanf("%d",&a);
if((fp=fopen("roommessage.dat","r"))!=NULL){
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
fread(&ROOM[i*10+j],sizeof(struct room_message),1,fp);
}
}
if(a == 1){
PrintRoomFee(a);
for(i=0;i<=1;i++){
for(j=0;j<10;j++){
printf("\n第%d层",ROOM[i*10+j].floor+1);
printf("第%d号房",ROOM[i*10+j].number+1);
if(ROOM[i*10+j].people){
printf("有人,不能入住");
}
else{
printf("没有人,可以入住");
}
}
}
}
if(a == 2){
PrintRoomFee(a);
for(i=2;i<=3;i++){
for(j=0;j<10;j++){
printf("\n第%d层",ROOM[i*10+j].floor+1);
printf("第%d号房",ROOM[i*10+j].number+1);
if(ROOM[i*10+j].people){
printf("有人,不能入住");
}
else{
printf("没有人,可以入住");
}
}
}
}
if(a == 3){
PrintRoomFee(a);
for(i=4;i<=5;i++){
for(j=0;j<10;j++){
printf("\n第%d层",ROOM[i*10+j].floor+1);
printf("第%d号房",ROOM[i*10+j].number+1);
if(ROOM[i*10+j].people){
printf("有人,不能入住");
}
else{
printf("没有人,可以入住");
}
}
}
}
if(a == 4){
PrintRoomFee(a);
for(i=6;i<=7;i++){
for(j=0;j<10;j++){
printf("\n第%d层",ROOM[i*10+j].floor+1);
printf("第%d号房",ROOM[i*10+j].number+1);
if(ROOM[i*10+j].people){
printf("有人,不能入住");
}
else{
printf("没有人,可以入住");
}
}
}
}
if(a == 5){
PrintRoomFee(a);
for(i=8;i<=9;i++){
for(j=0;j<10;j++){
printf("\n第%d层",ROOM[i*10+j].floor+1);
printf("第%d号房",ROOM[i*10+j].number+1);
if(ROOM[i*10+j].people){
printf("有人,不能入住");
}
else{
printf("没有人,可以入住");
}
}
}
}
}
}
void PrintRoomFee(int a){ //打印房间价格
if(a==1||a==2){
printf("\n钟点房的费用为每小时%d元\n",HOURROOM);
}
if(a==3||a==4){
printf("\n标准间的费用为每天%d元\n",NORMALROOM);
}
if(a==5||a==6){
printf("\n大床房的费用为每天%d元\n",BIGROOM);
}
if(a==7||a==8){
printf("\n行政套房的费用为每天%d元\n",WORTHROOM);
}
if(a==9||a==10){
printf("\n豪华套房的费用为每天%d元\n",GREATROOM);
}
}
void CheckIn(){ //入住函数,记录时间,更改入住情况
int a,b,c,i,j;
FILE *fp=NULL;
do{
printf("\n请输入您想入住的房间层数(1~10)");
printf("\n1~2为钟点房");
printf("\n3~4为标准间");
printf("\n5~6为大床房");
printf("\n7~8为行政套房");
printf("\n9~10为豪华套房\n");
scanf("%d",&a);
if(a<1||a>10){
printf("您的输入有误,请重新输入\n");
}
}while(a<1||a>10);
PrintRoomFee(a);
do{
printf("\n请输入您想入住的房间号(1~10):");
scanf("%d",&b);
if(b<1||b>10){
printf("您的输入有误,请重新输入\n");
}
}while(b<1||b>10);
if((fp=fopen("roommessage.dat","rb"))!=NULL){ //打开文件
if(ROOM[(a-1)*10+(b-1)].people==0){ //判断房间是否可住
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
fread(&ROOM[i*10+j],sizeof(struct room_message),1,fp);
}
}
fclose(fp);
printf("\n请输入入住的人数:");
scanf("%d",&c);
ROOM[(a-1)*10+b-1].people=c;
ROOM[(a-1)*10+b-1].time=time(NULL);
fp=fopen("roommessage.dat","w");
for(a=0;a<N;a++){
for(b=0;b<N;b++){
fwrite(&ROOM[a* 10+b],sizeof(struct room_message),1,fp);
}
}
}
else{
printf("\n该房间已经有人了\n");
printf("请选择其他的房间入住\n");
}
}
fclose(fp);
}
void ChangePassword(){ //修改密码
FILE *fp=NULL;
char password1[16]={'0'},password2[16]={'0'},password[16]={'0'},c;
int a=0,b=0; //a为计数器
printf("\n请输入新密码:");
while((c=getch())!='\r')
{
if(c!='\b'){
password1[a]=c;
password[a]=c;
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
C语言实现酒店入住管理系统,95分C语言课设系统,新手必看! C语言实现酒店入住管理系统,95分C语言课设系统,新手必看! C语言实现酒店入住管理系统,95分C语言课设系统,新手必看! C语言实现酒店入住管理系统,95分C语言课设系统,新手必看! C语言实现酒店入住管理系统,95分C语言课设系统,新手必看! C语言实现酒店入住管理系统,95分C语言课设系统,新手必看! C语言实现酒店入住管理系统,95分C语言课设系统,新手必看! C语言实现酒店入住管理系统,95分C语言课设系统,新手必看!
资源推荐
资源详情
资源评论
收起资源包目录
hotel_check_system.zip (2个子文件)
hotel_check_system
1.c 16KB
ch1.exe 224KB
共 2 条
- 1
资源评论
振华OPPO
- 粉丝: 27w+
- 资源: 534
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功