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

三、详细设计
本系统中主要实现客户信息的建立,查找,删除等方面功能。由主函数生成系统主菜单,
为进入各个界面提供通道。主要为 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");   }elseprintf("该用户不存在!");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;}elseprintf("输入错误!");  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");
}

C语言课程设计——宾馆管理系统相关推荐

  1. 销售管理c语言程序设计,C语言课程设计销售管理系统

    C语言课程设计销售管理系统 C语言课程设计 题 目 商品销售系统 指导教师 曹东燕 学生姓名 刘伟 张新星 马国文 学 号 200900804072 200901802005 200900804051 ...

  2. 网吧管理系统C语言作业,C语言课程设计-网吧管理系统.doc

    C语言课程设计-网吧管理系统 <通信工程专业C语言课程设计> 报 告 专 业: 通信工程 班 级: 0802 姓 名: 赵 松 指导教师: 丁 雄 二00九 年 十二 月 二十五 日 目 ...

  3. c语言程序设计书店销售管理系统,C语言课程设计-书店管理系统

    <C语言课程设计-书店管理系统>由会员分享,可在线阅读,更多相关<C语言课程设计-书店管理系统(25页珍藏版)>请在人人文库网上搜索. 1.计算机程序设计计算机程序设计(C(C ...

  4. c语言课程设计人事管理,C语言课程设计-人事管理系统(65页).doc

    C语言课程设计-人事管理系统(65页) C语言课程设计 --人事管理系统 来自资料搜索网() 海量资料下载 人事管理管理系统 [要求] 某高校主要人员有:在职人员(行政人员.教师.一般员工).退休人员 ...

  5. c语言编程票务系统,C语言课程设计票务管理系统

    C语言课程设计票务管理系统 C语言课程设计1西安交通大学城市学院C语言程序设计课程设计报告题目图书信息管理系统专业自动化班级自动化101姓名陈蕾完成日期2012年5月31日C语言课程设计2目录第一章项 ...

  6. c语言课程设计图书管理系统

    数据结构c语言课程设计 图书管理系统 我做的是百度文库的第28题,目前没有报错,正常运行,但是还有一点小bug.代码很多地方写的不是很好,请多多包涵. 账号1,密码1,为管理员账号:其他账号2,3,4 ...

  7. c语言课程设计作业图书管理系统,C语言课程设计图书馆管理系统程序代码.doc

    C语言课程设计图书馆管理系统程序代码.doc includestdio.h includewindows.h includestring.h includeconio.h define M 100 s ...

  8. c语言大作业书店图书管理系统,c语言课程设计 书店管理系统.pdf

    c语言课程设计 书店管理系统 计算机程序设计(C语言) 课程设计报告 题目:图书管理系统 学院: 专业: 班级: 学号: 姓名: 指导教师: 设计日期:2013年06月24 日 一.选题背景: 设计一 ...

  9. c语言课程设计订单管理系统,C语言课程设计订单管理系统讲解.doc

    C语言课程设计订单管理系统讲解 C语言课程设计 随米打印订单管理系统 学 院: 计算机与信息科学学院 学生姓名: 谢润发 指导教师: 王新祥 职称 教授 专 业: 网络工程 班 级: 1501 完成时 ...

最新文章

  1. matlab 互信息函数,MATLAB 互信息函数
  2. SQLite 命令(http://www.w3cschool.cc/sqlite/sqlite-commands.html)
  3. linux pcie驱动框架_Linux设备驱动框架设计
  4. 26.中继器数据的添加与删除
  5. PropertiesUtil 获取文件属性值
  6. 如何使用SSH客户端远程操作linux系统,并启动、关闭tomcat和查看后台日志
  7. hive2 java连接_用Java代码通过JDBC连接Hiveserver2
  8. 第六章 实验报告(函数与宏定义)
  9. java 循环字符_在Java中从循环结果创建字符串
  10. 取最大值_举一反三17——线段平方和的最小值与最大值
  11. SpringBoot+Vue的房屋租赁系统(含前后台)
  12. uni-app 微信小程序 getuserinfo 获取用户信息 拼音转中文
  13. python之列表索引
  14. 笔记-3.路径动画+小球闯关练习
  15. 什么是精神内耗,如何防止?
  16. 北京化工大学2018年10月程序设计竞赛 F. 罗dalao的密码(递归)
  17. 微信支付-企业付款到零钱问题集锦
  18. 天猫,淘宝,京东收货信息中,自动识别手机号、姓名、省市区
  19. PL/SQL测试存在CLOB类型入参的存储过程时,入参为NULL
  20. 怎么把已经初始化的字符数组设置为空?

热门文章

  1. 电网公司追求购电费用最小的调度决策(Python代码实现)
  2. windows 远程桌面无法连接的问题
  3. my visitor
  4. matlab乘法和除法
  5. 3.神经网络-深度学习入门
  6. PS188——谱瑞(Parade)推动的 Type-C扩展坞红海战略
  7. c v语言 小数后20位,V语言学习笔记-30集成C代码库
  8. 【大咖连载】服务设计与实现
  9. OpenCascade学习笔记-创建一个简单的OpenCascade单文档
  10. android手机电视互动,安卓手机投屏酷开电视如何实现 多屏互动这么玩