c语言宾馆管理系统设计_第1页
c语言宾馆管理系统设计_第2页
c语言宾馆管理系统设计_第3页
c语言宾馆管理系统设计_第4页
c语言宾馆管理系统设计_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于C语言的宾馆管理系统的设计与实现摘 要:宾馆管理系统是在对宾馆日常工作进行管理基础上开发出来的一套系统。本系统程序主要任务是生成宾馆信息的建立界面、宾馆信息的添加界面、信息显示界面、删除界面、查询界面等,可以根据房号,客户姓名,性别,入住时间等来查询信息。系统使用Visual C+6.0开发前台应用程序,结合数据结构的知识实现宾馆日常工作的规范化、自动化。关键词:宾馆管理系统;C语言;数据结构Design and Implementation a Hotel management system based on C languageBian Yue, College of Physics

2、and Electronic InformationAbstract:Hotel management system is a set of system,which is developed by the management of hotel daliy work. This system program main task is to generate the interface of establish the hotel information, the interface of add the hotel information , the interface of display

3、 the hotel information, the interface of delete the hotel information, the interface of inquires the hotel information, and so on.it could query the hotel information according to the room number, or the customer's name, or the customers gender,or the check in time to the hotel.The Systems devel

4、oped foreground application by using Visual C+ 6.0 combined with the knowledge of the data structure to realize the hotel daily work standardizationautomation.Key words: Hotel management system; C; Data structure1 绪 论1.1宾馆管理系统的研究背景与意义近年来,科技进步不仅促进了全球旅游企业的快速增长,而且指导了旅游者消费观念更新,其中信息与通信技术的发展对酒店业有着深远的影响1。传

5、统的管理方式已不能满足具有信息量及查询量大,保存期长,要求不间断运行等特点的宾馆管理需求,重视信息技术的发展成为我国酒店业的共识。为增强竞争能力,提高管理水平,先进的宾馆管理系统己成为必然。宾馆管理系统可以及时了解客户信息与需求,实现宾馆管理信息化。通过宾馆管理系统的实施可以逐步提高宾馆的现代化建设,提升员工工作效率。良好的管理系统有利于建立服务部门的良好形象,有利于促进业务规范化标准化,有利于提高管理水平,有利于创造更高的经济效益和社会效益,使管理过程实现现代化2。1.2相关技术与开发工具介绍1.2.1 C语言介绍与VC+6.0本系统主要采用C语言,在VC+6.0上进行程序编译、连接以及程序

6、运行一体化。C是中级语言,它把高级语言的基本结构和语句与低级语言的实用性结合起来。C语言既可以用于编写系统软件,又可以用于编写应用软件。C 语言可以像汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。C是结构式语言,结构式语言的显著特点是代码及数据的分隔化,使程序层次清晰, 便于使用、维护以及调试3。C 语言还有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。Visual C+6.0是一款功能强大的可视化软件开发工具。Visual C+6.0由微软公司开发,主要是在Windows环境中工作。Visual C+6.0由许多组件组成,包括编辑器

7、、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具4。这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。它的最大优点就是提供了功能强大的MFC类库,MFC是一个很大的C+类层次结构,其中封装了大量的类及其函数。很多Windows的程序所共有的标准内容可以由MFC的类来提供,MFC类为这些内容提供了用户接口的标准实现方法。程序员所要做的工作就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓,这将简化编程工作,大大的减少程序员编写的代码数量,使编程工作变得更加轻松容易5。 数据结构简介数据结构是指相互有关联的数据元素的集合。客观存在

8、的一切个体都可以是数据元素。根据数据元素前后件关系的复杂程度,一般将数据结构分为两大类:线性结构(又称线性表)和非线性结构。数据结构可以进行数据处理如对数据进行查找、插入、删除、合并、排序、统计以及简单计算6。数据结构有四类基本结构:集合、线性结构、树形结构、图状结构(网状结构)。线性表(linear list)是最简单的数据结构,它由一组数据元素构成,数据元素可以是简单项(如数,字母等),也可以由若干数据项组成,如在本文中,一个客户的信息由客户姓名,性别,房号,住入时间,房间价格等几个数据项组成,是一个复杂的线性表。线性表可以顺序存储,也可以链式存储。链式存储便于插入或删除元素。在C语言中,

