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

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

课程设计题目: 宾馆管理系统

一、需求分析

近年来,科技进步不仅促进了全球旅游企业的快速增长,而且指导了旅游者消费观念的 更新,其中信息与通信技术的发展对酒店等企业有着深远的影响,传统的管理方式已不 能满足具有信息量大,查询量大,保存期长,要求不间断运行等特点的宾馆管理需求, 重视信息技术的发展成为我国酒店业的共识。为增强竞争能力,提高管理水平,先进的 宾馆管理系统已成为必然。宾馆管理系统可以及时了解客户信息与需求,实现宾馆管理 信息化,通过宾馆管理系统的实施可以逐步提高宾馆的现代化建设,提升员工工作效率, 良好的管理系统越来越建立服务部门的良好形象,有利于业务规范化,标准化,有利于 提高管理水平,有利于创造更高的经济效益和社会效益,使管理过程实现现代化。

二、总体设计

三、详细设计

本系统中主要实现客户信息的建立,查找,删除等方面功能。由主函数生成系统主菜单,为进入各个界面提供通道。主要为 SWITCH 开关语句进入不同的界面,输入“1”进入宾馆信息建立界面,输入“2”进入信息添加界面,输入“3”进入客户姓名查询界面,输入“4”进入客户性别查询界面,输入“5”进入房号查询界面。输入“6”进入入住时间查询界面,输入“7”进入客户信息修改界面,输入“8”进入客户信息删除界面,输入“9”进入客户信息删除界面,输入“0”退出系统。程序由 C 语言结合数据结构中建立一个线性链表的知识编程

四、调试与测试

五、用户手册

1.在主菜单输入“1”进入“宾馆信息建立界面”。此界面可建立客户的基本信息:姓名,性别,证件号,入住时间,天数,房号,押金,离开时间等,并返回主菜单。

2.宾馆信息添加功能

在主菜单输入“2”进入“宾馆信息添加界面”。此界面可以添加客户个数和客户基本信息:姓名,性别,证件号,入住时间,天数,房号,押金,离开时间等,并返回到菜单进行下一步。

3. 客户姓名查询功能

在主菜单输入“3”进入“客户姓名查询界面”。在此界面首先根据提示输入 1 表示按照姓名查找,然后输入客户姓名确定进行查询客户的基本信息并显示出来。此功能可以方便的查询到某一姓名的客户
的客房信息。

4.客户性别查询功能

在主菜单输入“4”,进入“客户性别查询界面”。在此界面可按客户的性别查询某一性别的所有客户的基本信息,此功能可以查询同一性别的客人信息,并比较不同性别客流量,以制定计划增加客流量。

5.宾馆房号查询功能

在主菜单输入“5”,进入“宾馆房号查询界面”。在此界面可按已知的房号查询客户的基本信息,此功能可以确定某房间的住入情况,若无人则显示没有该房间信息,若有人住入可根据之前建立或添加的客户信息显示出住在该房间的客人登记信息。

6.入住时间查询功能

在主菜单输入“6”,进入“入住时间查询界面”。在此界面可通过大概的入住时间查询客户登记的基本信息,此功能可以查询在同一天住入宾馆的客

7.客户信息修改功能

在主菜单输入“7”,进入“客户信息修改界面”。在此界面先通过先前的客户姓名查找到该客户信息,再根据要修改的客户姓名,修改客户信息。此功能可以方便的对需要增加住宿时间的客户进行维
护。

8.客户信息删除功能

在主菜单输入“8”,进入“客户信息删除界面”。在此界面可按客户的姓名删除客户的基本信息,使用 del()函数,输入客户姓名,确定删除按 1,此功能可以将保存时间过长现在已不需要保留
的客户的信息删除。

9.客户信息显示功能

在主菜单输入“9”,进入“客户信息显示界面”。在此界面可按客户的性别查询客户的基本信息,此功能可以将所有客户信息显示在输出界面上,工作人员可直观观察。

