c语言酒店管理程序设计报告_第1页
c语言酒店管理程序设计报告_第2页
c语言酒店管理程序设计报告_第3页
c语言酒店管理程序设计报告_第4页
c语言酒店管理程序设计报告_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、east china institute of technologyc语言设计报告酒店管理系统院系:机械与电子工程系 专业:电子信息工程 班级:1430401学号:201230040110 姓名:胡强亚指导老师:胡文龙摘要随着个人计算机的的普及,越来越多的重复性工作被交由计算机来 完成。在这种大趋势下,传统的纸质档案管理方式已不适应现代服务 业的发展。数字化的管理成为酒店等行业的必要条件。酒店客房管理 的电脑化对于优化员工工作效率、降低成本及改善服务质量等方面都 有十分积极的作用。本程序是用于酒店客房管理的软件。它可以实现定退房业务处理, 用户信息的记录、查询及房间状态管理等功能。虽然比较简陋

2、但已具 备应用程序的雏形。本程序运用microsoft visual c+编译器编写,涉及c语言的文 件读写,结构数组运用及字符串函数相关知识。关键词:数字化管理酒店管理系统c语言课程设计任务书设计题目:酒店管理系统设计学生姓名胡强亚课程名称c语言程序课程 设计专业班级1430401地点信工楼408起止时间2012年12月12日12月13日设 计 内 容 及 要 求请你为xx酒店设计一个房间登记与计费管理系统。该 系统中应包括所有房间的信息,客人入住后应产牛一条入住 记录(基本信息包括:房号、客人姓名、客人证件号、入住 口期),客人退房后要修正房间的入住状态并产牛相应的账 单。【题目要求】一家

3、旅馆,内设20个客房,现设计程序对其进行有效 管理,其基本管理功能如下:入住、退房、查询、显示、退 出扩展功能如下:续住2、设计提示参考c程序设计学习辅导第214页“案例3:电话 订餐信息处理”,读懂程序,在此模式上更改为客房管理系 统。根据题目要求,运用所学知识,完成设计和实现工作, 并按照书写规范,撰写课程设计报告。摘要11软件需求分析说明书4登记入住系统412客房状态查询43住户信息查询414结账退房系统42系统分析与设计52. 1软件界面设计52. 2软件的数据(结构)设计92. 3软件的算法设计102.3.1软件模块图102. 3. 2程序流程图103软件的实现113. 1使用的结构

4、数组及函数的定义123. 2登记入住模块1215163. 3查询房间模块3. 4查询房客模块4软件测试205软件使用说明书221软件需求分析说明书1.1登记入住系统登记并记录顾客姓名登记并记录顾客的证件号码显示现有空置房间选择所需要的房间并更改房间状态信息由于本软件针对操作员设计,所以界面应尽可能简单明了。住 房及顾客信息由于涉及多种类型的数据,因此应用结构数组处理。用 文件记录相关数据。1.2客房状态查询分别显示已入住客房与空置客房 读取住房信息文件的内容并判断分类,借此可以清晰明了的显示 客房状态。1.3住户信息查询查询顾客所租房房号 查询顾客住房费用顾客可以通过输入自己的姓名来查询个人的

5、住房信息。1.4结账退房系统退房更新所退房间状态删除退房用户记录 显示账单顾客可以输入姓名来完成退房操作,房间状态将更改为未入住。 系统将删除该用户信息记录并读取生成账单。2系统分析与设计2. 1软件界面设计运行程序后进入主界面,可以进行登记入住、查询房间、查询顾客、退出程序等几项操作:c*c: docu>ent s and settingsad>inist rat ormffipassdebugpass. exe台务住孙房序<1 服入畧退尊 店记询询账岀编 洒退择 x 先一图 2. 1. 1选择“1登记入住”进入登记入住界面:*c: docu>ent s and se

6、tt ingsad>inist ratormffipassdebugpass. exe图 2. 1.2 输入相关信息,之后选择计费类型:*c: docu>ent s and sett ingsad*mist rat or桌面'pass'debug'pass, exe心na型舅“ .f a 住 琴年住住入 叱请请書b, id图 2. 1.3选择“1按天入住”按天数计费,会显示目前空置的房间。输入 所选房间已进行下一步操作:c« *c: docu>ent s and sett ingsad>inist rat orwpassdebugpas