9、用户可以利用malloc(存储区字节数)函数向系统申请分配链表节点的存储空间。该函数返回存储区的首地址7。2 VC+6.0集成开发环境目前所用的C+集成开发环境(集成开发环境:把编辑编译连接和执行等步骤在一个环境中完成)功能强,使用方便。由于C+和C兼容,可以用C+集成开发环境对C程序进行编译连接和运行8。本系统采用Visual C+6.0开发工具。 在Visual C+6.0主窗口的顶部是Visual C+6.0的主菜单栏,其中包含9个菜单项:File(文件) Edit(编辑)View(查看)Insert(插入)Project(工程)Build(编译)Tools(工具)Window(窗口)H

10、elp(帮助)9。在此主要介绍以下几点: (1)File(文件):在子菜单栏中有New(新建)Open打开)Save(保存)等几项。首先新建一个源程序,在新建对话框中选择C+ Source File,回到Visual C+6.0主窗口,在编辑窗口输入程序,保存。保存时可选择保存路径和保存的文件名,后缀为.cpp。如果已有一个已存在的文件,可直接选择open。备份还可以选择“另存为(Save as)”项。在编译新文件前,应先选择File(文件)下的Close Workspace(关闭工作区)将原有的工作区关闭,以免新文件在原有的工作区进行编译。 (2)Build(编译或建立):在编辑和保存了源文

11、件以后,生成的是文件扩展名为.C,不能直接运行,需要对其进行编译,在编译下拉菜单中选择Compile(编译)项。在进行编译时,编译系统可以检查源程序中有无语法错误,然后在主窗口输出编译的信息。如果无错,则生成目标文件.obj,如果有错,则会指出错误的位置和性质,提示用户改正错误。编译后还需连接成一个可执行文件.exe文件,同样在Build菜单下进行。.exe文件可以通过菜单进行运行,也可以直接按Ctrl+F5键来实现程序的执行。总之在Build(编译)菜单下可以将.c文件编译成.obj文件再连接成.exe文件。若是在已保存所需要的源程序的基础上进行修改完善,可以再File(文件)下选择Open

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

13、菜单宾馆信息的建立宾馆信息的添加客户性别的查询客户姓名的查询客户信息的修改宾馆信息的删除宾馆信息的显示退出宾馆房号的查询入住时间的查询 1 2 4 3 5 6 7 8 9 0图3.1 系统结构图3.2系统功能分析本系统共做出十个界面,通过键盘输入0到9十个不同的数字达到从主菜单进入功能菜单的目的,不同的数字进入的不同的界面以及完成的功能介绍如下:3.21宾馆信息建立功能在主菜单输入“1”进入“宾馆信息建立界面”。此界面可建立客户的基本信息:姓名,性别,证件号,入住时间,天数,房号,押金,离开时间等,并返回主菜单。3.22宾馆信息添加功能在主菜单输入“2”进入“宾馆信息添加界面”。此界面可以添加

14、客户个数和客户基本信息:姓名,性别,证件号,入住时间,天数,房号,押金,离开时间等,并返回到菜单进行下一步。3.23客户姓名查询功能在主菜单输入“3”进入“客户姓名查询界面”。在此界面首先根据提示输入1表示按照姓名查找,然后输入客户姓名确定进行查询客户的基本信息并显示出来。此功能可以方便的查询到某一姓名的客户的客房信息。3.24客户性别查询功能在主菜单输入“4”,进入“客户性别查询界面”。在此界面可按客户的性别查询某一性别的所有客户的基本信息,此功能可以查询同一性别的客人信息,并比较不同性别客流量,以制定计划增加客流量。3.25宾馆房号查询功能 在主菜单输入“5”,进入“宾馆房号查询界面”。在

