C语言实现酒店管理系统

本文实例为大家分享了C语言实现酒店管理系统的具体代码,供大家参考,具体内容如下

代码如下:

#include<bits/stdc++.h>
#include<conio.h>
#include <windows.h>
#include<string.h>
#include<time.h>
#define NUM 1000 //控制房间个数
int j;
void LoginRoom();//登记房屋
void SearchRoom();//搜寻房屋
void ChangeRoom();//更换住房
void OutRoom();//退房
void save();//保存信息
void load();//载入信息
//struct Total
struct Total
{
 char Name[20];
 int Sex;
 int Age;
 char IDcard[18];
 int hour;

 int xx;
int yy;
int zz;

};
struct room
{
 int RoomID;
 char Tel[11];
 long Price;
 int Sign;
 int feiyong;
 //struct Date Datesum;
 struct Total Totallist;
 }Room[NUM];
// 将房间个数写入信息

void LoginRoom() //登记,注册客房信息函数
{
 int i,n,k;
 n=0;
system("cls");
 printf("    用户登记\n");
 for(k=0;k<=1000;k++)
 {
 printf("请输入客房号:\n");
 scanf("%d",&i);
 if(Room[i-1].Sign==1)
{
 printf("对不起,该房间已入住,请重新输入。\n");
 Sleep(160); //延时160帧
 system("cls");//清屏
return; //返回原函数
 }
 if(n==5)
 {
 printf("\n请查询清楚客房入住信息后再来登记,谢谢");
 Sleep(1500); //时间延时1.5秒
 system("cls");//清屏
 return ;
 }
 if(Room[i-1].Sign!=1)
 break;
 }
 printf("房间号:%d\n",i);
 printf("客户姓名:");
 scanf("%s",(char *)&Room[i-1].Totallist.Name);
 printf("性别(1.男 2.女):\n");

 scanf("%d",&Room[i-1].Totallist.Sex);
 if(Room[i-1].Totallist.Sex>2){
 printf("信息错误,请重新输入");
 LoginRoom();

 }
 printf("年龄:\n");
 scanf("%d",&Room[i-1].Totallist.Age);
 if(Room[i-1].Totallist.Age<18){
 printf("未到国家法定开房年龄,禁止开房\n");
 printf("请重新输入");
LoginRoom();
 }

 printf("身份证号码:\n");
 scanf("%s",&Room[i-1].Totallist.IDcard); //判断身份证信息
 if(strlen(Room[i-1].Totallist.IDcard)!=18){
 printf("信息错误");
 LoginRoom();
}

 printf("联系电话:");
scanf("%s",&Room[i-1].Tel);
 printf("入住时间:");
 scanf("%d %d %d",&Room[i-1].Totallist.xx,&Room[i].Totallist.yy,&Room[i].Totallist.zz);

 printf("住房时长:");
 scanf("%d",&Room[i-1].Totallist.hour);

 printf("请选择套房(1.总统套房(300/小时)\n2.双人房(200/小时)\n3.单人房(100/小时)\n4.特价房(40/小时))\n");
 scanf("%d",&Room[i-1].feiyong); //////
 Room[i-1].RoomID=i;
 switch(Room[i-1].feiyong){
 case 1:Room[i-1].Price=(Room[i-1].Totallist.hour)*300;break;
 case 2:Room[i-1].Price=(Room[i-1].Totallist.hour)*200;break;
 case 3:Room[i-1].Price=(Room[i-1].Totallist.hour)*100;break;
 case 4:Room[i-1].Price=(Room[i-1].Totallist.hour)*40;break;
 }
 Room[i-1].Sign=1;
 save();
 printf("恭喜,入住成功!!\n要返回首页吗?(1:Y,0:N)");
 scanf("%d",&j);
 if(j==0)
 {
 LoginRoom();
 }
 system("cls");
}

