目录1 概述 (1)1.1 选题背景 (1)1.2 系统环境 (1)2 系统分析 (2)2.1 系统目标需求 (2)2.2开发的可行性分析 (3)2.2.1管理上的可行性 (3)2.2.2技术上的可行性 (3)2.2.3经济上的可行性 (3)2.3 业务流程分析 (3)2.4 数据流程 (5)2.5 数据字典 (5)3 系统设计 (8)3.1平台设计 (8)3.2软件总体结构设计 (8)3.2.1功能结构图 (8)3.2.2模块说明书................................................. . (9)3.3 代码设计 (12)3.4 数据库设计 (12)3.4.1 E-R图 (12)3.4.2 数据表设计 (13)3.5 界面设计 (16)3.5.1 网站首页界面 (16)3.5.2 用户注册界面 (17)3.5.3 购物主界面................................................. . (18)3.5.4 查看购物车界面 (19)3.5.6 后台管理首页 (21)3.5.9 后台管理其它界面 (24)3.6 系统安全设计 (24)4系统实施 (25)4.1 数据库的实施 (25)4.2 程序实现 (25)4.2.1 系统类的编写 (25)4.2.2 系统程序的实现 (28)5 结束语 (40)参考文献1 概述1.1 选题背景酒店业是一个前景广阔而又竞争激烈的行业,随着我国加入世界贸易组织,酒店住宿业与国际市场接轨,酒店要面临这次挑战,就必须提高整体竞争力。
就目前而言,现代化的酒店组织庞大,服务项目多,信息量大,要想提高劳动生产,降低成本,提高服务质量和管理水平,进而促进经济效益,必须借助计算机进行现代化的信息管理,酒店信息管理系统正是为此而设计的。
酒店管理系统按照国家星级酒店标准化程序流式设计。
优秀的酒店客房信息管理系统以酒店的经济效益为标准,为酒店管理人员和员工提供了简单易用、功能强大并高度灵活的应用工具。
社会上也成立了各种类型不同规模的酒店服务企业,如何为客户提供更加有效而更加及时的服务,则成为各个酒店竞争的关键。
故此进行的一系列的改革,带来巨大的经济效益。
1.2 系统环境本系统是基于运用电子商务网站运营模式的系统,通过对酒店信息系统的具体分析,我们小组经过多方讨论,设计这个系统。
此次设计是模拟并建立一个酒店信息管理系统,实现信息化。
这次设计我们主要运用了powerbuilder软件,辅助运用SQL语言操作后台数据库,在遵循软件开发的全过程,在做需求分析的时候查询了很多有关资料,熟悉酒店的业务流程和管理。
在安全性方面,通过数据库的权限管理技术吗,实现系统的灵活性和系统的安全性。
管理者可以通过修改密码来进行用户的后台管理,而用户则可以通过注册登录进行前台操作,查询酒店信息管理的有关资料,进行一系列的操作并被提供相应的服务。
2 系统分析2.1 系统目标需求酒店信息管理系统是一个基于电子商务经营模式的系统,开发并拥有前后台的信息化管理系统。
通过先进的PB技术,实现智能订房和点餐等功能。
对于酒店管理者可以实现台号管理,客房管理和餐饮管理,节约了大量的人力和财力,加强了酒店的现代化管理和高效服务。
酒店的日常管理中所涉及到的大量数据都是由数据库管理系统管理的。
结合数据库实现酒店管理中各个方面的添加、修改、删除等操作,降低了成本,实现了自动化管理。
2.2 开发的可行性分析2.1.1 管理上的可行性酒店信息系统是基于电子商务经营模式的管理系统,可以在网上进行预订,客户可以在网上进行浏览酒店对外信息,从而进行预订一系列的商务活动。
而该系统很多数据都是依靠数据库进行管理的,进而人员分工简单。
2.1.3 经济上的可行性从酒店信息系统开发的长远性角度来看,投资是可回收的,本系统是基于powerbuilder的管理系统,成本小,节省了用户和相应员工的时间,提高了工作效率,促进了经济成本效益。
而其数据库的安全性实用性满足了酒店管理系统的设计要求可达到系统设计的目标。
而且,目标系统并不复杂,开发周期短,人员经济支出有限,对酒店的灵活管理有了很大的提升,有利于提高酒店的运营和服务的效率,其开发前景良好,并能带来很好的经济效益。
2.1.2 技术上的可行性开发工具简单,本系统仅用powerbuilder技术并以SQL数据库技术为辅,可以模拟设计酒店的信息管理系统,而这学期我们都学过PB技术,故既可以巩固也可以熟练掌握此技术。
2.3 业务流程分析客户可以在进入酒店主页时先进行注册,然后以网站用户的身份浏览酒店主页。
用户可以先浏览酒店的历史简介,了解酒店的基本信息,然后进行预订客房或者餐饮,填写订单,并支付一部分的定金。
也可以在浏览后或者在居住后在留言板上发表自己的意见。
这些属于系统的前台部分。
而客户在进行注册用户后的信息则会储存在系统后台,也包括订单信息和留言板信息。
管理员可以通过修改密码进入后台查询客户的信息,以及客房和餐饮的信息等,也可以对留言板信息进行查询、修改和删除操作。
主要业务流程如图2-1所示2.4 数据流程2.5 数据字典表2-1 数据元素描述(部分)表2-2 数据流描述(部分)表2-3 数据存储描述(部分)表2-4 数据结构描述(部分)表2-5 处理逻辑描述(部分)3 系统设计3.1平台设计表3-1 系统平台设计3.2 软件总体结构设计3.2.1功能结构图图3-1 功能图3.2.2 模块说明书“餐饮管理”模块说明书3.3 代码设计为使员工工作简单方便,酒店便于管理,系统中对订单编号进行了代码设计,达到系统自动编码,为此编码采用了层次码加顺序码,层次码表示酒店编号、客房号、餐饮号、月、日,顺序码则表示订单形成的先后次序。
编号的顺序码采用三位。
代码模型如图3-3所示。
订单编号顺序号日月餐饮号客房号酒店编号3.4 数据库设计3.4.1 E-R图系统中主要涉及到的实体有“管理员”、“用户”、“商品”、“图片”、“购物车”、“公司”、“公告”、“订单”、“留言板”。
实体与实体之间的联系如图3-4所示。
图3-4系统E-R图3.4.2数据表设计表3-2(客户信息表)表3-2 (食物订单)表3-2 (管理员表)3.5界面设计系统界面风格基本一致,本着方便用户宗旨,在页面的设计上趋向于人性化,易于操作,简单大方:﹡界面清晰明了、协调一致,同样功能用同样的图形﹡有清楚的错误提示,误操作后,系统提供有针对性的提示﹡使用用户的语言,而非技术的语言,便于用户知道﹡方便退出,随时转移界面,很容易从一个界面跳到另外一个界面﹡让用户知道自己当前的位置,使其做出下一步行动的决定﹡设定帮助栏,方便用户使用3.5.1 网站首页界面此界面为“酒店入住管理系统”首页界面,其“酒店简介”是供用户操作,“管理员登录”是由酒店内部人员操作。
3.5.1 用户登录、注册界面点击“酒店简介”3.5.2用户注册界面3.6系统安全设计主要针对提高数据的安全保密性方面而言:﹡对系统中的数据库定义访问权限。
如对由某用户产生的数据,该用户对它具有操作权限,其他用户只有读权或无访问权。
而管理员则通过修改密码进行系统操作。
﹡对软件的功能模块定义不同的操作权限,不同的级别,提供不同的操作。
﹡提供数据备份及恢复功能,以防系统遭到严重危害后,可恢复到较早前的状态。
﹡系统有密码维护功能,用户在丢失密码的情况下,可以通过手机号绑定找回密码。
4 系统实施4.1程序实现在应用程序的open()事件里进行数据库连接配制:// Profile JdSQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "Connectstring='DSN=jd'"connect using sqlca;if sqlca.sqlcode <> 0 thenmessagebox("提示","连接错误!")end ifopen(w_main)4.2.1 系统类的编写4.2.1.1 系统用户登录窗口的编写用户登录窗口的【确定】按钮代码如下:int istring username,passwordusername=trim(sle_1.text)password=trim(sle_2.text)select count(*)into :ifrom zcwhere username=:username and password=:password;if i=1 thenopen(w_zhuye)close(parent)elsemessagebox("提示","用户名,密码错误!")sle_1.text=""sle_2.text=""sle_1.setfocus()end if用户注册界面中确定按钮的代码:string as,bs,csint iselect count(*)into :ifrom zc;as= trim(sle_1.text)bs=trim(sle_2.text)cs=trim(sle_4.text)if as=""or bs="" or cs=""thenmessagebox("信息不全","请输入完整的信息!") elseinsert into zcvalues(:sle_1.text,:sle_2.text,:sle_4.text); messagebox("提示","注册成功!")open(w_login)close(parent)end if用户修改密码中确定按钮的代码:String as,bs,cs,dsas=Trim(sle_1.text)bs=Trim(sle_2.text)cs=Trim(sle_3.text)ds=Trim(sle_4.text)int iselect count(*)into :ifrom zcwhere username=:as and password=:bs;if i=1 thenif as="" or bs="" or cs="" or ds="" then messagebox("提示","请输入完整的数据")elseif cs <> ds thenmessagebox("提示","你的新密码与确认密码不一致,请重填!") sle_3.text=""sle_4.text=""elseupdate zc Set password=:cs where username=:as;messagebox("提示","密码修改成功")open(w_login)close(parent)end ifend ifelsemessagebox("提示","用户名或密码错误");end if用户预定查询中确定按钮的代码:dw_1.settransobject(sqlca)string ls_1string ls_2ls_1=trim(sle_1.text)ls_2=trim(sle_2.text)if ls_1="" or ls_2="" thenmessagebox("数据不全","请输入完整的数据!")elsedw_1.retrieve(ls_1,ls_2)end ifsle_1.setfocus()预定房间界面中确定按钮的代码:string a1,a2,a3,a4,a5int iselect count(*)into :ifrom dd;a1=trim(sle_1.text)a2=trim(sle_2.text)a3=trim(ddplb_1.text)a4=trim(sle_3.text)a5=trim(sle_4.text)if a1="" or a2="" or a3="" or a4="" or a5="" thenmessagebox("信息不全","请输入完整的信息!")elseinsert into ddvalues(:sle_1.text,:sle_2.text,:ddplb_1.text,:sle_3.text,:sle_4.text);open(w_zhuye)close(parent)end if留言板中提交按钮的代码:String Str,nint m,i,pp=0m=1do until p=100select count(*)into :ifrom lybwhere id=:m;if i=1 thenm=m+1end ifp=p+1loopn=String(m)if mle_1.text="" thenmessagebox("提示","请填写留言内容");elseStr="insert into lyb(id,liu,dater) values('"+n+"','"+mle_1.text+"','"+sle_1.text+"');"execute immediate :Str ;messagebox("提示","保存成功...")mle_1.text=""end if留言板管理中显示按钮的代码:dw_1.settransobject(sqlca)string ls_1ls_1=trim(sle_1.text)if ls_1="" thenmessagebox("数据不全","请输入完整的数据!")elsedw_1.retrieve(ls_1)end ifsle_1.setfocus()5 结束语经过长达两个星期的学习和努力,我们组终于完成了本次上机实习,从一开始的没有目标,到现在的实习完成,我们是经过多次的讨论和修改,每个成员都有付出。