帮帮我怎么设计这个系统管理呢

 

如有帮助,望采纳。点击我回答右上角【采纳】按钮。

#include <stdio.h> 
#include <string.h> 
#include <stdlib.h> 
#include <windows.h> 
#define NUM 100 


int j; 


void LoginRoom(); 
void SearchRoom(); 
void ChangeRoom(); 
void OutRoom(); 
void save(); 
void load(); 
struct Client 
{ 
    char Name[20]; 
    int Sex; 
    int Age; 
    char IDcard[18]; 
    int hour; 
    char date[7]; 
}; 


struct room 
{ 
    int RoomID; 
    char Tel[11]; 
    long Price; 
    int Sign; 
    struct Client Clientlist; 
}Room[NUM]; 


void LoginRoom()     //登记客房信息函数 
{ 
    int i,n,k; 
    n=0; 
    system("cls"); 
    printf("                                     用户登记\n"); 
    for(k=0;;k++) 
    { 
        printf("请输入客房号:\n"); 
        scanf("%d",&i); 
        if(Room[i-1].Sign==1) 
        { 
          printf("对不起,该房间已入住,请重新输入。\n"); 
          n=n+1; 
        } 
        if(n==5) 
        { 
            printf("\n请查询清楚客房入住信息后再来登记,谢谢"); 
            Sleep(1500); 
            system("cls"); 
            return; 
        } 
        if(Room[i-1].Sign!=1) 
            break; 
    } 
    printf("房间号:%d\n",i); 
    printf("客户姓名:"); 
    scanf("%s",(char *)&Room[i-1].Clientlist.Name); 
    printf("性别:"); 
    scanf("%d",&Room[i-1].Clientlist.Sex); 
    printf("年龄:"); 
    scanf("%d",&Room[i-1].Clientlist.Age); 
    printf("身份证号码:"); 
    scanf("%s",(char *)&Room[i-1].Clientlist.IDcard); 
    printf("联系电话:"); 
    scanf("%s",(char *)&Room[i-1].Tel); 
    printf("入住时间:"); 
    scanf("%s",(char *)&Room[i-1].Clientlist.date); 
    printf("住房时长:"); 
    scanf("%d",&Room[i-1].Clientlist.hour); 
    Room[i-1].RoomID=i; 
    Room[i-1].Price=(Room[i-1].Clientlist.hour)*40; 
    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 SearchRoom()    //查询客房信息 
{ 
    int k; 
    system("cls"); 
    printf("                                  查询客房信息\n"); 
    printf("请输入要查询的房间号码:\n"); 
    scanf("%d",&k); 
    if(k<=0||k>100) 
    { 
        printf("对不起,没有相应的房间。\n"); 
        SearchRoom(); 
    } 
    if(Room[k-1].Sign==1) 
    { 
        printf("姓名:%s\n",Room[k-1].Clientlist.Name); 
        if(Room[k-1].Clientlist.Sex==1) 
        { 
            printf("性别:男\n"); 
        } 
        else 
        { 
            printf("性别:女\n"); 
        } 
        printf("年龄:%d\n",Room[k-1].Clientlist.Age); 
        printf("身份证号:%s\n",Room[k-1].Clientlist.IDcard); 
        printf("联系电话:%s\n",Room[k-1].Tel); 
        printf("入住时间:%s\n",Room[k-1].Clientlist.date); 
        printf("入住时长:%d\n",Room[k-1].Clientlist.hour); 
        printf("费用:%ld\n",Room[k-1].Price); 
    } 
    else 
    { 
        system("cls"); 
        printf("很抱歉,没有找到该房间登记的相关信息!!\n\n"); 
    } 
    printf("要返回首页吗?(1:Y,0:N)"); 
    scanf("%d",&j); 
    if(j==0) 
    { 
        SearchRoom(); 
    } 
    system("cls"); 
} 


void load()      //从文件中读取客房入住信息 
{ 
    FILE *fp; 
    int i; 
    if((fp=fopen("data.txt","r"))==NULL) 
    { 
        printf("不能打开文件\n"); 
        return; 
    } 
    for(i=0;!feof(fp);i++) 
    { 
        fread(&Room[i],sizeof(struct room),1,fp); 
    } 
    fclose(fp); 
    system("cls"); 
    printf("文件读取成功\n"); 
} 


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].Clientlist.Name); 
            break; 
            case 2:scanf("%d",&Room[i-1].Clientlist.Sex); 
            break; 
            case 3:scanf("%d",&Room[i-1].Clientlist.Age); 
            break; 
            case 4:scanf("%s",(char *)&Room[i-1].Clientlist.date); 
            break; 
            case 5: 
                scanf("%d",&Room[i-1].Clientlist.hour); 
                Room[i-1].Price=(Room[i-1].Clientlist.hour)*40; 
            break; 
            case 6:scanf("%s",(char *)&Room[i-1].Tel); 
            break; 
            case 7:scanf("%s",(char *)&Room[i-1].Clientlist.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~100号房间中有%d个房间已入住,剩余%d个房间为空房。 \n",sum,NUM-sum); 
    printf("要返回首页吗?(1:Y,0:N)"); 
    scanf("%d",&j); 
    if(j==0) 
    { 
        FreeRoom(); 
    } 
    system("cls"); 
} 


int main()      //主函数 
{ 
    int i,j; 
    system("mode con cols=82"); 
    system("color 19"); 
    load(); 
    system("cls"); 
    for(j=0;j<NUM;j++)   //为房间状态赋值为0,当有人入住时,其值改变为1 
    { 
        Room[j].RoomID=j+1; 
    } 
    do                  //菜单栏 
    { 
        printf("\n"); 
        printf("     ***********************************************************************     \n"); 
        printf("   ************************欢迎使用客房登记系统*******************************   \n"); 
        printf(" ***********************好消息!!!!特价钟点房40元/小时*************************** \n"); 
        printf("|                                                                               |\n"); 
        printf("|\t1.--登记客房信息                                                        |\n"); 
        printf("|\t2.--查询客房信息                                                        |\n"); 
        printf("|\t3.--修改客房信息                                                        |\n"); 
        printf("|\t4.--用户退房管理                                                        |\n"); 
        printf("|\t5.--显示当前空房信息                                                    |\n"); 
        printf("|\t6.--退出客房管理系统                                                    |\n"); 
        printf("|                                                                               |\n"); 
        printf("|*******************************************************************************|\n"); 
        printf("|********************>>>>李少港-计科(2)班-20151101134<<<<*********************|\n"); 
        printf("|*******************************************************************************|\n\n"); 
        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: 
                system("cls"); 
                printf("\n 输入错误,请从新选择\n"); 
            break; 
        } 
    } 
    while(i!=6); 
    return 0; 
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632