C语言实验报告-酒店管理系统

合集下载

酒店管理系统实验报告

酒店管理系统实验报告

数据库大作业酒店管理系统实验报告----------------------目录----------------------一、需求分析 (3)二、E-R图 (4)三、物理与逻辑设计 (12)四、数据字典 (14)五、系统实现 (16)六、开发环境 (18)七、问题与感想: (18)一、需求分析1、酒店管理系统是一种典型的信息管理系统。

随着信息化的发展,现在的酒店不但需要豪华的装饰和舒适的居住环境,还需要为客人提供快捷优质的服务。

通过酒店管理系统就可以做到这一点,并且还能降低酒店的运营成本,提高酒店的效率和效益。

2、操作人员进入系统后将能够查询当前酒店房间的状态,房间状态可以分为入住、预定、空闲、脏房等。

有宾客时,将能够完成开单操作,从而让宾客进行入住。

当宾客离开酒店时,将能够完成结账操作,从而送走宾客。

同时,还应接受宾客的预定,为即将到来的宾客留出指定的房间。

为了更好的了解酒店运行情况,在该系统中还应具有营业查询的功能,从而知道酒店的具体营业额和每一个宾客的消费情况。

3、功能分析。

根据需求分析,可以将酒店管理系统分为如下几个模块:房间管理模块、客户入主模块、预定管理模块和酒店营业查询模块。

各模块的具体分析如下:房间管理模块:该模块中主要完成对九点钟的房间进行查询、修改、新增和删除操作。

此外,对房间类型的添加和删除也可以算在该模块之中。

客户入住模块:该模块中完成酒店最频繁操作的功能,就是宾客入住和结账。

预定管理模块:该模块中可以完成查询预订的功能,例如查询某一房间或某一宾客的预订信息。

此外可以对已有的预订信息进行添加和删除操作。

营业查询模块:该模块可以设置为只有管理员才能够操作。

通过该模块可以查询一定日期围的营业记录。

4、设计系统功能,绘制用例图。

酒店管理系统是在酒店部使用的管理工具,其用户主要是酒店操作人员和管理员。

日常工作中,只要是操作人员来使用该系统。

管理员除了具有操作人员的所有功能外,还能够对操作人员进行管理。

c语言课程设计酒店管理系统主要收获与体会

c语言课程设计酒店管理系统主要收获与体会

c语言课程设计酒店管理系统主要收获与体会在参与C语言课程设计酒店管理系统的过程中,我获得了许多宝贵的经验和知识,也体会到了软件开发的挑战和乐趣。

首先,我学会了如何将理论知识应用到实际项目中。

在设计酒店管理系统时,我需要运用C语言的各种语法和数据结构来实现系统的各个功能模块,包括客房管理、预订管理、员工管理等。

通过实践,我对C语言的掌握程度得到了很大的提高,并且加深了对数据结构和算法的理解。

其次,我对软件开发的流程和步骤有了更清晰的认识。

在设计酒店管理系统之前,我需要进行需求分析和系统设计,明确系统的功能和模块划分。

然后,我需要逐步实现每个功能模块,进行调试和测试,最终完成整个系统的开发。

这个过程让我深刻体会到了软件开发的复杂性和耐心的重要性。

此外,我还学会了团队协作和沟通的重要性。

在项目中,我需要与同学共同合作,分工协作,解决问题和交流思路。

通过与他人的合作,我学会了倾听他人的意见,并尊重和理解不同的观点。

这对于一个成功的软件项目来说非常关键。

最后,通过这个课程设计,我也更加明确了自己的职业发展方向。

我发现我对软件开发具有浓厚的兴趣和热情,并且在这个领域中有很大的潜力。

我将进一步学习和提高自己的技术能力,追求在软件开发领域取得更高的成就。

总之,参与C语言课程设计酒店管理系统让我收获颇丰。

除了技术上的提升,我也从中体会到了软件开发的挑战和乐趣,同时也明确了自己的职业发展方向。

这个经历将成为我未来学习和工作的重要基础,我将会继续努力,不断提升自己在软件开发领域的能力。

c酒店管理系统实训报告

c酒店管理系统实训报告

C#课程实训报告项目组:酒店管理系统项目组专业:计算机软件技术学院:软件职业技术学院指导教师:王大亮闻喆实训时间:2012年6月24日-2012年7月12日软件职业技术学院CCUTSOFT酒店管理系统第一局部团队构成与分工第二局部系统开发进度计划第三局部需求分析第四局部概要设计第五局部详细设计第六局部系统实现第七局部测试第八局部代码清单第九局部参考文献第十局部实训总结目录1.团队构成与分工12. 系统开发进度计划23. 需求分析33.1 导言33.1.1 目的33.1.2 背景43.1.3 定义与缩写43.1.4 参考文献53.2 系统定义53.2.1 项目来源与背景53.2.2 用户特点53.2.3 项目目标63.2.4 应用环境63.3 功能需求73.3.1 角色定义73.3.2 系统用例图73.3.3 用例描述103.4 性能需求133.4.1 界面需求133.4.2 响应时间需求143.4.3 可靠性需求143.4.4 开发性需求143.4.5 可扩展性需求143.4.6 系统安全需求144.概要设计154.1 导言154.1.1 目的154.1.2 定义与缩写154.1.3 参考文献154.2 功能设计164.2.1 功能层次设计164.2.2 房间信息模块详述164.2.3 入住信息模块详述174.2.4 订房模块详述174.2.5 退房模块详述184.2.6 登录模块详述184.2.7 历史记录模块详述184.3 界面流程194.4 数据设计204.4.1 数据概念结构设计204.4.2 数据逻辑结构设计204.4.3 数据物理结构设计265. 详细设计285.1 导言285.1.1 目的285.1.2 定义与缩写285.1.3 参考文献285.2 界面设计285.2.1 酒店管理系统登录模块界面设计295.2.2 房间信息模块界面设计305.2.3 入住信息界面设计315.2.4 订房界面设计325.2.5 退房界面设计345.2.6 历史记录界面设计355.3 功能详细设计365.3.1 酒店管理系统登录界面详细设计365.3.2 房间信息模块详细设计395.3.3 入住信息模块详细设计415.3.4 订房信息模块详细设计435.3.5 退房界面详细设计465.3.6 历史记录界面详细设计476. 系统实现516.1 导言516.1.1 目的516.1.2 缩写与定义516.1.3 参考文献516.2 编码格式规X516.2.1 缩进规那么516.2.2 断行规那么526.3 命名规X526.3.1 控件526.3.2 类/接口526.3.3 方法526.3.4 变量/常量526.4 注释规X536.5 功能实现536.5.1 系统登录功能实现536.5.2 房间信息模块实现546.5.3 入住信息模块实现556.5.4 订房模块实现566.5.5 退房模块实现586.5.6 历史记录模块实现597. 测试607.1 用户登录测试617.2 用户订房测试647.3 用户退房测试688. 代码清单719. 参考文献8010. 实训总结811.团队构成与分工指导教师签字:年月日2. 系统开发进度计划3.需求分析3.1 导言3.1.1 目的随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

c语言酒店管理系统

c语言酒店管理系统

.鉴于 C语言的酒店管理系统课程设计学院:通讯与电子工程学院班级:电子 102 班学号:2010131085 2010131012姓名:邹远文王帅指导老师:题原日期:2013年11月27日摘要跟着个人计算机的的普及,愈来愈多的重复性工作被交由计算机来达成。

在这类大趋向下,传统的纸质档案管理方式已不适应现代服务业的发展。

数字化的管理成为酒店等行业的必需条件。

酒店客房管理的电脑化关于优化职工工作效率、降低成本及改良服务质量等方面都有十分踊跃的作用。

本程序是用于酒店管理的软件。

它能够实现定退房业务办理,用户信息的记录、查问及房间状态管理等功能。

固然比较简陋但已具备应用程序的雏形。

经济上主要考虑本系统带来的效益能否大于开发本系统的成本,因为本系统的开发以课程设计为依靠 , 参加人员的目的以学习为主 , 投入成本比较小。

此外,系统管理员和业务员都拥有计算机的专业知识 , 酒店前台工作人员和管理人员不需要经过培训或只要要经过少许培训即可操作本软件。

这样能够为开发本系统节升资本。

同时无纸化办公能够节俭资源,减少后期资源浪费。

所以,开发本系统在经济是可行的。

本程序运用 Microsoft Visual C++ 编译器编写,波及 C 语言的文件读写,构造数组运用及字符串函数有关知识。

