《C语言课程设计》酒店登记入住与计费管理系统_第1页
《C语言课程设计》酒店登记入住与计费管理系统_第2页
《C语言课程设计》酒店登记入住与计费管理系统_第3页
《C语言课程设计》酒店登记入住与计费管理系统_第4页
《C语言课程设计》酒店登记入住与计费管理系统_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、湖南涉外经济学院课程设计报告课程名称: 高级语言程序设计 报告题目: 酒店登记入住与计费管理系统 学生姓名: 所在学院: 信息科学与工程学院 专业班级: 学生学号: 指导教师: 2015年12月31日课程设计任务书报告题目酒店登记入住与计费管理系统完成时间学生姓名专业班级指导教师职称总体设计要求和技术要点【题目要求】 (1)屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。(2)对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。 (3)在结账退房时,根据入住的时间,

2、计费方式和房间单价计算出总费用。要求用C语言的文件操作语句将以上所有结果分别保存在文件中。 【输入/输出要求】 (1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。进入每个操作后,根据程序的提示输入相应的信息; (2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。工作内容及时间进度安排第一周周一:明确设计任务,学习相关基础知识周二:熟悉各知识点,进行基础练习周三:根据题目要求,进行设计和实现周四:根据题目要求,进行设计和实现第二周周一至周三:根据题目要

3、求,进行设计和实现周四:撰写报告,进行答辩课程设计成果1与设计内容对应的软件程序2课程设计总结报告3. 成功运行软件摘要本次C语言课程设计我们选择的设计任务是酒店管理系统设计,这个管理系统是用C语言在VC 6.0 c+的编译器编译而成的。客房管理系统包括客户基本信息的录入、房间统计、用户个人费用及住房信息查询、自动结账、退出系统功能等。系统的开发主要由分析、查阅相关书籍和参考资料、程序设计、编写代码、运行实施、调试和测试、维护和修改等阶段组成,其中信息管理和自动运行为开发的重点。在程序设计中结构体的调用与各函数、数组的调用为编译的重点部分。关键词:结构体 函数 数组目录课程设计任务书21.1需

4、求分析51.2软件功能简介51.2.2 查询房间入住情况51.2.3 查询当前费用51.2.4 结账退房51.3界面、数据结构要求52.1软件界面设计62.1.1 首页欢迎界面62.1.2 登记入住界面72.1.3 客户入住信息查询界面82.1.4 客户个人费用查询界面82.1.5 客户退房结账界面92.1.6 客户结账收退支付费用结账界面92.1.7 用户退出系统界面102.2软件的数据(结构)设计102.3软件的算法设计112.3.1主要结构模块框图113.1.1 int dengji()133.1.2 int lookfor_room()133.1.3 int lookfor_price

5、()133.1.4 int tuifang()134.2 测试用例154.2.1 void welcome(); /首页欢迎界面154.2.2 int dengji()151.单人间 2.双人间154.2.3 int lookfor_room();/用来查询房间入住情况154.2.4 int lookfor_price(); /用来查询当前费用154.2.5 int tuifang(); /用来结账退房164.2.6 void yingzhifu(); /用来结账付款164.2.7 int quit(); /退出函数167.1 苏小红 孙志刚 陈惠鹏等.语言大学实用教程.电子工业出版社.201

6、2 年版207.2 Al Kelley等.语言解析教程.机械工业出版社.2006年版207.3 张高煜等.语言程序设计实例.中国水利水电出版社.2001年版207.4 何钦铭 颜晖.语言程序设计.高等教育出版社.2008年版207.5谭浩强 张基温.语言程序设计教程.高等教育出版社.2006年版20第1章.软件需求说明书1.1需求分析随着时代的进步、科学的发展,对信息技术的要求也越来越高。而顾客对各大酒店和客房的要求也越来越高,酒店以前的全人工服务已经不能满足顾客和以及现代信息化时代的要求。顾客选择入住酒店时也会选择更加现代化和信息化的更加方便快捷的现代化服务酒店。所以现在各大酒店也都向着信息

7、化和现代化的方向发展,引进更加先进和方便的酒店管理和服务系统。计算机的自动化管理系统提高了酒店管理的管理水平和工作效率,增强酒店的竞争能力降低成本,为客户提供更加优质的服务。所以需要开发一个计算机系统来代替人工管理酒店客户入住登记和信息查询等方面的工作。使用该系统可以使酒店的服务更加快捷、准确和方便,减少大量的人工操作,提高了工作效率。1.2软件功能简介1.2.1 登记入住自动登记顾客的各人信息,包括顾客姓名、身份证件、证件号码、选择房间种类、计费方式、押金交付等功能。1.2.2 查询房间入住情况1.2.3 查询当前费用1.2.4 结账退房1.3界面、数据结构要求屏幕上显示一个界面,界面要求简

8、洁美观,让操作员能够根据具体的提示信息方便的选择所需要进行的操作。用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。第2章.系统分析与设计2.1软件界面设计2.1.1 首页欢迎界面 2.1.2 登记入住界面2.1.3 客户入住信息查询界面2.1.4 客户个人费用查询界面2.1.5 客户退房结账界面2.1.6 客户结账收退支付费用结账界面2.1.7 用户退出系统界面2.2软件的数据(结构)设计主要所用的结构体、函数和变量的数据类型struct date /定义结构体date,记录入住和结账时间 int mon; /整形 int 格式控制符为%d int day;

9、int hour; ; struct costoem /定义结构体costoem int num; /房间号 格式控制符为%d int kind; /房间种类 1-单人间 2-双人间 char name20;/客户信息 /字符型 char 格式控制符为%s char ID19; /身份证号 int h_money; /按小时收费价格 int d_money; /按天收费价格 格式控制符为%d struct date time; /入住时间 time被说明为data结构类型。成员名可与程序中其它变量同名,互不干扰。 int flag; /入住状态,flag: 0无人入住 1按小时入住 2按天入住

10、 int deposit; /押金roomM;2.3软件的算法设计2.3.1主要结构模块框图 酒店管理系统结账退房费用查询房间查询入住登记结账退房 信息查询入住登记顾客欢迎菜单输入个人信息结账退款按3种方式查询登记成功退出系统2.3.2 具体模块使用结构流程第3章 .软件的实现3.1关键代码分析3.1.1 int dengji()登记入住函数,主要可以实现登记顾客的个人信息,包括姓名()、身份证件及其号码(roomk-1.ID)、选择房间种类(roomi-1.flag)、选择房间号码(roomk-1.num)、选择计费方式(roomk-1.h_money,roomk-1

11、.d_money)、选择是否入住、登记入住日期(&roomk-1.time.mon、&roomk-1.time.day、&roomk-1.time.hour)、应缴纳押金金额(roomk-1.deposit)和是否退回到欢迎菜单主页面(quit())等功能。3.1.2 int lookfor_room()顾客查询房间入住情况函数,主要可以实现顾客个人信息的查询可以显示包括姓名、省份证号、房间号、房间种类、押金金额、入住日期等信息。主要有三种查询方式,一是按房号查询(roomj-1.flag,per_infor);二是按客户信息查询(strcmp(a,roomk.ID,per_infor)三是按

12、入住信息(入住日期)查询(tim_t.mon=roomk.time.mon&tim_t.day=roomk.time.day,per_infor)。3.1.3 int lookfor_price()顾客查询到目前为止所消费费用函数,主要可以实现顾客所消费的费用金额,以输入要查询的日期进行计算(&end.mon、&end.day、&end.hour),显示顾客当前以不同方式计费方式所消费金额(H %ldnn,h_jifei(end,roomi-1.time,roomi-1.h_money)/D %ldnn,d_jifei(end,roomi-1.time,roomi-1.d_money))。 3

13、.1.4 int tuifang()结账退房函数主要实现输入要退的房间号(roomn-1.kind),自动对比是单人间还是双人间(strcpy(zhonglei,单人间,strcpy(zhonglei,双人间),然后按相应的计费方式(strcpy(fangshi,按小时计费,strcpy(fangshi,按天计费),输入结账时间(&end.mon,&end.day,&end.hour),显示顾客当前消费金额,然后对比金额与押金的多少,多退少补。如果小与押金,则酒店退给顾客押金剩余金额,如果大押金金额,则顾客进行补支付金额(yingzhifu(money,roomn-1.deposit)。第4章

14、 .软件测试4.1 函数简介 void welcome(); /首页欢迎界面int dengji(); /用来登记入住 int lookfor_room();/用来查询房间入住情况int lookfor_price(); /用来查询当前费用 int tuifang(); /用来结账退房 int find(); /用来查找入住人数 long h_jifei(); /按小时计费 long d_jifei(); /按天计费 int per_infor(); /显示个人信息 void yingzhifu(); /用来结账付款 int quit(); /退出函数4.2 测试用例 4.2.1 void w

15、elcome(); /首页欢迎界面用例 1:input 1 output 登记入住用例 2:input 3 output 查询当前费用用例 3:input 4 output 结账退房 4.2.2 int dengji() 用例1:input 1 output 请选择房间类型: 1.单人间 2.双人间 用例 2:input 2 output 按小时收费为30元/时 用例 3:input 100 output 输入有误,请重新输入 4.2.3 int lookfor_room();/用来查询房间入住情况 用例 1:input 15 output 此间房无人住 用例 2:input 4 output

16、输入有误,请重新输入 用例 3:input 2 output 请输入您的身份证号4.2.4 int lookfor_price(); /用来查询当前费用 用例 1:input 1 10 15 output 您当前所消费的费用:H740 用例 2:input 1 30 15 output 您当前所消费的费用:D990 4.2.5 int tuifang(); /用来结账退房 用例 1:input 17 output 当前房间尚未有人住,无法办理退房手续! 用例 2:input 1 31 18 output 当前费用: D 1770 用例 3:input 1 output 您已成功退房,欢迎您下次

17、光临!4.2.6 void yingzhifu(); /用来结账付款 用例 1:input 1 output 您当前所消费的费用:D400 顾客应支付D300 用例 2:input 2 output 酒店应找还顾客100元4.2.7 int quit(); /退出函数 用例 1:input 1 output 返回进入主菜单欢迎界面 用例 2:input 2 output * 谢谢您的惠顾,欢迎您下 次光临!*!第5章.软件使用说明书我们本次设计的是酒店入住登记和和计费管理系统,它的操作更加简便,方便,快捷。顾客可根据具体的信息提示,进行一步步操作。以下是该软件的使用说明书。酒店房间登记与计费管

18、理系统总共有五大模块功能。顾客入住登记、客房(人数)入住信息查询讯、顾客当前消费金额费用查询、结账退房和退出系统五大块。第一大块功能顾客进入欢迎界面,系统会首先判断入住人数与房间总数是否向相等。如果相等,会显示当前客房已满,您是否返回主菜单。如果客房没有满,会显示让您选择房间类型(单人间或双人间),然后显示所有空房间号让您自己选择,等你输入完准备入住的房间号码后,会让您选择计费方式(按小时收费,按天收费),如果输入有误,会让您输入您的姓名、身份证号、应交押金金额,输入有误就请重新输入。当输入应实际缴纳押金金额后,“是否入住?”如果入住请您输入入住时间(入住时的*月*日*时),然后会对比您选择的

19、相应计费方式和房间爱你种类,最后会显示“您已登记成功”。退出返回 第二大块功能是顾客查询房间入住情况,在主菜单点击进入房间入住情况查询后,会显示三种查询方式,1:按房号查询(输入房间号码、2:按个人信息查询(输入身份证号码)、3:按顾客入住时的日期时间查询(输入顾客登记入住时的日期)。三种查询方式都有如果输入错误,就请重新输入。如果按房间号码和入住日期两种方式查询,输入房间人没有入住,系统会显示“此间房间无人入住登记”,请选择是否退出返回主菜单? 第三大块功能是顾客查询到目前为止所消费的费用金额。在主菜单点击进入查询您当前消费费用情况查询后,系统会首先判断客房是否全部为空,如果为空会系统会显示

20、“当前客房全部为空房,没有数据可以查询!”则不会让您输入您所入住的房间号码,如果输入错误,输入房间没有人住会显示“该房为空房,没有顾客入住1.请您重新输入2.退出”。输入房间号正确后,就会显示您的个人信息(包括姓名、身份证号、房间号、房间种类、房间的计费方式、应交押金金额等信息),然后请您输入你所要查询的截止日期时间,之后就会显示您当前所消费的金额为(D/H)¥元。第四大块功能是结账退出功能。在主菜单点击进入结账退房界面后,系统会首先判断寻找客房是否为空房,如果为空则会显示“当前房间尚未有人入住,无法办理退房手续!”。不为空的话就会让您输入您所要退订的房间号码,输入有误请重新输入。输入正确后系

21、统会自动寻找和对比你所住房间类型和计费方式,最后显示顾客的个人信息,姓名、身份证号、房间号、房间类型。然后让你输入结账时间,之后就显示、房间的计费方式、实交押金金额,之后输出您的消费费用金额。然后对比与押金金额的大小,大于押金则会显示减去押金金额后您还应该支付金额,“您应支付(D/H)¥元”;如果小于押金金额,从押金中扣去相应金额之后会找退您剩余的金额。第五大块功能就是退出系统功能。当执行完其余每项操作后会显示你是否需要返回欢迎界面。是就返回否就直接退出系统。第6章.致谢经过紧张的两周的奋斗,从周一开始的老师发给同学们任务书,然后先给同学们讲解关于课程设计的相关目的,能力目标要求。进度要求为周

22、一:明确设计任务,学习相关基础知识,周二:熟悉各知识点,进行基础练习,周三:根据题目要求,进行设计和实现,周四:根据题目要求,进行设计和实现,第二周也基本在做这事,第二周周五进行答辩。然后老师周一和周二先讲解了与报告相关的知识点和大致概要,之后就让我们自己进行查阅相关资料,书籍、文献了解相关基础知识,构思、设计、上机操作编写代码,调试和测试,最后调试修改成功后就可以进行课程设计报告的编写。最后一天就是进行答辩过程。完成后本次设计就算成功。在此过程中每天机房都会为学生开放半天时间,期间老师一直都在机房对各个学生进行悉心指导,答疑解惑,对学生搞不懂得问题和马虎大意出现的的问提进行指点和辅导。所以在

23、这里首先要感谢为我们辅导的刘琼老师。感谢他的帮助和指导。然后要感谢的是在编写程序当中,帮我们解答疑问和不懂知识点的地方的同学和朋友。感谢他们的帮助,没有老师和同学他们的帮助,在规定时间内我们是不可能圆满完成此次课程设计报告的。再次感谢你们,是你们让我们深刻感受到了不耻下问,三人行必有我师的明理。谢谢。第7章.参考文献 7.1 苏小红 孙志刚 陈惠鹏等.语言大学实用教程.电子工业出版社.2012 年版 7.2 Al Kelley等.语言解析教程.机械工业出版社.2006年版 7.3 张高煜等.语言程序设计实例.中国水利水电出版社.2001年版 7.4 何钦铭 颜晖.语言程序设计.高等教育出版社.

24、2008年版 7.5谭浩强 张基温.语言程序设计教程.高等教育出版社.2006年版 第8章.附录#include#include#include#include#define M 60/程序所有功能所用函数void welcome(); /首页欢迎界面int dengji(); /用来登记入住 int lookfor_room();/用来查询房间入住情况int lookfor_price(); /用来查询当前费用 int tuifang(); /用来结账退房 int find(); /用来查找入住人数 long h_jifei(); /按小时计费 long d_jifei(); /按天计费 i

25、nt per_infor(); /显示个人信息 void yingzhifu(); /用来结账付款 int quit(); /退出函数struct date /定义结构体date,记录入住和结账时间 int mon; int day; int hour; ; struct costoem /定义结构体costoem int num; /房间号 int kind; /房间种类 1-单人间 2-双人间 char name20;/客户信息 char ID19; /身份证号 int h_money; /按小时收费价格 int d_money; /按天收费价格 struct date time; /入住

26、时间 int flag; /入住状态,flag: 0无人入住 1按小时入住 2按天入住 int deposit; /押金roomM;/*个人信息函数*/ int per_infor(int k) char zhonglei30,fangshi30; switch(roomk.flag)/选择计费方式 case 1:strcpy(fangshi,按小时计费);break; case 2:strcpy(fangshi,按天计费);break; default:break;/输入与原定比较不符合跳出循环 switch(roomk.kind) /选择房间种类 case 1:strcpy(zhongle

27、i, 单人间);break; case 2:strcpy(zhonglei,双人间);break; printf(nntt-姓名: ); puts();printf(nn); printf(tt-身份证号: ); puts(roomk.ID);printf(nn); printf(tt-房间种类: ); puts(zhonglei);printf(nn); printf(tt-房间号: ); printf(%d,k+1);printf(nn); printf(tt-计费方式: ); puts(fangshi);printf(nn); printf(tt-押金: ); pri

28、ntf(%d元,roomk.deposit);printf(nn); printf(tt 入住时间: ); printf(2012年%d月%d日%d时nn,roomk.time.mon,roomk.time.day,roomk.time.hour); return(0); /*查询入住人数函数*/int find() int count=0,i; /查询房间数 for(i=0;i=10) feiyong=(b+1)*money; /如果小时数大于10,则算为一天 else if(a=0) feiyong=b*money; /如果小时数大于0而小于10,则不计算小时 else a=a+24; /

29、如果小时数小于0,则小时数加24,天数减一,按天数计费重新计算 b=b-1; if(a=10) feiyong=(b+1)*money; else feiyong=b*money; return feiyong; /返回费用值 /*按小时计费*/ long h_jifei(struct date end,struct date start,int money) long feiyong; int a,b; a=end.hour-start.hour; /计算小时 b=end.day-start.day; / 计算天数 if(a0) printf(酒店应找还顾客%ld元,dif);/押金金额大于

30、应支付 else printf( 顾客应再支付%ld元,dif*(-1);/押金金额小于应支付 /*退出函数,返回欢迎主菜单页面函数*/ int quit() int z; printf(您需要返回欢迎界面吗?1-是 2-否nn); scanf(%d,&z); if(z=1) / 返回欢迎界面 welcome(); else printf(* 谢谢您的惠顾,欢迎您下次光临!*!nn); exit(0); /*欢迎主菜单页面*/ void welcome() int n=find(); int i,j;printf(& printf(nntt-欢迎来到*酒店-nn); printf(ttt 1.

31、 登记入住 nn);printf(ttt 2. 查询房间入住情况 nn); printf(ttt 3. 查询当前费用 nn); printf(ttt 4. 结账退房 nn); printf(ttt 5. 退出系统 nn); printf(tt总房间数: %d t入住人数: %d t空房间数: %d,M,n,M-n); printf(nn& printf(ttt 请选择您所需的服务: ); scanf(%d,&i); switch(i) /控制选择项目 case 1:j=dengji();break;/进入相应操作目录 case 2:j=lookfor_room();break; case 3:

32、j=lookfor_price();break; case 4:j=tuifang();break; exit(0); while(j!=0) welcome(); /进入欢迎菜单主界面 scanf(%d,&i); switch(i) case 1:j=dengji();break; case 2:j=lookfor_room();break; case 3:j=lookfor_price();break; case 4:j=tuifang();break; exit(0); /*顾客登记入住函数*/ int dengji() int i,j,k,yajin,s,a,n; char ch,fa

33、ngshi30; printf(nn# 登记入住 #nn); if(find()=M) /入住人数与房间总数相等 printf(当前房间已满,是否返回(Y/N): ); ch=getchar(); if(ch=y) return(1); /返回主菜单 else exit(0); printf(请选择房间类型:nn); printf(1.单人间 2.双人间nn); scanf(%d,&n); printf(可供您选择的房间有: nn); for(i=30*(n-1)+1,j=0;i30*n+1;i+) /单人间的j入住人数,i剩余房间数 if(roomi-1.flag=0) printf(%dt,i); j=j+1; if(j%5=0)printf(nn); printf(请输入您准备入住的房间号: ); /房间号kroomk-1 scanf(%d,&k);

温馨提示

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

评论

0/150

提交评论