C语言实现客房管理系统

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

总体设计

下面来分析一下整个系统,根据上面的要求分析,可将这个系统设计为五大模块(见下图):登记模块,统计模块,查询模块,修改模块,退出模块。其主要功能为:注册,统计,查询,修改,退房功能。

C语言实现客房管理系统_第1张图片

一、头文件以及结构体

#include
#include
#include
#include
#define NUM 50    //定义常量NUM 
void input(); 
void record();
void find();
void modify();
//建立如下结构体: 
struct Client
 
{   
  char name[20];   
  char sex[10]; 
  int age; 
  char ID_card[20];
  int year; 
  int month;   
  int date;        
  int Room_ID;   
  char Tel[15];      
  int Price;    
  char Sign[10];    
  }Room[NUM];

二、保存和读取函数

1、保存函数用于将输入的数据保存到文本文件客户信息.txt文件中,实现数据的保存

void save()
{
    FILE *fp;
    int i;
    if ((fp=fopen("客户信息.txt","a+"))==NULL)    /*a+表示以读和追加方式打开文件客户信息.txt */
    {printf("cannot open file\n");
    return;}
    for(i=0;i 
 

2、读取函数将文本文件客户信息.txt中的客户个人信息读取出来,从而实现统计、查询以及修改的功能。

void read()
{
FILE *fp;
int i;
if((fp=fopen("客户信息.txt","r"))==NULL)
  {printf("\nCannot open file\n");
    return;}
  for(i=0;!feof(fp);i++)            //!feof(fp)文件读到结束时读取停止
fscanf(fp,"%s %s %d %s %d %d %d %d %s %d %s\n",&Room[i].name,&Room[i].sex,
&Room[i].age,&Room[i].ID_card,&Room[i].year,&Room[i].month,&Room[i]. date,&Room[i].Room_ID,&Room[i].Tel,&Room[i].Price,&Room[i].Sign,&now_no); 
    fclose(fp);
}

三、按照房间号查找函数

int search(int num)
{
    int i,k=1;
    read();
    for(i=0;i 
 

四、登记模块

用于完成客户个人信息的输入功能并保存。本函数的功能为先要在文件中查找房间状态,若可以出借,则允许入住,把房客信息(房间号、价格、房间状态、入住人姓名、入住人身份证号等)添加到记录中,并把房间状态改为已住。

void input()
{
    int i,right,index;
    char as;
    do
    {
        printf("\t\t\t\t1.宾客入住登记\n");
        do
        {
            printf("请输入房间号:\n");
            scanf("%d",&i);
            index=search(i);
            if(index)
            {printf("已有宾客居住,请重新输入!\n");
            right=1;
            getchar();}
            else
                right=0;
            Room[i-1].Room_ID=i;
        }
        while(right==1);
        printf("\n输入宾客的姓名:");
        scanf("%s",Room[i-1].name);
        printf("\n输入宾客性别:");
        scanf("%s",Room[i-1].sex);
    printf("\n输入宾客的年龄:");
    scanf("%d",&Room[i-1].age);
    printf("\n输入宾客身份证号:");
    scanf("%s",Room[i-1].ID_card);
    printf("\n输入宾客入住时间:");
    scanf("%d",&Room[i-1].year);
    scanf("%d",&Room[i-1].month);
    scanf("%d",&Room[i-1].date);
    printf("\n输入宾客电话号:");
    scanf("%s",Room[i-1].Tel);
    printf("\n输入宾客房间价格:");
    scanf("%d",&Room[i-1].Price);
    printf("\n输入该房间是否入住(yes/no):");
    scanf("%s",Room[i-1].Sign);//输入客户的个人信息
    Room[i-1].Room_ID=i;
    printf("\n\n");
    printf("是否继续输入?(Y/N)");        //判断是否继续输入
    as=getch();
    system("cls");
    save();
    }
    while(as!='n'&&as!='N');
    system("cls");                //清屏
}

五、统计模块

用于统计总共入住的人数,并且可以统计某一天住了多少人以及收入多少。

void record()
{
    int i,j,y,m,d,s=0,money=0;
    char as;
    int n=0;
        read();
    do
    {printf("\n客房入住总数: ");
    fflush(stdin);    
    for(j=0;j 
 

六、查询模块

本函数的功能为输出查询功能菜单选项,包括房间号、价格、房间标记、用户姓名、居份证查询等功能。系统根据输入的选项执行相应的函数。

void find()
{
    int i,a,b,c;
    char str[20],as,d[20],e[10];
    read ();
    do
    {
        printf("\n按以下条件查询:1.宾客姓名 2.房间号 3.房间价格 4.身份证号 5.房间标记 6.返回主菜单\n请选择:");
        scanf("%d",&a);
        switch(a)
        {
        case 1:
            do
            {printf("输入要查询的宾客:");
            fflush(stdin);
            gets(str);
            for(i=0;i 
 

七、修改模块

本函数的功能为系统根据输入的调出该用户及所在房间信息,同时输出修改功能菜单选项,包括修改姓名、修改性别、修改年龄、修改身份证号、修改日期、修改电话号码修改房间价格。系统根据输入的选项修改用户相应的信息。

void modify()
{
    int i,x,a;
    char as;
    printf("输入要修改的房间号:");
    scanf("%d",&a);
    read ();
    do 
    {
    for(i=0;i 
 

八、退房模块

本函数的功能根据输入的房间号判断该房间入住状态,若有宾客居住把房间状态改为空置,把房客信息删除。

​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].Room_ID==i)
        {
            Room[i-1].Room_ID=0;
strcpy(Room[i-1].name," ");
strcpy(Room[i-1].sex," ");
Room[i-1].age=0;
strcpy(Room[i-1].ID_card," ");
Room[i-1].year=0;
Room[i-1].month=0;
Room[i-1].date=0;
strcpy(Room[i-1].Tel," ");
strcpy(Room[i-1].Sign,"no");
            save();
            system("cls");
            printf("退房成功\n");
        }
        else
        {
            system("cls");
            printf("该房间为空房\n");
        }
    }
    printf("要返回首页吗?(1:Y,0:N)");
    scanf("%d",&j);
    if(j==0)
    {
        OutRoom();
    }
    system("cls");
}

九、主函数​

int main()
{
    int as;
start:
    do
    {
        printf("\t***********************************");
        printf("\n\t\t欢迎使用客房管理系统\n");
        printf("\n\t\t|   1.宾客入住登记   |\n\t\t|   2.统计宾客信息   |\n\t\t|   3.查询宾客信息   |\n\t\t|   4.修改宾客信息   |\n\t\t|   5.退房系统       |\n\t\t|   6.退出           |\n");
        printf("\t***********************************\n");
        printf("\t\t选择功能选项: ");    //选择语句用于选择不同的模块
        fflush(stdin);
        scanf("%d",&as);
        switch(as)
        {case 1:system("cls");input();break;
        case 2:system("cls");record();break;
        case 3:system("cls");find();break;
        case 4:system("cls");modify();break;
        case 5:system("cls");OutRoom();break;
        case 6:system("exit");printf("成功退出系统\n");exit(0);
        default:system("cls");goto start;}
    }while(1);
 }

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

你可能感兴趣的:(C语言实现客房管理系统)