15、此界面可按已知的房号查询客户的基本信息,此功能可以确定某房间的住入情况,若无人则显示没有该房间信息,若有人住入可根据之前建立或添加的客户信息显示出住在该房间的客人登记信息。3.26入住时间查询功能在主菜单输入“6”,进入“入住时间查询界面”。在此界面可通过大概的入住时间查询客户登记的基本信息,此功能可以查询在同一天住入宾馆的客人。可以比较那一段时间人流量大。 3.27客户信息修改功能在主菜单输入“7”,进入“客户信息修改界面”。在此界面先通过先前的客户姓名查找到该客户信息,再根据要修改的客户姓名,修改客户信息。此功能可以方便的对需要增加住宿时间的客户进行维护。3.28客户信息删除功能在主菜单输

16、入“8”,进入“客户信息删除界面”。在此界面可按客户的姓名删除客户的基本信息,使用del()函数,输入客户姓名,确定删除按1,此功能可以将保存时间过长现在已不需要保留的客户的信息删除。3.29客户信息显示功能在主菜单输入“9”,进入“客户信息显示界面”。在此界面可按客户的性别查询客户的基本信息,此功能可以将所有客户信息显示在输出界面上,工作人员可直观观察所有记录信息。3.20退出界面功能 输入0即可退出该系统。轻松退出界面。4 设计方案系统程序有五大部分:头函数,结构体,菜单函数,主函数和几个子函数。4.1头函数#include<stdio.h> #include<strin

17、g.h> #include<stdlib.h>#include<math.h>4.2结构体typedef struct char name10; char sex20; char ID30; char come40; char day50; char number60; char type70; char price80; char yushou90; char yajin100; char leave110; char beizhu120;datatype;typedef struct node datatype data; struct node * next