重点词:数字化管理酒店管理 C 语言目录摘要 (I)第 1 章绪论 (IV)概括 (IV)酒店管理系统的需求 (IV)酒店管理系统的目前需求 (IV)酒店管理系统的可行性 (V)第 2 章酒店管理系统的功能实现 (V)设计模块 (VI)增添录入信息模块 (VI)2.1.3 删除客房信息模块 (VI)查问节余客房函数 (VI)排序节余客房模块 (VI)输出节余客房函数 (VI)点餐系统 (VI)管理员登岸流程 (VII)主要功能模块数据流程图 (VIII)管理员预办理流程 (IX)登记入住系统 (IX)客房状态查问 (IX)住户信息查问 (X)结账退房系统 (X)系统管理 (X)系统详尽设计任务 (X)第 3 章系统物理配置方案设计 (XI)设计指标 (XI)3.1.1 系统的靠谱性 (XI)3.1.2 系统吞吐量 (XI).系统响应时间 (XI)3.2 计算机硬件配置 (XI)第 4 章软件剖析与设计 (XII)软件运行截图 (XII)登岸界面 (XII)入住与选择界面 (XII)查问界面 (XIII)点菜界面 (XIV)退房结账界面 (XVI)XVII 结论 .............................................................参照文件 (XVIII)XIX 附录 ...............................................................第1 章1.1 概括跟着旅行业的发展,酒店、餐饮娱乐行业日趋发达,引入全方向的电脑服务和电脑管理日趋流行。

基于C的酒店管理系统

基于C的酒店管理系统

基于C的酒店管理系统一. 引言酒店管理系统是一种高效的系统软件,被广泛应用在酒店、旅游服务、民宿等领域中。

这种系统能够对客户信息和酒店服务进行高效管理,提高服务质量,更好地满足客户需求。

基于C语言的酒店管理系统是一种功能齐全的软件,通过对酒店各个方面进行管理,能够帮助酒店管理者及员工提高工作效率,提供更好、更便捷的服务。

二. 功能特点基于C的酒店管理系统采用模块化开发,其功能变得更加复杂、丰富。

以下是该系统的一些功能特点:1. 预订管理:通过预订管理模块,顾客可以在网上预订房间,也可以通过手机客户端进行预订。

酒店管理人员可以及时掌握房间的预订情况,合理调配资源,提高房间利用率。

2. 入住管理:该系统能够对客户信息进行统计和管理,包括姓名、性别、身份证号、联系方式、旅游目的等基本信息,方便员工进行入住登记等操作。

同时,该系统还能协助员工生成客户账单,方便客户结算。

3. 库存管理:这个功能是防止酒店发生物资缺失,同时它也包括了酒店物资库存清单的制作和更新,库存报告的制作和库存区域的划分等作用。

4. 技工服务:该系统还为客人提供技工服务,例如修理电器,更换灯具等。

5. 财务管理:酒店财务功能是酒店管理系统的重要组成部分,财务系统能够及时统计房费、餐费等消费额,同时生成账单、收款、支付等功能为财务管理提供辅助。

三. 系统架构该系统采用C语言编写,工作原理如下:①考虑到用户登录的安全问题,系统提供管理员和普通用户的登录功能;②客房管理模块包括基本数据、预订入住、客房查询等功能;③账务管理模块包括结账、客人账务查询、账务管理等功能;④库存管理模块包括库存信息维护、进货管理、退货管理、报损管理等功能;⑤报表管理模块包括每日报表、各类统计报表等功能;⑥系统设置模块包括用户管理、权限管理、数据备份等功能。

四. 设计流程酒店管理系统一般分为前端和后端两个部分,前端包括酒店网站和移动端,后端包括服务端和数据库。

以下是酒店管理系统的设计流程:1. 需求分析阶段:在这个阶段,需要了解客户的需求、酒店的工作流程和目标客户需求,明确系统的功能和界面设计。

酒店管理系统c语言实训

酒店管理系统c语言实训

酒店管理系统c语言实训
本次实训将利用C语言开发一个酒店管理系统,该系统将包括以下模块:
1. 登录模块:实现用户登录和权限控制,管理员和普通用户登录后能看到不同的界面。

2. 客房管理模块:管理员可以添加、修改、删除客房信息,普通用户只能查看客房信息和预订客房。

3. 订单管理模块:管理员和普通用户都可以查看订单信息,管理员还可以修改订单状态。

4. 员工管理模块:管理员可以添加、修改、删除员工信息。

5. 数据统计模块:管理员可以查看酒店的收入、客房利用率等统计数据。

该系统将采用文件存储数据,包括客房信息、订单信息、员工信息等。

同时,还将使用结构体、指针等C语言特性实现数据的存储和操作。

此外,系统的界面将使用C语言的图形界面库进行开发,以增加用户的交互性和易用性。

通过本次实训,学生将掌握C语言的基本语法和数据操作方法,了解实际项目的开发流程和技术要求,提高了解决问题的能力和独立开发的能力。

- 1 -。

c语言酒店管理程序设计报告

c语言酒店管理程序设计报告

+C语言设计报告酒店管理系统院系:机械与电子工程系专业:电子信息工程班级:1430401学号:201230040110姓名:胡强亚指导老师:胡文龙摘要随着个人计算机的的普及,越来越多的重复性工作被交由计算机来完成。

在这种大趋势下,传统的纸质档案管理方式已不适应现代服务业的发展。

数字化的管理成为酒店等行业的必要条件。

酒店客房管理的电脑化对于优化员工工作效率、降低成本及改善服务质量等方面都有十分积极的作用。

本程序是用于酒店客房管理的软件。

它可以实现定退房业务处理,用户信息的记录、查询及房间状态管理等功能。

虽然比较简陋但已具备应用程序的雏形。

本程序运用Microsoft Visual C++编译器编写,涉及C语言的文件读写,结构数组运用及字符串函数相关知识。

关键词:数字化管理酒店管理系统C语言课程设计任务书目录摘要 (1)1软件需求分析说明书 (4)1.1登记入住系统 (4)1.2客房状态查询 (4)1.3住户信息查询 (4)1.4结账退房系统 (4)2 系统分析与设计 (5)2.1软件界面设计 (5)2.2软件的数据(结构)设计 (10)2.3软件的算法设计 (11)2.3.1软件模块图 (11)2.3.2程序流程图 (11)3 软件的实现 (12)3.1使用的结构数组及函数的定义 (13)3.2登记入住模块 (13)3.3查询房间模块 (16)3.4查询房客模块 (17)4 软件测试 (21)5软件使用说明书 (23)1软件需求分析说明书1.1登记入住系统登记并记录顾客姓名登记并记录顾客的证件号码显示现有空置房间选择所需要的房间并更改房间状态信息由于本软件针对操作员设计,所以界面应尽可能简单明了。

住房及顾客信息由于涉及多种类型的数据,因此应用结构数组处理。

用文件记录相关数据。

1.2客房状态查询分别显示已入住客房与空置客房读取住房信息文件的内容并判断分类,借此可以清晰明了的显示客房状态。

1.3住户信息查询查询顾客所租房房号查询顾客住房费用顾客可以通过输入自己的姓名来查询个人的住房信息。

酒店管理系统c语言

酒店管理系统c语言

酒店管理系统1. 引言酒店管理系统是一种用于管理酒店日常运营的软件系统。

它可以帮助酒店管理人员提高工作效率,提供优质的服务,实现酒店的可持续发展。

本文将介绍一个基于C 语言开发的酒店管理系统,包括系统的功能设计、数据库设计、用户界面设计以及系统测试等内容。

2. 功能设计2.1 客房管理客房管理是酒店管理系统最重要的功能之一。

在该功能下,可以实现以下操作:•客房信息录入:输入客房号码、类型、价格等信息。

•客房信息查询:根据客房号码或类型查询客房信息。

•客房信息修改:修改客房的价格、状态等信息。

•客房状态查询:查询客房的入住状态。

2.2 预订管理预订管理是指对客户预订酒店客房的操作。

在该功能下,可以实现以下操作:•房间预订:根据客户需求,预订适合的客房。

•预订查询:查询已预订的客房信息。

•预订取消:取消已预订的客房。

2.3 入住管理入住管理是指客户入住酒店的操作。

在该功能下,可以实现以下操作:•入住登记:输入客户信息,将客户分配到合适的客房。

•入住查询:查询已入住客房的信息。

•退房办理:将已入住客房标记为可用状态。

2.4 结算管理结算管理是指对客户住宿费用进行结算的操作。

在该功能下,可以实现以下操作:•账单生成:根据客户入住情况,生成相应的账单。

•账单查询:查询客户的消费情况。

•结算处理:对客户账单进行结算。

3. 数据库设计酒店管理系统需要使用数据库来存储和管理数据。

以下是数据库设计的关键表格:3.1 客房信息表字段名类型描述RoomID int 客房号码RoomType varchar 客房类型Price float 客房价格Status int 客房状态CreateTime date 创建时间3.2 预订信息表字段名类型描述ReservationID int 预订号码CustomerID int 客户号码RoomID int 客房号码CheckInDate date 入住日期CheckOutDate date 退房日期3.3 入住信息表字段名类型描述CheckInID int 入住号码CustomerID int 客户号码RoomID int 客房号码CheckInDate date 入住日期3.4 账单信息表字段名类型描述BillID int 账单号码CustomerID int 客户号码RoomID int 客房号码TotalAmount float 总金额4. 用户界面设计用户界面是酒店管理系统与用户进行交互的重要环节。

