1、辽宁工业大学课程设计(论文)任务书院(系):软件学院 教研室: 软件工程 学 号 学生姓名 专业班级软件工程 班设计题目北京洗浴管理信息系统设计技术参数1 题目要达到的目标:完成系统的登陆、数据的插入删除修改统计等基本操作。2 数据库:SQLSERVER2000。3 所使用的语言、工具:VB6.0+ SQLSERVER2000+WINDOWSXP。4 所采用的技术、系统结构:ADO数据库联接技术,系统结构为C/S结构。设计要求1 教师布置实习任务和要求时,不得缺席,并做好记录。2 上机前预先把所有的源程序编写好。3 上机时不得迟到,不得缺席,爱护设备,认真调试程序。4 仔细查阅相关资料,认真完
2、成思考题。5 按要求书写设计任务书,并按要求按版打印,不得雷同。工作量二周工作计划周一听取教师布置设计的任务及要求。周二学生查阅相关资料,进行数据库设计。周三至周五:详细设计与界面设计。周一至周四程序设计与上机,调试源程序。周五书写课程设计任务书。参考资料数据库应用技术数据库应用技术实验指导书自编数据库应用技术课程设计指导书等自编指导教师评语该生在数据库系统概论课程设计期间:上机时不迟到,不缺席,爱护设备,认真调试程序。仔细查阅相关资料,认真完成作业。听从指导教师安排。在设计与实现过程中,能使设计的系统达到预期设计要求,功能合理,流程清楚,语句条理通顺。 变手写 教师: 学生:说明:此表一式四
3、份,学生、指导教师、教研室、系部各一份。可加附页。2011年 12 月 31 辽 宁 工 业 大 学 课 程 设 计 说 明 ( 计 算 )书 目录第一章 概述1第二章 问题定义2第三章 需求分析3第四章 数据库设计5第五章 界面设计10第六章 代码与注释12参考文献18第一章 概述在现实的社会中,小型洗浴公司或企业的管理还大多停留在人工管理日常业务运作的水平上,人们使用传统人工的方式管理业务文档,这种管理方式存在着许多缺点,如:效率低、易出错,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。企业开发洗浴管理系统,不仅能提高管理水平,给管理者提供一个企业运作的信
4、息平台还能提升企业的形象及增强竞争力。使用该洗浴管理系统能将洗浴业务管理和收银结算管理信息化,使企业从服务项目入库到客人点单消费再到消费结算都由计算机管理并记录,可随时掌握房间的使用状况,客人点单,结帐等情况,并能尽可能的降低使用者的劳动强度,同时提高工作质量和效率。在竞争越来越激烈的洗浴业中取得优势。根据洗浴企业的特点和实际情况,该系统以消费结算业务为基础,主要突出点单、结账。点单方面主要采取图形加数据的方式使用户能直观的管理数据信息,并能有效的管理各个包房与箱包,箱号点单信息也让用户一目了然;这里突出了重要的两点:一是:操作管理的信息准确无误,可让用户放心。二是:操作管理的速度快、管理方便
5、、实用性高。这里还提供了特殊的选项功能。服务项目与结算管理的有机结合,可为该经营方提供依据,为洗浴企业的发展提供保证第二章 问题定义本系统主要使用VB语言开发系统,VB语言具有简单易学的特性,把设计人员从繁琐复杂的界面设计中解脱出来。强大的多媒体功能可以轻而易举地开发出集声音、动画、和图像于一体的多媒体应用程序。数据库服务器选用SQL Server 2000数据库,它能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。而且VB语言与SQL Server 2000对系统的软硬件环境要求并不高。因此,系统的软件开发平台已成熟可行。主
6、要是对项目的经济效益进行评价,本系统的开发不需要额外的硬件设备,经费对于本学院是可以接受的,并且本系统实施后可以显著提高工作效率,有助于学院完全实现信息化管理。所以本系统开发在经济上是可行的。采用此系统,可以减轻管理人员的工作量,使管理人员从大量繁琐的添表、查表、手工制表中解放出来。能够节省大量的人力、物力,工作效率大大提高,预计查询速度可以比原人工查询提高几倍以上,并且可以大大提高准确性和精确性,而且可以安全地、完整地保存大量的设备记录。使设备的管理更加规范化,系统化。此项目虽然经济效益不是太大,但可以减轻工作人员的劳动强度,并可以促进企业对洗浴管理的规范化和自动化,而且价格低廉,所以是有应
7、用价值的,而且在技术上完全是可行的,可以马上进行开发工作。第三章 需求分析一、数据库需求分析北京洗浴管理信息系统内容涉及:箱号信息表、权限信息表、月消费信息表、日消费信息表、单据号表、包房信息表等。通过系统的设计使洗浴行业的管理人员方便、快速、准确的管理整个洗浴情况,减少手工管理的复杂性和易错性。本系统操作方便,有强大的提示功能。即使非计算机专业人员只要经过简单培训就能掌握系统的使用方法,减少培训和管理开支。而且系统具有智能化、可扩展性、集成有效性。本软件适合各种洗浴中心的管理工作提高洗浴管理工作的效率,减少不必要的开支。针对一般洗浴管理系统的需求,通过对客户洗浴过程的服务和数据流程分析,设计
8、数据项和数据结构。二、数据库概念的结构设计得到上面的数据想和数据结构以后,就可以设计出能满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。我所设计的实体有:包房信息实体、包房消费临时信息实体、单据号信息实体、员工信息实体、日消费信息实体、月消费信息实体、箱号信息实体。三、数据库的逻辑结构设计将概念转化为SQL Sever2000数据库系统。本系统采用SQL Server 2000 建立数据库,包括表:包房信息表、包房消费临时表、单据号表、员工信息表、日消费信息表、月消费信息表、箱号信息表等。四、数据字典(DD)
9、包房信息实体编号楼层房间号包房名称包房说明所属部门包房类型容纳人数状态包房价格消费单位分钟描述包房消费信息实体= 记录号房间号包房名称包房价格分钟描述箱号+所在大厅进入时间单据号信息实体= 单据编号单据名称员工信息实体=员工编号+员工姓名性别出生日期文化程度所属部门职务身份证号电话薪金日消费信息实体=记录号箱号所在大厅项目编号名称单位单价数量简称金额小计月消费信息实体=记录号箱号所在大厅项目编号名称单位单价数量简称金额小计箱号信息实体=记录号箱号所在大厅状态五、数据流图数据流图就是采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于
10、表示软件模型的一种图示方法。建立洗浴信息管理系统的数据流图。管理员洗浴管理信息系统用户 事务 处理图3.1顶层数据流图管理员1.1前台信息管理1.2总台服务管理1.3服务登记 2消费查询用户 D1 统计消费信息图3.2总台服务据流图六、功能结构图系统功能结构图主要从功能的角度描述了系统的结构,但并未表达各功能之间的数据传送关系。图3.3系统功能结构图第四章 数据库设计一、概念设计E-R图也即实体-联系图(Entity Relationship Diagram),提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。我所设计的实体有:包房信息实体、包房消费临时信息实体、单据号信息实体、
11、历史消费信息实体、员工信息实体、日消费信息实体、月消费信息实体、箱号信息实体。容纳人数消费单位包房信息实体包房价格部门编号楼层名称说明房间号单位描述类型状态图4.1包房信息实体E-R图单据号实体单据编号单据名称图4.2库存实体E-R图临时消费实体进入时间箱号房间号所在大厅记录号包房名称分钟描述包房价格图4.3包房临时消费实体E-R图员工信息实体员工编号性别出生日期员工姓名电话薪金文化程度身份正好文化程度图4.4客户信息实体E-R图箱号信息实体记录号状态所在大厅箱号图4.5 箱号信息实体E-R图日消费实体记录号编号名称所在大厅单位单价简称金额数量图4.6日消费实体E-R图月消费实体记录号编号名称
12、所在大厅单位单价简称金额数量图4.7月消费实体E-R图二、逻辑设计本系统采用SQL Server 2000 建立数据库,包括表:临时消费信息表、包房信息表、包房消费临时表、单据号表、历史消费信息表、员工信息表、日消费信息表、月消费信息表、箱号信息表。下面列出几个主要的数据库表设计:1.包房信息表主要记录了房间的容纳人数和名称,以便对各房间的管理。表4.1 包房信息表列名数据类型长度允许空编 号 varchar3主键楼 层varchar10不允许空房 间 号varchar10不允许空包房名称varchar30不允许空包房说明varchar50不允许空所属部门varchar30不允许空包房类型va
13、rchar30不允许空容纳人数Int4不允许空状 态varchar20不允许空现容纳人数Int4不允许空包房单价Money 8不允许空消费单位varchar10不允许空分钟描述int4不允许空2.包房临时消费信息表记录了各包房的临时消费信息。表4.2 包房临时消费信息表列名数据类型长度允许空记 录 号int4主键房 间 号varchar10不允许空包房名称varchar50不允许空包房价格Money8不允许空分钟描述Char10不允许空箱 号varchar10不允许空所在大厅varchar30不允许空进入时间Datetime10不允许空结束时间Datetime10不允许空消费时间Datetim
14、e10不允许空消费金额money8不允许空3.单据号信息表记录了单据的编号和名称信息。表4.3单据号信息表列名数据类型长度允许空单据编号char10主键单据名称char20不允许空4. 日消费信息表主要记录人员日消费的相应信息。表4.4 日消费信息表列名数据类型长度允许空记 录 号int8主键箱 号varchar10不允许空所在大厅varchar6不允许空项目编号varchar8不允许空名 称varchar50不允许空单 位varchar8不允许空单 价money50不允许空数 量int10不允许空简 称varchar25不允许空消费状态varchar10不允许空隐藏状态varchar8不允许
15、空登记时间Datetime 8不允许空折 扣float8不允许空金额小计money8不允许空消费单据号varchar30不允许空5.日消费信息表主要记录人员日消费的相应信息。表4.5月消费信息表列名数据类型长度允许空记 录 号int8主键箱 号varchar10不允许空所在大厅varchar6不允许空项目编号varchar8不允许空名 称varchar50不允许空单 位varchar8不允许空单 价money50不允许空数 量int10不允许空简 称varchar25不允许空消费状态varchar10不允许空隐藏状态varchar8不允许空登记时间Datetime 8不允许空折 扣float8
16、不允许空金额小计money8不允许空消费单据号varchar30不允许空6.员工信息表记录了各员工的基本信息。表4.6员工信息表列名数据类型长度允许空员工编号Char 10主键员工姓名Char16不允许空性 别Char10不允许空出生日期Datetime 8不允许空文化程度Char20不允许空所属部门Char10不允许空职 务Char30不允许空身份证号varchar30不允许空联系电话varchar10不允许空联系地址Char30不允许空聘用日期datetime30不允许空薪 金money20不允许空7.箱号信息表记录了箱号的编号和所在大厅等信息。表4.7箱号信息表列名数据类型长度允许空记
17、录 号Int 4主键箱 号varchar10不允许空所在大厅varchar30不允许空状 态varchar10不允许空三、物理设计要确定数据库的物理结构。确定数据库存储结构时要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。这三个方面常常是相互矛盾的,例如消除一切冗余数据虽然能够节约存储空间,但往往会导致检索代价的增加,因此必须进行权衡,选择一个折中方案。在关系数据库中,选择存取路径主要是指确定如何建立索引。例如,应把哪些域作为次码的建立次索引,建立单码索引还是组合索引,建立多少个为合适,是否建立聚集索引等。为了提高系统性能,数据应该根据应用情况将易变部分与稳定部分、经常存取部分和存取
18、频率较低部分分开存放。数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案,数据库设计人员必须对这些方案进行细致的评价,从中选择一个较优的方案作为数据库的物理结构。评价物理数据库的方法完全依赖于所选用的DBMS,主要是从定量估算各种方案的存储空间、存取时间和维护代价入手,对估算结果进行权衡、比较,选择出一个较优的合理的物理结构。如果该结构不符合用户需求,则需要修改设计。第五章 界面设计一、登陆窗口如下所示当输入用户名和密码以后,点击“确认”键,如果用户名和密码都正确就可以顺利进入主窗体,如果输入错误,那么就有相应的提示信息。如图7.2所示。图5.
19、1登陆界面二、主界面单击主界面上的各个按钮,可以进入相应的界面中。图5.2主程序界面三、权限界面设计图5.3权限管理界面四、包房信息管理界面此界面对包房信息的添加、删除、修改和查询等操作。图5.4包房信息管理界面第六章 代码与注释一、登录代码所编代码如下:Dim MESSAGE As String 定义一个字符串变量 按操作员名称查询权限信息 Adodc1.RecordSource = select * from 权限信息表 where 操作员名称 = + Trim(czy.Caption) + Adodc1.Refresh 假如czy.caption不等于空并且text1.text等于数据库
20、中的密码,那么 If czy.Caption And Text1.Text = Trim(Adodc1.Recordset.Fields(密码) Then 设置操作员权限 If Adodc1.Recordset.Fields(基本信息管理) = 0 Then frm_main.jbxxgl.Enabled = True Else frm_main.jbxxgl.Enabled = False If Adodc1.Recordset.Fields(前台信息管理) = 0 Then frm_main.qtxxgl.Enabled = True frm_main.Toolbar1.Buttons(1
21、).Enabled = True frm_main.Toolbar1.Buttons(3).Enabled = True frm_main.Toolbar1.Buttons(5).Enabled = True Else frm_main.qtxxgl.Enabled = False frm_main.Toolbar1.Buttons(1).Enabled = False frm_main.Toolbar1.Buttons(3).Enabled = False frm_main.Toolbar1.Buttons(5).Enabled = False End If If Adodc1.Record
22、set.Fields(后台信息管理) = 0 Then frm_main.htxxgl.Enabled = True frm_main.Toolbar1.Buttons(7).Enabled = True Else frm_main.htxxgl.Enabled = False frm_main.Toolbar1.Buttons(7).Enabled = False End If If Adodc1.Recordset.Fields(经理查询系统) = 0 Then frm_main.jlcxxt.Enabled = True frm_main.Toolbar1.Buttons(9).Enab
23、led = True frm_main.Toolbar1.Buttons(11).Enabled = True Else frm_main.jlcxxt.Enabled = False frm_main.Toolbar1.Buttons(9).Enabled = False frm_main.Toolbar1.Buttons(11).Enabled = False End If If Adodc1.Recordset.Fields(系统维护) = 0 Then frm_main.xtwh.Enabled = True frm_main.Toolbar1.Buttons(13).Enabled
24、= True Else frm_main.xtwh.Enabled = False frm_main.Toolbar1.Buttons(13).Enabled = False End If 调入frm_main主窗体 Load frm_main frm_main.Show frm_main.St1.Panels(3).Text = czy.Caption frm_main.St1.Panels(3).Text Unload MeElse 输入三次错误的密码,系统自动退出 If TIM = 3 Then MESSAGE = MsgBox(密码输入错误,请向系统管理员查询!, 0, 系统提示) I
25、f MESSAGE = vbOK Then End End If If czy.Caption = Then MsgBox 请选择操作员!, , 系统提示 ListView1.SetFocus ListView1获得焦点 Else If Text1.Text Adodc1.Recordset.Fields(密码) Then MsgBox 密码错误,请重新输入密码!, , 系统提示 TIM = TIM + 1 记录输入次数 Text1.SetFocus text1获得焦点 End If End If End IfEnd Sub二、主界面代码Private Sub Form_Load() 在标题栏
26、上显示软件名称与版本 Me.Caption = App.Title & 版本: V & App.Major & . & App.Minor & . & App.RevisionEnd SubPrivate Sub bfxxgl_Click() 调入包房信息管理窗口 Load main_jbxx_bfxxgl main_jbxx_bfxxgl.Show frm_main.Enabled = FalseEnd SubPrivate Sub xhxxgl_Click() 调入箱号信息管理窗口 Load main_jbxx_xhxxgl main_jbxx_xhxxgl.Show frm_main.E
27、nabled = FalseEnd SubPrivate Sub fwxmgl_Click() 调入服务项目管理窗口 Load main_jbxx_fwxmgl main_jbxx_fwxmgl.Show frm_main.Enabled = FalseEnd SubPrivate Sub ygxxgl_Click() 调入员工信息管理窗口 Load main_jbxx_yginf main_jbxx_yginf.Show frm_main.Enabled = FalseEnd SubPrivate Sub ztfwgl_Click() 调入总台服务管理窗口 Load main_qtgl_zt
28、fwgl main_qtgl_ztfwgl.Show frm_main.Enabled = FalseEnd SubPrivate Sub jzsygl_Click() 调入结帐收银管理窗口 Load main_qtgl_jzgl main_qtgl_jzgl.Show frm_main.Enabled = FalseEnd SubPrivate Sub drxfcx_Click() 调入当日消费查询窗口 Load main_qtgl_drxfcx main_qtgl_drxfcx.Show frm_main.Enabled = FalseEnd SubPrivate Sub rjsgl_Cl
29、ick() 调入日结算管理窗口 Load main_qtgl_rjgl main_qtgl_rjgl.Show frm_main.Enabled = FalseEnd SubPrivate Sub yjsgl_Click() 调入月结算管理窗口 Load main_htgl_yjgl main_htgl_yjgl.Show frm_main.Enabled = FalseEnd SubPrivate Sub ztfwcx_Click() 调入总台服务查询窗口 Load main_jlcx_ztfwcx main_jlcx_ztfwcx.Show frm_main.Enabled = False
30、End SubPrivate Sub drjzcx_Click() 调入当日结帐查询窗口 Load main_jlcx_drjzcx main_jlcx_drjzcx.Show frm_main.Enabled = FalseEnd SubPrivate Sub yyyfx_Click() 调入月营业分析窗口 Load main_jlcx_yyyfx main_jlcx_yyyfx.Show frm_main.Enabled = FalseEnd SubPrivate Sub czysz_Click() 调入操作员设置窗口 Load main_xtwh_czysz main_xtwh_czys
31、z.Show frm_main.Enabled = FalseEnd SubPrivate Sub klsz_Click() 调入口令设置窗口 Load main_xtwh_klsz main_xtwh_klsz.Show frm_main.Enabled = FalseEnd SubPrivate Sub qxsz_Click() 调入权限设置窗口 Load main_xtwh_qxsz main_xtwh_qxsz.Show frm_main.Enabled = FalseEnd SubPrivate Sub sjbf_Click() 调入数据备份窗口 Load main_sjbf mai
32、n_sjbf.Show Unload MeEnd SubPrivate Sub exit_Click() EndEnd SubPrivate Sub Timer1_Timer() 设置时间 St1.Panels(1).Text = Format(Date, long date) & & TimeEnd Sub三、权限设计界面代码If Text1.Text Then If DataList1.BoundText Then 按操作员名称查询权限信息 txtSQL = select * from 权限信息表 where 操作员名称= & DataList1.BoundText & Set rs1 =
33、 ESQL(txtSQL) If rs1.RecordCount 0 Then 当记录大于零时 For i = 0 To 4 当Check1(i)的值为1时,数据库字段值为0,否则数据库字段值为1 If Check1(i).Value = 1 Then rs1.Fields(i) = 0 Else rs1.Fields(i) = 1 Next i rs1.Update 更新记录 End If End If MsgBox 设置权限已完成! Else MsgBox 请选择操作员! End If四、包房信息管理界面代码Private Sub ComSave_Click() 保存包房信息 txtSQL
34、 = select * from 包房信息表 where 编号= & Trim(Text1(0).Text) & order by 编号 Set rs1 = ESQL(txtSQL) If rs1.RecordCount 0 Then 当记录大于零时 Dim a As String 定义字符串变量 a = MsgBox(您确实要修改这条数据吗?, vbYesNo) If a = vbYes Then If Text1(12).Text = Or Text1(12).Text = 0 Then MsgBox (分钟描述不正确,请输入大于0的数据!) Exit Sub End If If Text
35、1(10).Text = Then MsgBox (请输入包房价格!) Exit Sub End If 赋值给数据库字段 rs1.Fields(编号) = Text1(0).Text: rs1.Fields(楼层) = Text1(1).Text rs1.Fields(房间号) = Text1(2).Text: rs1.Fields(包房名称) = Text1(3).Text rs1.Fields(包房说明) = Text1(4).Text: rs1.Fields(所属部门) = Combo1.Text rs1.Fields(包房类型) = Combo2.Text: rs1.Fields(容纳
36、人数) = Val(Text1(5).Text) rs1.Fields(状态) = Combo5.Text: rs1.Fields(现容纳人数) = Val(Text1(9).Text) rs1.Fields(包房价格) = Val(Text1(10).Text): rs1.Fields(消费单位) = Text1(11).Text rs1.Fields(分钟描述) = Val(Text1(12).Text) rs1.Update 更新记录集 Adodc1.Refresh End If Else If Text1(0).Text = Then MsgBox (请输入编号!) Exit Sub
37、End If If Text1(1).Text = Then MsgBox (请输入楼层!) Exit Sub End If If Text1(2).Text = Then MsgBox (请输入房间号!) Exit Sub End If If Text1(3).Text = Then MsgBox (请输入包房名称!) Exit Sub End If If Text1(4).Text = Then MsgBox (请输入包房说明!) Exit Sub End If If Text1(10).Text = Then MsgBox (请输入包房价格!) Exit Sub End If If Te
38、xt1(12).Text = Or Text1(12).Text = 0 Then MsgBox (分钟描述不正确,请输入大于0的数据!) Exit Sub End If rs1.AddNew 添加包房信息 赋值给数据库字段 rs1.Fields(编号) = Text1(0).Text: rs1.Fields(楼层) = Text1(1).Text rs1.Fields(房间号) = Text1(2).Text: rs1.Fields(包房名称) = Text1(3).Text rs1.Fields(包房说明) = Text1(4).Text: rs1.Fields(所属部门) = Combo1.Text rs1.Fields(包房类型) = Combo2.Text: rs1.Fields(容纳人数) = Val(Text1(5).Text) rs1.Fields(状态) = Combo5.Text: rs1.Fields(现容纳人数) = Val(Text1(9).Text) rs1.Fields(包房价格) = Val(Text1(10).Text): rs1.Fields(消费单位) = Text1(11).Text rs1.Field
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922