C语言课程设计-宾馆客房管理软件.doc_第1页
C语言课程设计-宾馆客房管理软件.doc_第2页
C语言课程设计-宾馆客房管理软件.doc_第3页
C语言课程设计-宾馆客房管理软件.doc_第4页
C语言课程设计-宾馆客房管理软件.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

C语言课程设计课程设计报告题 目学生成绩统计学 号姓 名年级专业指导教师完成日期年月日安徽师范大学物理与电子信息学院College of Physics and Electronic Information, Anhui Normal University目录一问题描述2二. 系统需求分析22.1 设计前调查22.2 用户需求分析22.3 核心数据流图3三、概念设计53.1 局部E-R图53.2 程序结构图5四、逻辑设计64.1 开发环境6五、程序调试65.1程序登陆65.2 订房75.3入住75.4退房85.5信息查询8六、程序代码8七、总结22物理与电子信息学院课程设计评定意见23一问题描述宾馆客房管理软件1) 某宾馆有301、302、303、304、305五个标准间,每个标准间可住2人;2) 链表存储结构:姓名、性别、房号、后续指针,按房间号有序;3) 能实现入住(注意性别)和退房,能按给定姓名、房号查询;4) 建议采用链表结构,但用其它方法实现也可。二. 系统需求分析2.1 设计前调查 近年来,宾馆业迅猛发展,市场的竞争日趋激烈,全面提高宾馆的软件管理水准,已成为宾馆业发展的当务之急。尤其是对于星级宾馆,既需要完成前台的一些服务工作,还需要完成后台的管理工作。然而,传统的人工管理模式已经远远不能满足有效、快捷地处理经营中产生的大量信息数据的需要,从而使得企业决策层无法及时、准确地掌握一线资料,继而影响对市场进行正确地分析和预测。像沿海城市三星级以上宾馆引进外方管理,使小部分宾馆管理水准几乎接近或达到国际水平。但对占80%以上的广大中小型宾馆来说,是难以做到的。因此,欲在竞争中甩开对手,取得优势,必须在经营、管理、产品、服务等方面具备独到之处。而对宾馆的经营状况起决定作用的是客房的管理。简单的服务标准已不是制胜的锦囊,只有管理做到最细微之处,才能让顾客体会到宾馆服务的高标准、高质量,而准确、快速、周全往往就是最基本的成功要素。 传统的管理方法已经不能适应现代社会的需要,因此采用电脑管理业务、财务等诸多环节已成为推动宾馆业迅速发展的先决条件,宾馆客房管理信息系统是各大中小型宾馆所需要使用的一个管理系统。2.2 用户需求分析建立一套功能完善的管理信息系统,既能满足业务人员日常处理的需要,增强企业经营全过程的数字化管理水平;又能满足管理人员决策分析的需要,提高公司管理层对公司经营反馈信息的响应速度。从而大幅度提高工作效率,提高实施管理的准确性、科学性,使担负管理的工作人员从繁杂的手工劳作中解脱出来。因而程序需要实现的功能有如下主要六大功能:一、 客房管理:客房登记,入住情况查询,客房状态查看。二、 宾客入住管理:客房预定,登记入住,房间调整,退房结帐三、 物资管理:物品登记,物品查询,报修和维修,定时提醒。四、 财务管理:追加押金,增删财务,日报表五、 员工管理:增改员工,查删员工六、 系统管理:增删管理员,修改密码七、 其他功能:界面管理2.3 核心数据流图 维修信息调整房间维修/报修房间提醒 客房信息 预订 客房信息 客房状态退房入住住客人 客人信息 入住登记 帐务信息财务现开 入住信息 部分数据流图数据流名称:客人信息来源:客人去向:入住登记包含的数据项:姓名、身份证号、性别、入住房间、房间类型、房间价格、入住状态等(宾馆客房管理系统的数据流客人信息) 数据流名称:入住登记来源:客人产生入住登记去向:入住包含的数据项:订单编号、姓名、性别、身份证号、客户编号、客房类型、抵房时间、入住 人数、预定人、电话、住几天等信息(宾馆客房管理系统的数据流入住登记)数据流名称:客房信息来源:客人产生入住登记去向:入住包含的数据项:客房编号、客房类型、客房价格、客房状态(宾馆客房管理系统的数据流客房信息)数据流名称:房间状态来源:退房去向:房间包含的数据项:客房号码、房间状态(宾馆客房管理系统的数据流房间状态)数据流名称:帐务信息来源:退房去向:财务包含的数据项:帐单编号、姓名、消费金额、入住时间、退房时间、押金数据结构数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。数据结构的具体描述如下:(1)数据结构:客房信息含义说明:是宾馆客房管理系统的主体数据结构,定义了宾馆客房的有关信息组成:房号、类别、楼层、单价、可容纳人数、说明(2)数据结构:旅客信息含义说明:是酒店客房管理系统中的旅客数据结构,定义了旅客的有关信息组成: 入住编号、顾客姓名、性别、证件名称、证件号码(3)数据结构:操作员信息含义说明:是酒店客房管理系统中的操作员数据结构,定义了操作员的有关信息组成:用户名、密码数据存储通过SQL SERVER 2000 建立一个名为“酒店”的库,存放酒店客房信息、旅客信息和旅客入住信息以提供应用程序进行系统业务功能数据所需的数据。1)数据存储名称:客房信息表说明:记录所有房间的基本信息输入的数据流:服务员查看酒店房间基本信息输出的数据流:输出房间基本信息给服务员查看组成:房号,类别,楼层,单价,可容纳人数,说明2)数据存储名称:旅客信息表 说明:记录住店客人的基本信息输入的数据流:在住店管理界面中添加客人基本信息输出的数据流:在在住客人列表中或历史信息中查看客人基本信息组成:入住编号,顾客姓名,性别,证件名称,证件号码3)数据存储名称:旅客入住登记信息表说明:记录开房和退房的基本信息输入的数据流:在住店管理界面中添加客人基本信息输出的数据流:在开房,退房,在住客人列表中或历史信息中查看有关基本信息组成:入住编号,房号,预付金额,入住时间,退房时间三、概念设计 3.1 局部E-R图 客房房号价格状态客人性别姓名证件管理员姓名密码权限 年龄性别工资3.2 程序结构图系统登录订房实现入住登记退房结算信息查询客房信息初始化四逻辑设计4.1.开发环境软件:Visual c+ 6.0硬件:HP ProBook 4321s五程序调试5.1程序登陆5.2订房5.3入住5.4退房5.5信息查询六程序代码#include #include/*void initial_room();/初始化80个房间信息void welcome();/验证用户登陆,登陆成功显示欢迎信息void enter();void book_room();void check_in();void check_out();void inquire();int i=0;/*struct Room int number; int dank; int price; int state; room80;struct Customer char name10; char ID19; int room_number; int prepaid; int change; int day;customer80;void createCustomer()printf(请您输入顾客的姓名n);scanf(%s, );printf(请您输入顾客的身份证号码n);scanf(%s, customeri.ID);customeri.prepaid = 0;customeri.change = 0;customeri.day=0;void set_name(char *n, int index)strcpy(,n);void set_ID(char *p, int index)strcpy(customerindex.ID,p);void set_room_number(int n, int index)customerindex.room_number=n;void set_day(int d, int index)customerindex.day=d;void set_prepaid(int p, int index)customerindex.prepaid=p;char *get_name(int index)return ;char *get_ID(int index)return customerindex.ID;int get_room_number(int index)return customerindex.room_number;int get_day(int index)return customerindex.day;int get_prepaid(int index)return customerindex.prepaid; /*void main()/程序入口从这里开始运行 int choice=1; initial_room();/初始化80个房间的信息,分四个等级 welcome();/验证用户登陆,登陆成功显示欢迎信息 while(choice=1) enter(); /根据用户的选择执行不同的功能 getchar(); printf(n继续使用本系统请按1,退出请按2! ); scanf(%d, &choice); printf(n); /系统登陆界面*void welcome()/验证用户登陆,登陆成功显示欢迎信息 char name4,code7; printf(请输入用户名和密码(以空格隔开):n); scanf(%s%s, name, code); while(strcmp(name,000)!=0)|(strcmp(code,666666)!=0) printf(用户名或密码输入有误,请重新输入!n); scanf(%s%s, name, code); printf(nn); printf( *n); printf( 欢迎使用宾馆客房管理系统!n); printf( *nn); /系统入口*void enter() int kind_of_service; printf(请选择服务类别:订房、入住、退房还是查询? n); printf( 1-定房 2-入住 3-退房 4-查询: ); scanf(%d, &kind_of_service); if(kind_of_service4) | (kind_of_service1) printf(您的输入有误,请重试!n); scanf(%d, &kind_of_service); else switch(kind_of_service) case 1: book_room(); break;case 2: check_in(); break;case 3: check_out(); break;case 4: inquire(); break; /订房实现*void book_room()createCustomer(); int room_standard,day; printf(请您选择预定房间的标准:n); printf(1.单人间/天150元n2.双人间/天200元n3.标准间/天300元n4.总统套房/天600元n); scanf(%d, &room_standard); printf(请输入预定天数n); scanf(%d, &day); set_day(day, i); switch(room_standard) int n; case 1: printf(住房费用总共为: %d 元n, day*150); /计算住房费用 for(n=0;n20;n+)/从第一个级别的房间中查找一个空闲的房间 if(roomn.state=0)/state=0表示该住房没有被预定的 printf(预定成功房间号码为: %dn, roomn.number); roomn.state=1;set_room_number(roomn.number, i); break; break; case 2: printf(住房费用总共为: %d 元n, day*200); for(n=20;n40;n+) if(roomn.state=0) printf(预定成功房间号码为: %dn, roomn.number); roomn.state=1;set_room_number(roomn.number, i); break; break; case 3: printf(住房费用总共为: %d 元n, day*300); for(n=40;n60;n+) if(roomn.state=0) printf(预定成功房间号码为: %dn,roomn.number); roomn.state=1;set_room_number(roomn.number, i); break; break; case 4: printf(住房费用总共为: %d 元n, day*600); for(n=60;n订了 2-没订) ); scanf(%d, &ding_or_no); if(ding_or_no=1) printf(请输入顾客的姓名:n); scanf(%s, name1); printf(请输入顾客的身份证号码:n); scanf(%s, id1); for(int j=0;j=i;j+) if(strcmp(get_name(j),name1)=0)&(strcmp(get_ID(j),id1)=0) /查找该顾客的定房信息 int num=get_room_number(j); /取得定房的房间号printf(顾客%s今天入住本宾馆! 房间号码为: %dn, name1, num); switch(num/100) case 6: prepaid=get_day(j)*150; set_prepaid(prepaid, j); printf(请收房费 %d元整!n, prepaid); /开始收费 roomnum%100-1.state=2; /修改房间状态为入住状态 break; case 7: prepaid=get_day(j)*200; set_prepaid(prepaid, j); printf(请收房费 %d元整!n, prepaid); room19+num%100.state=2; break; case 8: prepaid=get_day(j)*300; set_prepaid(prepaid, j); printf(请收房费 %d元整!n, prepaid); room39+num%100.state=2; break; case 9: prepaid=get_day(j)*600; set_prepaid(prepaid, j); printf(请收房费 %d元整!n, prepaid); room59+num%100.state=2; break; break; else createCustomer(); int room_standard,day; printf(请您选择预定房间的标准:n); printf(1.单人间/天150元n2.双人间/天200元n3.标准间/天300元n4.总统套房/天600元n); scanf(%d, &room_standard); printf(请输入住宿天数n); scanf(%d, &day); set_day(day, i); switch(room_standard) int n; case 1: prepaid=day*150; set_prepaid(prepaid, i); printf(请收房费 %d元整!n, prepaid); for(n=0;n20;n+) if(roomn.state=0) printf(入住房间号码为: %dn, roomn.number); roomn.state=2; set_room_number(roomn.number, i); break; break; case 2: prepaid=day*200; set_prepaid(prepaid, i); printf(请收房费 %d元整!n, prepaid); for(n=20;n40;n+) if(roomn.state=0) printf(入住房间号码为: %dn, roomn.number); roomn.state=2; set_room_number(roomn.number, i); break; break; case 3: prepaid=day*300; set_prepaid(prepaid, i); printf(请收房费 %d元整!n, prepaid); for(n=40;n60;n+) if(roomn.state=0) printf(入住房间号码为: %dn, roomn.number); roomn.state=2; set_room_number(roomn.number, i); break; break; case 4: prepaid=day*600; set_prepaid(prepaid, i); printf(请收房费 %d元整!n, prepaid); for(n=60;n80;n+) if(roomn.state=0) printf(入住房间号码为: %dn, roomn.number); roomn.state=2; set_room_number(roomn.number, i); break; break; i+; /退房结算*void check_out() char name210,id219; int standard,j,room_number,day1,day2,day; printf(请输入要退房的顾客姓名和身份证号码:n); scanf(%s%s, name2, id2); printf(请输入该顾客实住天数:n); scanf(%d, &day2); for(j=0;j0) printf(请退给该顾客 %d 元整!n, day*150); if(day0)printf(请退给该顾客 %d 元整!n, day*200); if(day0)printf(请退给该顾客 %d 元整!n, day*300); if(day0)printf(请退给该顾客 %d 元整!n, day*600); if(day0)printf(请补收该顾客住房费 %d 元整!n, -day*600); break; printf(n退房核算清楚,请按1: ); int account; scanf(%d, &account); if(account=1) for(int k=0;k80;k+) if(roomk.number=get_room_number(j) roomk.state=0; i-; for(;ji;j+) customerj=customerj+1; /信息查询*void inquire() int inquire_choice; printf(房间信息查询请按1, 顾客信息查询请按2: n); scanf(%d, &inquire_choice); if(inquire_choice=1) int j,k=0; printf(n下列房间还没人预订,也没人入住:n); for(j=0;j80;j+) if(roomj.state=0) if(k%10=0) printf(n); printf(%dt, roomj.number); k+; k=0; printf(nn下列房间已预订:); for(j=0;j80;j+) if(roomj.state=1) if(k%10=0) printf(n);printf(%dt, roomj.number); k+; k=0; printf(nn下列房间有人入住:n); for(j=0;j80;j+) if(roomj.state=2) if(k%10=0) printf(n);printf(%dt, roomj.number); k+; printf(nn); else if(inquire_choice=2) getchar(); printf(按姓名查询请按1, 按身份证查询请按2: n); int inquire_choice; scanf(%d, &inquire_choice); if(inquire_choice=1) char name310; printf(请输入顾客的姓名: n); scanf(%s, name3); for(int j=0;j=i;j+) if(strcmp(get_name(j),name3)=0) printf(%s的住房信息如下:n, name3); printf(t房间号为: %dn, get_room_number(j); printf(t预付房费为: %dn, get_prepaid(j); if(inquire_choice=2) char id310; printf(请输入顾客的身份证: n); scanf(%s, id3); for(int j=0;j=i;j+) if(strcmp(get_ID(j),id3)=0) printf(%d的住房信息如下:n, get_name(j); printf(t房间号为: %dn, get_room_number(j); printf(t预付房费为: %dn, get_prepaid(j); /房间信息初始化*void initial_room() /对80个房间进行初始化,分4个等级 int j,k=101; for(j=0;j20;j+) roomj.number=k+; roomj.dank=1; roomj.price=150; roomj.state=0; k=201; for(j=20;j40;j+) roomj.number=k+; roomj.dank=2; roomj.price=200; roomj.state=0; k=301; for(j=40;j60;j+) roomj.number=k+; roomj.dank=3; roomj.price=300; roomj.state=0; k=401; for(j=60;j80;j+) roo

温馨提示

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

评论

0/150

提交评论