C语言实现酒店管理系统

C语言实现酒店管理系统

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();//搜寻房屋void ChangeRoom();//更换住房void OutRoom();//退房void save();//保存信息void load();//载入信息//struct Totalstruct Total{char Name[20];int Sex;int Age;char IDcard[18];int hour;int xx;int yy;int zz;};struct room{int RoomID;char Tel[11];long Price;int Sign;int feiyong;//struct Date Datesum;struct Total Totallist;}Room[NUM];// 将房间个数写入信息void LoginRoom() //登记,注册客房信息函数{int i,n,k;n=0;system("cls");printf(" 用户登记\n");for(k=0;k<=1000;k++){printf("请输入客房号:\n");scanf("%d",&i);if(Room[i-1].Sign==1){printf("对不起,该房间已入住,请重新输入。

酒店管理系统(c语言)

酒店管理系统(c语言)

附录1。

源程序代码#include〈stdio.h>void search();int main(){int s;printf(” -—-—-—---—---——————--—---——---\n”);printf(” && 长江大酒店欢迎您的光临&&\n”);printf(" -—-——--——--——--————-—-----—-—-\n");printf(" 1。

进入2退出\n”);printf(”请您输入您的选择:”);scanf("%d",&s);//输入选项前的数字if(s==1)//判断s是否为1search();elseprintf("抱歉,您的输入有误!\n");return 0;}void search(){int p[18],q[3],a,b,c,x,y,z;printf(”请选择您需要的服务号码:\n1。

预订房间2。

退订房间\n”);scanf("%d”,&a);//输入服务号码if(a>2||a<1)//判断a是否为1或2{printf("抱歉,您的输入有误,请重新输入!\n”);}else switch(a){case 1://执行预订房间的操作{printf(”请您输入您的身份证号码:\n”);scanf("%d”,&p[18]);//输入身份证18位数字printf("您已成功登入预订系统!!\n");printf("请您选择预订房间标准的号码:\n");printf("1。

单人标准间/夜150元2。

双人标准间/夜200元\n3.豪华套房/夜300元 4.总统套房/夜500元\n”);scanf(”%d",&b);//输入预订房间的种类switch(b){case 1://执行预订单人标准间的操作printf(”请输入预订天数:\n”);scanf(”%d”,&x);//输入预订天数printf("客官需预交款%d元!\n”,x*150);//输出预交款金额printf("1。

C语言程序设计酒店管理系统实验报告韩国齐

C语言程序设计酒店管理系统实验报告韩国齐

课程设计报告书题目:酒店管理系统设计报告专业:电子信息工程(移动互联网) ____班级:一班 _________________________姓名:韩国齐 ________________________学号:201408103010 ________________________教师:朴海光 _______________________一:程序功能酒店系统管理包括:主菜单、查看客房入住情况、登记入住、修改客房信息、修改客房信息及退房六个功能模块。

每个功能用一个函数来实现,从而达到功能的模块化。

主菜单模块:主菜单模块包括1.查看客房入住情况、2.登记入住、3.客房信息修改、4.退房及显示入住的总费用、5.返回主菜单、6.直接退出程序。

1 )查看客房入住情况功能模块:主要功能是查看房间的入住情况和继续查看已入住的房间的客户信息。

2)登记入住功能模块:采用结构体数组来记录客户的信息,包括姓名、性别、年龄、身份证号、入住时间,入住单价及入住人数,登记完一个房间后可选择继续下一个房间的登记,也可以选择返回主菜单进行其他功能的操作。

3)修改客房信息功能模块:包括修改客户信息模块和修改房间信息模块。

4)修改客户信息模块:主要功能是可选择性的修改客户某个信息,也可以一次性全部修改。

5)修改客房信息功能模块:用来对客户换房时对客户信息和房间号的修改。

实现的功能是只要输入客户以前住的房间号和现在想住的房间号,就将客户的信息全部移到现在想住的房间上,而以前的房间将被置为未使用。

6)退房及显示总费用功能模块:当客户退房时,将客户使用的客房置为未使用,删除客户信息。

并且显示客户从入住到退房时的总费用。

