宾馆管理系统报告书_第1页
宾馆管理系统报告书_第2页
宾馆管理系统报告书_第3页
宾馆管理系统报告书_第4页
宾馆管理系统报告书_第5页
已阅读5页,还剩28页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

XX城建学院C#课程设计报告书专业:信息管理与信息系统课程设计名称:《可视化编程技术课程设计》题目:宾馆管理系统班级:0634081班设计者:063408139一苏朝锴同组人员:063408138一任建超063408105一孔焕颖063408106一李文艳指导老师:X延红赵军民郭猛完成时间:2010年1月6日前言2一、需求分析:3(一)系统主要功能:3(二)关系模式3(三)功能模块4(四)数据库需求分析4二、概要设计5(一)数据库概念结构设计51、用户管理E-R图62、、顾客信息实体E-R图:63、房间信息实体E-R图:64、顾客入住信息实体E-R图:75、房间类型实体E-R图:76、、整体结构E-R图:8(二)数据表设计10三、详细设计12(一)系统详细设计目标规划12(二)系统详细设计任务12(三)系统物理配置方案设计12(四)系统输出设计13(五)系统输入设计13(六)界面设计131、用户登录界面设计132、超级用户登录界面143、用户管理界面设计144、用户添加界面设计155、用户修改界面156、主界面167、房间类型管理界面168、客房查询界面179、客房信息管理界面1710、客户记录查询界面1811、客户结算界面1812、客户入住界面18四、代码设计191、用户表示层(room窗体)192、业务逻辑层203、model层224、数据访问层245、公用类层25(1)data.cs25(2)d_Bind.cs29五、参考文献29六、心得30/32前言随着计算机技术的飞速发展,信息时代的到来,信息改变了我们这个社会。各类行业在日常经营管理各个方面也在悄悄地走向规X化和网络化。宾馆管理的信息化程度体现在将计算机及网络与信息技术应用于经营与管理,以现代化工具代替传统手工作业。无疑,使用网络信息化管理使宾馆管理更先进、更高效、更科学,信息交流更迅速。宾馆管理系统是典型的信息管理系统的一部份,而且是必不可少的一部份。其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起简洁且资料一致性和完整性强、资料安全性好的数据库。而对于后者则要求应用程序功能完备,易使用等特点。宾馆管理系统是宾馆经营管理中不可缺少的部分,它的内容对于经营的决策者和管理者来说都至关重要,所以宾馆管理系统、信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多弊端,如:效率低、XX性差,容易出现差错等,且对于查询空房间及已定房间等极为不方便。在当今时代,这些完全可以改用计算机来代替人的手工操作。作为计算机及网络应用的一部分,使用计算机对客房信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、XX性好、寿命长、成本低等。这些优点能够极大地提高宾馆管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。且办事效率也是决定收入的一个关键因素。因此,我决定选择宾馆管理系统作为本人的毕业设计,力求开发出一套界面友好,功能强大,使用简单的适用于各大、中、小规模的宾馆的管理系统。同时也是一款完全适合宾馆或旅馆管理傻瓜式日常业务管理的软件。/32一、需求分析:(一)系统主要功能:1、客房类型管理:提供有关客房类型状况的规X:有客房类型名、房间面积、额定床数、额定人数、住房单价、是否有空调、电视机、以及单独卫生间等,并可进行添加、修改、删除、查询等操作。2、客房信息管理:用来管理各个客房的信息和状况,并在客户入住之前根据客户的要求提供给客户的客房的情况,可进行添加、修改、删除、查询等操作。3、客户入住信息管理:记录用户入住的信息,根据客户的XX来显示客户的入住记录,以便用户管理和结算,可进行添加、修改、删除、查询等操作。4、结算信息记录管理:对入住用户的入住信息情况的管理,客户付清住宿费用并注销房间。可进行添加、修改、删除、查询等操作。5、用户管理:对系统使用人员进行管理,只有符合要求的人才能进行一些相关操作,并可进行添加、修改、删除等操作。(二)关系模式1、RoomType信息:(RoomTypeName、BedNum、PeopleNum、Price、Toilet、AirCondition)2、Room记录:(RoomID、RoomTypeName、RoomPostion、PeopleNum、BedNum、FactPeopleNum)3、Client信息:(ClientID、ClientName、Sex、NativePlace、IdentifyID)4、ClientRecord信息:(ClientID、ClientName、RoomID、InDate、CheckDate、TotalMone、Check)5、User信息:(UserID、Username、Password、UserRole)/32(三)功能模块系统管理(四)数据库需求分析1、酒店管理系统需要提供信息的查询、保存、更新以及删除等功能,这就要求数据库能充分满足各种信息的输入输出。通过对上述系统功能的分析。针对酒店管理系统的特点,总结出如下的需求信息。每个房间有两个状态:空房、已入住。每种房间类型下有多个房间。每个房间有正在入住客人的信息。/32每个房间有以往所有入住客人的信息。一个房间入主信息指向一个顾客。每个顾客有自己的入住历史。2、针对上述系统功能的分析和需求总结,设计如下数据项。顾客信息:XX、、XX号。房间记录:订房时间、退房时间、价格统计、入住顾客XX、入住顾客。房间信息:类型名称、使用面积、床位、价格。管理人员:用户名、密码、地址、。房间状态:状态标识。二、概要设计(一)数据库概念结构设计通过上面的数据项,即可设计出满足需求的各种实体以及他们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。实体之间的关系的E-R图如下:/321、用户管理E-R图、顾客信息实体E-R图:3、房间信息实体E-R图:6/324、顾客入住信息实体E-R图:5、房间类型实体E-R图:7/326.、整体结构E-R图:8/329/32(二)数据表设计1、(RoomType表)序号列名数据类型是否允许空1RoomTypeNamenchar(20)否2BedNumsmallint否3PeopleNumsmallint否4Pricemoney否5Toiletvarchar(2)否6AirConditionvarchar(2)否2、(Room表)序号列名数据类型是否允许空1RoomIDnchar(15)否2RoomTypeNamenchar(20)否3RoomPostionnchar(10)否4PeopleNumsmallint否5BedNumsmallint否6FactPeopleNumsmallint否3、(Client表)序号列名数据类型是否允许空1ClientIDnchar(16)否2ClientNamenchar(20)否3Sexnchar(2)否10/324NativePlacenchar(20)否5IdentifyIDnchar(20)是4、(ClientRecord表)序号列名数据类型是否允许空1ClientIDnchar(16)否2ClientNamenchar(20)否3RoomIDnchar(15)否4InDatedatetime否5CheckDatedatetime否6TotalMoneymoney是7CheckChar(2)是5、(User)序号列名数据类型是否允许空1UserIDnchar(10)否2Usernamenchar(10)否3Passwordnchar(20)否4UserRolenchar(10)否/32三、详细设计(一)系统详细设计目标规划在此阶段设计出具体能够运行的系统,详细列出新系统的各种参数与规格。为即将用C#编程语言对其进行编写做好准备。(二)系统详细设计任务1、数据结构的设计:对于处理过程中涉及的概念性的数据类型进行确切的定义;2、测试用例设计:测试用例包括输入数据和预期结果等内容。(三)系统物理配置方案设计1、设计指标(1)系统吞吐量要提高系统的吞吐量,就要求使用具有大吞吐量的计算机。应该选择具有较高性能的计算机。(2)系统响应时间响应时间不超过2秒(3)系统处理方式该系统采用主机系统方式。(4)地域X围本系统采用局域网方式。(5)数据管理方式使用SQLServer25数据管理系统2、计算机硬件配置计算机硬件选择取决于要运行的软件系统,本系统建议最低采取如下配置:内存:2GBCPU:奔三2.0GHZ硬盘:5G/32(四)系统输出设计输出设计的内容包括:1、输出信息应包括系统的使用者,如客户、酒店管理人员、前台服务人员等。2、信息应以表格及文档形式输出。3、输出设备:打印机、终端显示器、Pos机。4、输出介质:输出到专用纸X及电脑屏幕上。(五)系统输入设计1、输入数据量设计需要输入客户数据,数据量不大2、数据输入设备的选择本系统选择键盘、鼠标人工输入方式。(六)界面设计1、用户登录界面设计/322、超级用户登录界面3、用户管理界面设计14/324、用户添加界面设计5、用户修改界面15/326、主界面7、房间类型管理界面16/328、客房查询界面9、客房信息管理界面17/3210、客户记录查询界面11、客户结算界面12、客户入住界面18/32四、代码设计1、用户表示层(room窗体)usingSystem;usingSystem.Collections;usingSystem.ponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;usingThree.DLL;usingThree.Model;namespacehotelmanger{publicpartialclassRoom:Form{publicRoom(){Initializeponent();}privateArrayListmylist;privatevoidRoom_Load(objectsender,EventArgse){//box2的函数mylist=newArrayList();mylist.Add("一楼");mylist.Add("二楼");mylist.Add("三楼");bindingSource1.DataSource=mylist;//附加数据源this.boBox2.DataSource=this.bindingSource1;〃填充box1的函数SqlDataReaderw_sda=DLL_room.DLL_AddRoom();while(w_sda.Read()){boBox1.Items.Add(w_sda[0]);}w_sda.Close();}privatevoidboBox1_SelectedIndexChanged(objectsender,EventArgse){stringcb1_str;cb1_str=boBox1.SelectedItem.ToString();/32//填充box3,box4的函数SqlDataReaderW_sda2=DLL_room.DLL_AddRoom2(cb1_str);while(W_sda2.Read()){boBox3.Items.Add(W_sda2[2]);boBox4.Items.Add(W_sda2[1]);boBox3.Text=W_sda2[2].ToString();boBox4.Text=W_sda2[1].ToString();}W_sda2.Close();}privatevoidshow_room_Click(objectsender,EventArgse){DLL_room.ShowRoom(dataGridView1);}privatevoidadd_room_Click(objectsender,EventArgse){stringroomid=roomnum_box.Text;stringrtn=boBox1.Text;stringrp=boBox2.Text;stringpn=boBox3.Text;stringbn=boBox4.Text;stringfpn="0"DLL_room.AddRoom(roomid,rtn,rp,pn,bn,fpn);}〃查找privatevoidselect_rooom_Click(objectsender,EventArgse){stringstr=textBox1.Text;DLL_room.SelectRoom(str,dataGridView1);}〃删除privatevoiddelete_room_Click(objectsender,EventArgse){stringstr=textBox1.Text;DLL_room.DeleteRoom(str,dataGridView1);}privatevoidexit_room_Click(objectsender,EventArgse){this.Close();}}}2、业务逻辑层/32usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Windows.Forms;usingThree.Model;usingThree.sqlDAL;usingSystem.Data;usingSystem.Data.SqlClient;namespaceThree.DLL{publicclassDLL_room{〃显示所有的房间publicstaticboolShowRoom(DataGridViewdgrid){stringstrr="select*fromRoom"D_room.ShowRoom(strr,dgrid);//D_roomtype.ShowRoomEmployee(strr,dgrid);returntrue;}〃查找publicstaticboolSelectRoom(stringstr,DataGridViewdgvid){stringstrr="select*fromRoomwhereRoomID='"+str+"'D_room.ShowRoom(strr,dgvid);returntrue;}〃删除publicstaticboolDeleteRoom(stringstr,DataGridViewdgvid){stringstrr="deletefromRoomwhereRoomID='"+str+"'"D_room.ShowRoom(strr,dgvid);returntrue;}〃调用无参的D_addtable()publicstaticSqlDataReaderDLL_AddRoom(){SqlDataReadersdr=D_room.D_addtable();returnsdr;}〃调用有参的D_addtable()publicstaticSqlDataReaderDLL_AddRoom2(stringslt_str){stringst=slt_str;/32SqlDataReadersdr=D_room.D_addtable(st);returnsdr;}//添加相应的房间信息publicstaticintAddRoom(stringRoomID,stringRoomTypeName,stringRoomPostion,stringPeopleNum,stringBedNum,stringFactPeopleNum){Room1M_room=newRoom1();M_room.RoomID=RoomID;M_room.RoomTypeName=RoomTypeName;M_room.RoomPostion=RoomPostion;M_room.PeopleNum=Convert.ToInt32(PeopleNum);M_room.BedNum=Convert.ToInt32(BedNum);M_room.FactPeopleNum=Convert.ToInt32(FactPeopleNum);returnD_room.D_ADDRoom(M_room);}〃增加房间实际人数publicstaticintupdate_factpeople(stringr_roomid){returnD_room.D_addfactpeoplenum(r_roomid);}〃减少房间实际人数publicstaticintupdate_jianfactpeopele(stringj_roomid){returnD_room.D_jianfactpeoplenum(j_roomid);}}}3、model层usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceThree.Model//由于窗体中出现了Room.cs,故定义为Room1publicclassRoom1{privatestring_RoomID;publicstringRoomID{get{return_RoomID;}set{_RoomID=value;}}privatestring-RoomTypeName;/32publicstringRoomTypeName{get{return-RoomTypeName;}set{-RoomTypeName=value;}}privatestring-RoomPostion;publicstringRoomPostion{get{return-RoomPostion;}set{-RoomPostion=value;}}privateint-PeopleNum;publicintPeopleNum{get{return-PeopleNum;}set{-PeopleNum=value;}}privateint-BedNum;publicintBedNum{get{return-BedNum;}set{-BedNum=value;}}privateint-FactPeopleNum;publicintFactPeopleNum{get{return-FactPeopleNum;}set{-FactPeopleNum=value;}}publicRoom1(){}publicRoom1(stringroomid,stringroomtypename,stringroompostion,intpeopenum,intbednum,intfactpeoplenum){this.-RoomID=roomid;this.-RoomTypeName=roomtypename;this.-RoomPostion=roompostion;this.-PeopleNum=peopenum;this.-BedNum=bednum;this.-FactPeopleNum=factpeoplenum;}}/324、数据访问层usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Windows.Forms;usingThree.Model;usingThree.database;usingSystem.Data;usingSystem.Data.SqlClient;namespaceThree.sqlDAL{publicclassD_room{〃显示所有客房信息publicstaticboolShowRoom(stringstr,DataGridViewdgrid){{d_Bind.BindDataGrid(str,dgrid);returntrue;}}〃读取RoomType中的部分值无参publicstaticSqlDataReaderD_addtable(){stringstr="select*fromRoomType"SqlDataReadersdr;sdr=database.d_Bind.BindboBox(str);returnsdr;}〃读取RoomType中的部分值有参publicstaticSqlDataReaderD_addtable(stringselect_str){stringstr="select*fromRoomTypewhereRoomTypeName='"+select_str+SqlDataReadersdr;sdr=database.d_Bind.BindboBox(str);returnsdr;}publicstaticintD_ADDRoom(Room1M_room){SqlParameter[]param=newSqlParameter[]{newSqlParameter("RoomID",M_room.RoomID),newSqlParameter("RoomTypeName",M_room.RoomTypeName),/32("RoomPostion",M_room.RoomPostion),("RoomPostion",M_room.RoomPostion),("PeopleNum",M_room.PeopleNum),("BedNum",M_room.BedNum),("FactPeopleNum",M_room.FactPeopleNum)newSqlParameternewSqlParameternewSqlParameter};stringstr="insertinto[Room](RoomID,RoomTypeName,RoomPostion,PeopleNum,BedNum,FactPeopleNum)values(RoomID,RoomTypeName,RoomPostion,PeopleNum,BedNum,FactPeopleNum)";inti=data.ExecuteNoQuery(str,param);returni;}〃添加实际人数publicstaticintD_addfactpeoplenum(stringroomid){stringstr="updateRoomsetFactPeopleNum=FactPeopleNum+1whereRoomID='"+roomid+"'";inti=data.ExecuteNoQuery(str);returni;}〃减少实际人数publicstaticintD_jianfactpeoplenum(stringroomid){stringstr="updateRoomsetFactPeopleNum=FactPeopleNum-1whereRoomID='"+roomid+"'";inti=data.ExecuteNoQuery(str);returni;}}}5、公用类层(1)data.csusingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data.SqlClient;usingSystem.Data;usingSystem.Windows.Forms;usingSystem.IO;namespaceThree.database〃封装数据库/32publicclassdata{privatestaticstring_con="DataSource=.\SQLEXPRESS;AttachDbFilename=F:\C#宾馆管理系统整合后\Solution\database\hotel.mdf;IntegratedSecurity=True;ConnectTimeout=30;UserInstance=True"privatestaticSqlConnectionsqlcon=null;publicstaticvoidCreatcon(){if(sqlcon==null){sqlcon=newSqlConnection(_con);sqlcon.Open();}elseif(sqlcon.State==ConnectionState.Closed||sqlcon.State==ConnectionState.Broken){sqlcon.Close();sqlcon.Open();}}publicstaticvoidCloseConnection(){sqlcon.Close();}〃返回连接对象sqlconnectionpublicstaticSqlConnectionGetSqlconn(){returnsqlcon;}〃执行增删改,不带参数publicstaticintExecuteNoQuery(stringstrsql){inti;try{Creatcon();Sqlmandsqland=newSqlmand(strsql,sqlcon);i=sqland.ExecuteNonQuery();sqlcon.Close();returni;}catch/32return-1;}}〃执行增删改,带参数publicstaticintExecuteNoQuery(stringstrsql,paramsSqlParameter[]param){inti;try{Creatcon();Sqlmandsqlcmd=newSqlmand(strsql,sqlcon);foreach(SqlParameterparinparam)//遍历数组将参数对象添加到操作命令中{sqlcmd.Parameters.Add(par);}i=sqlcmd.ExecuteNonQuery();returni;}catch{return-1;}}publicstaticDataTableGetTable(stringstrsql){try{Creatcon();SqlDataAdaptersqlada=newSqlDataAdapter(strsql,sqlcon);DataSetdataset=newDataSet();sqlada.Fill(dataset,"temp");sqlcon.Close();returndataset.Tables["temp"];}catch{returnnull;}}//带参数publicstaticDataTableGetTable(stringstrsql,paramsSqlParameter[]param){try/32{Creatcon();SqlDataAdaptersda=newSqlDataAdapter(strsql,sqlcon);foreach(SqlParameterparinparam)sda.Selectmand.Parameters.Add(par);DataSetds=newDataSet();sda.Fill(ds,"temp");sqlcon.Close();returnds.Tables["temp"];}catch{returnnull;}}〃执行数据的查询操作publicstaticSqlDataReaderExeRead(stringSql){try{Creatcon();Sqlmandsql=newSqlmand(Sql,sqlcon);SqlDataReaderread=sql.ExecuteReader(mandBehavior.CloseConnection);returnread;}catch{returnnull;}}publicstaticSqlDataReaderExeRead(stringSql,paramsSqlParameter[]param){try{Creatcon();Sqlmandsql=newSqlmand(Sql,sqlcon);foreach(SqlParameterparinparam){sql.Parameters.Add(par);}SqlDataReaderread=sql.ExecuteReader(mandBehavior.CloseConnection);returnread;}catch/32returnnull}}}}(2)d_Bind.csusingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Windows.Forms;//可引用windows中的控件usingSystem.Data;usingSystem.Data.SqlClient;namespaceThree.database{publicclassd_Bind{publicstaticSqlDataReaderBindboBox(strin

温馨提示

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

评论

0/150

提交评论