千家信息网

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

发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,今天小编给大家分享一下C语言如何实现简单酒店管理系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起
千家信息网最后更新 2025年11月07日C语言如何实现简单酒店管理系统

今天小编给大家分享一下C语言如何实现简单酒店管理系统的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一、问题描述

系统应具有以下主要功能:登记入住:从键盘输入住信息:房间层数,房间号码等;查询入住情况,查询当前费用,退房、退出系统等功能。

二、基本要求

(1)、登记入住。可以输入多个信息,实现本系统数据的初始化。
(2)、列出所有的入住情况,用于顾客查询以及办理入住手续。
(3)、查询当前费用:显示顾客实时费用,便于顾客查询和退房时进行付费。
(4)、退房:办理退房手续,修改系统内信息,将此顾客的住房置空。
(5)、退出系统:对此次操作中信息的增删改后的数据写入文件中,保存后退出。

#include#include#include   //调用系统的时间,通过时间的增减计算费用#include#include#define N 10#define HOURROOM 10#define NORMALROOM 120#define BIGROOM 300#define WORTHROOM 500#define GREATROOM 800struct room_message{    int number;        //房间号    int people;        //有无入住    int floor;        //楼层数(不同楼层房间类型不同)    time_t time;        //入住时间,无人住则置空}ROOM[100];void BuildRoom(){    //创建房间 的函数,对系统进行数据的初始化    FILE *fp=NULL;    int i,j;    if((fp=fopen("roommessage.dat","r"))==NULL)        {            fp=fopen("roommessage.dat","w");            for(i=0;i9||floor<0||room<0||room>9){            printf("您的输入有误,请重新在1-9之间输入\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您的输入有误,请在1-2之间重新输入\n");        }    }while(choose!=1&&choose!=2);    if(choose==1){        Printpay(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;a9||floor<0||room<0||room>9){        printf("您的输入有误,请在1-9之间重新输入\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;    }    Printpay(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;i10){            printf("您的输入有误,请在1-10之间重新输入\n");        }    }while(a<1||a>10);    PrintRoomFee(a);    do{        printf("\n请输入您想入住的房间号(1~10):");        scanf("%d",&b);            if(b<1||b>10){            printf("您的输入有误,请在1-10之间重新输入\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;i5)            {            printf("\n您的输入有误,请在1-5之间重新输入\n");            system("pause");            }        }while(step<1||step>5);        switch(step){        case 1:CheckIn();break;        case 2:ScanRoom();break;        case 3:CalFee();break;        case 4:CheckOut();break;        case 5:return 0;    }    printf("\n请问你还需要执行其他的管理操作吗?\n");    printf("1.是\n");    printf("2.否\n");    do{        scanf("%d",&step);        if(step<1||step>2)            {                printf("\n您的输入有误,请在1-2之间重新输入\n");            }    }while(step<1||step>2);    }while(step==1);    return 0;}int main(){    int step;    BuildRoom();    do{                //主程序循环        do{          //选择界面循环        system("cls");        printf("\t\t  *  欢迎使用酒店管理系统  * \n");        printf("\t\t_____________________________\n");        printf("\n\t\t||\t1.登记入住\t  ||\n");        printf("\t\t||\t2.查询入住情况\t  ||\n");        printf("\t\t||\t3.查询当前费用\t  ||\n");        printf("\t\t||\t4.办理退房    \t  ||\n");        printf("\t\t||\t5.退出系统\t  ||\n");        printf("\t\t_____________________________\n");        scanf("%d",&step);        if(step<1||step>5)            {            printf("\n您的输入有误,请在1-10之间重新输入\n");            system("pause");            }        }while(step<1||step>5);        switch(step){        case 1:CheckIn();break;        case 2:ScanRoom();break;        case 3:CalFee();break;        case 4:CheckOut();break;        case 5:exit(0);    }    printf("\n请问你还需要执行其他的管理操作吗?\n");    printf("1.是\n");    printf("2.否\n");    do{        scanf("%d",&step);        if(step<1||step>2)            {                printf("\n您的输入有误,请在1-2之间重新输入\n");            }    }while(step<1||step>2);    }while(step==1);    return 0;}

以上就是"C语言如何实现简单酒店管理系统"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

0