二:程序代码#i nclude<stdio.h>#i ncludevstri ng.h>#i nclude<stdlib.h>#defi ne M 80int j,s;int hj[81]={0};FILE *fp; // 定义文件指针变量struct date // 定义结构体类型{int mon th;int day;int year;}fin al;struct clie nt{char n ame[20];int sex;int age;char ID_card[20];int count;struct date start;};struct hotelint price; int room」D;struct clie nt pers on al;}room[M];声明文件函数void save(); //void check_siru(); // void registrati声明登记入住信息函数on」ive(); //prin tf("\t\t\t 输入错误,请重新输入选项! scan f("%d",&n); }switch( n){case 1:check_siru();break;void modify 」nfor(); void ame nd_on e(); void ame nd_room(); void cost(); // void get_back(); void check_siru1();////// // // void registrati on 」ive1(); // void ame nd_on e1(); void ame nd_room1(); void cost1(); // int mai n() // { int menu(); void prin t_message(); prin tf("\n\n\n\n\n"); prin t_message(); menu();save(); return 0;} void prin t_message() { _ prin tf("\t\t\t } men u() //主菜单函数 { int n;// // 声明修改客房信息函数声明修改个人信息函数 声明修改房间信息函数声明退房及显示入住费用函数 声明返回主菜单函数声明查看客房入住情况的调用函数声明登记入住信息的调用函数 声明修改个人信息的调用函数 声明修改房间信息的调用函数 声明显示入住费用的调用函数 主函数 欢迎入住黄金酒店\n\n\n");prin tf("\n");prin tf("\t\t\t主菜单 \n\n");prin tf("\t\t\t按1 查看客房入住情况\n"); prin tf("\t\t\t按2 登记入住信息\n"); prin tf("\t\t\t 按3 修改客房信息\n"); prin tf("\t\t\t 按4 退房、及显示入住费用 prin tf("\t\t\t按5 返回主菜单\n"); prin tf("\t\t\t按6 退出程序\n"); printf("\n\t 请输入要进行操作的选项(1、2、 sca nf("%d",&n); while( n<1|| n>6)\n");3、4、5、6):"); {");case 2:registrati on _live();break; case 3:modify_i nfor();break; case 4:cost();break;case 5:get_back();break; case 6:exit(0); } return 0;}void check_siru() // 查看房间使用情况函数 { _int a,g,co un t=0; for(g=1;gv=80;g++) {if(hj[ g]==0) ++co unt; elseif(hj[ g]==1)prin tf("\n\t\t\tprin tf("\n\t\t\t 年龄:%d",room[s].pers on al.age); prin tf("\n\t\t\t 身份证号: %s",room[s].pers onal.l D_card); prin tf("\n\t\t\t 入住年份: %d",room[s].pers onal.start.year); prin tf("\n\t\t\t 月: %d",room[s].pers on al.start.m on th); prin tf("\n\t\t\t 日:%d",room[s].pers on al.start.day); prin tf("\n\t\t\t 房间号: %d",room[s].roo m 」D);prin tf("\n\t\t\t 客房单价: %d",room[s].price);prin tf("\n\t\t\t 入住人数: %d",room[s].pers on al.co un t); prin tf("\n\n\t\t\t 按1返回主菜单,按2继续\n");scan f("%d",&a);switch(a)正在使用的房间号:%d",g);}prin tf("\n\n\t\t\t prin tf("\n\n\t\t\t sea nf("%d",&a); switch(a){case 1:me nu ();break; case 2:prin tf("\n\n"); prin tf("\n\t\t\t sca nf("%d",&s); if(hj[s]==1) { prin tf("\n\t\t\t prin tf("\n\t\t\t未使用的房间数:%d",cou nt); 按1返回主菜单,按2继续:");请输入要查询的房间号:"); 姓名: 性别 女!): %d",room[s].personal.sex); %s",room[s].pers on al. name); (其中:1 表示男,2 表示{case 1:me nu( );break;case 2:check_siru1();break;} _}elseprin tf("\n\t\t\t 该房间未被使用!");}save();printf("\n\n\t\t\t 按1返回主菜单,按2继续:");sca nf("%d",&a);switch(a){case 1:me nu( );break;case 2:check_siru1();break;}}void registration_live() // 登记入住函数{ _int a;prin tf("\t\t 请输入登记的相关信息:\n");prin tf("\n\t\t\t 房间号");sca nf("%d",&j);room[j].roo m」D=j;printf("\n\t\t\t 姓名:");sca nf("%s",room[j].pers on al. name);printf("\n\t 性别(其中:1表示男,2表示女!):");sca nf("%d",&room[j].pers on al.sex);printf("\n\t\t\t 年龄:");sca nf("%d",&room[j].pers on al.age);prin tf("\n\t\t\t 身份证号:");sca nf("%s",room[j].pers onal.l D_card);prin tf("\n\t\t\t 入住年份:");sca nf("%d",&room[j].pers on al.start.year);printf("\n\t\t\t 月份:");sca nf("%d",&room[j].pers on al.start.m on th);printf("\n\t\t\t 日期:");sca nf("%d",&room[j].pers on al.start.day);prin tf("\n\t\t\t 客房单价:");sca nf("%d", &room[j].price);prin tf("\n\t\t 请输入入住人数:");sca nf("%d",&room[j].pers on al.co un t);hj[j]=1;save();printf("\n\n\t\t 按1返回主菜单,按2继续:");sea nf("%d",&a); switch(a) {case 1:me nu( );break; case 2:registratio n 」ive1();break; }}void modify 」nfor() //{ _switch(m){case 1:ame nd_on e1();break; case 2:ame nd_room1();break; case 3:me nu(); case 4:exit(0); }save();}void amend_on e() // 修改客人信息函数{int i,q;char a[20]; prin tf("\n\n\t\t\t 请输入现住的房间号:");sca nf("%d",&j); printf("\n\t\t\t请选择您要修改的个人选项\n"); printf("\t\t\t1 :代表姓名\n\t\t\t2 :代表性别(其中1表示男,2表示女)\n\t\t\t3 :年龄\n\t\t\t4:代表身份证号\n\t\t\t5:代表入住年份\n\t\t\t6 :代表入住月份\n\t\t\t7 :代表入住日期\n\t\t\t8 :入住人数\n");printf("\t\t\t 请选择输入选项(1、2、3、4、5、6、7、8):"); sca nf("%d",&q); switch(q){修改客房函数in t r,m;prin tf("\t\t\t prin tf("\t\t\t1: prin tf("\t\t\t2: prin tf("\t\t\t3: prin tf("\t\t\t4: prin tf("\n\n\t\t scanf("%d",&m); if(m<1||m>3){r=1;}else r=0; 菜单 \n\n\n"); 修改客户信息\n"); 修改房间信息\n"); 返回主菜单\n"); 退出程序\n");请选择输入选项1、2、3、4):");int t,p;case 1:pri ntf("\n\t\t\t 请输入新名字:");sea nf("%s",a);strcpy(room[j].pers on al. name,a);prin tf("\n\n\t\t\t 按1返回主菜单,按sca nf("%d",&i);switch(i){case 1:me nu( );break;case 2:ame nd_on e1();break;}case 2:pri ntf("\n\t\t 请输入新性别(其中:sca nf("%d",&p);room[j].pers on al.sex=p;prin tf("\n\n\t\t\t 按1返回主菜单,按sca nf("%d",&i);switch(i){case 1:me nu( );break;case 2:ame nd_on e1();break;} _case 3:pri ntf("\n\t\t\t 请输入年龄:");sca nf("%d",&p);room[j].pers on al.age=p;prin tf("\n\n\t\t\t 按1返回主菜单,按sca nf("%d",&i);switch(i){case 1:me nu( );break;case 2:ame nd_on e1();break;} _case 4:pri ntf("\n\t\t\t 请输入新身份证号:sca nf("%s",room[j].pers onal.l D_card);prin tf("\n\n\t\t\t 按1返回主菜单,按sca nf("%d",&i);switch(i){case 1:me nu( );break;case 2:ame nd_on e1();break;}case 5:pri ntf("\n\t\t\t 请输入新年份:");sca nf("%d",&p);room[j].pers onal.start.year=p; prin tf("\n\n\t\t\t 按1返回主菜单,按sca nf("%d",&i);switch(i){ 2继续:1表示男,2继续:2继续:");2继续:2继续:");2表示女):");II );II );II );II );case 1:me nucase 2:ame nd_on e1();break;sca nf("%d",&p);room[j].pers on al.start.m on th=p; printf("\n\n\t\t\t 按1返回主菜单,按2继续:"); sca nf("%d",&i); switch(i) {case 1:me nu( );break;case 2:ame nd_on e1();break;}case 7:pri ntf("\n\t\t\t 请输入新日期:"); sca nf("%d",&p);room[j].pers on al.start.day=p; printf("\n\n\t\t\t 按1返回主菜单,按2继续:"); sca nf("%d",&i); switch(i) {case 1:me nu( );break;case 2:ame nd_on e1();break;} _case 8:pri ntf("\n\t\t\t 请输入新入住人数:"); sca nf("%d",&p);room[j].pers on al.co un t=p; printf("\n\n\t\t\t 按1返回主菜单,按2继续:"); sca nf("%d",&i); switch(i) {case 1:me nu ();break;case 2:ame nd_on e1();break;\n\n\t\t\t\t4 :返回 \n\n");printf("\t\t\t 请选择输入选项(1、2、3、4):"); sca nf("%d",&l); switch(l) {case 1:pri ntf("\n\t\t\t 请输入旧房号:");sca nf("%d",&j); prin tf("\t\t\t 请输入新房号:"); sea nf("%d",&s);strcpy(room[s].pers on al. name,room[j].pers on al. name);case 6:pri ntf("\n\t\t\t 请输入新月份:"); }} menu();}void ame nd_room() // { _int a,l,x;prin tf("\n\t\t\t\t prin tf("\t\t\t\t1:修改房间信息函数请输入你要修改的客房信息\n\n"); 房 间号 \n\n\t\t\t\t2: 客 房单价 \n\n\t\t\t\t3:入住人数〃room[j].pers on al. name={'\0'};room[s].pers on al.sex=room[j].pers on al.sex;room[j].pers on al.sex=0;room[s].pers on al.age=room[j].pers on al.age;room[j].pers on al.age=0;strcpy(room[s].pers on al .1 D_card,room[j].pers onal.l D_card);〃room[j].pers on al」D_card={'\0'};room[s].pers on al.start.year=room[j].pers on al.start.year; room[j].pers on al.start.year=0;room[s].pers on al.start.m on th=room[j].pers on al.start.mo nth;room[j].pers on al.start.m on th=0;room[s].pers on al.start.day=room[j].pers on al.start.day; room[j].pers on al.start.day=0;room[s].room_ID=s;room[s].price=room[j].price;room[s].pers on al.co un t=room[j].pers on al.co unt;hj[s]=1;hj[j]=0;printf("\n\n\t\t 按1返回主菜单,按2继续:"); sca nf("%d",&a);switch(a){case 1:me nu( );break;case 2:ame nd_room1();break;} _case 2:pri ntf("\n\t\t\t 请输入房号:");sca nf("%d",&s);prin tf("\t\t\t 请输入新单价:");sca nf("%d",& x);room[s].price=x;printf("\n\n\t\t 按1返回主菜单,按2继续:"); sca nf("%d",&a);switch(a){case 1:me nu( );break;case 2:ame nd_room1();break;}case 3:pri ntf("\n\t\t\t 请输入房号:");sca nf("%d",&s);prin tf("\t\t\t 请输入新入住人数:");sca nf("%d", &x);room[s].pers on al.co un t=x;printf("\n\n\t\t 按1返回主菜单,按2继续:"); sca nf("%d",&a);switch(a){case 1:me nu( );break;case 2:ame nd_room1();break;} _case 4:break;}save();menu();}void cost() // 退房、显示入住费用函数{int a,i,sum;prin tf("\t\t\t 请输入房间号:");sca nf("%d",&j);room[j].roo m」D=j;prin tf("\n\t\t\t 入住年份:%d",room[j].perso nal.start.year);prin tf("\n\t\t\t 月:%d",room[j].pers on al.start.m on th);printf("\n\t\t\t 日:%d",room[j].personal.start.day);prin tf("\n\t\t\t 房间单价为:");prin tf("%d",room[j].price);printf("\n\t\t\t 请输入退房时间:");prin tf("\n\t\t\t 请输入年份:");sca nf("%d", &fin al.year);prin tf("\n\t\t\t 请输入月份:");sca nf("%d", &fin al.mo nth);prin tf("\n\t\t\t 请输入日期:");sca nf("%d", &fin al.day);prin tf("\n\t\t\t 请输入入住天数:");sca nf("%d",&i);sum=room[j].price*i;printf("\n\t\t\t 总费用sum=%d\n",sum);hj[j]=0;save();printf("\n\n\t\t 按1返回主菜单,按2继续:");sca nf("%d",&a);switch(a){case 1:me nu( );break;case 2:cost1();break;}}void get_back() // 返回主菜单的调用函数{ _menu();}void check_siru1() // 声明查看客房入住情况的调用函数{check_siru();} _void registration_live1() // 声明登记入住信息的调用函数{ _registrati on」ive();} _void amend_on e1() // 声明修改个人信息的调用函数{ame nd_on e();}void ame nd_room1() // 声明修改房间信息的调用函数{ _ame nd_room();} _void cost1() // 声明显示入住费用的调用函数{cost();}void save(){FILE *fp;int i;if((fp=fopen("客房管理.txt","w+"))==NULL){prin tf("ca nnot ope n file\n");exit(0);}for(i=0;i<M;i++){if(fwrite((&room[i]), sizeof(room[M]),1,fp)!=1)prin tf("file write error' n");fflush(fp);}fclose(fp);}三:运行(主菜单功能)(登记客户入住信息(可以按2继续登记下个房间客户的信息))(查看登记过的客户信息(刚刚登记的李明的信息已存在))(修改客户信息(这页修改的是名字,把李明改为张三))(这页查看修改的客户信息是否成功(已成功的把李明改为了张三))(这页继续修改客户信息(这里修改的是性别,把刚才的男(1)改为了女(2)))(这里继续查看刚才修改的性别是否成功(这里已经把男(1)改成了女(2)))依此类推下面的年龄、身份证号、入住年份、月份、日期、人数都依此方法修改。