void save() //将客房入住信息保存到文件中
{
 int i;
 FILE *fp;
if((fp=fopen("data.txt","w"))==NULL)
 {
 printf("无法打开文件\n");
return;
 }
 fwrite(Room,sizeof(struct room),NUM,fp);
 printf("文件写入完成\n");
 fclose(fp);
}

void save1() //将客房入住信息保存到文件中
{

 FILE *fp;
 if((fp=fopen("date.txt","w"))==NULL)
 {
 printf("无法打开文件\n");
 return ;
 }

fwrite(Room,sizeof(struct room),NUM,fp);
// gets(Room,sizeof(struct room),NUM,fp);
 //fputs(Room,sizeof(struct room),NUM,fp);

 printf("文件写入完成\n");
 fclose(fp);
}

void load() //从文件中读取客房入住信息
{
FILE *fp;
int i;
 if((fp=fopen("date.txt","r"))==NULL)
 {
 printf("不能打开文件\n");
 return ;
}
 for(i=0;!feof(fp);i++)  //读取文档,从零开始直到结束 feof()函数
    //文档的结尾都有一个隐藏字符”EOF”,
 {    //当程序读取它的时候,就会知道文件已经到达结尾。通常使用while循环加EOF判断作为读取结束的标志。
fread(&Room[i],sizeof(struct room),1,fp);  //sizeof实际上是获取了数据在内存中所占用的存储空间,以字节为单位来计数
   // 读取文档,存储信息
 }
fclose(fp);  //结束工作
 system("cls");
 printf("文件读取成功\n");
}

void SearchRoom() //查询客房信息
{
 int k;
 system("cls");
 printf("    查询客房信息\n");
printf("请输入要查询的房间号码:\n");
scanf("%d",&k);
if(k<=0||k>1000)
{
 printf("对不起,未能查到任何信息。\n");
 printf("请重新输入");
 SearchRoom();  //重新调用
 }

 if(Room[k-1].Sign==1)
 {
 printf("姓名:%s\n",Room[k-1].Totallist.Name);

 if(Room[k-1].Totallist.Sex==1)
 {
 printf("性别:男\n");
 }
else
{
 printf("性别:女\n");
 }

 printf("客户年龄:%d\n",Room[k-1].Totallist.Age);
 printf("身份证号:%s\n",Room[k-1].Totallist.IDcard);
 printf("联系电话:%s\n",Room[k-1].Tel);
 printf("入住时间:%d/%d/%d\n",Room[k-1].Totallist.xx,Room[k-1].Totallist.yy,Room[k-1].Totallist.zz);
 printf("入住时长:%d\n",Room[k-1].Totallist.hour);
 switch(Room[k-1].feiyong){
 case 1:printf("总统套房(300/小时)\n");break;
 case 2:printf("双人房(200/小时)\n");break;
 case 3:printf("单人房(100/小时)\n");break;
 case 4:printf("特价房(40/小时)\n");break;
 }

 printf("费用:%ld\n",Room[k-1].Price);
 }

 else
 {
 system("cls");
 printf("很抱歉,没有找到该房间登记的相关信息!!\n");
 }
 printf("要返回首页吗?(1:Y,0:N)");
 scanf("%d",&j);
 if(j==0)
 {
 SearchRoom();
 }
 system("cls");
}