18、; listnode; typedef listnode * linklist; linklist head; listnode * p;4.3选择菜单函数int Menu() int i; printf(" n");printf(" n");printf(" 宾馆信息系统 n"); printf("*n");printf("*n");printf("* 1.宾馆信息的创建 *n"); printf("* 2.宾馆信息的添加 *n"); printf(&q

19、uot;* 3.客户姓名的查询 *n"); printf("* 4.客户性别的查询 *n"); printf("* 5.宾馆房号的查询 *n"); printf("* 6.入住时间的查询 *n"); printf("* 7.客户信息的修改 *n"); printf("* 8.宾馆信息的删除 *n");printf("* 9.宾馆信息的显示 *n");printf("* 0.退出管理系统 *n"); printf("*n");p

20、rintf("*n");printf(" n");printf(" 请 选 择 0-9:"); for(;) scanf("%d",&i); printf("n"); if(i<0|i>9) printf(" 输出错误,重选0-9:"); else break ; return i; 4.4主函数void main() for(;) switch(Menu() case 1: printf("*宾馆信息的建立*n");int i;pri

21、ntf("输入你想输入的数目:");scanf("%d",&i);head=Create(i); break; case 2: printf("*宾馆信息的添加*n"); int a;printf("输入你想添加的人数:");scanf("%d",&a);Add(head,a); break; case 3: printf("*客户姓名的查询*n"); p=Find(head); if(p!=NULL) printf("姓名 性别 证件 入住 天数

22、房号 价格 押金 离开n");printf("*n"); printf("%s %s %s %s %s %s %s %s %sn",p->,p->data.sex,p->data.ID,p->e,p->data.day,p->data.number, p->data.price, p->data.yajin,p->data.leave);printf("n");printf("*n"); else printf("该客户信息

23、不存在!"); break; case 4:printf("*客户性别的查询*n"); p=Find1(head); if(p!=NULL) printf("姓名 性别 证件 入住 天数 房号 价格 押金 离开n");printf("*n"); printf("%s %s %s %s %s %s %s %s %sn",p->,p->data.sex,p->data.ID,p->e,p->data.day,p->data.number, p->da

24、ta.price, p->data.yajin,p->data.leave);printf("n");printf("*n"); else printf("该客户信息不存在!"); break; case 5:printf("* 宾馆房号的查询*n"); p=Find2(head); if(p!=NULL) printf("姓名 性别 证件 入住 天数 房号 价格 押金 离开n");printf("*n"); printf("%s %s %s %s %s

25、 %s %s %s %sn",p->,p->data.sex,p->data.ID,p->e,p->data.day,p->data.number, p->data.price, p->data.yajin,p->data.leave);printf("n");printf("*n"); else printf("该房间信息不存在!"); break; case 6:printf("* 入住时间的查询*n"); p=Find3(hea

26、d); if(p!=NULL) printf("姓名 性别 证件 入住 天数 房号 价格 押金 离开n");printf("*n"); printf("%s %s %s %s %s %s %s %s %sn",p->,p->data.sex,p->data.ID,p->e,p->data.day,p->data.number,p->data.price, p->data.yajin,p->data.leave); printf("n");pri

27、ntf("*n"); else printf("该房间信息不存在!"); break;case 7: printf("*宾馆信息的修改*n");Alter(head);break;case 8: printf("*宾馆信息的删除*n"); Delete(head); break;case 9: printf("*宾馆信息的输出*n"); List(head); break;case 0: printf("*退出*n");exit(0);图4.1 主菜单4.5显示界面函数 信息

28、建立界面/宾馆客户信息的建立linklist Create(int a ) linklist head=(listnode *)malloc(sizeof(listnode); listnode *p,*q; q=head; while(a-) p=(listnode *)malloc(sizeof(listnode); printf("姓名 性别 证件 入住 天数 房号 价格 押金 离开n"); scanf("%s%s%s%s%s%s%s%s%s",p->,p->data.sex,p->data.ID,p->e

29、,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;图4.2 信息建立界面4.5.2信息添加界面/宾馆客户信息的添加 void 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=(li

30、stnode *)malloc(sizeof(listnode); printf("姓名 性别 证件 入住 天数 房号 价格 押金 离开n"); printf("*n"); scanf("%s%s%s%s%s%s%s%s%s",p->,p->data.sex,p->data.ID,p->e,p->data.day,p->data.number,p->data.price,p->data.yajin,p->data.leave); n->next=p; n=p

31、; n->next=NULL;图4.3 添加界面姓名查找界面/按姓名查找宾馆信息 listnode * Find(linklist head) listnode *p; char name10; int i; printf("*n"); printf("*n"); printf("姓名查找,按1表示查找:"); p=head->next; scanf("%d",&i); if(i=1) printf("请输入要查询的姓名:"); scanf("%s",&a

32、mp;name); while(p&&strcmp(p->,name)>0) p=p->next; if(p=NULL|strcmp(p->,name)<0) p=NULL; return p; 图4.4 姓名查询界面4.5.4性别查找界面/按性别查找宾馆信息 listnode * Find1(linklist head) listnode *p; char sex5; int i; printf("*n"); printf("*n"); printf("性别查找

33、,按1表示查找:"); p=head->next; scanf("%d",&i); 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; 图4.5 性别查询界面4.5.5房间号码查找界面/按房间号码查找宾馆信息 list

34、node * Find2(linklist head) listnode *p;char number10;int i; printf("*n"); printf("*n"); printf("房号查找,按1表示查找:"); p=head->next; scanf("%d",&i); if(i=1) printf("请输入要查询的房号:"); scanf("%s",&number); while(p&&strcmp(p->data.

35、number,number)<0) p=p->next; if(p=NULL|strcmp(p->data.number,number)>0) p=NULL; return p; 图4.6 房号查询界面4.5.6入住时间查找界面/按入住时间查找宾馆信息 listnode * Find3(linklist head) listnode *p; char come10; int i; printf("*n"); printf("*n"); printf("时间查找,按1表示查找:"); p=head->next; scanf("%d",&i); if(i=1) printf("请输入要查询的时间:"); scanf("%s",&come); while(p&&strcmp(p->e,come)<0) p=p->next; if(p=NULL|strcmp(p->e,come)>0) p=N

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论