酒店管理系统--C语言版

酒店管理系统--C语言版

酒店管理程序设计公管1102亓升辉#include〈stdio。

h>#include<stdlib。

h〉#include<string.h〉#include〈time.h〉//成员变量的声明int i,j,k,p=0;char temp[]="";int room[5][5];clock_t start;//成员方法的声明void init(){int x,y;for(x=0;x〈5;x++){for(y=0;y〈5;y++)room[x][y]=0;}}void hotelTitle(){printf(”\n———-——-酒店房间登记与计费管理系统—--—\n”);printf("\t1.登记入住\n");printf("\t2.查询房间的入住情况\n”);printf(”\t3.查询当前费用\n"); printf(”\t4。

结账退房\n”);printf(”\t5。

退出程序\n”);}void hotel_execute();void hotel_select();void hotel_outhotel();void outsystem();void hotel_total();int main(void){system("color f1”);init();while(1){Loop: hotelTitle();printf(”\n 请选择:");j=scanf("%d”,&k);if(j==0||k<1||k〉5){printf("\n 输入错误。

\n\t 请输入所列出的选项。

\n\n 3 秒后刷新.。

.Please Weit!Thanks\n");fflush(stdin);//sleep(3000);system("cls”);goto Loop;}else{switch(k){case 1:hotel_execute();break;case 2:hotel_select();break;case 3:hotel_total();break;case 4:hotel_outhotel();break;case 5:outsystem();return 0;default:printf("\n\t 系统出错!请联系管理员!\n");//怕出现BUGreturn 0;}}fflush(stdin);//清空缓存}}//入住登记}}void hotel_execute(){int x,y;printf("请输入你要住本酒店多少层楼的住房?【1-5】");fflush(stdin);L:scanf("%d”,&x);p=x;if(x〉5){printf("不好意思本店没有该层楼房。

C语言程序设计酒店管理系统实验报告

C语言程序设计酒店管理系统实验报告

.课程设计报告书题目:酒店管理系统设计报告专业:电子信息工程〔搬动互联网〕班级:一班姓名:韩国齐学号: 202108103010教师:朴海光一:程序功能酒店系统管理包括:主菜单、查察客房入住情况、登记入住、修改客房信息、更正客房信息及退房六个功能模块。

每个功能用一个函数来实现,从而到达功能的模块化。

主菜单模块:主菜单模块包括 1. 查察客房入住情况、 2. 登记入住、3. 客房信息更正、 4.退房及显示入住的总花销、 5. 返回主菜单、6.直接退出程序。

1〕查察客房入住情况功能模块:主要功能是查察房间的入住情况和连续查察已入住的房间的客户信息。

2〕登记入住功能模块:采用结构体数组来记录客户的信息,包括姓名、性别、年龄、身份证号、入住时间,入住单价及入住人数,登记完一个房间后可选择连续下一个房间的登记,也可以选择返回主菜单进行其他功能的操作。

3〕更正客房信息功能模块:包括更正客户信息模块和更正房间信息模块。

4〕更正客户信息模块:主要功能是可选择性的更正客户某个信息,也可以一次性全部更正。

5〕更正客房信息功能模块:用来对客户换房时对客户信息和房间号的更正。

实现的功能是只要输入客户以前住的房间号和现在想住的房间号,就将客户的信息全部移到现在想住的房间上,而以前的房间将被置为未使用。

6〕退房及显示总花销功能模块:当客户退房时,将客户使用的客房置为未使用,删除客户信息。

并且显示客户从入住到退房时的总花销。

二 : 程序代码#include<stdio.h>#include<string.h>#include<stdlib.h>#define M 80int j,s;int hj[81]={0};FILE *fp;//定义文件指针变量struct date //定义结构体种类{int month;int day;int year;}final;struct client{char name[20];int sex;int age;char ID_card[20];int count;struct date start;};struct hotel{int price;int room_ID;struct client personal; }room[M];void save();//声明文件函数void check_siru();//声明查察客房入住情况函数void registration_live();//声明登记入住信息函数void modify_infor();//声明更正客房信息函数void amend_one();//声明更正个人信息函数void amend_room();//声明更正房间信息函数void cost();//声明退房及显示入住花销函数void get_back();//声明返回主菜单函数void check_siru1();//声明查察客房入住情况的调用函数void registration_live1();//声明登记入住信息的调用函数void amend_one1();//声明更正个人信息的调用函数void amend_room1();//声明更正房间信息的调用函数void cost1();//声明显示入住花销的调用函数int main()//主函数{int menu();void print_message();printf("\n\n\n\n\n");print_message();menu();save();return 0;}void print_message(){printf("\t\t\t欢送入住黄金酒店 \n\n\n");}menu() // 主菜单函数{int n;printf("\n");printf("\t\t\t主菜单 \n\n");printf("\t\t\t按 1查察客房入住情况 \n");printf("\t\t\t按 2登记入住信息 \n");printf("\t\t\t按 3更正客房信息 \n");printf("\t\t\t按 4退房、及显示入住花销 \n");printf("\t\t\t按 5返回主菜单 \n");printf("\t\t\t按 6退出程序 \n");printf("\n\t请输入要进行操作的选项〔1、 2、 3、 4、 5、 6〕 : ");scanf("%d",&n);while(n<1||n>6){printf("\t\t\t输入错误,请重新输入选项!");scanf("%d",&n);}switch(n){case 1:check_siru();break;case 2:registration_live();break;case 3:modify_infor();break;case 4:cost();break;case 5:get_back();break;case 6:exit(0);}return 0;}void check_siru() //查察房间使用情况函数{int a,g,count=0;for(g=1;g<=80;g++){if(hj[g]==0)++count;elseif(hj[g]==1)printf("\n\t\t\t正在使用的房间号: %d",g);}printf("\n\n\t\t\t未使用的房间数: %d",count);printf("\n\n\t\t\t按 1返回主菜单,按2连续:");scanf("%d",&a);switch(a){case 1:menu();break;case 2:printf("\n\n");printf("\n\t\t\t请输入要盘问的房间号:");scanf("%d",&s);if(hj[s]==1){printf("\n\t\t\t姓名: %s",room[s]);printf("\n\t\t\t性别〔其中:1表示男,2表示女!〕:%d",room[s].personal.sex);printf("\n\t\t\t年龄: %d",room[s].personal.age);printf("\n\t\t\t身份证号: %s",room[s].personal.ID_card);printf("\n\t\t\t入住年份: %d",room[s].personal.start.year);printf("\n\t\t\t月: %d",room[s].personal.start.month);printf("\n\t\t\t日: %d",room[s].personal.start.day);printf("\n\t\t\t房间号: %d",room[s].room_ID);printf("\n\t\t\t客房单价: %d",room[s].price);printf("\n\t\t\t入住人数: %d",room[s].personal.count);printf("\n\n\t\t\t按 1返回主菜单,按2连续\n");scanf("%d",&a);switch(a){case 1:menu();break;case 2:check_siru1();break;}}elseprintf("\n\t\t\t该房间未被使用! ");}save();printf("\n\n\t\t\t按 1返回主菜单,按2连续:");scanf("%d",&a);switch(a){case 1:menu();break;case 2:check_siru1();break;}}void registration_live() //登记入住函数{int a;printf("\t\t请输入登记的相关信息:\n");printf("\n\t\t\t房间号 ");scanf("%d",&j);room[j].room_ID=j;printf("\n\t\t\t姓名: ");scanf("%s",room[j]);printf("\n\t性别〔其中: 1 表示男, 2 表示女!〕:");scanf("%d",&room[j].personal.sex);printf("\n\t\t\t年龄: ");scanf("%d",&room[j].personal.age);printf("\n\t\t\t身份证号: ");scanf("%s",room[j].personal.ID_card);printf("\n\t\t\t入住年份: ");scanf("%d",&room[j].personal.start.year);printf("\n\t\t\t月份: ");scanf("%d",&room[j].personal.start.month);printf("\n\t\t\t日期: ");scanf("%d",&room[j].personal.start.day);printf("\n\t\t\t客房单价: ");scanf("%d",&room[j].price);printf("\n\t\t请输入入住人数:");scanf("%d",&room[j].personal.count);hj[j]=1;save();printf("\n\n\t\t按 1返回主菜单,按2连续:");scanf("%d",&a);switch(a){case 1:menu();break;case 2:registration_live1();break;}}void modify_infor() //更正客房函数{int r,m;printf("\t\t\t菜单\n\n\n");printf("\t\t\t1:更正客户信息 \n");printf("\t\t\t2:更正房间信息 \n");printf("\t\t\t3:返回主菜单 \n");printf("\t\t\t4:退出程序 \n");printf("\n\n\t\t请选择输入选项〔 1、2、 3、 4〕 : ");scanf("%d",&m);if(m<1||m>3){r=1;}else r=0;switch(m){case 1:amend_one1();break;case 2:amend_room1();break;case 3:menu();case 4:exit(0);}save();}void amend_one() //更正客人信息函数{int i,q;char a[20];printf("\n\n\t\t\t请输入现住的房间号:");scanf("%d",&j);printf("\n\t\t\t请选择您要更正的个人选项\n");printf("\t\t\t1:代表姓名 \n\t\t\t2:代表性别〔其中 1 表示男, 2表示女〕 \n\t\t\t3:年龄\n\t\t\t4:代表身份证号\n\t\t\t5:代表入住年份 \n\t\t\t6:代表入住月份\n\t\t\t7:代表入住日期\n\t\t\t8:入住人数\n");printf("\t\t\t请选择输入选项〔 1、2、 3、 4、 5、 6、 7、 8〕: ");scanf("%d",&q);switch(q){int t,p;case 1:printf("\n\t\t\t请输入新名字:");scanf("%s",a);strcpy(room[j],a);printf("\n\n\t\t\t按 1返回主菜单,按2连续:");scanf("%d",&i);switch(i)case 1:menu();break;case 2:amend_one1();break;}case 2:printf("\n\t\t请输入新性别〔其中:1表示男,2表示女〕:");scanf("%d",&p);room[j].personal.sex=p;printf("\n\n\t\t\t按 1返回主菜单,按2连续:");scanf("%d",&i);switch(i){case 1:menu();break;case 2:amend_one1();break;}case 3:printf("\n\t\t\t请输入年龄:");scanf("%d",&p);room[j].personal.age=p;printf("\n\n\t\t\t按 1返回主菜单,按2连续:");scanf("%d",&i);switch(i){case 1:menu();break;case 2:amend_one1();break;case 4:printf("\n\t\t\t请输入新身份证号:");scanf("%s",room[j].personal.ID_card);printf("\n\n\t\t\t按 1返回主菜单,按2连续:");scanf("%d",&i);switch(i){case 1:menu();break;case 2:amend_one1();break;}case 5:printf("\n\t\t\t请输入新年份:");scanf("%d",&p);room[j].personal.start.year=p;printf("\n\n\t\t\t按 1返回主菜单,按2连续:");scanf("%d",&i);switch(i){case 1:menu();break;case 2:amend_one1();break;}case 6:printf("\n\t\t\t请输入新月份:");scanf("%d",&p);room[j].personal.start.month=p;printf("\n\n\t\t\t按 1返回主菜单,按2连续:");scanf("%d",&i);switch(i){case 1:menu();break;case 2:amend_one1();break;}case 7:printf("\n\t\t\t请输入新日期:");scanf("%d",&p);room[j].personal.start.day=p;printf("\n\n\t\t\t按 1返回主菜单,按2连续:");scanf("%d",&i);switch(i){case 1:menu();break;case 2:amend_one1();break;}case 8:printf("\n\t\t\t请输入新入住人数:");scanf("%d",&p);room[j].personal.count=p;printf("\n\n\t\t\t按 1返回主菜单,按2连续:");scanf("%d",&i);switch(i){case 1:menu();break;case 2:amend_one1();break;}}menu();}void amend_room() //更正房间信息函数{int a,l,x;printf("\n\t\t\t\t请输入你要更正的客房信息\n\n");printf("\t\t\t\t1:房间号 \n\n\t\t\t\t2:客房单价\n\n\t\t\t\t3:入住人数 \n\n\t\t\t\t4:返回\n\n");printf("\t\t\t请选择输入选项〔 1、 2、 3、 4〕: ");scanf("%d",&l);switch(l){case 1:printf("\n\t\t\t请输入旧房号:");scanf("%d",&j);printf("\t\t\t请输入新房号:");scanf("%d",&s);strcpy(room[s],room[j]);//room[j]={'\0'};room[s].personal.sex=room[j].personal.sex;room[j].personal.sex=0;room[s].personal.age=room[j].personal.age;room[j].personal.age=0;strcpy(room[s].personal.ID_card,room[j].personal.ID_card); //room[j].personal.ID_card={'\0'};room[s].personal.start.year=room[j].personal.start.year;room[j].personal.start.year=0;room[s].personal.start.month=room[j].personal.start.month;room[j].personal.start.month=0;room[s].personal.start.day=room[j].personal.start.day;room[j].personal.start.day=0;room[s].room_ID=s;room[s].price=room[j].price;room[s].personal.count=room[j].personal.count;hj[s]=1;hj[j]=0;printf("\n\n\t\t按 1返回主菜单,按2连续:");scanf("%d",&a);switch(a){case 1:menu();break;case 2:amend_room1();break;}case 2:printf("\n\t\t\t请输入房号:");scanf("%d",&s);printf("\t\t\t请输入新单价:");scanf("%d",&x);room[s].price=x;printf("\n\n\t\t按 1返回主菜单,按2连续:");scanf("%d",&a);switch(a){case 1:menu();break;case 2:amend_room1();break;}case 3:printf("\n\t\t\t请输入房号:");scanf("%d",&s);printf("\t\t\t请输入新入住人数:");scanf("%d",&x);room[s].personal.count=x;printf("\n\n\t\t按 1返回主菜单,按2连续:");scanf("%d",&a);switch(a){case 1:menu();break;case 2:amend_room1();break;}case 4:break;}save();menu();}void cost() //退房、显示入住花销函数{int a,i,sum;printf("\t\t\t请输入房间号:");scanf("%d",&j);room[j].room_ID=j;printf("\n\t\t\t入住年份: %d",room[j].personal.start.year);printf("\n\t\t\t月: %d",room[j].personal.start.month);printf("\n\t\t\t日: %d",room[j].personal.start.day);printf("\n\t\t\t房间单价为: ");printf("%d",room[j].price);printf("\n\t\t\t请输入退房时间 : ");printf("\n\t\t\t请输入年份: ");scanf("%d",&final.year);printf("\n\t\t\t请输入月份: ");scanf("%d",&final.month);printf("\n\t\t\t请输入日期: ");scanf("%d",&final.day);printf("\n\t\t\t请输入入住天数:");scanf("%d",&i);sum=room[j].price*i;printf("\n\t\t\t总花销 sum=%d\n",sum);hj[j]=0;save();printf("\n\n\t\t按 1 返回主菜单,按 2 连续 : ");scanf("%d",&a);switch(a){case 1:menu();break;case 2:cost1();break;}}void get_back() //返回主菜单的调用函数{.menu();}void check_siru1() //声明查察客房入住情况的调用函数{check_siru();}void registration_live1() //声明登记入住信息的调用函数{registration_live();}void amend_one1() //声明更正个人信息的调用函数{amend_one();}void amend_room1() //声明更正房间信息的调用函数{amend_room();}.void cost1() //声明显示入住花销的调用函数{cost();}void save(){FILE *fp;int i;if((fp=fopen("客房管理 .txt","w+"))==NULL){printf("cannot open file\n");exit(0);}for(i=0;i<M;i++){if(fwrite((&room[i]), sizeof(room[M]),1,fp)!=1) printf("file write error\n");fflush(fp);}fclose(fp);.}三: 运行〔主菜单功能〕〔登记客户入住信息〔可以按 2连续登记下个房间客户的信息〕〕〔查察登记过的客户信息〔方才登记的李明的信息已存在〕〕.〔更正客户信息〔这页更正的是名字,把李明改为张三〕〕〔这页查察更正的客户信息可否成功〔已成功的把李明改为了张三〕〕.〔这页连续更正客户信息〔这里更正的是性别,把方才的男〔1〕改为了女〔 2〕〕〕〔这里连续查察方才更正的性别可否成功〔这里已经把男〔1〕改成了女〔 2〕〕〕依此.类推下面的年龄、身份证号、入住年份、月份、日期、人数都依此方法更正。

酒店管理系统C课程设计报告

酒店管理系统C课程设计报告

《酒店管理系统》程序设计基础课程设计报告专业:计算机科学与技术班级:11计科1班姓名:指导教师:2012 年7 月 2 日1、课程设计题目描述和要求1.1课程题目:酒店管理系统1.2 课程要求:1.屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,如不同级别房间价格的查询、修改、刷除等。

2.对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在等级的入住的时候进行选择。

3.月底进行结算,实收多少,应收多少。

2、课程设计目的:通过C++语言编程实现酒店管理系统的基本功能。

酒店管理系统的实现核心是要录入客人信息并在退房时结算,同时具有月底结算功能。

此程序重在满足其要求,使用者可以方便的使用。

也可以根据自己的需求对程序进行优化。

3、课程设计结构图4. 课程设计总结在做程序设计前就已经感觉到我设计的《酒店管理系统》比较复杂,不仅要写出实现各种功能的函数还要保证函数之间的连接,怎样通过函数之间的关系能很好的把函数连接起来,还要保证程序能够很好的而且有效的运行。

还有可能遇到一些以前没有用到的知识,像怎样在输入有误的情况下进行异常处理,这些都要通过函数的功能来实现,这些对我来说都是新的知识,而且觉得很有难度。

在做程序设计前还必须把书本上的基本知识搞懂,程序设计会用到书中的类做,对类的理解也不是很到位,一些概念的知识还没有很好的理解,所以还需要借助书中的知识来加深对类的理解。

在编程的过程中也遇到了很多的困难,但是通过同学的帮助渐渐对于程序有更深一步的理解,而且他们也帮我编一个对异常处理的函数,这样在异常处理的过程中就能很好的处理因为在输入有误的情况的错误。

经过这次课程设计的编写我有增加了一些新知识,知道自己在编程方面还欠缺甚多,在自己完成了编程之后觉得收益良多,原来书本上的东西并不少,我们学习不要贪多,一定要把书本上的知识掌握好!在这次课程设计的编写中我了解了一些输入输出流,知道了如何把程序保存到磁盘中,这些知识都是以前没有深究和不多用的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

武汉科技大学C语言程序设计课程设计题目酒店管理系统班级信息与计算科学2班姓名陈诚学号************成绩2015年6 月23 日一、总体设计1、程序的总体设计(1)程序总体设计思路:酒店房间登记管理系统,实现的是房间登记与管理(包括登记入住、查询)为了体现模块化设计,把所有要实现的功能做成函数,采用分步实施的方法逐步细化。

具体分布实施有以下5步。

1,编写模块2,定义实现个功能模块所要函数3,编写各个函数4,理清思路,逐步修改5,调试整个程序。

核心部分是各个函数:1、欢迎界面函数:通过switch进入不同界面。

2、登记入住函数:使用户在入住前登记个人信息,选择房间信息3、查询入住情况函数:顾客可通过两种方式查找到自己的个人信息。

4、查询当前费用函数:顾客可随时查询所用费用5、结账退房函数:所有信息清零。

2、数据结构此系统,选择用结构体存放不同类型的数据,房间信息。

在这过程中由于对指针的运用与操作还不熟练,不方便修改,所以没用指针。

(1)创建房间信息结构体/*结构体hotel 房间号、房间种类、客户姓名、身份证号、入住状态、实际收房费,押金等*/struct hotel{int num; /*房间号*/int kind; /*房间种类1(表示单人间)2(表示双人间)*/char name[20]; /*姓名*/char ID[19]; /*身份证号*/int flag; /*flag 0(表示有人入住)0(表示无人入住)*/int dingjia; /*房间定价*/int shiji; /*实际缴纳费用*/}room[M];3、函数原型声明void welcome(); //主界面int dengji(); //登记入住函数int now_room(); //查询当前房间入住情况int now_feiyong(); //查询当前费用int tuifang(); //结账退房int find(); //查询当前入住人数int kfxinxi(); //客户信息void jiezhang(); //结账付款int quit(); //退出函数int mima();//密码//void save(); //保存//二、详细设计1、主函数设计主函数说明:为满足顾客登记入住,查询房间入住情况,查询当前费用,结账退房等功能的实现,设计此函数。

开始进入欢迎界面让顾客选择,进入顾客所选界面。

主函数流程图2、子函数流程图(1)登记入住函数说明:登记入住流程图(2)查询房间入住情况:2种查询方式(1. 按房号查询2. 客户信息查询),最终输出结账退房流程图三、测试出现欢迎界面测试1:选择选项1,入住登记“1”按提示输入信息(如:1-单人间,1-房间号,陈诚,522225************,200元,登记成功)测试2:选择选项2,查询房间入住情况“1”按房间号查询,1、房间号出现刚登记的个人信息2、房间号该房为空房“2”按客户信息查询,身份证号522225************ 出现个人信“3”退出,返回欢迎界面测试3:选择选项3,查询客户当前费用“1”号房间,当前费用100元测试4:选择选项4,结账退房“2”号房间,空房,重输“1”号房间,应支付100元,退房成功四、小结此程序满足课程设计要求,实现登记、查询、结账等操作,并对不同房间实施不同收费标准,计算总费用等功能。

程序优点:整个程序界面友好,与顾客有良好的界面交流。

程序虽简单,但功能齐全。

程序缺点:(1)数据结构单一。

主要是学习c语言时间短,知识程度不深,不够全面,知道的不多。

(2)不会调用系统时间。

在做课设的过程中,我对c语言有了更深入的了解。

它很考察逻辑的严密性,思路条理要清晰是很重要的,它包含你编写程序的大致方向。

严谨认真的态度也不可或缺。

调试程序过程中也可以提升自己的理解已经加深自身熟练度。

遇到问题要想方设法将它解决,看书找资料,请教同学,与同学讨论,从这些方面我又可以学会合作。

源码://主函数//#define M 40#include<stdlib.h>#include<stdio.h>#include<string.h>#include"dingyi.h"#include"jiegouti.h"#include"find.h"#include"kfxinxi.h"#include"zuizhongfeiyong.h"#include"quit.h"#include"zhujiemian.h"#include"dengji.h"#include"dangqianruzhu.h"#include"dangqianfeiyong.h"#include"tuifang.h"#include"mima.h"#include"save.h"#include"duru.h"/*主函数*/void main(){int i,j;mima(); //密码//duru(); //读入数据//welcome(); //载入主界面//scanf("%d",&i);switch(i){case 1:j=dengji();break;case 2:j=now_room();break;case 3:j=now_feiyong();break;case 4:j=tuifang();break;case 5:exit(0);default:quit();}while(j!=0) //操作结束可返回主界面//{welcome();scanf("%d",&i);switch(i){case 1:j=dengji();break;case 2:j=now_room();break;case 3:j=now_feiyong();break;case 4:j=tuifang();break;case 5:exit(0);default: quit();}}}/*登记入住*/int dengji(){int i,j,a,k,n;system("cls");printf("\n\n☆☆☆☆☆☆☆登记入住☆☆☆☆☆☆☆\n\n"); printf("请选择房间类型:\n\n");printf("1.单人间2.双人间\n\n");scanf("%d",&n);switch(n){case 1:printf("现在空闲的单人房间有: \n");for(i=1,j=0;i<=M;i=i+2)if(room[i-1].flag==0){printf("%d\t",i);j++;if(j%5==0)printf("\n");} //控制每行输出个数//printf("安排客户想要的房间: ");scanf("%d",&k);while(k%2==0){printf("!房号输入错误,请重新输入\n");scanf("%d",&k);}room[k-1].kind=1;room[k-1].num=k;printf("\n请输入客户的姓名: ");scanf("%s",room[k-1].name);printf("\n请输入客户的身份证号: ");scanf("%s",room[k-1].ID);while(strlen(room[k-1].ID)!=18){printf("!输入有误,请重新输入\n");scanf("%s",room[k-1].ID);}room[k-1].dingjia=100;printf("\n\n应当缴纳房费%d元",room[k-1].dingjia);printf("\n\n实际缴纳的金额为: ");scanf("%d",&room[k-1].shiji);while(room[k-1].shiji<room[k-1].dingjia){printf("\t\t\n\n! 输入有误,请重新输入!\n\n");printf("\n\n实际缴纳的金额: ");scanf("%d",&room[k-1].shiji);}printf("\n\n是否确认入住(1-是2-否)\n");scanf("%d",&a);while(a!=1&&a!=2){printf("\n\n\t\t!输入有误,请重新输入: ");scanf("%d",&a);}if(a==1){ room[k-1].flag=1;printf("\n已成功登记!\n\n");save();}break;case 2:printf("现在空闲的双人房间有: \n\n");for(i=2,j=0;i<=M;i=i+2)if(room[i-1].flag==0){printf("%d\t",i);j++;if(j%5==0)printf("\n\n");} //控制每行输出个数//printf("安排客户想要的房间: ");scanf("%d",&k);while(k%2!=0){printf("!房号输入错误,请重新输入:\n");scanf("%d",&k);}room[k-1].kind=2;room[k-1].num=k;printf("\n请输入客户的姓名: ");scanf("%s",room[k-1].name);printf("\n请输入客户的身份证号: ");scanf("%s",room[k-1].ID);while(strlen(room[k-1].ID)!=18){printf("!输入有误,请重新输入:\n");scanf("%s",room[k-1].ID);}room[k-1].dingjia=200;printf("\n\n应当缴纳房费%d元",room[k-1].dingjia); printf("\n\n实际缴纳的金额为: ");scanf("%d",&room[k-1].shiji);while(room[k-1].shiji<room[k-1].dingjia){printf("\t\t\n\n!输入有误,请重新输入:\n\n");printf("\n\n实际缴纳金额为: ");scanf("%d",&room[k-1].shiji);}printf("\n\n是否确认入住(1-是2-否)\n");scanf("%d",&a);while(a!=1&&a!=2){printf("\n\n\t\t!输入有误,请重新输入: ");scanf("%d",&a);}if(a==1){ room[k-1].flag=1;printf("\n已成功登记!\n\n");save();}break;default: quit();}quit();return 1;}//读取函数//void duru(){FILE *fp;int i;if((fp=fopen("kf_dat","rb"))==NULL){printf("cannot open file \n");return ;}for(i=0;i<M;i++){fread(&room[i],sizeof(struct hotel),1,fp);}fclose(fp);}/*查询入住人数*/int find(){int number=0;int i;for(i=0;i<M;i++)if(room[i].flag!=0)number++;return (number);}/*客户信息*/int kfxinxi(int k){char zhonglei[10];switch(room[k].kind){case 1:strcpy(zhonglei,"单人间");break;case 2:strcpy(zhonglei,"双人间");break;}printf("\n\n\t\t----姓名: ");puts(room[k].name);printf("\n\n");printf("\t\t----身份证号: ");puts(room[k].ID);printf("\n\n");printf("\t\t----房间种类: ");puts(zhonglei);printf("\n\n");printf("\t\t----房间号: ");printf("%d",k+1);printf("\n\n");printf("\t\t----实收房费: ");printf("%d元",room[k].shiji);printf("\n\n");return(1);}//密码//int mima(){system("color 8f");char name[10],mima[20];printf("进入系统前请输入用户名和密码:\n");scanf("%s%s",name,mima);while((strcmp(name,"CC")!=0)||(strcmp(mima,"02200059")!=0))//比较输入的和用户密码是否一致//{printf("输入错误,重新输入!\n");scanf("%s%s",name,mima);}system("cls");return (1);}/*查询当前费用*/int now_feiyong(){int money,n;int i,s;system("cls");printf("\n\n☆☆☆☆☆☆☆查询当前客户费用☆☆☆☆☆☆☆\n\n");if(find()==0)printf("全为空房!\n\n");else{printf("请输入房间号: ");scanf("%d",&i);while(1){if(room[i-1].flag==0){printf("\n\n该房为空房,1.重输2.退出\n\n");scanf("%d",&s);if(s==1){printf("请输入房间号: ");scanf("%d",&i);}elsebreak;}else{printf("\n\n查询的个人信息为: ");kfxinxi(i-1);printf("\n\n当前房间定价为: %d",room[n-1].dingjia);break;}break;}}quit();return 1;}/*查询当前房间入住情况*/int now_room(){int i,j,k,s;char a[20];system("cls");printf("\n\n☆☆☆☆☆☆☆查询房间入住☆☆☆☆☆☆☆\n\n"); printf("\t\t1. 按房号查询\n\n\t\t2. 按客户信息查询\n\n\t\t3. 退出"); printf("\n\n请选择: ");scanf("%d",&i);while(1){if(i>4||i<1){printf("\n\n\t\t 输入有误,请重新输入: ");scanf("%d",&i);}else if(i==1){printf("\n\n请输入房间号: "); //按房号查询scanf("%d",&j);if(room[j-1].flag==0)printf("\n\n此房间无人住\n\n");else{printf("您的个人信息为: ");kfxinxi(j-1);}break;}else if(i==2){printf("\n\n请输入您的身份证号: "); //按客户信息查询scanf("%s",a);while(1){for(k=0;k<M;k++)if(strcmp(a,room[k].ID)==0)break;if(k!=M){printf("\n\n您的个人信息为: ");kfxinxi(k);break;}else{printf("\t\t\n\n1. 输入有误,请重新输入2.不存在此人信息,退出\n\n");scanf("%d",&s);if(s==1){printf("\n\n请输入您的身份证号: ");scanf("%s",a);}else return(1);}}break;}else if(i==3)break;else{printf("\t\t\n\n1. 输入有误,请重新输入\n\n");printf("\t\t1. 按房号查询\n\n\t\t2. 按客户信息查询\n\n\t\t3. 按入住时间查询\n\n\t\t4. 退出");printf("\n\n请选择: ");scanf("%d",&i);}}quit();}/*退出函数*/int quit(){int y;printf("是否需要返回主界面? 1-是2-否\n\n");scanf("%d",&y);if(y==1)welcome();elseprintf("****** 欢迎下次光临武科大酒店******!\n\n"); return 1;}//保存函数//void save(){FILE *fp;int i;if((fp=fopen("kf_dat","wb"))==NULL){printf("cannot open file \n");return ;}for(i=0;i<M;i++)if(fwrite(&room[i],sizeof(struct hotel),1,fp)!=1)printf("file write error \n");fclose(fp);}/*最终收的费用*/void shoufei( int dingjia,int shiji){int yu;yu=shiji-dingjia;if(yu==0)printf("费用刚刚好,不用找零或补钱\n");else if(yu>0)printf("找还顾客%d元\n",yu);else printf(" 顾客应再支付%d元\n",yu*(-1));}/*结账退房*/int tuifang(){char zhonglei[30];int n,m;system("cls");printf("\n\n☆☆☆☆☆☆☆结账退房☆☆☆☆☆☆☆\n\n"); if(find()==0)printf("房间都是空的!\n\n");else{printf("请输入需要退房的房号: ");scanf("%d",&n);if(n>M||n<1){printf("\n\n输入有误,请重新输入:",M);scanf("%d",&n);}if(room[n-1].flag==0)printf("空房,无法办理退房!\n\n");switch(room[n-1].kind){case 1:strcpy(zhonglei,"单人间");break;case 2:strcpy(zhonglei,"双人间");break;}printf("房间号: %d\n房间类型: %s\n客人姓名: %s\n身份证号: %s\n",room[n-1].num,zhonglei,room[n-1].name,room[n-1].ID);printf("\n\t房间定价为: %d\n",room[n-1].dingjia);if(room[n-1].flag==1)shoufei(room[n-1].dingjia,room[n-1].shiji);printf("\n\n是否退房(1.是2.否) : ");scanf("%d",&m);if(m==1){room[n-1].flag=0;strcpy(room[n-1].name,"0");room[n-1].shiji=0;printf("\n\n您已成功退房,欢迎下次光临!\n\n");save();}}quit();return 1;}/*主界面*/void welcome(){int n;n=find();system("color 4F");printf("--------------------------------------------------------------------------------");printf("▼▼▼▼▼▼▼▼▼▼▼▼▼▼欢迎进入武科大酒店管理系统▼▼▼▼▼▼▼▼▼▼▼▼▼\n");printf("\t ★★★1. 入住登记\n\n");//dengji()//printf("\t ★★★2. 查询当前房间入住情况\n\n");// now_room()//printf("\t ★★★3. 查询客户当前费用\n\n"); //now_feiyong()//printf("\t ★★★4. 结账退房\n\n");// tuifang()//printf("\t ★★★5. 退出系统\n\n");//printf("\t\t\t\t\t酒店总房间数: %d \n\t\t\t\t\t当前剩余数: %d\n",M,M-n);printf("\n▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲\n");printf("请根据序号进行下一步: \n");}/*结构体hotel 房间号、房间种类、客户姓名、身份证号、入住状态、实际收房费,押金等*/struct hotel{int num; /*房间号*/int kind; /*房间种类1(表示单人间)2(表示双人间)*/char name[20]; /*姓名*/char ID[19]; /*身份证号*/int flag; /*flag 0(表示有人入住)0(表示无人入住)*/int dingjia; /*房间定价*/int shiji; /*实际缴纳费用*/}room[M];//头文件用来声明函数//void welcome(); //主界面int dengji(); //登记入住函数int now_room(); //查询当前房间入住情况int now_feiyong(); //查询当前费用int tuifang(); //结账退房int find(); //查询当前入住人数int kfxinxi(); //客户信息void jiezhang(); //结账付款int quit(); //退出函数int mima();//密码//void save(); //保存//。

相关文档
最新文档