void ChangeRoom() //修改客房入住信息
{
 int i,n;
system("cls");
 printf("   修改客房信息\n");
 printf("请输入房间号:\n");
 scanf("%d",&i);
 if(Room[i-1].Sign==1)
 {
 printf("\t1.修改客户姓名\n");
 printf("\t2.修改客户性别\n");
 printf("\t3.修改客户年龄\n");
 printf("\t4.修改住房时间\n");
 printf("\t5.修改住房时长(续住)\n");
 printf("\t6.修改客户电话号码\n");
 printf("\t7.修改客户身份证号\n");
 printf("请输入要修改的项:");
 scanf("%d",&n);
 switch(n)
 {
 case 1:scanf("%s",(char *)&Room[i-1].Totallist.Name);
 break;
 case 2:scanf("%d",&Room[i-1].Totallist.Sex);
break;
 case 3:scanf("%d",&Room[i-1].Totallist.Age);
 break;
 case 4:scanf("%d %d %d",&Room[i-1].Totallist.xx,&Room[i-1].Totallist.yy,&Room[i-1].Totallist.zz);
 break;
case 5:
 scanf("%d",&Room[i-1].Totallist.hour);
 break;

 switch(Room[i-1].feiyong){
 case 1:Room[i-1].Price=(Room[i-1].Totallist.hour)*300;break;
 case 2:Room[i-1].Price=(Room[i-1].Totallist.hour)*200;break;
 case 3:Room[i-1].Price=(Room[i-1].Totallist.hour)*100;break;
 case 4:Room[i-1].Price=(Room[i-1].Totallist.hour)*40;break;
 }

 break;
 case 6:scanf("%s",(char *)&Room[i-1].Tel);
 break;
 case 7:scanf("%s",(char *)&Room[i-1].Totallist.IDcard);
break;
 default:printf("输入错误,请从新选择");
 break;
 }
 save();
 printf("修改成功!");
 }
 else
{
 system("cls");
 printf("该房间为空房!!\n");
}
printf("\n要返回首页吗?(1:Y,0:N)");
scanf("%d",&j);
 if(j==0)
 {
 ChangeRoom();
 }
 system("cls");
}

void OutRoom() //退房函数
{
 int i,j;
 system("cls");
 printf("    退房管理系统\n");
 printf("请输入房间号:\n");
 scanf("%d",&i);
 printf("确认要退%d号房吗?(1:Y/0:N)",i);
 scanf("%d",&j);
 if(j==1)
 {
if(Room[i-1].Sign==1)
 {
 Room[i-1]=Room[101];
 save();
 system("cls");
 printf("退房成功\n");
 }
else
 {
 system("cls");
 printf("该房间为空房\n");
 }
 }
printf("要返回首页吗?(1:Y,0:N)");
 scanf("%d",&j);
 if(j==0)
 {
 OutRoom();
 }
system("cls");
}

void FreeRoom() //查询客房整体入住信息
{
 int f,sum;
sum=0;
 system("cls");
 printf("   客房入住信息\n");
 for(f=0;f<NUM;f++)
 {
 if(Room[f].Sign==1)
 {
 printf("%d号房已入住\n",f+1);
 sum=sum+1;
 }
 }
 printf("\n总共总共1~1000号房间中有%d个房间已入住,剩余%d个房间为空房。 \n",sum,NUM-sum);
printf("要返回首页吗?(1:Y,0:N)");
 scanf("%d",&j);
 if(j==0)
 {
 FreeRoom();
}
 system("cls");
}

void Ser()
{
char sy[7];
int i=0;
printf("\n\n\n\t\t\t 请输入七位密码\n\n\n\t\t\t ");
do
{
sy[i++]=getch();
printf("*");
}while(i!=6);
sy[i]='\0';
if(strcmp(sy,"strong")!=0)
{
system("cls");
printf("\n\n\n\t\t\t抱歉,您输入的密码有误,请再次输入!\n\n\n");
printf("\t ⊙-------------------☆☆☆-------------------⊙\n\n");
Ser();
}
}

void show(){

 printf(" ********************************************************************************\n");
 printf(" ************************欢迎使用客房登记系统************************************\n");
 printf("|    1.--登记客房     |\n");
 printf("|    2.--查询客房     |\n");
 printf("|    3.--修改客房     |\n");
 printf("|    4.--退房管理     |\n");
 printf("|    5.--显示当前所有空房    |\n");
 printf("|    6.--退出系统     |\n");
 printf("|*******************************************************************************|\n");

 printf("|*******************************************************************************|\n\n");

}
void logtime(char c,int n,int s)
{
int i;
for(i=0;i<n;i++)
{
printf("%c",c);
Sleep(s);
}
}

