c语言课程设计--客房管理.doc
《c语言课程设计--客房管理.doc》由会员分享,可在线阅读,更多相关《c语言课程设计--客房管理.doc(26页珍藏版)》请在冰豆网上搜索。
*******************
实践教学
*******************
兰州理工大学
计算机与通信学院
2011年春季学期
C程序设计课程设计
题目:
宾馆客房管理系统
专业班级:
姓名:
学号:
指导教师:
成绩:
_______________
摘要
此次C语言课程设计我选择的是客房管理系统设计,系统设计采用C语言在VisualC++6.0下编译而成。
客房管理系统包括客户基本信息的录入、统计、查询、修改功能。
系统开发由分析、设计、实施、调试和测试等阶段组成,其中信息管理为开发的重点。
在程序设计中结构体的调用与文件的读写为编译的重点部分。
关键词:
C语言、信息管理、结构体、编译
目录
一、需求分析 1
二、总体设计 2
三、详细设计 3
1、数据定义 3
2、算法流程图 4
四、编码 8
五、测试 9
六、设计总结................................................................................................................13
致谢 14
参考文献 15
附录..............................................................................................................................16
一、需求分析
随着信息技术的发展和人们对酒店客房的要求越来越高,各大酒店客房传统的手工已经不能适应当前酒店客房管理发展的需要,而采用全新的计算机化的管理可以有效提高酒店客房管理的水平和工作效率。
各酒店为了提高管理水平,增强竞争力和降低成本,为客户提供更优质的服务,有必要开发一个全新的计算机酒店客房管理系统,进行准确、快捷、方便地管理。
使用该酒店客房管理系统可以提高酒店客房管理水平,把大量繁琐的工作简单化,能够有效地减少人力物力资源,具体有以下好处:
l电脑收银、打印帐单:
快速准确,减少宾客等待时间,并可杜绝收银过程中的舞弊现象。
l高效的客房管理:
客户可以预订客房,酒店的管理人员可以随时查看酒店内客房的入住情况、修改客房信息等操作。
l提高决策依据:
管理者可以随时了解经营情况,以制定相应的经营方针。
l减轻员工的工作负担:
从而使员工把更多的精力放在提高为宾客服务的质量上。
l简单、方便地保存和查询历史资料。
l树立良好的酒店形象。
二、总体设计
根据需求分析,可以对这个系统的设计分为以下几个模块:
客户信息管理系统
数据输入
数据统计
数据查询
数据修改
数据删除
核心数据流程图
调整房间
维修信息
提醒
房间
维修/报修
客房信息
预定
客房信息客房状态
退房
客人
入住
客人信息入住登记
帐务信息
财务
现开
入住信息
三、详细设计
1、数据定义
intz[81]={0};
intj,s;
FILE*fp;
structdate
{intmonth;
intday;
intyear;structhotel
{intprice;
introom_ID;
structclient
{charname[20];
intsex;
intage;
charID_card[20];
intcount;
structdatestart;
2、算法流程图
1)保存函数Save()的算法
流程图:
FILE*fp;
(fp=fopen(outfile,"wb"))==NULL
printf("\nSavingfile......\n");
printf("cannotopenfile\n");
p!
=NULL
fclose(fp);
fwrite(p,sizeof(SALARY),1,fp);
2)入住登记功能
流程图:
顾客订房了?
是
否
输入顾客姓名和身份证,查询该记录
取得该顾客的住房编号
取得该顾客的预定住房天数,并根据住房编号计算住房费用
收费,设置该顾客的住房费,修改该住房为已入住状态(state=2)
构造一个新的顾客对象,设置住房天数和住房标准
根据该住房标准查询到一个空的房间,然后设置该顾客的住房编号,房间状态为已入住状态(state=2),同时收取住房费
顾客数加1
3)退房结算功能
流程图:
退房
输入客户姓名和身份证号
获取该客户实际入住天数
获取客户的实际费用
预交费用是否够支付?
退还余款退房完成
入住客户数减1
补齐欠款
账目核算完毕
4)信息查询功能
流程图:
询查息信
选择内容查询
进入客户信息查询
进入房间信息查询
获取客户相关信息
获取客房预定、入住和空余信息
显示预定、入住和空房对应的房号
按姓名查询
按身份证号查询
输入客户姓名
输入身份证号
显示客户相关信息
查完退出查询
四、编码
structhotel
{intprice;
introom_ID;
structclient
{charname[20];
intsex;
intage;
charID_card[20];
intcount;
structdatestart;
}personal;
}room[M];//定义全局结构体变量,且里面又调用两个结构体
intfflush(fp);//声明刷新函数fflush(fp),且指向指针变量指向的位置
voidsave();
voidsearch_situ();//声明查看客房入住情况函数
voidregist_infor();//声明客房登记入住函数
voidmodify_infor();//声明客房信息修改函数函数
voidmodify_one();//声明修改客房信息函数中的修改个人函数
voidmodify_hotel();//声明修改客房信息函数中的修改客房函数
voiddisp_money();//声明显示入住费用函数
intfflush(fp);//声明刷新函数fflush(fp),且指向指针变量指向的位置
voidsave();
voidsearch_situ();//声明查看客房入住情况函数
voidregist_infor();//声明客房登记入住函数
voidmodify_infor();//声明客房信息修改函数函数
voidmodify_one();//声明修改客房信息函数中的修改个人函数
voidmodify_hotel();//声明修改客房信息函数中的修改客房函数
voiddisp_money();//声明显示入住费用函数
五、测试
1.主菜单
2.登记入住信息
3.查看客房入住情况
4.修改客房信息
1.5.修改客户信息
6.显示入住费用
六、设计总结
通过这一个多星期的课程设计,我学到了很多很多。
不仅是在知识上,也表现在了各个方面。
首先,在设计的过程中,我发现我已经遗忘了很多上星期学习过的C语言知识,也发现了原来学习中的不少漏洞。
有不少地方的树叶还是新的,那方面的知识自然还没有吃透。
比如结构体的定义已经不是很熟,字符串数组也不太能熟练运用了,还有就是指向数组和字符串的指针也不是很熟了。
在编写项目程序的过程中,我不断的发现自己的不足并努力提高,在原来的基础上对C语言有了更进一步的理解。
其次就是我发现学习不是一个人的事儿。
在与同学们的讨论中我常常会在一个函数的处理上出现新颖的点子,比如最后那个让一段字符串晃来晃去的小功能就是我在和同学讨论在主界面何时使用刷屏时的意外的收获。
还有有时用gets()会读入一个空串。
然后在它前面加个getchar()来获取走这个空串也是同学无心插柳的结果。
当然这个后来被老师(fflush(stdin)清除输入缓冲区函数)更好的方法所取代。
再有就是我们编程不能光是一个或者几个人在那儿空想。
还有有时想一个复杂的算法,迷茫了三四天只想出了大致结构。
最后决定上网找资料,不查不知道,一查大吃一惊,不但自己的想法比比皆是,比自己的想法更完美更合理的多得看都看不完。
此时真是自愧不如,如早从网上借鉴,集大家之所成,加上自己的修改完善,早已做出了更好的算法和系统了。
现在才知道,一个人的智慧敌不过千万人智慧的集成,能借鉴的尽量借鉴,然后再修改完善,增加自己所需的功能。
完成设计后,我觉得收获不少,而且这是自己首次应用所学知识做出了这个宾馆客房管理系统,以前从未做过这样大(这是对我而言,在专业人仕看来是小菜