C语言课程设计-宾馆客房管理系统说明书.pdf
1 实践教学*兰州理工大学 计算机与通信学院 2010 年春季学期 计算机语言 课程设计 题 目:宾馆客房管理系统 专业班级:姓 名:学 号:指导教师:成 绩:2 目 录 摘 要.3 前 言.4 正 文.5 1.问题描述.5 2。需求分析.5 3.系统总体设计.5 4。详细设计.6 5。软件使用说明书.9 总 结.10 参考文献.11 致 谢.12 附件 部分原程序代码.13 3 摘 要 随着信息技术的发展和人们对宾馆客房的要求越来越高,各大宾馆客房传统的手工操已经不能适应当前宾馆客房管理发展的需要,而使用计算机化的管理可以有效提高宾馆客房管理的水平和工作效率。因此,宾馆客房管理系统软件将会为宾馆客房管理带来极大的方便.宾馆客房管理系统的主要任务是对宾馆客房住房管理进行计算机化的管理,本系统主要功能包括:基础信息程序设计、客房前台程序设计、查询统计管理、挂帐管理、系统初始化设计、系统维护.本系统设计基本合理,功能比较完备,经过测试运行稳定,能够满足工作中的基本需要。关键字:客房管理,宾馆客房管理系统 4 前言 近年来,随着宾馆客房规模的不断扩大,客户也相应的增多,面对着庞大的 信息量,传统的人工方式管理会导致宾馆客房管理上的混乱,人力与物力过多浪 费,宾馆客房管理费用的增加,从而使宾馆客房的负担过重,影响整个宾馆客房 的运作和控制管理,因此,必须制定一套合理、有效,规范和实用的宾馆客房管 理系统,对宾馆客房进行集中统一的管理。系统开发的总的设计目标是实现客户 管理的系统化、规范化和自动化,实现对宾馆客房的集中统一的管理。5 正 文 1.问题描述 由于人口的增加,宾馆客房规模的扩大,使得宾馆客房管理工作繁重,而且 手工管理效率极低,急需一个软件系统解决这些问题.为了跟上时代潮流,规范 管理,提高宾馆客房的管理水平和管理效率,为人们提供方便、快捷、准确的服 务,开发一个“宾馆客房管理系统。2.需求分析 1 本系统通过管理宾馆客房,管理用户从进宾馆客房到离开的整个过程,以供 宾馆客房信息管理。本系统能够维护用户的客房信息,为客户提供准确的资料,提高了人员的工作效率。3.系统总体设计 1。整体结构流程图 6 这是一个宾馆客房管理系统的总体设计,其中涉及到程序需要用到的各种函数.首先,进入该系统,进入主菜单函数,会出现各个功能列表,即相关函数。首先运行 输入函数,若不运行输入函数,则进入下一个模块,进入修改函数,修改相关信息,若不修改,则进入下一个环节-查询函数,查询信息,否则运行下一个函数-运算函数。若要运行删除函数,则退出运算函数,最后可进入统计函数,进行统计。统计完毕之后,则自动退出系统函数,退出系统。在运行完每个子函数之后均可返回主菜单函数,再次实现循环运行.4.详细设计 主函数 输入函数 修改函数 查询函数 运算函数 删除函数 统计函数 退出 7(1)修改客房信息的流程图 (2)查询客房情况流程图 (3)输入客房情况(enter)(输入客房号)输入查询客房号码 输入记录信息 继续查询 客户情况 入住情况 输出 返回空指针 输入所要修改的信息 否 是 查到与否 无信息 否 是 修改与否 无 否 是 此 信 息 放弃 修改 返回头指针 退出 8(可输入相关客房信息)(输入能住的人数)设置:有人 (have)打印 (name)(Sex)(Time)(Cost)无人 (null)输入相关信息后,返回主菜单,或退出系统。(4)客房费用(cost)输出(请输入客房号码)If(!(info=find(nember))Printf(“t 没找到n);找到相关客房,则 Printf(“t 如果退房时间在 12:00 后按一天时间计算n”);退主菜单,或退出系统。(5)删除指定客房 输出(请输入指定客房号码)Scanf(“s”,&number);Info=find(number);if(start=info),start-prior=0;否则 删除指定客房 (6)统计客房情况(tongji)输出(统计未住客房号码输入 1 已住客房号码输入 2)Scanf(“%d”,&c);如果给 c 的初始值赋为 1,则运行 info=start;输出(客房号码)Count+;Info=infonext;输出(共有未住客房%d 个)继续运行,并输出(共有已住客房d 个)(7)退出系统(tuichu)输出(建议您最好存盘如果存盘输入 1 不存输入 2)If(c=1)save();If(c=2)9 输出(谢谢您使用本系统)Exit(0);-退出该系统。5.软件使用说明书 这是一套典型的宾馆管理系统,首先单击进入主菜单,系统会自动提示“请选择功能”,并同时出现功能列表,它们依次是:“1 输入客房情况 “2 修改客房情况”“3 查询客房费用 “4 客户费用”“5 删除指定客房 “6 统计客房情况”“7 退出系统”。该系统共包括以上这七种功能,若要进行其一,只需选择功能前面的数字,即可进入该功能子菜单。然后就可以按照系统提示的功能依次进行操作,若操作完毕,即返回主菜单或退出系统。10 总 结 该系统以宾馆客房管理为背景,涵盖了工作人员对宾馆客房信息管理的多种功能,并且有一定的可行性和安全性,确保了各项指定功能得以运行。本系统以基本函数、结构体、枚举性、文件以及链表等多方位知识贯穿实现。通过此次程序设计实践,是同学们对所学知识的综合运用,也是程序设计得以提高的表现。通过此次编程培养了我们结构化程序设计的思想,加深了对高级语言基本语言要素和控制结构的理解,锻炼我们独立思考制作程序的能力,并且掌握了一些课程设计的相关知识与实践操作能力,为以后的学习提供了锻炼的机会.经过设计和开发,宾馆客房管理系统基本开发完毕以及各类相关报表的打印。并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。对于数据的一致性的问题也通过程序进行了有效的解决。从而是我对c 语言这门课程有了更好的了解.但是由于设计时间较短,所以该系统还有许多不尽如人意的地方,比如联机文档比较少,用户界面不够美观,出错处理不够等多方面问题。这些都有待进一步改善。11 参考文献 1c+程序设计教程,王连相,中国铁道出版社,2007 2 C 语言程序设计,谭浩强,清华大学出版社,1999 3C 程序设计题解与上机指导,谭浩强,清华大学出版社,1999 4 C 语言的实际应用,安徽科学技术出版社,2000 5 C 语言函数手册,机械工业出版社,1999 6 C 语言实用程序荟萃,西安电子科技大学出版社,1993 12 致 谢 在编写程序的过程中,我们得到了周小健老师的精心指导以及孜孜不倦的教诲,在老师的指导下,我们的能力得到了提高,同时养成了科学、严谨的作风和习惯,在此,我们对老师的精心栽培表示衷心的感谢!感谢我们小组同学对我的帮助和指点,尤其感谢我的舍友在非常时期,在生活和学习上帮我许多忙。在课设即将完成之际,我的心情无法平静,从开始进入课题到课设的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意.13 附件 部分原程序代码#define NULL 0#define LEN sizeof(struct customer)include”string.h struct customer int num;char name20;long date;struct customer next;cus;struct customer creat(void)/建立一个链表*/struct customer*head,*p1,*p2;int n=0;p1=(struct customer*)malloc(LEN);p2=(struct customer)malloc(LEN);printf(”请输入客户的信息:n);printf(n 房间:);scanf(d,&p1-num);printf(”n”);printf(”姓名:”);scanf(”%s,p1name);printf(”n”);printf(”入住时间:);scanf(ld”,p1date);printf(n”);head=NULL;while(p1-num!=0)n+;if(n=1)head=p1;else p2next=p1;p2=p1;p1=(struct customer)malloc(LEN);printf(请输入客户的信息:n”);printf(”n 房间:);scanf(d”,&p1num);printf(n);14 printf(”姓名:);scanf(”%s,p1name);printf(”n);printf(”入住时间:”);scanf(%ld”,p1-date);printf(n);p2next=NULL;return(head);struct customer insert(struct customer head,struct customer*consumer)/*登记新入住的客户的信息/struct customer p1,*p2;p1=head;p2=consumer;if(p1-next!=NULL)p1=p1-next;if(p1next=NULL)p1-next=p2;p2-next=NULL;return(head);struct customer del(struct customer head,int num)/*显示退房客户的信息/struct customer p1,*p2;if(head=NULL)printf(”没有客户的信息n”);return(head);p1=head;while(num!=p1nump1-next!=NULL)p2=p1;p1=p1-next;if(num=p1-num)if(p1=head)head=p1-next;else p2next=p1-next;15 printf(”退房客户的信息:n);printf(”客房:dn,p1-num);printf(姓名:%sn,p1name);printf(入住时间:%ldn,p1-date);else printf(”没有该客户的信息n”);return(head);struct customer search(struct customer head,char c_name)/查询客户信息/struct customer*p;p=head;while(strcmp(p-name,c_name)pnext!=NULL)p=p-next;if(pname=c_name)printf(该客户的信息为:n”);printf(房间:dn 姓名:Sn 入住时间:ld,pnum,pname,p-date);if(p-name!=c_name&pnext=NULL)printf(”没有该客户的信息!n”);void print(struct customer head)/*打印出现有客户的信息/struct customer*p;printf(n 现有客户信息为:n”);p=head;if(head!=NULL)do printf(客房:%dn,p-num);printf(”姓名:sn,pname);printf(”入住时间:ldn,p-date);p=pnext;while(p!=NULL);main()struct customer*head,p;int m,number;char c_name20;printf(”n”);printf(*n”);16 printf(欢迎进入宾馆客房管理系统n);printf(*n”);printf(*nn);printf(1:建库n”);printf(2:登记n”);printf(3:退房n”);printf(”4:查询n”);printf(*nn);printf(请执行操作:n);scanf(d”,m);if(m=1)head=creat();else if(m=2)printf(”请输入要登记得客户的信息:”);p=(struct customer*)malloc(LEN);scanf(d%s ld,&p-num,p-name,p-date);head=insert(head,p);print(head);else if(m=3)printf(请输入要退房的客户的房间号:);scanf(”%d,number);head=del(head,number);print(head);else if(m=4)printf(”请输入要查询的客户的姓名:”);scanf(%s,c_name);search(head,c_name);else printf(执行操作错误!);