7、s. exe*己进入塹己入住界面 请输人: name 橋瓊入证件类型:id rnfel:10086 k 技天入住转小时入住fl 攻fe-攻 房ebebeb房 空glblpl的 的inouri住 s33.a 下010205输 111s.0t 1 p a n dy,攻女fe 旷旷fff 0 0 0 5 5 5 1 1 1图 2. 1.4如选择“2按小时入住”则按小时计费,操作同理。c *c: docu>ent s and sett ingsad>inist ratorfflpassdebugpass. exe*mx|己进入翼己人住多 青输入姓名:name 嘘择咚住方式;播夫入住 人漫小

8、时只住105宋型id 号码:10086b g要小空blpl的 的ouri住数入时 现理理戛卜 是肯!p入择费费10150却攵费,20150时收费:20图 2. 1.56之后会进入下一界面并提示登记成功。图 2. 1.6如在主界面选择“2.查询房间的入住情况”则会进入查询房间状 况界面,程序将分别依次显示已入住的房间和空置房间。*c: docu>ents and settingsad>inist rat orffipassdebugpass. exe*inue主 日 _ 日 _ 日 hub1b1jb1nreldtnrfnprirtnj司t >-3.1.、 、 、 、 、 、-&

9、gt; 、-、-、* 面 er 甥有 入計房房房房房房房砺房房房房房房房房房房房房房ey询詐型型型型型型型樹型型型型型型型型型型小 查 frbabbbcciabbccabccccabny 入朋肯¥包言 folnjlnjlnjlrolrolpolpolpolpolpolpolpolp a艾亠 u 2123345 贞 123451345411 厶冃 0 & 0 0 0 0 一兴巨 bcgcddd 奉 nnnaabbbs5 1 2 s0 0 0 6 11111r b c c d d pii图 2. 1.7如在主界面选择“3查询当前费用”则会进入用户查询界面,输 入顾客姓名即可进行查

10、询图 2. 1.8程序会显示该客人的相关信息图 2. 1.9如在主界面选择“4结账退房”则会进入用户退房界面,输入顾 客姓名即可进行退房操作图 2. 1. 10输入成功后会显示退房成功。*c: docu>ent s and sett ingsad>inist r at ormffipassdebugpass. exe 请输入客人姓名:danny0己成功退房回press anv key to continue.图 2. 1. 11在主界面选择“5退出程序”会进入退出界面。图 2. 1. 122. 2软件的数据(结构)设计本软件运用了 c语言文件的读取与写入功能,各文件的作用如下: c

11、ount, txt:用于存储房客数量,内部存储一个int*数据。 room, txt:用于存储房间信息,内部依次存储:房间状态char* (1位)房间号char* (4位)房间类型char* (1位) 房间描述char* (6位)房间日租金int*房间月租金int*。customer, txt:用于存储房客信息,内部依次存储:姓名char*证件类型char*证件号码int*房间号char* (4位)房 租int*押金int*2. 3软件的算法设计2. 3. 1软件模块图2. 3. 2程序流程图 登记入住模块:记录入文件客房查询模块:结账退房模块:顾客信7息文件删除对应信息3软件的实现113.

12、1使用的结构数组及函数的定义 结构体定义:typedef struct room /客房信息char fid5 ;/房间号char type 2 ;/客房类型char describe7 ;/该客房类型的描述int cost_d;/ 日收int cost_h;/时收费char statu 2 : /入住情况room;typedef struct customer /入住记录 char fid5 ; /房间号char name20 ;/名字char type14 :/证件类型int id;/证件号int pay:/房费int cp; /押金customer;函数定义:void rent (roo

13、m *p) ;/登记入住模块void search_room(room *p) ;/客房查询模块void search_customer(room *p, int 1) ;/费用查询模块void pay (room *p, int 1) :/结账模块3. 2登记入住模块源文件:void rent(room *p)int i,count, n, m二2;struct room rm max = 0 ;/定义结构数组struct customer cs;char search2 = j y' , stu2 = ,n', d订 1 5 = 0;12file *fpin, *fpout

