成绩 课程设计报告 题 目 酒店财务管理系统 课 程 名 称 数据库课程设计 院 部 名 称 信息技术学院 专 业 计算机科学与技术 班 级 08计算机科学与技术班 学 生 姓 名 学 号 课程设计地点 工科楼 课程设计学时 指 导 教 师 金陵科技学院教务处制 设计项目名称:
酒店财务管理系统 学时:
30 同组学生姓名:
实验地点:工科楼 实验日期:18周——19周(星期二)2010.12.28_—2011.1.07 实验成绩:
批改教师:
批改时间:
目 录 摘 要 5 一、课程设计目的和要求 6 二、课程设计的仪器和设备 6 三、课程设计过程 6 1.需求分析阶段 6 1.1应用背景 6 1.2系统可行性分析 7 1.3系统的设计目标 7 1.4系统设计概要 8 1.5具体系统的业务过程及功能要求 8 1.6数据流程 9 2.概念结构设计阶段 17 3.逻辑结构设计阶段 20 4.物理结构设计阶段 22 5.数据库实施 23 5.1 Create Database创建数据库 23 6. Visual Studio界面设计及程序代码设计 26 6.1Visual Studio 2005简介 26 6.2 Visual Studio系统的菜单结构图 27 6.3本系统模块以及详细说明 29 7. 数据库运行维护 31 7.1系统运行维护 31 7.2系统维护的步骤 32 7.3 数据库备份 34 7.4系统测试及出现的问题 34 7.5系统存在的不足 37 实验体会 38 参考文献 39 附录 40 用户系统使用说明书 45 摘 要 客房管理的信息化程度体现在将计算机及网络与信息技术应用于经营与管理,以现代化工具代替传统手工作业。无疑,使用网络信息化管理使客房管理更先进、更高效、更科学,信息交流更迅速。
酒店管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。本库存管理信息系统的一些基本功能和组成情况包括系统的需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行维护等。
本系统主要的模块有:基础资料维护、运营管理、财务管理、系统管理 本课题采用微软公司的Visual Studio开发工具,利用其提供的各种面向对象的开发工具,是能方便而简洁操纵数据库的智能化对象,短期内就可以开发出用户满意的可行系统,在开发方法上使用生命周期法。
关键词:酒店财务管理;
数据库;
管理信息系统;
Visual Studio2005;
SQL SERVER 2005 一、课程设计目的和要求 课程设计是为了增强学生对所学课程的理解,学会综合地、灵活地运用所学课程知识的一个重要的实践环节。
本课程设计是应用C#程序设计语言进行数据库应用系统的开发,用MS SQL SERVER进行后台数据库的管理,编写出某一个小型的管理信息系统。
通过本课程设计可以达成如下目标:
1、能够自觉运用数据库原理的理论知识指导软件设计;
2、学会数据库的设计,并能对设计结果的优劣进行正确的评价;
3、学会如何组织和编写信息系统软件设计文档和软件系统的操作说明;
4、具有一定的独立分析问题、解决问题的能力;
5、掌握SQL Server数据库在信息系统开发过程中的应用。
6、掌握使用C#访问后台数据库的方法。
二、课程设计的仪器和设备 586 以上计算机、Server要求内存256以上,Cpu 2.0GHz以上.Clinet内存128以上,cpu奔腾III以上,装有相关数据库软件(本系统后台数据库是SQL 2005)和 Visual Studio2005以上中文版软件。该软件可以在WIN98﹑WIN2000、WIN XP等系统中运行。
三、课程设计过程 本实验根据数据库设计的六个步骤来设计的,即需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行维护。
酒店财务管理系统 1.需求分析 1.1背景和意义 酒店财务管理系统是一个与外界进行物资,资金,信息交换的开放系统。酒店一切经营活动的目的都是 为了盈利。一个企业离开了盈利,它就无法生存下去。财务部在酒店的经营活动中负责收集、记录、分类、总括、分析货币交易以及由此而得出的结果和结论,向管理者提供经营资料,供总经理进行经营决策。通过财务部门进行有效的管理,能使酒店的经营活动获得更大的经济效益,从而促进企业不断向前发展。
客房管理的信息化程度体现在将计算机及网络与信息技术应用于经营与管理,以现代化工具代替传统手工作业。无疑,使用网络信息化管理使客房管理更先进、更高效、更科学,信息交流更迅速。酒店客房管理系统是酒店经营管理中不可缺少的部分,它的内容对于经营的决策者和管理者来说都至关重要,所以客房管理系统、信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多弊端,如:效率低、保密性差,容易出现差错等,且对于查询空房间及已定房间等极为不方便。在当今时代,这些完全可以改用计算机来代替人的手工操作。作为计算机及网络应用的一部分,使用计算机对客房信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高客房经营管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。且办事效率也是决定收入的一个关键因素。
1.2系统可行性分析 本系统从以下三个方面进行分析:
1.2.1技术可行性 酒店财务管理数据庞大,酒店财务管理系统就是为了提高酒店管理的效率,让经营过程可见。本学期刚学习了数据库,对设计数据库系统设计过程有了初步了解,经过调研与讨论功能模块成型,利用学过的C#语言进行编程。所以技术方面是完全可以的。
1.2.2经济可行性 成本方面:基本无需成本,开发人员免费,资料图书馆提供,开发环境免费,不仅如此,本系统大大降低了管理成本,空出了人力,操作简单,加强了安全性,交流性 ,经济效益好。
1.2.3操作可行性 本系统是为酒店开发的,所有本软件的用户对象是酒店的工作人员,由于本软件要设计友好的界面,写出详细的使用说明,用户只需懂得简单的计算机操作知识,就能自由应用本软件。
结论:经分析本系统满足以上几个方面的要求,所以开发本系统是完全可行的。
1.3系统的设计目标 系统开发的总目标是实现酒店财务的规范化管理,使业务管理简单化、经济效益最大化。
1.4系统概要设计 酒店管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。本库存管理信息系统的一些基本功能和组成情况包括系统的需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行维护等。本系统以SQL SERVER 2005作为后台,以C#为编程语言来开发。
酒店财务管理系统主要对酒店涉及财务的各个部门的业务,包括餐饮部、采购部和客房部的金额进行管理,做到方便快捷、正确无误,为酒店管理人员的工作带去便捷。除了对该系统进行操作外,对于系统的维护也是很重要的,有了有效的维护功能,系统才能长期有保证的运行。
1.5具体系统的业务过程 通过对酒店财务管理业务的实际调查分析,弄清了该酒店管理工作的业务流程和管理功能。
1.5.1系统的业务流程图如下所示:
图1.5.1-1登录流程图 图1.5.1-2采购业务流程图 图1.5.1-3客房业务流程图 1.6数据流程及模块功能要求 1.6.1系统功能模块总图如图所示:
图1.2 财务管理系统的基本功能模块 1.6.1.1基础资料维护模块 子模块图:
图1.3基础资料维护模块 功能概述:
1.系统管理员可通过该模块,查看、增添、修改、删除酒店相关信息,信息包括员工基本信息、会员基本信息、餐饮菜单信息、客房信息。
2.未授权人员禁止对信息进行任何操作。
3.具备预防加错、改错、删错功能。
1.6.1.2运营管理 子模块图:
图1.4运营管理模块 功能概述:
1.各部门业务发生的流水账号自动生成,其编码方案为:部门编号(1位)+日期(8位)+顺序号(2位),并将该编码方案在系统中固定下来,不允许用户选择;
2.管理员可参与任何部门的业务,本部门人员只可登陆本部门的界面、进行本部门业务;
3.各部门根据业务情况填写业务凭证,并可对各部门的业务金额进行统计;
4.会员在餐饮和客房的消费金额计入其消费总额。
1.6.1.3财务分析 子模块图:
图1.5财务分析模块 功能概述 1.管理员可选查某日的各部门的详细收入和支出情况以及总收益;
2.管理员可查询会员的消费总额;
3.管理员可随时查询各时间段内各部门的收支情况和总收益。
1.6.1.4系统管理 子模块图:
图1.6系统管理模块 功能概述 1.管理员和各部门员工可通过该模块修改登录密码;
2.管理员可进行数据的备份和还原来预防故障造成的数据丢失。
1.6.2数据流程图 现行系统的第一层数据流图如图(1.6.2.1)所示 图1.6.2.1第一层数据流图 第二层数据流图如图(1.6.2.2)--(1.6.2.4)所示:
图1.6.2.2客房消费数据流图 图1.6.2.3餐饮消费数据流图 图1.6.2.4采购数据流图 1.6.3系统的数据字典 1.6.3.1数据流的描述 数据项名 数据类型 长度 说明 姓名 nchar() 10 客人的名称、员工的名称 性别 nchar() 2 客人的性别、员工的性别 联系方式 nchar() 11 客人的电话号码 身份证号 nchar() 18 客人的身份证号 客房类型 nchar() 10 客人想要入住的客房的类型 客房编号 nchar() 10 客人最终入住的客房编号 入住天数 smallint 4 客人预期的入住天数 入住日期 smalldatatime 10 客人入住的日期 预付金额 smallmoney 8 客人入住酒店时的预付金额 单价 smallmoney 8 客房的单价、餐饮的单价、采购物品的单价 客房消费总额 smallmoney 10 等于客人入住客房的单价乘以入住天数 折扣 float 3 会员的折扣 实收金额 smallmoney 10 客人消费的实际缴费 结账日期 smalldatatime 10 客户结账的日期 餐饮数量 smallint 2 客人的点餐数量 餐饮名 nchar() 10 客人点餐的餐名 餐饮消费总额 smallmoney 10 客人消费的各餐饮乘以数量的总和 桌号 smallint 2 客人吃饭时的桌号 职工号 nchar() 4 员工的职工号 物品名称 nchar() 10 采购物品的名称 采购数量 smallint 4 采购物品的数量 采购日期 smalldatatime 10 采购发生的日期 采购总额 smallint 10 采购物品乘以数量的总和 数据存储 名称:Gust_Room_Table 别名:客房表 简述:存储酒店客房的相关信息 组成:
编号、所属类型编号、名称、单价、标识、备注 关键字:编号 相关处理:
管理员可对该表进行增添、修改、删除、查看 名称:VIP_Information_Table 别名:会员信息表 简述:存储酒店的会员的相关信息 组成:
编号、姓名、性别、身份证号、联系方式、消费总额、折扣 关键字:编号 相关处理:管理员可对该表进行增添、修改、删除、查看 名称:Check_In_Table 别名:入住登记表 简述:存储客人入住客房时的相关信息 组成:
流水账号、入住客房编号、客人姓名、性别、身份证号、联系方式、入住日期、入住天数、预付金额、总额 关键字:流水账号 相关处理:
当入住发生时进行增添 名称:Gust_Room_In_Out_Table 别名:客房消费表 简述:存储客人客房入住的消费总额等信息 组成:
流水账号、日期、总额 关键字:流水账号 相关处理:
入住业务发生后进行增添 名称:Eating_consumer_Table 别名:餐饮消费表 简述:存储客人客房入住的餐饮消费总额等信息组成:
关键字:流水账号、日期、总额 相关处理:餐饮消费发生后进行增添 名称:Procure_Menu_Table 别名:采购物品单 简述:存储采购物品的相关信息 组成:
编号、名称、单价、供应商 关键字:编号 相关处理:管理员可对该表进行增添、修改、删除、查看 名称:Procure_Comsume_Table 别名:采购消费表 简述:存储采购总额等信息 组成:
流水账号、采购人员编号、日期、总额 关键字:流水账号 相关处理:
当采业务发生时进行增添、修改 2.概念结构设计阶段 本系统的E-R图如图2-1所示:
图2-1总E-R图 以下是分E-R图 图2-2采购 E-R图图 图2-3餐饮 E-R图 图2-4入住E-R图 由以上E-R图可得该系统关系模式如下:
客人 (身份证号、客房编号、联系方式、性别、姓名)
入住 (流水账号、预付金额、入住天数、日期、总额)
客房 (客房编号、名称、单价、标识、备注)
客房类型(客房类编号、客房编号、名称、备注)
消费项(编号、名称、单价、类型)
消费(流水账号、编号、金额、时间、桌号)
员工(员工编号、姓名、性别、年龄、ID、联系方式、所属部门、职位、基本工资、聘入时间)
物资(流水号、总额)
采购(日期、员工编号、流水号、数量)
采购项(编号、流水号、名称、单价、供应商)
3.逻辑结构设计阶段 把系统的E-R图转换成数据库模式如下(下列关系模型中标有黄色钥匙状的为主码):
表3.1 登录表 表3.2入住表 表3.3 餐饮消费表 表3.4入住消费表 表3.5客房表 表3.6菜单表 表3.7订餐表 表3.8采购消费表 表3.9 员工信息表 表3.11 VIP信息表 表3.12 酒店收支表 4.物理结构设计阶段 数据库在物理设备上的存储结构与存取方法称为数据库的物理结构,它依赖于选定的数据库管理系统。为一个给定的逻辑数据模型选取一个最适合的应用要求的物理结构的过程,就是数据库的物理设计。
数据库的物理设计通常分为两步:
(1)
确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;
(2)
对物理结构进行评价,评价的重点是时间和空间的效率。
4.1关系模式存取方法的选择 确定数据库的存取方法,就是确定建立哪些存储路径以实现快速存取数据库中的数据。现行的DBMS一般都提供了多种存取方法,如索引法、HASH法等。其中,最常用的是索引法,本系统也采用的是索引法。我们在经常需要搜索的列和主关键字上建立了唯一索引。
4.2确定数据库的存储结构 由于不同PC机所安装的数据库软件位置不一定相同,所以数据文件与日志文件的存放位置也不一定相同。一般的,我们存放数据文件与日志文件的位置在:F:\ 酒店财务管理系统DB\kcgl_data。
5.数据库实施 5.1 Create Database创建数据库 --创建数据库db_Proverty_manager CREATE DATABASE db_Proverty_manager GO USE db_Proverty_manager GO 5.2 Create Table创建表 创建入住表 CREATE TABLE [dbo].[Check_In_Table入住表] ( [cnum] [nchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL, [grno] [nchar](20) COLLATE Chinese_PRC_CI_AS NULL, [name] [nchar](4) COLLATE Chinese_PRC_CI_AS NULL, [id] [nchar](20) COLLATE Chinese_PRC_CI_AS NULL, [sex] [nchar](2) COLLATE Chinese_PRC_CI_AS NULL, [tel] [nchar](20) COLLATE Chinese_PRC_CI_AS NULL, [days] [smallint] NULL, [chindate] [smalldatetime] NULL, [ppd] [smallint] NULL, CONSTRAINT [PK_Check_In_Table] PRIMARY KEY CLUSTERED ) 创建餐饮消费表 CREATE TABLE [dbo].[Eating_consumer_Table餐饮消费表] ( [enum] [nchar](15) COLLATE Chinese_PRC_CI_AS NOT NULL, [tableno] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL, [date] [smalldatetime] NULL, [total] [decimal](8, 2) NULL, [price] [decimal](8, 2) NULL, [VIPno] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL, [discount] [float] NULL, CONSTRAINT [PK_Eating_consumer_Table餐饮消费表] PRIMARY KEY CLUSTERED ) 创建登录表 CREATE TABLE [dbo].[Enter_Table] ( [staffno] [nchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL, [name] [nchar](6) COLLATE Chinese_PRC_CI_AS NOT NULL, [post] [nchar](6) COLLATE Chinese_PRC_CI_AS NOT NULL, [password] [nchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL, [dept] [nchar](10) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT [PK_Enter_Table] PRIMARY KEY CLUSTERED ) 创建入住消费表 CREATE TABLE [dbo].[Gust_Room_In_Consume_Table入住消费表 ]( [date] [smalldatetime] NOT NULL, [chno] [nchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL, [roomprice] [decimal](8, 2) NULL, CONSTRAINT [PK_Gust_Room_In_Consume_Table入住消费表] PRIMARY KEY CLUSTERED ) 创建客房表 CREATE TABLE [dbo].[Gust_Room_Table客房表] ( [grno] [nchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL, [grname] [nchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL, [unitp] [smallint] NOT NULL, [whether] [nchar](4) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_Gust_Room_Table客房表_whether] DEFAULT (N'no'), [direction] [nchar](20) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [PK_Gust_Room_Table_1] PRIMARY KEY CLUSTERED ) 创建菜单表 CREATE TABLE [dbo].[Menu_Table] ( [dish] [nchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL, [dishno] [nchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL, [unitp] [smallint] NOT NULL, [type] [nchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL, CONSTRAINT [PK_Menu_Table_1] PRIMARY KEY CLUSTERED ) 创建订餐表 CREATE TABLE [dbo].[ordermenu] ( [tableno] [nchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL, [menuno] [nchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL, [unitprice] [int] NULL, [count] [int] NULL, CONSTRAINT [PK_ordermenu] PRIMARY KEY CLUSTERED ) 创建采购消费表 CREATE TABLE [dbo].[Procure_Comsume_Table采购消费表] ( [date] [smalldatetime] NULL, [pnum] [nchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL, [proprice] [decimal](8, 2) NULL, CONSTRAINT [PK_Procure_Comsume_Table] PRIMARY KEY CLUSTERED ) 6.界面设计及程序代码设计 6.1Visual Studio 2005及SQL Server 2005简介 Visual Studio 2005(以下简称VS 2005)是美国微软公司推出的最新开发工具,该版本具的新功能体现在对ASP.NET 2.0、CLR 2.0、VB.NET与C#.NET语言上的强化,提供更好的执行效能,并更加注重安全性等方面。
VS 2005是一套完整的开发工具集,用于生成ASP.NET Web应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual Basic、Visual C++、Visual C#和Visual J#全都使用相同的集成开发环境(IDE),利用此IDE可以共享工具且有助于使用混合语言创建解决方案。另外,这些语言利用了.NET Framework的功能,通过此框架可使用简化ASP Web应用程序和XML Web Services开发的关键技术。
SQL Server 简介:SQL Server 是一个关系数据库管理系统,它是Microsoft 公司推出的SQL Server 数据库管理系统的最新版本。该版本继承了SQL Server 7.0 版本的优点同时又比它增加了许多更先进的功能,具有使用方便,可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2005 的大型多处理器的服务器等多种平台使用。SQL Server 2005 中包括析取和分析汇总数据以进行联机分析处理 (OLAP) 的工具。SQL Server 中还包括一些工具,可用来直观地设计数据库并通过 English Query 来分析数据。SQL Server 2005共有4个版本,分别是个人版,标准版,企业版和开发版。
6.2系统的菜单结构图 酒店财务管理系统 基础资料维护 员工信息管理 餐饮信息管理 客房信息管理 会员信息管理 运营管理 采购部 客房部 客房查询 宾客结帐 修改密码 退出 餐饮部 点菜 宾客结帐 修改秘密 退出 采购单 修改密码 退出 财务管理 会员消费查询 当日收益查询 时间段收益查询 系统管理 密码修改 系统备份 系统还原 6.3 C#访问SQL SERVER数据库的方法 在C#语言中对数据库的访问是通过.NET框架中的ADO.NET来实现的。ADO.NET的对象模型由两个部分组成:数据提供程序(Data Provider,有时也叫托管提供程序)和数据集(DataSet)。数据提供程序负责与物理数据流连接,数据集代表实际的数据。
我们将实现访问SQL Sever数据库和返回基本ADO.NET对象的方法封装在BaseOperate类里面:
class BaseOperate { public SqlConnection getcon()/*返回值为sqlConnection类型的自定义方法,用来建立数据库连接*/ { string str_sqlcon = “server='ZHANG-PC';uid='sa';pwd='123456';database='db_Proverty_Manager'“; SqlConnection myCon = new SqlConnection(str_sqlcon); return myCon; } public void getcom(string str_sqlstr) /*无返回值类型自定义方法,用来执行sql语句*/ { SqlConnection sqlcon = this.getcon(); sqlcon.Open(); SqlCommand sqlcom = new SqlCommand(str_sqlstr, sqlcon); sqlcom.ExecuteNonQuery(); sqlcom.Dispose(); sqlcon.Close(); sqlcon.Dispose(); } public DataSet getds(string str_sqlstr, string str_table) /*执行sql语句返回DateSet类型数据集对象 */ { SqlConnection sqlcon = this.getcon(); SqlDataAdapter sqlda = new SqlDataAdapter(str_sqlstr, sqlcon); DataSet myds = new DataSet(); sqlda.Fill(myds, str_table); return myds; } public SqlDataReader getread(string str_sqlstr) /*生成sqlDataReader类对象,比便从数据库读数据 */ { SqlConnection sqlcon = this.getcon(); SqlCommand sqlcom = new SqlCommand(str_sqlstr, sqlcon); sqlcon.Open(); SqlDataReader sqlread = sqlcom.ExecuteReader(CommandBehavior.CloseConnection); return sqlread; } } 7. 数据库运行维护 7.1系统运行维护 7.1.1系统维护的定义 系统维护是系统生存周期的最后一个阶段,就是系统开发期后的运行维护期。它是指在管理信息系统交付使用后,为了改正错误、改进性能和其他属性、满足新的需要而对系统进行修改的过程。
7.1.2工作中常见的问题 “系统维护”是软件生命周期中的一个重要部分, 在软件生存周期的头两个时期没有严格而又科学的管理和规划,必然会导致在最后阶段出现问题。下面列出维护工作中常见的问题。
7.1.2.1软件难以看懂 原来的软件代码的书写习惯非常差,很难阅读,例如使用无规律的变量名称、过长的函数等;
而且反复的修改使软件结构混乱,层层嵌套的注释更是难以匹配;
没有可以参考的文档,或者文档不全,或者文档太老;
现在的维护人员都不知道系统原有的业务逻辑。
7.1.2.2修改带来不良影响 对某一功能模块的修改,需要做多大范围的测试才能保证它没有给其他模块带来负作用呢? 由于各种成本的限制,很多时候只能以“打补丁”的方式来进行修改,而不是全面解决问题,以至于积累了很多潜伏的风险;
跟踪软件版本的演化是一件非常困难的事;
对程序的修改,导致了文档的不一致。
7.1.2.3原来的软件质量有缺陷 软件本身就有质量问题,只是日常维护已经很不容易,更不要说修改;
软件设计时为维护工作考虑得太少,例如对错误给出的提示很不清楚,过分依赖输入数据的正确性;
软件的可移植性、可扩展性很差。设备、软件的更新换代对软件的兼容性提出了巨大的考验。可是,有几个软件在设计时充分考虑了可移植性呢?将一套系统从32位机上移到64位机上,即使没有对任何语句进行修改,也必须做全面的测试以保证不会突然当机;
软件的易用性不高,必须要专业人员才能维护。
7.1.2.4客户需求不断变化 软件更新的速度赶不上需求变化的速度;
原来的技术、模式、结构不能满足新的需求;
多次变化后连客户也不清楚到底要什么;
层层堆叠的补丁给系统带来了预料之外的负担。例如不断增加的、过多的报表降低了系统效率。
上述种种问题在现有的没采用结构化思想开发出来的软件中,都或多或少的存在着。使用结构化分析和设计的方法进行开发工作可以从根本上提高软件的可维护性。
7.1.3维护的内容 7.1.3.1程序的维护 程序的维护是指因业务处理的变化使系统业务出现故障或用户对系统有更高的要求,需要修改部分或全部程序。修改以后,必须书写修改设计报告。修改后的原程序,必须在程序首部的序言性注释语句中进行说明,指出修改的日期、人员。同时,必须填写程序修改登记表,填写内容包括:所修改程序的所属子系统名、程序名、修改理由、修改内容、修改人、批准人和修改日期等。
7.1.3.2数据的维护 数据维护指对数据有较大的变动。如安装与转换新的数据库;或者某些数据文件或数据库出现异常时的维护工作,如文件的容量太大而出现数据溢出等。
7.1.3.3代码的维护 随着系统的变化,旧的代码不能适应新的要求,需要修改旧的代码体系或制定新的代码体系。代码维护的困难往往不在代码本身的更改,而在于新代码的贯彻。
7.1.3.4硬件的维护 硬件的维护主要指对机器、设备的维护,包括日常的保养和发生故障的修复工作。硬件人员应加强设备的保养以及定期检修,并做好检验记录和故障登记工作。
7.2系统维护的步骤 系统的修改往往会“牵一发而动全身”。程序、文件、代码的局部修改都可能影响系统的其他部分。因此,系统的维护工作应有计划有步骤的统筹安排,按照维护任务的工作范围、严重程度等诸多因素确定优先顺序,制定出合理的维护计划,然后通过一定的批准手续实施对系统的修改和维护。
通常对系统的维护应执行以下步骤:
(1)提出维护或修改要求。操作人员或业务领导用书面形式向负责系统维护工作的管理员提出对某项工作的修改要求。这种修改要求一般不能直接向程序员提出。
(2)领导审查并做出答复,如同意修改则列入维护计划。系统主管人员进行一定的调查后,根据系统的情况和工作人员的情况,考虑这种修改是否必要、是否可行,做出是否修改、何时修改的答复。如果需要修改,则根据优先程度的不同列入系统维护计划。计划的内容应包括维护工作的范围、所需资源、确认的需求、维护费用、维护进度安排以及验收标准等。
(3)领导分配任务,维护人员执行修改。系统主管人员按照计划向有关的维护人员下达任务,说明修改的内容、要求、期限。维护人员在仔细了解原系统的设计和开发思路的情况下对系统进行修改。
(4)验收维护成果并登记修改信息。系统主管人员组织技术人员对修改部分进行测试和验收。验收通过后,将修改的部分嵌入系统,取代旧的部分。维护人员登记所做的修改,更新相关的文档,并将新系统作为新的版本通报用户和操作人员,指明新的功能和修改的地方。在进行系统维护过程中,还要注意维护的副作用。维护的副作用包括两个方面:一是修改程序代码有时会发生灾难性的错误,造成原来运行比较正常的系统变得不能正常运行,为了避免这类错误,要在修改工作完成后进行测试,直至确认和复查无错为止;二是修改数据库中数据的副作用,当一些数据库中的数据发生变化时,可能导致某些应用软件不再适应这些已经变化了的数据而产生错误。为了避免这类错误,一是要有严格的数据描述文件,即数据字典系统;二是要严格记录这些修改并进行修改后的测试工作。
7.3数据库的备份 用户输入备份路径,系统通过代码直接调用SQL SERVER 2005的数据库备份与还原功能,不会和系统的运行产生任何冲突,就算是在系统不能运行的情况下也可以进行数据的备份与还原。不但实现简单而且使得系统数据得以更加安全。
7.4系统测试及出现的问题 7.4.1登录界面的测试:
输入错误用户名和密码,用户无法登陆,如图(7.4.1)
图 7.4.1 当宾客进餐后报桌号结帐时报错,系统提示“错误”,如图(7.4.2):
图7.4.2 用户修改密码时,原密码输入有误,系统提示,如图(7.4.3):
图7.4.3 基础资料管理模块,删除信息时,为防止删除错误,系统提示如图(7.4.4):
图7.4.4 在我们多次测试中发现了很多的问题:比如,各部门的业务正常发生,但是无法顺利实现收支的统计,先前的办法是在数据库中定义触发器,尽管数据有更新但是无法实现合计,我们的解决方法是,根据部门业务定义视图,从视图中读取数据、实现合计;
在数据库建立了性别和部门属性的约束,在用户使用过程中可可能有输入有误的情况,造成系统报错,因此,我们将文本框改成了下拉列表,方便用户选择。
7.4系统存在的不足 由于时间、技术有限,我们的系统还有很多的局限性:
1、 目前录入的基础资料有限,没有考虑在海量数据情况下如何实现方便查询、插入等;
2、 在系统正常运行的情况下,各部门的流水帐号能够自动生成,但是,系统一旦出现故障需要重启,流水 帐号又将回到当天的初始值,需重新设置,无法满足现实应用;
3、 系统的界面不够简洁,美观;
4、 现实中酒店的餐饮和客房之间是有关联的,然而为了系统的设计方便,我们将餐饮和客房分开处理,与现实稍有不符;
5、 测试过程是按照我们设计的思路完成,另外,实践经验不充分,系统的一些错误无法完全考虑到,系统还不完善。
实验体会 参考文献 附录 用户系统使用说明书:
1、 首先将日志文件放在指定的路径中,这里指定是F:\。
2、 将数据库文件“db_Proverty_manager”附加到SQL SERVER 2005企业管理器中的服务器(local)数据库中。直接运行“酒店财务管理系统.exe”即可进行相关操作。
3、 本系统可以有四种方式进行登录,分别是管理员登录、餐饮部员工登录、客房部员工登录、采购部员工登录。其中管理员帐户:张三,密码:1;
普通用户有多个,可在数据库的登录表中进行查询。登录的人员根据自己的身份选择相应的登录方式,然后输入密码即可登录酒店财务管理系统。
4、 每个普通员工和管理员可在相应的操作界面上选择“密码修改”,输入先前密码和修改后的密码,确认后即可修改密码。
5、 登录系统后,根据不同登录人员的身份,可选择不一样的操作。餐饮部的员工登录到餐饮部的界面后,选择“点菜”,即出现酒店菜单,可选择菜色、输入数量,完成点餐,系统自动计算总额,若客人是酒店会员,可输入会员号,进行打折。客人进餐完毕,点击“宾客结帐”,输入客人进餐桌号,即可弹出相应的消费信息,并可打印消费凭证;
客房部的员工登录到客房部的界面,点击“客房查询”,即可弹出未入住的客房,亦可输入查询条件,过滤查询满足条件的未入住客房,方便用户选择,选中客房,点击“开单”,即可为客人办理入住登记;
客人退房时,点击“宾客结帐”,输入客人的房间号,弹出客人的入住信息,系统自动计算消费额总额,会员情况同餐饮,亦可打印消费凭证;
采购部员工登录到采购界面,点击“采购单”,进行采购物品的选择和登记,系统自动计算总额;
管理员登录到管理员界面,点击“基础资料维护”,可对酒店所有资料进行查看,包括员工资料、餐饮资料、客房资料、会员资料,亦可通过点击“修改”、“删除”“新增”及“确认修改”、“确认新增”完成对基础资料的修改、增添和删除;
点击“运营管理”,可进入各部门的管理界面,进行业务管理;
点击“财务管理”,可对酒店的运营情况进行查询,包括日查询、时间段查询以及会员的消费总额查询;
点击“系统管理”,选中“系统备份”,输入备份路径,可对酒店的所有数据进行备份。