int main()//主函数
{
 int i,j;
Ser();
system("mode con cols=82");
printf("\n\n\t\tloging");
logtime('.',6,200);
 system("color 3f");
 load();
 system("cls");
 for(j=0;j<NUM;j++) //为房间状态赋值为0,当有人入住时,其值改变为1
 {
 Room[j].RoomID=j+1;
 }
do //菜单栏
{
printf("\n");

 show();

 printf("输入需要选择的功能:");
 scanf("%d",&i);
switch(i) //通过输入相应数字调用不同函数进行相应工作
 {
 case 1:LoginRoom();
 break;
 case 2:SearchRoom();
 break;
 case 3:ChangeRoom();
 break;
 case 4:OutRoom();
 break;
 case 5:FreeRoom();
 break;
 case 6:printf("谢谢使用客房登记系统,正在退出..........\n退出成功,按任意键关闭程序!!\n");
 break;
 default:
 printf("\n 输入错误,请从新选择\n");
 break;
 }
}
 while(i!=6);
 return 0;
}

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言图书管理系统简洁版

    DOS界面的图书管理系统,具体内容如下 程序分为两块:管理员操作(收录图书.删除图书等)和会员操作(注册.借书.还书等): 1.管理员操作界面 2.会员操作界面 global.h头文件:(程序中只使用了一个编写的头文件,在这里存放了所有的接口函数以及需要使用到的头文件,还有结构体的定义) #include "iostream" #include "string" #include "fstream" #include "conio.h&

  • C语言实现酒店管理系统

    本文实例为大家分享了C语言实现酒店管理系统的具体代码,供大家参考,具体内容如下 代码如下: #include<bits/stdc++.h> #include<conio.h> #include <windows.h> #include<string.h> #include<time.h> #define NUM 1000 //控制房间个数 int j; void LoginRoom();//登记房屋 void SearchRoom();//搜寻房

  • C语言实现简单酒店管理系统

    本文实例为大家分享了C语言实现酒店管理系统的具体代码,供大家参考,具体内容如下 一.问题描述 系统应具有以下主要功能:登记入住:从键盘输入住信息:房间层数,房间号码等:查询入住情况,查询当前费用,退房.退出系统等功能. 二.基本要求 (1).登记入住.可以输入多个信息,实现本系统数据的初始化.(2).列出所有的入住情况,用于顾客查询以及办理入住手续.(3).查询当前费用:显示顾客实时费用,便于顾客查询和退房时进行付费.(4).退房:办理退房手续,修改系统内信息,将此顾客的住房置空.(5).退出系

  • C语言实现酒店客房管理系统课程设计

    本文实例为大家分享了C语言实现酒店客房管理系统的具体代码,供大家参考,具体内容如下 设计目标:设计一个酒店客房管理系统,用C语言实现.对该系统的要求如下: 一.需求描述 系统角色: 1.总台服务员 能够根据住客需求完成住客登记任务,并完成客房管理功能. 1)登记入住功能2)结账功能3)查询房间功能4)客房信息打印5)统计功能 2.系统管理员 能够添加.删除和修改系统用户(总台服务员),设置用户权限.包括 1)添加新用户2)删除用户3)修改用户权限 二.系统流程描述 系统启动则进入登陆菜单. 1.

  • C语言实现酒店预订管理系统

    本文实例为大家分享了C语言实现酒店预订管理系统的具体代码,供大家参考,具体内容如下 课设要求: 客房信息管理. 客人预订及入住信息管理. 各种查询和统计功能. 本系统要有通用性.界面美观.操作方便.要考虑系统安全. 可增加其他有用的功能. 头文件function.h #pragma once #include <stdio.h> #include "struct.h" void color1();//背景颜色 void changecolor1();//修改背景颜色 voi

  • C语言实现宾馆管理系统课程设计

    本文实例为大家分享了C语言实现宾馆管理系统的具体代码,供大家参考,具体内容如下 课程设计题目: 宾馆管理系统 一.需求分析 近年来,科技进步不仅促进了全球旅游企业的快速增长,而且指导了旅游者消费观念的 更新,其中信息与通信技术的发展对酒店等企业有着深远的影响,传统的管理方式已不 能满足具有信息量大,查询量大,保存期长,要求不间断运行等特点的宾馆管理需求, 重视信息技术的发展成为我国酒店业的共识.为增强竞争能力,提高管理水平,先进的 宾馆管理系统已成为必然.宾馆管理系统可以及时了解客户信息与需求,

  • Java代码实现酒店管理系统

    我们通过学习Java基础知识,让自己正式踏入学习Java语言的行列,这篇博客是用来让我们真正的了解并应用面向对象的思想来实现的. 使用简单的Java代码实现酒店管理系统,供大家参考,具体内容如下 一. 需求分析 我们如果要实现酒店管理系统,就需要先对酒店管理系统的业务要求进行分析: 1.酒店管理系统需要实现哪些功能? (1)输入某个命令查询酒店中的所有房间:(2)输入某个房间的编号订房:(3)输入某个房间的编号退房:(4)输入某个命令可以退出酒店管理系统: 2.酒店管理系统使用什么数据结构来表示

  • C#窗体实现酒店管理系统

    本文实例为大家分享了C#窗体实现酒店管理系统的具体代码,供大家参考,具体内容如下 一.概述 酒店管理系统是我们常说的MIS (Management Information System,管理信息系统)的一-种,在强调管理,强调信息的现代社会中它越来越得到普及,酒店管理系统的主要目标是实现对酒店内部各种管理的电子化和自动化,提高酒店的办公效率,为高质量的酒店服务提供保证. 该系统属于简易版的,适用于初学者学习,主要功能有以下几个模块:1.用户管理:2.客户管理:3.客房管理.具体请详看下面的截图

  • C语言学生成绩管理系统小设计

    本文实例为大家分享了C语言学生成绩管理系统的具体代码,供大家参考,具体内容如下 一.本设计涉及的重要C语言知识有: 1.单链表的各种操作 2.文件流的操作 3.单链表的排序 二.本设计主要以下几个模块组成 1.学生成绩添加模块 2.学生成绩删除模块 3.学生成绩修改模块 4.学生成绩检索模块 5.学生成绩显示模块(包括成绩排序) 6.学生成绩保存模块 效果图: 本设计大概5.6百行代码左右,通过这个设计,本人感觉C语言熟练了很多, 希望能对像我一样的C语言菜鸟同学会有点帮助,废话少说,咱们上代码

  • C语言学生成绩管理系统课程设计

    学生成绩管理系统是比较适合初学者的.它涵盖了c语言几乎知识.对于学了c语言的人,把这个课程设计搞好(当然自己能设计出来是要有很好的基础).不管自己能不能够完成,最重要的是能弄懂.参考其他资料,试着自己编写是不错的选择.这个课程设计也是我参照资料,自己编写的.自己适当地增加了一些功能.不过,编的不够那么专业吧. #include<stdio.h> #include<string.h> #include<stdlib.h> #define size 100 char* cl

  • C语言实现图书管理系统

    目前为止跟着学校进度学习C语言大概半年左右,基础学习只学到了指针,学得非常浅.说实话,起初对C语言的印象---只是一个学习计算机语言的敲门砖,对具体C语言如何应用等,非常迷茫.直到大一下半学期的高级语言设计课程之后,试过dos运行的图形化界面的完整小程序,才发现C语言的魅力. ok,废话不多说了,下面是我第二节课的作品----C语言的图书管理系统.一个简单的小程序.并非纯原创,是基于网络搜索到的"学生管理系统"改编而成的.通过直接浏览.修改一个完整的代码,我的收获颇丰.我认为这样比枯燥

随机推荐