14、;fpout二fopen("customer. txt,a);assert(fpout != null);printf (,z请输入姓名:);seanf (s,&cs. name);fprintf (fpout, s "、cs. name);printf (请填入证件类型:);seanf (s, &cs. type);fpr in tf (fpout, s ,cs .type);printf (,z请输入证件号码:“); scanf&cs. id);fprintf (fpout, %d "、cs. id);printf (请选择入住方式:n

15、l.按天入住n2按小时入住n); seanf (d,&count);fpin 二 fopen("room txt", r+);assert (fpin !二 null);printf (以下是现有的空房n);for (i=0; i<max; i+)/对结构数组赋值,录入房间信息fscanf (fpin, srmi statu):fscanf (fpin, %s ,z, rmifid);fscanf (fpin, s ,z, rmi type);fscanf(fpin,s "、rmi describe);fscanf (fpin, d "、&

16、amp;rmi. cost_d);fscanf(fpin, d "、&rmi. cost_h); "fclose (fpin);for(i=0;i <max;i +)if (stremp(search, rmi. statu)0)printf (,z%s 号s 型s 日 收费:%d 时 收 费:%dn, rmi. fid, rmi. type, rmi. describe, rmi. cost_d, r mi. cost_h);printfc请输入要入住的房屋); scanf (s,&di 11);for(i二0;i <max;i+)if (st

17、rcmp(dill, rmi. ftd) =0)/所选房间号与房间数据对 比strcpy (rmi. statu, stu) ;/更改数组中的房间状态fpr in tf (fpout,,z%s rmi f id);if (co un t 二二 1)printfc请选择天数:); scanf&n);fprintf(fpout, d "、rmi cost_d*n); fprintf (fpout, drmi cost_d*n*m);system(cls);printf (z,004已成功登记房间! rt); printf (004 您的房号为:sn,rmi. fid); prin

18、tf (,z004请支付4元的房费以及押金(1元。n, rmi cost_d*n, rmi cost_d*n*m);- "el seprintf (,z请选择小时数;scanf&n);fprintf(fpout, d "、rmi cost_h*n); fprintf (fpout, drmi cost_h*n*m);system(cls); printf (,z004已成功登记房间!rt);14printf (,z004 您的房号为:sn, rmi. fid); printf (,z004请支付(1元的房费以及押金(1元。n, rmi cost_h*n, rmi c

19、ost_h*n*m);fpin二fopen("room txt,w);for (i=0; i <max; i +)fprintf (fpin, s "、rmi. statu); fpr in tf (fp in, srmi f id);fprintf (fpin, s ,z, rmi. type); fprintf (fpin, s ,rmi. describe); fprintf (fpin, d "、rmi cost_d); fprintf (fpin, dn, rmi cost_h);fclose (fpout);fclose (fpin);3. 3查

20、询房间模块 voi d search_room(room *p) " int i, h, k;struct room rmmax = 0; char search 二'y'file *fpin; fpin 二 fopen("room txt,; assert (fpin !二 null):for (i=0; i <max; i +)/对结构数组赋值,即录入房间信息fscanf (fpin, srmi statu):fscanf (fpin, %s ,z, rmifid);fscanf (fpin, s ,z, rmi type);fscanf(fpin

21、,s "、&rmi describe); fscanf (fpin, d "、&rmi. cost_d); fscanf (fpin, d ,&rmi. cost_h);printfci前的空置房间有:n);/查询空客房for (h 二 0; h<max; h+)/显示结果if (strcmp (search, rmh statu)二二0)printf (z,%s 号/s 型房间nz,, rmh. fid, rmh. type): printf (有顾客入住的房间:n);/查询满客房for (k=0; k<max; k+)/显示结果if

22、(strcmp (search, rmk statu) !=0)printf (z,%s 号/s 型房间nz,, rmk. fid, rmk. type):fclose (fpin);3. 4查询房客模块void search_customer (room *p, int 1)/ 参数 1 的值 即为主函数所 读取的客人城量char name 20;int a;int i ;struct customer cs 20 = 0;file *fpin,*fpl;printfc请输入要查询的用户姓名:,z); seanf&name);fpin二fopen("customer. tx

23、t,; assert(fpin !二 null);fpl=fopen("count txt",r);assert (fpl != null);for (i二0;il;i+)/读取顾客数据fscanf(fpin, s fscanf(fpin, s fscanf (fpin, d fscanf(fpin, s,&cs i name); ,&cs i type); ,&csi id);,&csi.ftd);fscanf(fpin, d,&csi pay);fscanf (fpin,&csi. cp);for (a=0:a<l:

24、a+)i f(stremp(name, csa name)=0) 与是否一致/比较与所输入字符串printf(s ); printf(s cs a type):printf (,%d cs a. id); printf (,z%s ,z, cs a. fid);printf(d ,z, cs aprintf (dn,csa cp);fclose (fpin); fclose (fpl);3. 5结账退房模块void pay (room *p, int 1)int i, j;char name 20:char ftd5;char stu2 = ,y' ;struct ro

25、om rmmax = 0;struct customer cs20 = 0;file *fpl,*fp2;printfc请输入客人姓名:”); seanf (s,&name);fpl二fopen("room txt,;assert (fpl);fp2二fopen("customer. txt,r);assert (fp2);for (i二0; i <max ;i +) /对结构数组赋值fscanf (fpl, s ,&rmi statu): fscanf (fpl, s ,z, &rmi. fid); fscanf (fpl, s ,&

26、rmi type); fscanf(fpl, s "、&rmi describe); fscanf(fpl, d "、&rmi cost_d); fscanf(fpl, d "、&rmi cost_h);fclose (fpl);for (j=0;j<l;j+)fscanf (fp2, s ,&cs ); fscanf (fp2, s ,&cs j type);18fscanf (fp2, z,%d ,&csj id); fscanf (fp2, z,%s ,&csj fid); fscan

27、f(fp2, %d, &csj pay);fscanf (fp2, %d, &csj cp);fclose(fp2);for (j二0;jl;j+)if(strcmp(name, ) = 0) strcpy(fid, csj. fid); for (;jl1;j+)csj = csj+l;/为数组重新赋值以完成删除操作fp2=fopen("customer. txt,w); assert (fp2);for(j=0;j+)printf(s “,cs ); printf(s csj type):printf (,%d csjid); prin

28、tf (,z%s csj fid); printf(d ,z, cs j pay): printf(dn,cs j cp);for(j=0;j<l-l;j+)fprintf(fp2, s ,);19fprintf(fp2, s fprintf(fp2, d fprintf(fp2, s,csj type);csj td);,csj.fid);fprintf(fp2, d “,csjfprintf(fp2, dn,csj cp);fclose (fp2);for (i=0; i <max; i +)if(strcmp(fid, rmi. fid) = 0) strcp

29、y(rmi statu, stu);fpl=fopenczroom. txt,w);/打开并清空文件assert (fpl);for (i二0; imax; i+)/重新录入全部信息来完成更改fprintf(fpl,s ,z, rmi. statu); fprintf (fpl, s z,, rmi. fid): fprintf (fpl,,z%s rmi type):fprintf(fpl,s "、rmi. describe);fprintf (fpl, d , rmi. cost_d); fprintf (fpl, drmi cost_h); - fclose(fpl);4软件测

30、试1、void rent (room *p)/登记入住函数用例:input: room a20 output: 请输入姓名input:dannyoutput:请输入证件类型input:idoutput:请输入证件号码input:10086output:请选择入住方式:1按天入住2.按小时入住input:2output:以下是现有的空房: a101 号 a 型 single 日租金150时租金20请输入要入住的房屋input:a101output:请选择小时数input:5output:已成功登记房间 您的房号为:a101 请支付100元的房租及押金200元2、void search_room(room *p)/住房查询函数用例:input: room a20 output:目前的空置房间有: a102 号 b 型 single 日 租金150时租金20a105 号 c 型 single 日 租金300时租金40有顾客入住的房间: b104 号 c 型 single 日 租金300时租金403、void search_customer(room *p, int 1)/房客查询函数用例:input: room a20

温馨提示

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

评论

0/150

提交评论