六.源代码

#include"stdio.h"
#include"stdlib.h" 
#include"string.h"
typedef struct
{
    char name[50];  
    char sex[50]; 
    char ID[50];
    char come[50];  
    char day[50];
    char number[50]; 
    char type[50];
    char price[50];  
    char yushou[50];
    char yajin[50];  
    char leave[50];
}datatype;
typedef struct node
{
    datatype data;  
    struct node *next; 
}listnode; 
typedef listnode *linklist;
linklist head;
listnode *p;
void Output_allInfo(linklist head);//输出所有客户信息  
void Delete_info(linklist head);//客户信息的删除 
void Info_Modify(linklist head);//按客户姓名的信息修改 
listnode *Name_Search(linklist head); //按姓名查找宾馆信息 
listnode *Sex_Search(linklist head);//按性别查找宾馆信息  
listnode *Roomnum_Search(linklist head);//按房间号查找宾馆信息
listnode *Cometime_Search(linklist head) ;//按入住时间查找 
char Display_Menu();//菜单输出函数 
listnode* Add(linklist head,int b);//增加客户信息
linklist Create(int a);//宾馆客户信息的建立  
void SaveInfoToFile(linklist head);//保存顾客信息到文件中
listnode *ReadInfoFromFile();//信息从文件读出
int main()//主函数 
{ 
    int i,a;
    for(;;) 
    { 
        switch(Display_Menu())  
        {
        case 1: printf("**2.宾馆信息的建立**\n");           
            printf("输入你想输入的数目:");         
            scanf("%d",&i);       head=Create(i); break;  
        case 2: printf("**1.从文件读入客户信息!**\n");        
            ReadInfoFromFile();             break;      
        case 3: printf("**3.宾馆信息的添加**\n");          
            printf("输入你想添加的人数:");       
            scanf("%d",&a);       
            Add(head,a); break; 
        case 4:  printf("**4.客户姓名的查询**\n");        
            p=Name_Search(head);             if(p!=NULL)       
            {       
                printf("姓名\t 性别\t 证件\t 入住\t 天数\t 房号\t 价格\t 押金\t 离开\n ");     
                printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->data.name,p->data.sex,p->data.ID,      
                    p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave );      
                printf("\n");  
            } 
            else printf("该用户不存在!");break;       
        case 5: printf("**5.客户性别的查询**\n");    
            p=Sex_Search(head);          
            if(p!=NULL)         
            {
                printf("姓名\t 性别\t 证件\t 入住\t 天数\t 房号\t 价格\t 押金\t 离开\n ");   
                printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->data.name,p->data.sex,p->data.ID,    
                    p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave );      
                printf("\n");   
            }
            else
                printf("该用户不存在!");break;  
        case 6: 
            printf("**6.客户房号的查询**\n");     
            p=Roomnum_Search(head);     
            if(p!=NULL)  
            {
                printf("姓名\t 性别\t 证件\t 入住\t 天数\t 房号\t 价格\t 押金\t 离开\n ");   
                printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->data.name,p->data.sex,p->data.ID, 
                    p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave );   
                printf("\n");     
            }
            else printf("该房间信息不存在!");break; 
        case 7:
            printf("**7.客户性别的查询**\n");    
            p=Cometime_Search(head);
            if(p!=NULL)   
            {
                printf("姓名\t 性别\t 证件\t 入住\t 天数\t 房号\t 价格\t 押金\t 离开\n ");    
                printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->data.name,p->data.sex,p->data.ID,
                    p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave );    
                printf("\n");  
            }    
            else printf("该房间信息不存在!");break;
        case 8: printf("**8.宾馆信息的修改**\n");         
            Info_Modify(head);break; 
        case 9: printf("**9.宾馆信息的删除**\n"); 
            Delete_info(head);break;   
        case 10: printf("**10.宾馆信息的输出**\n");    
            Output_allInfo(head); break;  
        case 11:printf("11.保存顾客信息");      
            SaveInfoToFile(head); break;
            //保存顾客信息到文件中   
        case 0:printf("**0.退出**\n");     
            exit(0);   
        default: break; 
        } 
    }
    return 0; 
}
//菜单函数 
char Display_Menu() 
{  
    int  i;  
    FILE *fp;
    char ch; 
    printf("\n\n\n\n\n\n");
    printf("                         欢迎使用宾馆信息管理系统!") ;   
    if((fp=fopen("F:\\Cyy Report\\menu.txt","r"))==NULL) 
    {
        printf("菜单文件打开失败!");  
        exit(0);  
    } 
    ch=fgetc(fp);
    while(ch!=EOF) 
    {
        putchar(ch); 
        ch=fgetc(fp);
    }
    printf("\n");
    for(;;)  
    { 
        scanf("%d",&i); 
        printf("\n");  
        if(i<0||i>11) 
            printf("选择错误,重新选择:\n");   
        else break;
    }   
    return i;
}
listnode *ReadInfoFromFile() 
{ 
    FILE *fp;  
    int b; 
    fp=fopen("F:\\Cyy Report\\customer.txt","r");  
    listnode *p=NULL,*q=NULL,*head=NULL;
    p=(listnode *)malloc(sizeof(listnode));   
    head->next=p;     
    b=1;
    if(!fp)  
    {
        printf("文件打开失败!");  
        exit(0); 
    }
    else printf("文件打开成功");  
    while(!feof(fp)) 
    {  
        /*fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->next->data.name,p->next->data.se x,p->next->data.ID,          p->next->data.come,p->next->data.day,p->next->data.number,p->next->data.price,p->next->data. yajin,p->next->data.leave );*/  
        q=(listnode *)malloc(sizeof(listnode));   
        fscanf(fp,"%s%s%s%s%s%s%s%s",p->data.name,p->data.sex,p->data.ID,   
            p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave); 
        p->next=q;
        q=p ;
        b++;
    }
    head=Add(head,b); 
    printf("\n"); 
    fclose(fp);  
    return head; 
}
//宾馆客户信息的建立 
linklist Create(int a)
{
    linklist head=(listnode *)malloc(sizeof(listnode));
    listnode *p,*q;  
    q=head;
    while(a--) 
    {
        p=(listnode *)malloc(sizeof(listnode)); 
        printf("姓名\t 性别\t 证件\t 入住\t 天数\t 房号\t 价格\t 押金\t 离开\n "); 
        scanf("%s%s%s%s%s%s%s%s%s",p->data.name,p->data.sex,p->data.ID,   
            p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave); 
        q->next=p;   
        q=p; 
    } 
    q->next=NULL; 
    return head; 
}
listnode* Add(linklist head,int b)//增加顾客信息 
{
    listnode *m,*n,*p;
    m=head;
    n=m->next;  
    while(n->next!=NULL)
    {
        m=n;  
        n=n->next; 
    }
    while(b--) 
    {
        p=(listnode *)malloc(sizeof(listnode));   
        printf("姓名\t 性别\t 证件\t 入住\t 天数\t 房号\t 价格\t 押金\t 离开\n "); 
        printf("***************************\n"); 
        scanf("%s%s%s%s%s%s%s%s%s",p->data.name,p->data.sex,p->data.ID,        
            p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave );  
        n->next=p;
        n=p; 
    }
    n->next=NULL; 
    return head; 
}
//按姓名查找宾馆信息 
listnode *Name_Search(linklist head) 
{
    listnode *p;  
    char name[10];
    int i;  
    printf("按 1 表示姓名查找:");  
    p=head->next ; 
    scanf("%d",&i);  
    if(i==1) 
    {
        printf("输入要查询的姓名:");  
        scanf("%s",&name);
        while(p&&strcmp(p->data.name,name)>0)   
            p=p->next;   
        if(p==NULL||strcmp(p->data.name,name)<0)
            p=NULL;
    }
    else
        printf("输入错误!");  
    return p;
}
//按性别查找宾馆信息  
listnode *Sex_Search(linklist head)
{
    listnode *p; 
    char sex[10];
    int i;  
    printf("按 1 表示性别查找:");  
    scanf("%d",&i);
    p=head->next ;  
    if(i==1)  
    {
        printf("输入要查询的性别:");  
        scanf("%s",&sex); 
        while(p&&strcmp(p->data.sex,sex)>0)
            p=p->next; 
        if(p==NULL||strcmp(p->data.sex,sex)<0) 
            p=NULL;  
    }
    return p; 
}
//按房间号查找宾馆信息  
listnode *Roomnum_Search(linklist head)
{
    listnode *p;
    char number[10]; 
    int i;
    printf("按 1 表示房间号查找:");  
    p=head->next ;
    scanf("%d",&i);
    if(i==1)  
    {
        printf("输入要查询的房间号:");   
        scanf("%s",&number);
        while(p&&strcmp(p->data.number,number)>0)  
            p=p->next; 
        if(p==NULL||strcmp(p->data.number,number)<0)  
            p=NULL; 
    }
    return p; 
}
//按入住时间查找 
listnode *Cometime_Search(linklist head) 
{
    listnode *p; 
    char come[10]; 
    int i;  
    printf("按 1 表示性别查找:");  
    p=head->next ;
    scanf("%d",&i); 
    if(i==1) 
    {
        printf("输入要查询的入住时间:");  
        scanf("%s",&come); 
        while(p&&strcmp(p->data.come,come)>0) 
            p=p->next;  
        if(p==NULL||strcmp(p->data.come,come)<0)
            p=NULL; 
    }
    return p; 
}
//按客户姓名的信息修改  
void Info_Modify(linklist head) 
{  
    listnode *p;
    p=Name_Search(head);
    if(p==NULL)
    { 
        printf("宾馆信息不存在!\n");  
    }  
    else
    {
        printf("姓名\t 性别\t 证件\t 入住\t 天数\t 房号\t 价格\t 押金\t 离开\n ");
        printf("***************************\n");   
        scanf("%s%s%s%s%s%s%s%s%s",p->data.name,p->data.sex,p->data.ID,       
            p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave );  printf("宾馆信息已修改!");    
    }
}
//客户信息的删除
void Delete_info(linklist head) 
{
    int i;  
    listnode *p,*q; 
    p=Name_Search(head);  
    if(p==NULL) 
    {
        printf("信息不存在!\n");   
        return;  
    }  
    else 
    {
        printf("按 1 删除:");   
        scanf("%d",&i);
        if(i==1) 
        {
            q=head;
            while(q!=NULL&&q->next!=p)  
                q=p->next;
            q->next=p->next; 
            free(p); 
            printf("信息已删除!");    
        }
    }
}
//宾馆信息的输出 
void Output_allInfo(linklist head) 
{
    listnode *p; 
    p=head;  
    printf("姓名\t 性别\t 证件\t 入住\t 天数\t 房号\t 价格\t 押金\t 离开\n "); 
    while(p->next!=NULL)  { 
        
        printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->next->data.name,p->next->data.sex,p-> next->data.ID,      
            p->next->data.come,p->next->data.day,p->next->data.number,p->next->data.price,p->next->data. yajin,p->next->data.leave ); 
        p=p->next ;
    }
}
void SaveInfoToFile(linklist head) 
{ 
    FILE *fp;
    listnode *p; 
    p=head->next; 
    if(p==NULL) 
    { 
        printf("现在没有顾客信息,请先输入顾客信息!\n\n"); 
        return; 
    }
    fp=fopen("F:\\Cyy Report\\customer.txt","w");  
    if(!fp) 
    { 
        printf("文件不存在!\n");
        return;
    }
    while(p)  
    {
        fprintf(fp,"%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->data.name,p->data.sex,p->data.ID,      p->data.come,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave );     
        p=p->next; 
    }  
    fclose(fp);  
    printf("文件保存成功!\n"); 
} 

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

(0)

相关推荐

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

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

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

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

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

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

    一份C语言学生成绩管理系统设计报告,分享给大家 一.课程设计题目 <学生成绩管理系统设计> 二.实训目的 (1)掌握结构化程序设计的基本方法,基本掌握面向对象程序设计的基本思路和方法. (2)掌握C++的基本概念和基础知识. (3)通过训练能够读懂较为复杂的C++语言源程序并具备基本C++语言程序设计的能力. (4)通过实训,培养自己编写.调试.分析程序的能力. (5)培养自己独立解决问题,查找资料的能力.同学之间相互帮助,相互交流,相互合作的团队精神. (6) 培养自己良好的学习兴趣,独立的

  • C语言实现电话簿管理系统课程设计

    本文实例为大家分享了C语言课程设计:电话簿管理系统,供大家参考,具体内容如下 文件目录: 初始界面 现在显示一部分代码: //添加联系人 void add() { int i; FILE *fp1;//定义文件指针fp1,使其指向电话簿文本文件 fp1=fopen("电话簿.txt","a+"); printf("请输入要增加的联系人的个数:"); scanf("%d",&n); for(i=num;i<num+

  • C语言实现销售管理系统课程设计

    本文实例为大家分享了C语言实现销售管理系统的具体代码,供大家参考,具体内容如下 一.C程序设计课程设计题目简介 该设计要求学生以某公司销售管理业务为背景,设计.开发一套“销售管理系统”软件. 通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,针对c语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格.得到软件工程的综合训练,提高解决实际问题的能力. 二.C程序设计课程设计的任务 1.查阅文献资料,一般在5篇

  • C语言实现学籍管理系统课程设计

    本文实例为大家分享了C语言实现学籍管理系统的具体代码,供大家参考,具体内容如下 学校的课程设计,自己完成后整理了一下.自己用链表实现的一个较简单的学籍管理系统,都是通过一些链表以及文件的基本操作完成. 功能实现 1-录入学生信息.2-查询学生信息.3-修改学生信息 .4-删除学生信息.5-显示学生信息.6-统计信息报表.7-读盘,存盘. 注:一些getchar()以及换行符是我为了让界面美观自己加的. #include<stdio.h> #include<stdlib.h> #in

  • C语言实现图书管理系统课程设计

    目录 设计要求 实现代码 运行结果 本文实例为大家分享了C语言实现图书管理系统的具体代码,供大家参考,具体内容如下 设计要求 设计图书管理系统 要求如下: 1.对书名,作者,编号,出版单位,出版日期,类别,存放位置进行添加.删除.修改2.查询相关信息3.保存所有信息 实现代码 #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> typedef struct

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

    C语言学生学籍管理系统做了好长时间的,里面有点小问题,希望大佬找到并帮忙改改,注意输入密码三次错误会自动注销用户,密码123456 代码: #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h> struct student { char xuehao[100];//输入学号 char name[100];//输入姓名 char sex[100];//输入性别 int

  • C语言实现宿舍管理系统课程设计

    宿舍管理系统C语言源码,供大家参考,具体内容如下 内容摘要 学生宿舍管理系统时应对学生宿舍管理的现代化.网络化,逐步摆脱学生宿舍管理的人工管理方式,提高学生宿舍管理效率而开发的,它包括了对学生宿舍基本信息管理,其功能包括对这些基本信息的增.删.改.查等基本功能,并将这些功能与文件读写相结合形成文档使管理者一目了然,也适合长时间的保存,数据不容易丢失:其中在输出时穿插着冒泡排序.希尔排序.折半拆入排序.二分查找等算法,按顺序输出学生信息等.综上,这无疑为信息的管理存储提供了一个方便.快捷的操作方式

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

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

随机推荐