宾馆客房管理系统 数据库课程设计_第1页
宾馆客房管理系统 数据库课程设计_第2页
宾馆客房管理系统 数据库课程设计_第3页
宾馆客房管理系统 数据库课程设计_第4页
宾馆客房管理系统 数据库课程设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

淮海工学院计算机工程学院课程设计扌艮告设计名称:数据库原理及应用设计课程设计姓 名: 学 号: 专业班级:软件081系(院):计算机工程学院设计时间: 2010.12.202010.12.31设计地点:软件机房成绩:指导教师评语:签名:VV数据库原理及应用 课程设计报告第29页,共27页一、概述1、项目背景随着宾馆酒店业竞争的加剧,宾馆Z间客源的争夺越来越激烈,宾馆需要使用更有效的信息化手段, 拓展经营空间,降低运营成木,提高管理和决策效率.传统的宾馆酒店计算机管理系统主要包括前台管理系统 和示台管理系统两大部分,基木包含了宾馆主要业务部门,初步实现了对顾客服务和进行财务核算所需要的 各个功能.但传统的宾馆酒店管理系统基于财务管理为主线的设计理念,无法满足宾馆酒店全面信息化管理 的需要.现代宾馆酒店业迅速发展,新的管理观念与模式层出不穷宾客客房管理系统亦随肴宾馆管理理念 的发展而发展宾馆客房管理系统依照采用了先进的数据库理论,多媒体技术,软件T程理念等,从基层,屮层, 高层三个管理者层次为切入点,以成木分析,预测,控制为主线,形成一套上下贯通,操作便捷的酒店系统解决方 案,科学地将宾馆各种口常业务完美的结合在一起,为管理及决策提供了强有力的支持其对客人个性化服务 及全面彻底的信息化,使企业电算化管理水平提升到一个新的更高层次提供大量丰富的基于企业管理经营 过稈屮实际的数据。2编写目的通过此宾馆客房管理系统可以更加轻松便捷地找出空闲余房以及打折房间,方便了工作人员的工作, 而且更加的育观。通过此系统还可以轻松的对房间的类型、房间等进行添加和修改、删除、杳询等常用操 作,还有对于数据的统计算出各个房源每天的入住率,为管理者LI后的管理等做出了很好的参考依据。3、软件定义宾馆客房管理系统:对宾馆的各个客房类型管理、员T信息管理、入住管理和房间类型进行管理等。4、开发环境Visio Web DevelopSQL Server 2005Power DesignerMicrosoft Visio 等二、需求分析系统分为管理员和普通工作人员两种模式。管理员有信息管理、入住管理、客户管理、房型管理和房间管理等功能。 工作人员有信息管理、入住管理、客户管理等功能。入住管理 入住 退房房型管理 添加房型 修改房型 杳看房型 删除房型登陆 按照系统登录 注册新用户信息管理 个人信息 用户信息 客户信息 订单信息 房间信息 客户管理 新建客户 修改客户 客户信息统计 房间管理 查看客房情况 空房统计 添加房间 删除房间(1)登陆:用户用H己的用户名和密码登陆,进行相应权限的系统,对系统进行操作,新用户可以进行注册。(2)信息管理:可以对于各种信息的查询,个人信息可以杳看自己的私人信息,还可以对白己的私人信息 进行修改。用户信息杏看用户的个人信息,对用户的信息进行增、删、杏、改。客户管理可以新建客户(3)客户管理:可以新建客户,对于客户的信息进行相应的修改,还可以对与客户的消费信息进行统计。(4)房间管理:可以在相应的房间类型下面进行添加相应的房间,对相应的房间删除,杳看空房以及客房 情况。(5)入住管理:客户可以入住相应的类型房型下的空房,然麻可以退房,系统自动将相应的订单状态置为 失效,入住状态置为已退房,将相应房问的状态置为空房。(6)房型管理:管理员可以对相应的房型进行各种属性的修改,可以按照需求添加相应的房型,管理员、 工作人员都可以資看相丿垃的房熨信息,管理员有需要时可以删除相应的房型,系统走动将该房型下的房间 删除。系统功能图:宾馆客房管理系统4 住 管 理图1系统功能图数据字典:user用户表字段名主键外键类型字节数长度小数位字段说明user.id7int4100用户编号user_namevarchar20200用户姓名user_sexvarchar550性别userageint4100年龄sign aturevarchar1001000个性签名telephonevarchar15150电话号码loginAccountvarchar20200登陆账号passwordvarchar20200密码rightvarchar10100权限表2.1宾馆客房管理user用户表book订单表字段名主键外键类型字节数长度小数位字段说明book_idVint4100订单号clientjdVint4100客户号roo mdVint4100房间号isSubscriptionint4100是否预定daysint4100天数liveTimedatetime8233入住时间leaveTimedatetime8233离开时间prePaydecimal9181预支金额live Statevarchar20200入住状态bookstatevarchar20200订单状态feedecimal9181金额balancedecimal9181余额表2.2宾馆客房管理book订单表client客户表字段名主键夕隴类型字节数长度小数位字段说明clientjdint4100客户编号client_namevarchar20200姓名client_sexvarchar550性别identityldvarchar20200身份证号totalConsumedecimal9181总消费额leveldint4100等级编号表2.3宾馆客房管理client客户表room房间表字段名主键外键类型字节数长度小数位字段说明roomdVint4100房间编号type_id7int4100类别号statevarchar10100房间状态表2.4宾馆客房管理room房间表roomType房间类型表字段名主键夕腐类型字节数长度小数位字段说明type_idVint4100类型号type_namevarchar20200类型名in troductio ntext1621474836470介绍facilityvarchar1001000breakfastvarchar10100早餐描述benDescvarchar20200床位描述pricedecimal9181单价subsFeedecimal9181订金价格表2.5宾馆客房管理roomType房间类型表level等级表字段名主键夕隴类型字节数长度小数位字段说明leveldVint4100等级编号level _n amenchar20100等级名字ratedecimal521优惠比例表2.6宾馆客房管理level等级表数据流图:图3.1顶层数据流图图3.2订房数据流图图3.3工作人员修改个人、客户信息图3.4客户退房E-R 图:图3.5管理员数据流图图4.1房间实体属性图图4.2客户实体属性图图4.3房间类型实体属性图图4.4级别实体联系图图4.6订单实体联系图关系模式:room(room id.type id. state);roomType(ty2e_id,type_name,introduction,facility,breakfast,benDesc,price,subsFee); level(level_idjevel name.rate);user(user_id. user_name,user_sex,signature,telephone Jogin Account,password,right); client(client_id.client namejdentityld.totalCOnsumeJevel id);book(book_id(lient idLroom idjsSubscription,daysJiveTimeJeaveTime,prepayJiveState,bookState, fee,balance);数据库关系图:房间養離态int Gk int 10宾馆客房管理系统客户客户 i dintGk等级号int容户茗 varchar (20) 性别char (2)身份证号varchar (20) 滔奏金额int订单intT)kintintboolintdatadataintvarchar (20)varchar (20)intint额定间间金态态额 id号预 时时总状状金 户间否数住店交住单需费 茗房是天入离预入订所欠、FK ROOM REFERENCE ROOMTYPE、用户房间类型xritvar char (20) twxtvar char (20) bool doublevar char (20)pk用户yintG*var char (20) char (2) intvar char (100)var char (15)var char (20) var char (20) int别名式号码 名性菱方账密 户户龄性系陆录限 用用年个联登登权图5宾馆客启管理系统表关系图数据库设计:表-dbo.book列名数据类型?%bookjdintdient JdintroomdintisSubscriptionintdaysintliveTimedatetimeleaveTimedatetimeprePaydedmal(18r 1)liveStatevarchar (20)bookstatevarchar(20)feedeamal(18r 1)balancededmal(18r 1)图6.1 book表设计表-dboxlient列名数据类型允许空dient_id| intdien t_namevarchar(20)dien t_sexvarchar(5)identityldvarchar(20)totalConsumededmal(18r 1)leveldint00图6.2 client表设计表 dbo.level列名数据类型允许空intT o 1leveLnamenchar(lO)回ratedeamal(2r 1)回图6.3 level表设计表 dbo.user列名数据类型允许空user idnuser_namevarchar(20)user_sexvarchar(5)serfageintsign a torevarchar(lOO)telephonevarchar(15)loginAcco untvarchar(20)passwordvarchar(20)rightvarchar(lO)图6.4 user表设计表 dboroomType列名数据类型允许空?| typejd| inttypenamevarchar(20)in troductiontextfacilityvarchar(lOO)breakfastvarchar(lO)benDescvarchar(20)pricededmal(18, 1)subsFeedecimal (18 r 1)图6.5 roomType表设计表-dbo.room列名数据类型允许空冈 roomd:int:typejdintstatevarchar(lO)图6.6 room表设计部分视图:(1)账号信息视图create view dboaccountasselect user_id,loginAccount,passwordfrom user(2)账单视图CREATE view dbo.billasselect distinct book . book_id 订 单 号,client c丄ient_name 客户姓名,room. room_id 房、可号,type_name 类型名,price 单价,days 天数,prePay 预支,fee 消费金额,balance 余额,liveTime 入住时间from book client,roomyroomType)levelwhere book.client_id client.client_id and book.room_id 二:room.room_idand room type_id=roomType.type_id(3)客户信息视图create view dbo.clientInfoas SELECT clienclienidentityld, client.client_id, totalConsume,level.level_name, level.rateFROMclient NN7? JOINlevel ON client.level_id = level .level_id(4)空房视图create view dboemptyRoomas SELECT room. room_id AS 房可号/ roomType typg_n3me AS 房I、可类型,roomType .benDesc AS 床位描述,roomType . price AS 仔匸格 roomType subsFee AS 金,room. state AS M犬态 FROM room 7NNE R JOIN roomType ON room. type_id = roomType . type_id WHERE (room .state =空房)(5)房间信息视图CREATE VIEW dboroomlnfoASSELECT dboroomroom_id, dbo.roomType type_name, dboroomTypefacility,dbo roomType.benDesc, dbo roomType.price,dbo.roomType subsFeeFROMdbo.room INNER JOINdboroomType ON dbo.room type_iddbo roomType.type_id部分存储过程:(1)删除房间类型存储过程CREATE PROCEDURE dbo . type_de:Letetype_id intAS BEGINdelete roomType where type_id=01ype_iddelete room where type_id=type_id(2)插入房间类型存储过程CREATE PROCEDURE dbo.type_inserttype_name varchar(20),Qintroduction text,facility varchar(100)fQbreakfast varchBi: (10),QbenDesc varchar(20)Qprice decimal(18,1)rsubsFee decimal(18z1)ASBEGINinsert into roomType(type_name,introduction,faci丄ity,breakfast rbenDesc,price,subsFee) values(type_nameA introduction)facility? QbreakfasQbenDesc,price,QsubsFee)END(3) 订房存储过程CREATE PROCEDURE dbo.book_insertclient_id int,room_id int 丿GisSubscription int zdays int,liveTime datetime,QprePay decimal(18, 1),GliveState varchar (20) zbookStAte varchar (20)fee decimal(18,1)balance decimal(18,1)ASBEGININSERT INTO book(client_idz room_id isSubscription, days, liveTime, prePay, livestmte, bookStmte) feer balance)VALUES(client_id,room_id,QisSubscription,days,QliveTime,QprePay,QliveState,QbookStat ef fee,balance)UPDATE roomSET stat巳=满房where room_id=rooni_idEND(4) 退房存储过程CREATE PROCEDURE dbo.leaveRoombook_idint,totalConsume decimal(18,1),room_id int,fee decimal(18f1),Qbalance decimal(18, 1)Gclient_id int,state varchar(10),QbookState varchar (20),QliveState varchar (20),leaveTime datetimeASBEGINUPDATE bookSET leaveTime = QleaveTime, livestate = OliveState, bookState = bookSfee = fee, balance = balance where book_id book_idUPDATE roomSET statestate where room_id=room_idUPDATE clientSET totalConsume = totalConsume where client_id=client_idEND三、系统设计后台登陆宾馆客房管理系统用户名:密码:登厠注册版时有君河图7登陆界面信息管理:个人信息姓名仕签名年龄珈号权限员修改图&1个人信息用户信息姓名趣整个性豁电话管埋test女21testtest第辑删除齢彬21做自己喜欢的事辑删除/JI女23对未来充满期待哦_A辑删除小明SE25呵呵,新来辑删除图8.2用户信息查询客户顾客信息编号 姓名身份证号总消费1小A女32028319897845160.0图8.3客户信息订单查询站订单已入住订单| 朴住订单Biamr单订单号客户姓名房问号耀名单价超入住时间1小 A301标准单人间45.012010/12/27 0:00:004小 D401标间60.0 12011/1/1 0:00:009小 B303标间60.0 12011/1/1 0:00:0010呵呵301标准单人间45.0 22010/1/1 0:00:0014小 C305标间60.0 12010/1/2 0:00:0015 李洪志 301标准单人间45.012010/1/1 0:00:00图8. 4订单查询入住管理退房客户姓名:小D查找订单号客户姓名房间号入住状态预支金额4小D4012011/1/10:00:00 2000.0订单号:4退房订单号客户姓名房间号类型名单价天数 预支 消费金额 余额入住时间4小D401 标间 60.0 12000.0 60.01940.0 2011/1/10:00:00图9退房并打印账单预走客房房间类型:价格: 客户姓名: 预交走金: 入住时间: 预支金额:图9.2预订客房客户管理客户姓名:身份证号:邑亟修改容户屯小A客户姓名:小A協!I:男女身份证号:32028319897845提女重置图10新建客户房型管理图10.2修改客户添加房间类型遥名:价嗨:介:订舍介略:0:aragra con Sxe CdorJR #互*A夕0 E 3 曙瞻番番P =M 0 )eeE歴 Design HTML猩交 S 2图111添加房间类型修改房问类型 I 选择 |瘵名:奈全包房厌位擢述-张奈有卫綁:无年上网订舍介陷:200没隨简介:价格:3600 cort Sxe CdorB f H AM旨目* A 0色 Q=sei自助早餐,120M Design 0 HTML旦參迖:修改 三2图11.2修改房间类型查看房型 融湮亘 M看 -高级单间删除类别类型号类型名管理1标准单人间删除3高级单间删除13豪牝房删除12葩套房删除2总魅房删除图11.4删除房型单价:352元/晚订金:50元床位描述:大床(150cm*200cm) 设施简介:宽带免费早餐:有图11.3杳看房间类型房间管理添加房间房间类型:标准单人间房间号:添加表12.1添加房间房间信息查询空房查询房问号房问类型床位描述价格订金状态302房张豪1500.0200.0空房303高级单间 (150cm*200cm)352.050.0空房304高级单间 (150cm*200cm)352.050.0空房305高级单间 (150cm*200cm)352.050.0空房306高级单间 (150cm*200cm)352.050.0空房401高级单间 (150cm*200cm)352.050.0空房402高级单间 (150cm*200cm)352.050.0空房图12.3空房查询删除房间铐冃号类塑号3011刪除3022刪除3033刪除3043刪除3053刪除3063刪除4013刪除4023刪除图12.4删除房间房问号娅名床价格301标准单人间有卫浴和无线上网张45.0302房有卫浴和无线上网张豪华站1500.0303高级单间宽帝轄(150cm*200cm)352.0304高级单间宽帝趣大床(150cE200cm)352.0305高级单间宽帝轄(150cm*200cm)352.0306高级单间宽芾趣(150cm*200cm)352.0401高级单间宽帝轄(150cm*200cm)352.0402高级单间宽芾题(150cm*200cm)352.0图12.2房间信息杳询安全退出冬信息管理A个人信息A用户信息A容户信息A订单信息 A房间信息 久入住管理小订房 工退房 各茗户管理新建客户修改容户客户信息统计安全退出冬信息管理二查看个人信息A修改个人信息A客户信息咎房型管理A添加类型A修改类型A查看类型 A刪除类型 久房间管理A添加房间A查看客房情;兄 A空房统计 A刪除房间A空房查询 A房类查看 久入住管理乂订房 小退房 各客户管理A彌建客户A修改客户A客户信息统计工作人员注册电话翻:I*仕签名:|注册 重置图13.1管理员导航栏图13.2工作人员导航栏图13.3工作人员注册四、系统实现核心代码:检测用户是否登录:if (Sessionfadmin != null & SessionfadminlToStringO = ”admin”) /已登陆if (!Page.IsPostBack) else/未登陆Response.Redirect(,./Login.aspxw); 登录按钮:protected void btnOk_Click(object sender, EventArgs e)int typejd = Convert.ToInt32(DropDownListl.SelectedValue); int roomJd = Convert.ToInt32(txtroomId.Text);讦(new RoomTypeDAO().IsExistsRoom(roomd)Response.Write(n script Ianguage二javascriptwindow.alert。止匕房间已经存在! J; n); elsenew RoomTypeDAO().Insert_room(type_idjoonnd);Response.WriteC window.alertC;加房间成功! J; H); 注册按钮:protected void btnReg_Click(object sender, EventArgs e)string sex=null; sex=getSex();if (new UserDAO().IsExistsName(user_name.Text.ToString() | new UserDAO().IsExistsAccount(loginAccount.Text.ToString()Response.Write(n script Ianguage二javascriptwindow.alert。该用户或账号已存在! J; n);elsenew UserDAO().Insert(user_name.Text.ToString(),sex, Convert.ToInt32(ageTextToString(), sign ature.Text.ToStri ng(), teleph one .Text.ToStri ng(), logi nAcco un t.Text.ToStri ng(), txtpwd.Text.ToStringO,工作人员);Response.WriteC window.alert(,ffl户信息仓U建成功!); ); Response.Redirect(nLogin.aspxH);预定客房:protected void Buttonl_Clickl(object senderz EventArgs e)string n ame = txt name. Text;if (!new ClientDAO().IsExistsName(name)Resp on se.Redirect(naddClient.aspxn); elseint roomid 二Convert.ToInt32(txtroomid.Text);int clientd = new ClientDAO().id_selectByName(name); double=new RoomTypeDAO().rate_selectByname(name);int isSub = 0;if (CheckBoxl.Checked = true) isSub = 1;double days = Convert.ToDouble(txtdays.Text);string liveState =已入住;if (isSub = 0) liveState =未入住”;DateTime liveTime = ConvertToDateTinne(txtlivetimeText);double d = Convert.ToDouble(days);double price = Convert.ToDouble(newRoomTypeDAO().roomprice_selectByid(Convert.ToInt32(roomid);double fee = price * d * rate;double balance = Convert.ToDouble(txtprepay.Text) - fee;double prePay = Convert.ToDouble(txtprepay.Text);new BookDAO().Insert(clientjdrroomidr isSub, days; liveTime, prePay, liveState, ”有效;fee, balanee); Response.Write(n window.alert(订房成功! J; ,);退房:protected void leave_Click(object sender, EventArgs e)int id = Convert.ToInt32(txtbookid.Text);int clientjd = new BookDAO().clientId_selectById( id);int room_id二new BookDAO().roomId_selectById( id );int days=new BookDAO().days_selectById(id);double rate二new ClientDAO().rate_selectById(clientjd);double price=new RoomTypeDAO().roomprice-selectByid(roomd);double subFees=new RoomTypeDAO().subsFee_selectByid(roomd);double fee =days * rate* price;double totalConsumebefore二new ClientDAO().totalConsume_selectById(clier)t_id);double totalConsume=totalConsume_before+fee;double prePay = new BookDAO().prePay_selectById(id);double balanee二prePayfee;string liveTime = new BookDAO()iveTime_selectById(id);string leaveTime =Convert.ToString( System.DateTime.Now);new BookDAOO.IeaveOd, roomjd, clientjd, fee, totalConsume, balanee, System.DateTime.Now); GVBill.DataSource = new BookDAO().BillDataSet_selectByName(idz liveTime); GVBill.DataBind();GVBill.Visible=true;Response.Write(w script language二javascriptwindow.alert(退房成功! ); n);对数据库操作的代码:(1) 根据订单号取出订单public DataSet BillDataSet_selectByName(int bookjd ,string liveTime)SqlConnection con 二 new SqlConnection(connStr);con .Ope n();string strSelect = SELECT* FROM bill where 订单号二” + bookjd + and 入住时间 =M, + liveTime + ”SqlCommand emd = new SqlCommandfstrSelect; con);cmd.ExecuteN on Query();SqlDataAdapter myad = new SqlDataAdapter(strSelectf con);DataSet myset = new DataSet();myad.Fill(myset, table);return myset;(2) 退房:public bool leave(int bookjd, int roomjd, int clientjd, double fee, double consumer doublebalanc巳DateTime leaveTime)SqlDataAdapter da = new SqlDataAdapterQ;DataSet ds = new DataSet();da.SelectCommand = new SqlCommand(); da.SelectCommand.Cormection 二 conn;da.SelectComma nd. Comma ndText = nleaveRoomn;da.SelectCommand.Comma ndType = CommandType.StoredProcedure; da.SelectCommandParannetersAdd(new SqlParameter(nbookbookjd); da.SelectCommand.Parameters.Add(new SqlParameter(wroomroomd); da.SelectCommandParametersAdd(new SqlParameter(nclientJdn/ clientid); da.SelectCommand.Parameters.Add(new SqlParameter(wtotalConsume consume); da.SelectCommand.Parameters.Add(new SqlParameter(nbookState ”失效”); da.SelectCommand.Parameters.Add(new SqlParameter(nliveState ”已退房J); da.SelectCommandParannetersAdcl(new SqlParameter(nstate ”空房”); da.SelectCommand.Parameters.Add(new SqlParameter(wleaveTime, leaveTime); da.SelectCommandParannetersAdcl(new SqlParameter(nbalance,/ balance); da.SelectCommand.Parameters.Add(new SqlParameter(wfee fee);da.Fill(ds); return true;(3) 修改客户信息public bool Update(User u)bool flag = false;string sql = UPDATE user SET user_sex = user_sex, user.age = user_age, signature = signatureztelephone = telephone, password = password where loginAcco un t=M, + u.LoginAcco unSqlParameter paras = new SqlParameterf / new SqlParameterCloginAccount; u.LoginAccount),new SqlParameterCuser_sex; u.User_sex), new SqlParameter(nuser_age u.User_age), new SqlParameter(nsignature: u.Signature), new SqlParameter(wtelephone: u.Telephone), new Sq I Parameter(K password u.Password);int res = sqlhelper.ExecuteNonQuery(sqlF paras, CommandType.Text);讦(res 0)flag = true;return flag;(4) 是否存在账号public bool IsExistsAccount(string name)bool flag = false;corm .Ope n();string strSelect = SELECT loginAccount from user where loginAccount=M, + name + DataTable dt = new DataTabl

温馨提示

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

评论

0/150

提交评论