基于Python的酒店财务管理系统的设计与实现-附源码111739

摘要

财务管理作为企业的一个重要部门,其制度的建立,计划的实施,信息的管理都会影响整个部门的发展,而财务部门的管理与发展又会影响整个企业的进步。酒店行业以服务为主,而服务的基础是硬件设施的管理,作为酒店企业内的财务部门,除了对固定资产进行管理外,还需要维护酒店的日场财务管理,包括财务报表的管理,出纳管理,与银行的往来账务的管理。除了这些基础的财务管理外,财务部门还应该承担起对企业发展进行评估的责任。财务部门应该根据酒店的一些基本财务数据分析出各项财务指标,从而为酒店的高层提供决策的数据支持。信息技术的发展为酒店行业的财务管理打开了新思路,如果将信息技术应用到酒店的财务管理上,能够为酒店提供更多智能和自动化的管理,包括一些财务日常的账务管理如果利用计算机进行管理一方面可以避免管理的纰漏,另一方面也方便查验。高层可以对酒店的现金流进行监控,确保资金流向的正常。酒店的财务情况可以直接反映酒店的经营情况,当酒店推出新服务的时候,为了观察该服务是否能够具有很好的为企业带来新的财政收入的效果,高层可以通过对服务推出后的财务数据来观察,同时为了更方便地提供对某一服务的财务数据分析,信息系统可以有选择地提供一些统计数据,或形象的统计图表,这是传统的财务管理方式所无法做到的。也是结合信息化进行酒店财务管理的直接优势。

本文根据国内外财务管理信息系统的现状,结合酒店的实际环境和条件,完成基于Python的酒店财务管理系统的设计与实现的设计与实现。

关键字:酒店,财务管理平台,python,财务管理

摘要

1章绪论

1.1 背景及意义

1.2 研究现状

1.3 本文结构安排

2章相关概念及技术简介

2.1 Python概述

2.2 C/S结构概述

2.3 C/S模式与B/S模式的对比

2.4 本章小结

3章酒店财务管理平台需求分析

3.1软件开发环境

3.2功能用例图

3.3 功能用例验证

3.3.1日志管理功能

3.3.2 期末结账功能

3.3.3 银行对账功能

3.3.4 科目明细查询功能

3.3.5 凭证查询功能

3.4 其他非功能需求

3.5 本章小结

4章酒店财务管理平台总体设计

4.1 系统功能分析

4.2 系统的接口设计

4.2.1 系统管理接口设计

4.2.2 基本的财务管理接口设计

4.2.3 银行对账接口设计

4.2.4账簿报表管理接口类设计

4.2.5凭证管理接口类设计

4.3 数据库设计

4.3.1 数据库模型设计

4.3.2 数据库表设计

4.4 本章小结

5章酒店财务管理平台详细设计与实现

5.1 系统的硬件的拓扑结构

5.2 功能的详细设计及实现

5.2.1 系统登录功能

5.2.2 期末结账功能

5.2.3 出纳管理功能

5.2.4 账簿报表管理功能

5.2.5 凭证查询功能

5.3 本章小结

6章酒店财务管理平台的测试与分析

6.1 测试用例

6.2 测试结果分析

6.3 本章小结

7章总结与展望

参考文献

1章绪论

  1. 背景及意义

不同于经济较为落后时代的酒店,其主要功能就是给客户提供餐饮和住宿服务,如今的酒店在此基础上更加全面的发展为综合性十分强的社会服务机构1。酒店向客户提供越来越多的服务类型,同时服务质量也随着经济的发展和服务人员素质的提高在不断进步。酒店越来越成为人们生活中一个不可缺少的部分。除了经济的不断发展,酒店行业作为我国的第三产业,其发展与旅游业的繁荣息息相关。另一方面,在大中型城市里,商务酒店作为商务洽谈、健身会友的常用场所,其优质服务的需求十分必要[2]。服务已经成为酒店行业里比硬件设施更为重要的一个环节。而如何为客户提供更好的服务,从而为酒店企业创造更多的价值,需要企业的各个部门的积极参与,保证各个环节的有序开展[3]。在这里面,财务作为企业的基础部门,其高效有序的工作能够为酒店的有序环境提供支持。

财务管理作为企业的一个重要部门,其制度的建立,计划的实施,信息的管理都会影响整个部门的发展,而财务部门的管理与发展又会影响整个企业的进步。酒店行业以服务为主,而服务的基础是硬件设施的管理,作为酒店企业内的财务部门,除了对固定资产进行管理外,还需要维护酒店的日场财务管理,包括财务报表的管理,出纳管理,与银行的往来账务的管理[4]。除了这些基础的财务管理外,财务部门还应该承担起对企业发展进行评估的责任。财务部门应该根据酒店的一些基本财务数据分析出各项财务指标,从而为酒店的高层提供决策的数据支持。

信息技术的发展为酒店行业的财务管理打开了新思路,如果将信息技术应用到酒店的财务管理上,能够为酒店提供更多智能和自动化的管理,包括一些财务日常的账务管理如果利用计算机进行管理一方面可以避免管理的纰漏,另一方面也方便查验[5]。高层可以对酒店的现金流进行监控,确保资金流向的正常。酒店的财务情况可以直接反映酒店的经营情况,当酒店推出新服务的时候,为了观察该服务是否能够具有很好的为企业带来新的财政收入的效果,高层可以通过对服务推出后的财务数据来观察,同时为了更方便地提供对某一服务的财务数据分析,信息系统可以有选择地提供一些统计数据,或形象的统计图表,这是传统的财务管理方式所无法做到的[6]。也是结合信息化进行酒店财务管理的直接优势。

酒店在发展的过程中往往会通过扩张的形式来扩大企业的规模,酒店不同于一般的企业,其扩张的主要方式就是增加酒店分店的数量,这就意味着酒店集团在发展的过程中不可避免的要面临多地办公的情形,在传统的财务管理过程中,为了管理多地的财务数据,往往会约定一个固定的时间进行财务清算,这样做不仅会增加财务管理的成本,而且无法同时共享多地的财务数据,对各个分店的财务进行实时的监控,对企业的发展是一件十分不利的事[7]。而利用信息技术进行酒店财务数据的管理,则可以在保证安全的前提下对多地的分店财务数据进行实时共享,同步管理。这对酒店集团化管理是十分关键和重要的[8]。总之,利用信息化技术管理酒店财务,并构建具有酒店特色的财务管理系统对酒店充分发展优势,避免传统的财务管理问题具有十分重要的意义。

2.研究现状

经济全球化促使全球的许多企业都开始调整企业内部的部门结构,同时信息技术的发展使得企业结构能够变得扁平化。同时企业的整体管理模式也随着企业的结构变化发生着变化,企业内部的重要部门财务部门也在这个过程中发生着变化。传统的企业财务部门主要是负责对企业的各项支出进行记录和管理,而新时代的企业财务部门则具有更多的功能,包括对企业所在市场的观察,根据已有的财务信息对企业的未来发展提供战略性意见,甚至包括对财务数据进行深入挖掘,发现一些表面不可见的企业状况[9]

在财务管理信息化的发展初期主要是对会计工作的电算化,这也是由会计这一工种的工作性质决定的。会计的很多工作都具有机械性,同时又具有一定的复杂度,如果完全依靠人工进行会计核算会给会计人员带来十分繁重的工作负担。但在整体的财务管理方面并没有突破。新一代的财务管理既包括了传统财务管理的相关内容,又将财务管理对企业决策的支持涵盖其中。国外已经发展出了许多企业财务管理系统,这些企业财务管理系统包括了对会计核算的改进,对凭证管理,银行对账等内容都有很好的支持[10]。有些系统甚至能够做到与行业内其他生产链上企业的对接。具体的如甲骨文公司的FinancialAnalyzer系统,能够提供十分友好的传统企业财务管理功能[11]。甲骨文公司本身以数据库管理系统为技术优势,所以在财务管理方面同样借鉴了其在做数据库管理方面的经验,对一些财务数据的信息进行挖掘,得出对企业有借鉴意义的信息。

而在异地财务管理方面,德国的思爱普公司推出的SAP系统具有大范围业务管理的功能,系统基于B/S架构,并且提供了多语言版本,也就是说不仅仅是异地的财务管理,甚至跨国的财务管理均可以利用该公司提供的系统进行同步[12]SAP系统并非一个专业的财务管理系统,而是集合了财务管理、销售管理、生产管理、人事管理等等复杂内容为一体的管理系统。要完整构建一个SAP系统需要一个具有不错性能的服务器进行支持,所以对于一般的中小型企业而言其实用价值要打一些折扣。

国内对于企业财务管理的信息化也有一定的发展,大型企业一般都有专门的财务管理系统,有专门的技术人员进行维护和管理[13]。但是中小企业的财务信息管理系统的建设在不完全,只有部分企业具有自己的财务管理系统,并且这些系统的标准不一定,在企业之间通过财务系统进行对接实现起来还有一定的难度[14]。这一现状形成的原因一方面是与中小型企业的企业规模有关的,也和企业对财务管理信息化的不重视有关,企业没有意识到财务管理信息化对企业发展的影响,所以在财务管理上投入的资金可能会有所限制。但是已经有部分企业意识到了财务管理信息化对企业发展的重要作用,建立起了适用于自己企业的财务管理信息系统[15]

3.本文结构安排

本文的第一章为绪论,明确了文章的研究背景与意义,了解财务管理系统的国内外现状。第二章为相关概念及技术简介,包括酒店财务管理平台采用的C/S架构,桌面客户端系统编写采用的Python编程语言,本文所使用的MySQL数据库等。第三章为酒店财务管理平台的需求分析,包括用户分析,具体用户的用例分析,系统的非功能性分析等。第四章是对系统的总体设计,主要内容集中在系统的数据库设计与界面设计。第五章为系统的详细设计及实现,包括系统的主要界面实现。第六章为总结与展望,总结了整个系统完成过程中的收获与未来可能进行改进的地方。

2章 相关概念及技术简介

本文所要实现的酒店财务管理平台采用C/S架构,桌面客户端系统采用Python语言编写。Python语言是一种易学习,方面系统迭代更新的编程语言,利用Python预压编写的软件客户端如果要进行修改和维护十分便利。数据库部分采用MySQL关系数据库,下面将对这三个部分的内容分别做简要的介绍。

  1. Python概述

Python作为一种面向对象的高级脚本语言,有着短暂的发展史,并且越来越受欢迎。从上图中我们就可以看到近10几年来各种主流的编程语言市场占有率的变化情况,Python虽然至今还算是比较小众的一种,但凭借其灵活的特性占有一席之地[16]

图 2.1  主流编程语言的流行度发展

从技术的角度来讲,Python首先是一种面向对象的语言,同时它还具备交互式的特点,是一种解释型的语言,开发中省去了编译的环节。它不像C语言一样追求程序的运行速度,也不求最好的发挥出硬件的处理能力,而是更好的将功能封装起来,便于开发使用。对于不追求运行速度的项目来说,Python非常适合[17]。但正是由于其不用编译,在发布的时候只能讲源代码发布出去,也就是说不能实现代码的加密。不过Python同样也具有可嵌入的特性,例如将其和C一起使用,可以更好地解决数据处理缓慢的问题。从使用的角度来讲,Python还是一种十分有利于初级程序员上手并快速开发的编程语言。它提供给开发者相当完善和全面的功能库,包含了大量的基础代码,能让开发者不必从零开始。同时Python简洁明确的语言风格,也让编程者可以很快掌握这种语言开发的要领[18]。而且如果一个使用Python开发的项目如果中途有较大的需求变动,也会因为其灵活的特性而让需求的改变没有那么麻烦。

Python的应用范围也很广,最主要的几个方面就是数据处理、网络编程、数据库编程、图像及文本处理等[19]。例如Numpy就提供跟开发者大量的数学库的接口。

2. C/S结构概述

客户机/服务器模式,简称C/S架构,是一种应用十分广泛的软件系统体系结构,通过将客户机直接与服务器连接来完成系统的数据管理或逻辑处理[20]C/S架构的形成时间较早,其形成背景是由于过去的主机客户端计算能力与数据存储能力比较低,需要将计算任务与数据存储任务放到一个强大的服务器上进行数据共享。C/S模式已经成功应用了二十几年,其背后的实现机制及可行性已经经过了无数系统的验证,是一种值得信任与应用的系统架构模式。

2.2两层C/S结构模式示意图

2.2为一种典型的两层C/S架构模式,三台客户机通过集线器与网络连接到服务器上,客户机主要负责进行人机交互,收集用户的请求,并将结果进行显示,绝大多数的计算与存储任务都由服务器进行。所以一般来说服务器由性能较高的计算机,或专门的工作站类型的服务器担当。

虽然C/S架构倾向于将大多数的计算任务都交给服务器来完成,但在实际发展中客户机的计算能力与存储能力成指数地在增加,此时客户机与服务器的性能差异并没有那么大,并且随着多媒体的发展,许多的计算与存储任务不再仅仅是简单的文本数据,此时如果还将大量的数据传输到服务器端可能会造成网络阻塞,所以也有将部分计算与存储任务放在客户机上进行的C/S架构。

利用C/S架构设计系统具有许多优势,如C/S架构极大地利用了服务器优势,使得系统具有更高的计算性能,突破了个人电脑的性能瓶颈。同时由于客户机与服务器处于分离的两端,客户机的扩展十分容易,只要在服务器可负载的情况下,可以尽可能多地使用客户机。C/S模式天然的服务器、客户机分离有利于对系统数据的安全性进行保障,例如本文所要实现的财务管理信息系统,数据库中都保存着关于企业的很多机密数据,需要很高的安全性。

虽然C/S架构有很多优点,但是利用该模式开发的系统需要在客户机上安装客户端,这使得系统的升级与后期维护成本变高。并且如果多态客户机同时访问服务器,可能会造成服务器达到性能瓶颈,降低用户在使用系统时的用户体验。客户端的安装对客户机的系统及机器性能也有一定的要求,这使得在系统开发的时候需要考虑不同平台的软件编写,增加了系统开发的成本。

3. C/S模式与B/S模式的对比

C/S模式与B/S模式同属于软件系统的架构模式,B/S模式的出现较晚,其在C/S模式上进行了一些改进,两者虽然有很多共同点,但是也有一些不同之处。例如C/S模式一般建立在专用网上,而B/S模式的网络环境则多是核心网络。C/S模式的客户端程序对操作系统的依赖性强,在PC端与移动端上一般不兼容,B/S模式没有特别的客户端,只要有浏览器就能请求服务器。正如上文提到的,利用C/S模式构建的系统后期维护的成本较高,整体来说安装、配置、更新都是一个很大的工程量,相对来说利用B/S模式构建的系统就没有客户端安装的问题,只要后台系统升级,用户就能通过浏览器获得更新。C/S模式相比B/S模式构建的系统具有更高的安全性,用户群更稳定以及未接入核心网络等特点可以有效避免数据及系统遭受非法入侵。总的来说,采用C/S模式或B/S模式构建系统各有利弊,需要根据实际需求来进行选择。

4.本章小结

本章介绍了系统实现文所涉及的技术原理简介,包括要实现的酒店财务管理平台所采用的C/S架构、Python语言等内容。利用C/S模式开发的系统更新与后期维护较为复杂,而Python语言是一种易学习,方面系统迭代更新的编程语言,利用Python预压编写的软件客户端如果要进行修改和维护十分便利。

3章 酒店财务管理平台需求分析

3.1软件开发环境

本文所实现的酒店财务管理平台采用C/S架构,在系统开发过程中所使用的软硬件环境及系统的应用环境如表3.1所示。

3.1软件开发及系统应用环境

开发环境

开发主机CPU

2.56GHz

主机内存

4096MB

系统数据库服务器

MySQL

开发操作系统

Windows系列操作系统

应用环境

客户端主机内存

1024MB以上最佳

操作系统

Windows系列操作系统

3.2功能用例图

酒店财务管理平台为酒店管理基础的财务业务管理,执行这项任务的用户为财务部门管理人员,这一人员在系统中的用户角色定义为系统管理员。系统管理员需要使用系统进行五方面的功能。第一部分是系统管理部分,系统管理功能主要提供给系统管理员对数据的操作、日志管理等功能。第二部分是财务管理系统基本通用的基础财务管理,包含基础的财务信息管理,建账转账管理、会计的基本科目管理等内容,在基础财务管理方面还包括对酒店现金管理,由于银行是一个以现金为主要流动资金的企业,所以应该将这一部分纳入基础财务管理范畴。第三个部分也是传统财务管理的一个重要内容,即出纳管理,出纳主要负责资金的进出,以及企业与银行的对接,在资金方面的统计等内容。出纳的日常工作由日常记账,日记账凭证管理等,而在一个长时间内的管理包括年度预决算、企业现金计划等内容。脱离于会计管理与出纳管理的财务管理还包括账簿报单管理和凭证管理。第四部分账簿报单管理即对各种不同类型的酒店项目或服务账簿进行核算、统计。第五部分的凭证管理即对酒店各种时期的凭证进行管理、汇总、审核、查询、制作。具体的酒店财务管理平台的系统管理员的功能用例图如图3.1所示。

  1. 3.3 功能用例验证

3.3.1日志管理功能

系统日志是对操作员各项操作的一个记录,站在系统安全性的角度来看,日志管理能够记录下系统可能遇到的不安全行为,同时日志还能够为系统的数据恢复,功能操作进行回滚提供参考数据。日志管理是系统管理子系统的一个功能模块,而日志管理又具体包括日志记录、参数设置、日志查询、日志删除等功能。整个日志管理的用例验证如表3.2所示。

3.2日志管理功能模块用例验证

描述项

说明

用例名称

日志管理

用例参与者

会计人员,即系统管理员

前置条件

会计人员通过用户名密码登录进入系统管理子系统功能界面

后置条件

会计人员完成相应的日志管理功能

基本的操作流程

  1. 会计人员进入日志管理功能模块对应的系统界面。
  2. 选择日志管理功能中的一个子功能。

1 会计人员选择日志记录子功能,进入日志记录子功能对应的功能界面;

2 会计人员选择参数设置子功能,进入参数设置子功能对应的功能界面;

3 会计人员选择日志查询子功能,进入日志查询子功能对应的功能界面;

4 会计人员选择日志删除子功能,进入日志删除子功能对应的功能界面。

  1. 根据系统提示进行对应功能的操作。

1 会计人员在日志记录子功能界面可以选择打开或关闭日志记录功能,一旦打开日志记录功能则从修改之时起,系统会根据参数给出的日志保存路径及格式记录系统的各项日志,包括数据日志、操作日志、用户日志等内容。会计人员也可选择定时的日志记录功能,即在约定的时间段内进行系统的日志记录,其余时段不进行日志记录。

2 设置日志记录的各项参数,包括日志记录类型,日志保存路径,日志自动刷新时间,是否自动删除旧日志,日志的文件保存大小限制,日志操作权限等内容。

3 选择查询的日志类型及查询的时间范围。

4 选择要删除的日志内容。系统一般不允许手动删除日志,因为日志的不正当删除可能导致系统的部分数据和操作无法恢复,也可能导致系统的部分安全性遭到破坏等。

  1. 操作完成,点击确定保存操作结果。
  2. 系统根据功能逻辑审核会计人员的操作是否合理,并给出操作结果显示。

1 日志记录被打开或关闭。

2 会计人员成功设置参数,保存后系统的日志记录将按照新的参数进行,旧日志保存在旧的路径中。

3 系统将会计人员查询的日志内容进行显示。

4)成功删除选择的日志内容或文件。

3.3.2 期末结账功能

期末结账是基础财务管理中的重要功能,期末结账不同于日记账等日常记账功能其操作的时间以月为单位。期末结账功能需要选择进行核算的机构,以及核算的年度当在系统中选择这两项内容后系统会显示该核算机构与所选择的年份显示该年度所有月份的期末结账情况。期末结账的用例验证如表3.3所示。

3.3期末结账功能用例验证

描述项

说明

用例名称

期末结账

用例参与者

会计人员,即系统管理员

前置条件

会计人员通过用户名密码登录进入基础财务管理子系统功能界面

后置条件

会计人员完成期末结账功能

基本的操作流程

  1. 会计人员进入期末结账功能模块对应的系统界面。
  2. 根据系统的下拉菜单提示,选择要核算的机构名称及要核算的年份。
  3. 系统根据核算机构及核算年份的选择显示该机构在该年度的核算明细列表。包括结账状态、操作员的名称、结账日期等内容。如果有关于该月份核算的详细内容会被填写在备注栏。
  4. 选择要核算的月份,在该月份前面的复选框上打钩。
  5. 进行具体的期末结账操作。

(1)点击期末结账,进入具体的核算界面。

(2)点击取消按钮,返回基础财务管理功能系统界面。

  1. 银行对账功能

银行与银行财务的关系十分密切,首先,在银行发展初期,可能需要向银行进行借贷以完成酒店的硬件设施设置,酒店的发展与扩建同样需要银行的资金帮助。在这一方面酒店与银行会构成借贷关系。另外酒店可以讲流动资金存放在银行内,银行为酒店企业的资金托管方。所以银行对酒店来说在财务方面发挥着巨大的作用。酒店的出纳人员需要定期与银行进行对账,以保证酒店与银行的资金关系是正常的。酒店与银行进行对账的流程如图3.2所示。

3.2银行对账功能流程图

对于出纳人员来说,需要整理酒店的对账单,对于不同的银行应该整理出不同的对账单,然后在系统出纳管理功能模块中选择银行对账子功能,录入该银行的对账单。而银行的对账单同样会录入到系统中,此时利用系统的银行对账功能即可手动或自动进行对账。对账完成后会根据对账结果生成酒店与该行的一份存款余额表,出纳人员可以继续进行存款余额调节表的制作或修改。银行对账的用例验证如表3.4所示。

3.4银行对账功能用例验证

描述项

说明

用例名称

银行对账

用例参与者

出纳人员,即系统管理员

前置条件

出纳人员通过用户名密码登录进入出纳管理子系统功能界面

后置条件

出纳人员完成银行结账功能

基本的操作流程

  1. 出纳人员进入银行对账功能模块对应的系统界面。
  2. 在与酒店合作的所有银行中选择要进行本次对账的银行账户。
  3. 根据系统提示录入酒店对该银行的对账单,并录入银行所开具的对账单。
  4. 选择对账方式。

(1)对账方式可以是出纳人员手工对账,即出纳人员根据两张对账单逐项进行对账。

(2)也可以选择自动对账,此时系统对相同项进行对账并生成存款余额表。

5.完成基本的银行对账操作,接下来可进行存款余额调节表的管理。

  1. 制作存款余额调节表。
  2. 根据新的对账结果修改己有的存款余额调节表。
  1. 科目明细查询功能

科目查询是账簿报单管理功能模块中的重要部分,会计人员进行科目查询的时候只

需要提供查询时间,系统就会输出显示这一时间段内的科目账簿明细。科目账簿查询流

程图如图3.3所示。

3.3科目明细账簿查询流程图

会计人员输入查询时间段后系统会审核该时间段是否合法,主要是会计人员输入的时间段内的科目账簿明细可能还没有被录入进入系统,那么查询就是无效的。科目明细账簿查询的用例验证如表3.5所示。

3.5科目明细账簿查询功能用例验证

描述项

说明

用例名称

科目明细账簿查询

用例参与者

会计人员,即系统管理员

前置条件

会计人员通过用户名密码登录进入账簿报单管理子系统功能界面

后置条件

会计人员完成科目明细账簿查询功能

基本的操作流程

  1. 会计人员进入科目明细账簿查询功能模块对应的系统界面。
  2. 选择要查询的酒店科目明细账簿的时间范围。
  3. 点击查询按钮,将查询的时间范围发送给系统后台服务器,服务器执行查询操作。
  4. 服务器审核会计人员输入的账簿明细查询时间是否合法。
  5. 输出查询结果。
  1. 会计人员输入的查询时间合法,将账簿查询结果进行显示;
  2. 会计人员输入的账簿查询时间段不合法,系统自动返回到科目明细账簿查询条件输入界面。
  1. 凭证查询功能

凭证查询属于凭证管理功能模块的基础功能,只有正确的查找到需要的凭证,才能进一步地进行凭证审核、凭证修改等操作。凭证查询的查询结果一般要求是唯一的结果,所以在凭证查询时要求输入的查询条件应该尽量能够缩小范围。凭证的最基本特征就是类别,所以凭证类别是凭证查询时的一个必要条件,制单人、审核人、记账人对一个凭证来说也十分重要,但是往往一个制单人或审核人会对多个凭证进行对应,光凭这三项条件也无法唯一地确定查询到一个凭证。对于酒店财务管理平台来说,每一个凭证都有一个唯一的系统编号,输入这个编号就能唯一确定一个凭证,但是为了保证查询到的凭证与财务人员需要的凭证信息一致,尽量多地输入凭证信息有助于得到更准确的凭证数据。凭证查询功能用例验证如表3.6所示。

3.6凭证查询用例验证

描述项

说明

用例名称

凭证查询

参与者

财务人员,即系统管理员

前置条件

财务人员通过用户名密码登录进入凭证管理功能模块界面

后置条件

财务人员完成凭证查询

基本操作流

1.财务人员进入凭证查询子功能界面。

  1. 输入要查询的凭证类型、编号等必要的查询信息,输入制单人、审核人等非必须的辅助信息。
  2. 点击确定进行凭证查询操作。
  3. 系统根据酒店财务人员输入的凭证查询条件查询数据库服务器中的凭证表,检查是否有对应的凭证信息。
  4. 返回并显示凭证查询结果。
  1. 查询条件输入正确,财务人员通过显示界面得到对应的凭证信息;
  2. 根据查询条件未在系统数据服务器中找到匹配的凭证,返回查询界面,财务人员可以重新输入查询条件。
  1. 其他非功能需求

本文所要实现的酒店财务管理平台使用Python编程语言实现客户端,整个系统的服务器与客户端采用C/S架构,各个主机的客户端通过网络进行酒店分店财务数据的同步[25]。对于整个系统来说,除了保证各项财务管理功能的设计与实现,还应该考虑系统的安全性、性能,以及针对酒店集团性管理来说对各个不同地点的客户端进行管理等需求,总结起来整个系统需要考虑的非功能性需求包括以下几个方面:

  1. 安全需求:酒店财务数据是酒店最为机密的数据之一,利用信息系统进行酒店财务数据的管理涉及到财务数据在服务器与客户端之间进行网络传输的问题,如果酒店服务器与主机能够构建在一个局域网内,则可以通过对局域网的保护防止外部网络对酒店信息的盗取。但是如果客户端所在的主机与服务器分离在两地,那么数据在传输的过程中势必会经过核心网络,这大大增加了数据的不安全性。为了保证酒店财务管理平台的安全性,在系统构建过程中数据传输应该采用具有更高安全性的传输协议,此外重要的数据应该进行加密传输[26]
  2. 扩展需求:随着酒店的发展,酒店的财务部门与财务部门管理的业务也会随之发展[27]。为了能够尽量多得考虑到今后可能具有的新增的酒店财务管理内容,在系统设计与实现的过程中需要考虑系统的可扩展性,尤其是接口和数据库设计方面的可扩展性,其直接影响了整个系统的可扩展性。
  3. 故障处理与数据恢复需求:财务管理信息系统内所管理的数据具有很高的安全性需求,这一点在上文的非功能性需求第一点中已经谈到了,处理通过安全性需求约束系统具有更高的安全性以外,真正考虑系统可能发生的故障并设计故障发生后的解决措施显得更为重要[28]。系统通过日志管理为故障处理和数据恢复提供了参考信息,但是日志管理能够解决的问题具有一定的局限性,在对整个系统进行设计的时候应该考虑软件、硬件等多方面的故障处理方法[29]
    1. 本章小结

本章对酒店财务管理平台进行了需求分析。其中第一项重要内容就是确定系统的主要用户,只有确定了用户,然后再针对不同用户设计主要功能才能最好的满足所有用户的功能需求。明确了系统的主要用户后根据不同的用户进行用例分析,即对系统的功能进行分析[30]。接下来本章还对系统的非功能性需求进行了分析,非功能性分析关系到系统最终能否在服务器上进行部署,是否能够为今后的系统扩展所需要等内容。

4章 酒店财务管理平台总体设计

  1. 系统功能分析

基于Python的酒店财务管理平台是酒店整体信息化的重要环节,财务管理是酒店管理的基础,执行财务管理的用户为财务部门管理人员,即本文所实际系统的系统管理员角色。系统管理员需要使用系统执行五部分操作,首先是系统管理部分,系统管理功能主要提供给系统管理员对数据的操作、日志管理等功能。然后是财务管理系统基本通用的基础财务管理,包含基础的财务信息管理,建账转账管理、会计的基本科目管理等内容,在基础财务管理方面还包括对酒店现金管理,由于银行是一个以现金为主要流动资金的企业,所以应该将这一部分纳入基础财务管理范畴。接下来也是传统财务管理的一个重要内容,即出纳管理,出纳主要负责资金的进出,以及企业与银行的对接,在资金方面的统计等内容。出纳的日常工作由日常记账,日记账凭证管理等,而在一个长时间内的管理包括年度预决算、企业现金计划等内容。脱离于会计管理与出纳管理的财务管理还包括账簿报单管理和凭证管理。随后是账簿报单管理即对各种不同类型的酒店项目或服务账簿进行核算、统计。最后是凭证管理即对酒店各种时期的凭证进行管理、汇总、审核、查询、制作。根据对酒店财务管理平台的功能分析,可以用图4.1表示整个系统的功能结构图。

4.1酒店财务系统功能结构图

  1. 系统的接口设计
  1. 系统管理接口设计

系统管理功能模块的模块方法图如图4.2所示,系统管理员使用登录、密码修改、人员管理等模块内方法,日志管理模块作为系统管理的一类方法,为系统管理提供对日志的管理的各类方法,PersonAction模块为系统管理提供用户管理方面的方法,

DataAction模块为系统管理提供了数据备份与恢复等方法,其中databack()方法为数据恢复方法,datarestore()方法为数据备份方法。

4.2系统管理功能方法图

 
  1. 基本的财务管理接口设计

基础财务管理是所有财务管理系统基本通用的一个管理单元,包含基础的财务信息管理,建账转账管理、会计的基本科目管理等内容,在基础财务管理方面还包括对酒店现金管理,由于酒店是一个以现金为主要流动资金的企业,所以应该将这一部分纳入基础财务管理范畴。基础财务管理功能模块的模块方法图如图4.3所示,BaseinfoAction模块为基本财务管理提供了基础信息管理部分的方法,QmmzzSetAction模块为基本财务管理提供了期末建账部分的方法。

4.3    基本财务管理功能方法图

  1. 银行对账接口设计

出纳管理也是传统财务管理的重要部分,出纳主要负责资金的进出,以及企业与银行的对接,在资金方面的统计等内容。出纳的日常工作由日常记账,日记账凭证管理等,而在一个长时间内的管理包括年度预决算、企业现金计划等内容。具体到银行对账这一子功能来说,首先,在酒店发展初期,可能需要向银行进行借贷以完成酒店的硬件设施设置,酒店的发展与扩建同样需要银行的资金帮助,在这一方面酒店与银行会构成借贷关系。另外酒店可以讲流动资金存放在银行内,银行为酒店企业的资金托管方。所以银行对酒店来说在财务方面发挥着巨大的作用。酒店的出纳人员需要定期与银行进行对账,以保证酒店与银行的资金关系是正常的。银行对账功能模块的模块方法图如图4.4所示。

4.4银行对账功能方法图

4.2.4账簿报表管理接口类设计

账簿报单管理对各种不同类型的酒店项目或服务账簿进行核算、统计。账簿报单管

理功能模块的模块方法图如图4.5所示,GenaralledgerUstAction模块为账簿报单管理模块,DetaolAccountAction为账簿报单管理提供了明细账簿管理的基本方法。

4.5账簿报表管理方法图

4.2.5凭证管理接口类设计

凭证管理功能对酒店各种时期的凭证进行管理、汇总、审核、查询、制作。酒店财务的账簿生成的原始数据来自记账凭证,所以凭证管理中的凭证查询功能不仅对凭证管理十分重要,在进行出纳管理时也有应用。在酒店财务系统中,有一类重要的凭证类型为记账凭证,凭证管理功能模块的模块方法图如图4.6所示,其中

AccountingVouchersAction模块为记账凭证,其中的方法包括save()保存凭证方法以及

AccountingVouchers凭证参数类型。VouchersSelectAction模块提供了凭证查询的方法selectVouchers()

4.6凭证管理方法图

  1. 数据库设计
  1. 数据库模型设计

酒店财务管理平台的主要用户是财务部门的会计人员及出纳人员,其他可能的用户还包括银行对接员、财务部门主管、酒店管理层等,本文为系统设计了6个主要的数据表格用于存储系统相关的各类数据,系统的数据库实现采用MySQL关系数据库管理软件,数据库模型设计图如图4.7所示。

4.7数据模型E-R

  1. 数据库表设计

日记账表设计如表4.1所示,日记账是出纳管理模块中的重要功能,出纳人员在每天工作结束之前都会对当日的酒店各种资金流向进行记录,整个日记账表中的数据有系统自动生成的数据,也有出纳人员手动记录的数据,日记账表的系统编号、记账日期等内容由系统自动生成,不允许会计人员进行编辑。而记账人则记录为登录系统的出纳人员编号,出纳人员需要根据当日的实际的资金流向填写资金输入输出的金额,以及用途

4.1日记账表

字段名

字段说明

数据类型

是否为关键字

DA_ID

系统编号

Int

DA_TIME

日期

Datetime

DA_FINANCEIN

资金流入金额

Double

DA_DETAILIN

资金流入明细

Varchar

DA_FINANCEOUT

资金流岀金额

Double

DA_DETAILOUT

资金流出明细

Varchar

DA_ACCOUNTSUB

会计科目

Varchar

DA_PATTERN

资金结算模式

Varchar

DA_CASHIERID

记账出纳人员编号

Int

DAREMARKS

备注信息

Varchar

总分类账表可以看作是以年为单位对日记账的总结,总分类账表设计如表4.2所示,出纳人员每到年底都要对酒店的各项开支进行统计,在总分类账表中,有部分内容由系统根据日记账表自动生成并记录,另外还有部分内容由出纳人员手工完成。

4.2总分类账表

字段名

字段说明

数据类型

是否为关键字

YAID

系统编号

Int

YA_TIME

做账时间

Datetime

YA_TABLE

账表字

Varchar

YA_NUMBER

账表号

Varchar

YA_ACCOUNTSUB

会计科目编号

Int

YA_FINANCEIN

资金总输入金额

Double

YA_OUTLINEIN

资金总输入概要

Varchar

YA_FINACEOUT

资金总输出金额

Double

YA_OUTLINEOUT

资金总输岀概要

Varchar

YA_CASHIERID

出纳人员编号

Varchar

YAREMARKS

备注

Varchar

会计人员在与银行进行对账的时候一般是在系统中录入对账单,然后选择系统自动对账,或人工对账,对账单的内容以项目-金额的形式逐条保存在数据库服务器的银行对账表中,对账日期与对账方式由系统根据出纳人员在进行对账时的选择自动填写到对账表中。具体的银行对账表设计如表4.3所示。

4.3银行对账表

字段名

字段含义

类型

关键字

BA_ID

系统编号

Int

BA_TIME

对账日期

Datetime

BA_RECONTYPE

对账方式

Varchar

BA_BANK

对账银行

Varchar

BAACCOUNTSUB

会计科目

Int

BA_PROJECT

银行项目

Varchar

BA_FLOW

资金流向

Varchar

BA_AMOUNT

金额

Double

BACASHIERID

出纳人员系统编号

Int

出纳人员或会计人员或者酒店的管理人员在对酒店的年度记账表、酒店的整体经营情况、新项目开展状况进行评估后需要在每个经营年末对酒店下一年的经营或项目开展进行经营预算。预算的内容包括酒店在软硬件等各方面的资金投入,也包括酒店新项目的拓展计划,以及在该项目上预期的回报等。酒店的管理人员都希望酒店的经营状况能够越来越好,但是合理的预算能够帮助酒店在新的发展中按部就班谋求发展。酒店财务管理平台的年度预算表设计如表4.4所示。

4.4年度预算表

字段名

字段含义

类型

关键字

YB_ID

系统编号

Int

YB_YEAR

预算年度

Int

YB_TOTAL

总预算金额

Double

YB_DETAIL

项目详细预算

Double

YB_SOFTWARE

软件建设预算明细

Varchar

YB_HARDWARE

硬件设施预算明细

Varchar

YB_INVESTMENT

投资资金预算明细

Varchar

YB_LEND

借贷预算明细

Varchar

YB_MINFINISH

最低完成度

Float

YBPLANNER

预算计划人员

Int

会计科目是财务管理信息系统需要维护的基本信息,科目表的内容包括该会计科目在酒店财务管理平台中的系统编号,以及其在会计行业中的科目编码,科目的名称、类型、状态等都是该科目的基础属性。此外对于酒店财务管理平台来说该科目的资金数量也是重要信息。会计科目表的设计如表4.5所示。

4.5会计科目表

字段名

字段含义

类型

关键字

AS_ID

系统编码

Int

AS_ACCOUNTID

科目代码

Varchar

AS_NAME

科目名

Varchar

AS_BASICTYPE

基本类型

Varchar

AS_STATUS

科目系统状态

Varchar

ASFUNDS

资金数量

Double

记账凭证是酒店财务的账簿生成的原始数据,凭证记录了酒店与银行或其他机构的

资金来往情况,凭证中包含了贷方资金数量和借方资金数量、凭证生成的日期,制证人

等信息。凭证表的设计如表4.6所示。

4.6凭证表

字段名

字段含义

类型

关键字

PzID

系统编码

Int

Accounting

凭证号

Varchar

Pztype

制证人员编号

Int

Date

制证时间

Datetime

Makelist

借方资金数量

Double

Debitsum

贷方资金数量

Double

Creditsum

凭证状态

Varchar

  1. 本章小结

本章在第二章需求分析的基础上对系统进行总体设计,主要内容包括系统的主要接口设计与数据库表格设计,其中接口设计包括系统管理接口设计、基本的财务管理接口设计、银行对账接口设计、账簿报表管理接口设计、凭证管理接口设计。然后详细介绍了日记账表、总分类账表、银行对账表、年度预算表、会计科目表、凭证表等数据库表格的设计。接口设计与数据库设计前者处于整个系统体系结构的顶层,后者处于系统体系结构的底层,是系统除了实现逻辑外最重要的两个部分。

5章 酒店财务管理平台详细设计与实现

  1. 系统的硬件的拓扑结构

财务部门是酒店的基础部门,对于整个酒店的正常运作也发展都具有很重要的作用。酒店的财务部门所需要构建的财务管理信息系统的主要用户是会计人员和出纳人员,会计人员使用财务管理信息系统进行基本的系统管理,对基本的财务数据进行维护,管理系统的操作日志等。会计人员还需要使用财务系统进行建账转账管理、会计的基本科目管理、酒店现金流管理等。而出纳人员主要负责资金的进出,以及企业与银行的对接,在资金方面的统计等内容。出纳的日常工作由日常记账,日记账凭证管理等,而在一个长时间内的管理包括年度预决算、企业现金计划等内容。从这一角度可以看出使用酒店财务管理平台进行日常办公的并非只有一类人员,对系统进行操作的主机也不可能只有一台,所以在系统的硬件构建方面就需要将不同的主机通过网络进行互联。同意分公司内的多台主机与服务器可以通过局域网进行连接,不同地点的主机与服务器通过互联网核心网络进行连接。本文所实现的基于python的酒店财务管理平台采用C/S架构,对于每一台使用系统的主机来说,均需要安装python语言编写的系统客户端,然后通过网络与系统服务器进行通信与数据共享。系统的硬件拓扑结构如图5.1所示。

5.1系统的硬件拓扑结构图

  1. 功能的详细设计及实现
  1. 系统登录功能

酒店财务系统的数据安全性和酒店的发展规划,商业合作数据等内容一样,具有

机密性,所以所有使用系统的用户,无论是会计人员,出纳人员,财务部门管理员,

甚至公司高层管理员都应该先通过用户名密码的登录验证,然后再使用系统的各项功

能。系统登录功能的核心代码如下所示,酒店财务系统的登录界面设计如图5.2所示。

defdo_login(username,pwd,cookie_file):

Performloginactionwithusename,passwordandsavingcookies.

@paramusername:loginusername

@parampwd:loginpassword

@paramcookie_file:filenamewheretosavecookieswhenloginsucceeded

#POSTdataperLOGINHOTEL,thesefieldscanbecapturedusinghttpfoxextensioninFIrefoxlogin_data={

'entry':'hotelFinancialManagement',

'gateway':'1',

'from':'',

'savestate':'7',

'userticket':'1',

'pagerefer':'',

'vsnf':'1',

'su':'',

'service':'miniblog',

'servertime':'',

'nonce':'',

'pwencode':'rsa2',

'rsakv':'',

'sp':'',

'encoding':'UTF-8',

'prelt':'45',

'returntype':'META'

}

cookie_jar2=cookielib.LWPCookieJar()cookie_support2=urllib2.HTTPCookieProcessor(cookie_jar2)opener2 =urllib2.build_opener(cookie_support2,urllib2.HTTPHandler)

urllib2.install_opener(opener2)

try:

servertime,nonce,rsakv=get_prelogin_status(username)except:

return

#FillPOSTdata

print'startingtosetlogin_data'login_data['servertime']=servertimelogin_data['nonce']=noncelogin_data['su']=get_user(username)

login_data['sp']=get_pwd_rsa(pwd,servertime,nonce)login_data['rsakv']=rsakv

login_data=urllib.urlencode(login_data)

http_headers={'User-Agent':'Mozilla/5.0(X11;Linuxi686;rv:8.0)Gecko/20100101Firefox/8.0'}

req_login=urllib2.Request(

url=login_url,

data=login_data,headers=http_headers

)

result=urllib2.urlopen(req_login)

text=result.read()

p=re.compile('location\.replace\(\'(.*?)\'\)')

try:

#SearchloginredirectionURLlogin_url=p.search(text).group(1)data=urllib2.urlopen(login_url).read()

#Verifyloginfeedback,checkwhetherresultisTRUEpatt_feedback='feedBackUrlCallBack\((.*)\)'p=re.compile(patt_feedback,re.MULTILINE)

feedback=p.search(data).group(1)feedback_json=json.loads(feedback)

iffeedback_json['result']:cookie_jar2.save(cookie_file,ignore_discard=True,ignore_expires=True)return1

else:return0except:

return0

5.2酒店财务系统登录界面设计图

  1. 期末结账功能

期末结账是基础财务管理中的重要功能,基础财务管理功能界面图如图5.3所示。期末结账不同于日记账等日常记账功能,其操作的时间以月为单位。期末结账功能需要选择进行核算的机构,以及核算的年度,当在系统中选择这两项内容后系统会显示该核算机构与所选择的年份显示该年度所有月份的期末结账情况。

会计人员通过用户名密码登录进入基础财务管理子系统功能界面后可以选择期末结账,进入期末结账功能模块对应的系统界面。会计人员根据系统的下拉菜单提示,选择要核算的机构名称及要核算的年份。系统会根据核算机构及核算年份的选择显示该机构在该年度的核算明细列表。

5.3基本的财务管理子系统界面设计图

包括结账状态、操作员的名称、结账日期等内容。如果有关于该月份核算的详细内容会被填写在备注栏。会计人员接下来在列表中选择要核算的月份,在该月份前面的复选框上打钩。如果点击期末结账,系统会进入具体的核算界面。如果点击取消按钮,系统会返回基础财务管理功能系统界面。期末结账的功能界面设计图如图5.4所示。

5.4期末结账界面

基本的财务管理功能模块的模块及方法说明如表5.1所示。

5.1基本的财务管理部分方法说明

Modulename

Function

LogManage.py:系统日志管理模块

Log():日志记录函数setParameter():参数设置函数queryLog():日志查询函数deleteLog():日志删除函数

DataManage.py:数据管理模块

importData():系统数据导入exportData():系统数据导出backupData():系统数据备份recoverData():系统数据恢复

其中日志管理部分的核心代码如下所示:

def_raw_log(self,logfn,message,exc_info):

cname=''

loc=''

fn=''

tb=traceback.extract_stack()

iflen(tb)>2:

ifself.show_source_location:

loc='(%s:%d):'%(os.path.basename(tb[-3][0]),tb[-3][1])

fn=tb[-3][2]

iffn!='<module>':

ifself.__class__.__name__!=Logger.__name__:

fn=self.__class__.__name__+'.'+fn

fn+='()'

logfn(loc+cname+fn+':'+message,exc_info=exc_info)

  1. 出纳管理功能

酒店的出纳人员需要定期与银行进行对账,以保证酒店与银行的资金关系是正常的。银行与银行财务的关系十分密切,银行对酒店来说在财务方面发挥着巨大的作用。对于出纳人员来说,利用系统的银行对账功能即可手动或自动进行对账。对账完成后会根据对账结果生成酒店与该行的一份存款余额表,出纳人员可以继续进行存款余额调节表的制作或修改。出纳管理功能界面图如图5.5所示。

酒店财务管理信息系统

系统管理

基本的财务管理

出纳管理

账簿抿单管理

凭证管理

出內管理

5.5出纳管理功能界面设计图

出纳人员通过用户名密码登录进入出纳管理子系统功能界面后可以进入银行结账子功能界面,在与酒店合作的所有银行中选择要进行本次对账的银行账户,根据系统提示录入酒店对该银行的对账单,并录入银行所开具的对账单。接下来选择对账方式完成对账操作,生成余额调节表。出纳管理中的另一个重要功能是日记账功能,图5.6为日记账记录的界面设计图。

出纳管理功能模块的模块及方法说明如表5.2所示。

5.2出纳管理部分方法说明

Modulename

Function

planBalance.py:存款余额计划模块

newBalaceplan():新增存款余额计划函数modifyBalaceplan():修改存款余额计划函数auditBalaceplan():审核计划函数

annualBudget.py:年度预算模块

newBudget():制定年度预算函数modifyBudget():修改年度预算函数auditBudget():审核年度预算函数

dailyAccount.py日记账模块

entryAccount():出纳日记账录入函数queryAccount():日记账查询函数

bankReconciliation.py:银行对账模块

entryReconciliation():对账单录入函数paraReconciliation():对账参数设置函数Reconciliation:银行对账函数

5.6日记账记录界面设计图

  1. 账簿报表管理功能

账簿报单管理对各种不同类型的酒店项目或服务账簿进行核算、统计。科目查询是账簿报单管理功能模块中的重要部分,会计人员进行科目查询的时候只需要提供查询时间,系统就会输出显示这一时间段内的科目账簿明细。会计人员输入查询时间段后系统会审核该时间段是否合法,主要是会计人员输入的时间段内的科目账簿明细可能还没有被录入进入系统,那么查询就是无效的。账簿报表管理功能界面图如图5.7所示。

酒店财务管理信息系统

系貌管理

基本的财务管理

出纳管理 账簿抿单管理

凭证管理

账湖弾青理

项目账簿核算

5.7账簿报表管理功能界面设计图

会计人员通过用户名密码登录进入账簿报单管理子系统功能界面后可以选择科目余额表查询,会计人员进入科目余额表查询功能模块对应的系统界面。选择要查询的酒店科目余额表的时间范围。点击查询按钮,将查询的时间范围发送给系统后台服务器,服务器执行查询操作。服务器审核会计人员输入的查询时间是否合法,然后输出查询结果。账簿报表管理中的科目余额表查询功能界面设计图如图5.8所示。

账簿报表管理功能模块的模块及方法说明如表5.3所示。

5.3账簿报表管理部分方法说明

Modulename

Function

booksManage.py:账簿管理模块

calculationBokks():项目账簿核算函数multibooksManage():多栏账簿管理函数detailedbooks():明细账簿函数generalbooks():总分类账簿函数

trialbalanceManage.py:科目余额表

管理模块

newTrialbalance():生成科目余额表函数modifyTrialbalance():修改科目余额表函数

  1. 凭证查询功能

凭证管理功能对酒店各种时期的凭证进行管理、汇总、审核、查询、制作。酒店财务的账簿生成的原始数据自记账凭证,所以凭证管理中的凭证查询功能不仅对凭证管理十分重要,在进行出纳管理时也有应用。凭证查询属于凭证管理功能模块的基础功能,只有正确的查找到需要的凭证,才能进一步地进行凭证审核、凭证修改等操作。凭证查询的查询结果一般要求是唯一的结果,所以在凭证查询时要求输入的查询条件应该尽量能够缩小范围。凭证的最基本特征就是类别,所以凭证类别是凭证查询时的一个必要条件,制单人、审核人、记账人对一个凭证来说也十分重要,但是往往一个制单人或审核人会对多个凭证进行对应,光凭这三项条件也无法唯一地确定查询到一个凭证。对于酒店财务管理平台来说,每一个凭证都有一个唯一的系统编号,输入这个编号就能唯一确定一个凭证,但是为了保证查询到的凭证与财务人员需要的凭证信息一致,尽量多地输入凭证信息有助于得到更准确的凭证数据。凭证管理界面设计如图5.9所示。

酒店财务管理信息系统

系统管理基本的财务管理出纳管理账簿报单管理凭证管理

期初建账

期末转账

凭证记账 欢迎使用酒店财翁管理信息系统■凭证管理功能

凭证近总

凭证审核

凭证查询

制作凭证单

5.9凭证管理功能界面设计图

财务人员通过用户名密码登录进入凭证管理功能模块界面,然后进入凭证查询子功
能界面。输入要查询的凭证类型、编号等必要的查询信息,输入制单人、审核人等非必须的辅助信息。点击确定进行凭证查询操作。系统根据酒店财务人员输入的凭证查询条件查询数据库服务器中的凭证表,检查是否有对应的凭证信息。如果查询条件输入正确,财务人员通过显示界面得到对应的凭证信息,如果根据查询条件未在系统数据服务器中找到匹配的凭证,返回查询界面,财务人员可以重新输入查询条件。凭证查询功能的界

面设计图如图5.10所示。

    1. 本章小结

本章介绍了系统登录、期末结账、出纳管理、账簿报表管理、凭证查询等功能的界面设计,并对系统的五个核心功能的模块及其函数进行了介绍。实现了基于Python的酒店财务管理平台。

6章 酒店财务管理平台的测试与分析

酒店财务管理平台在正式投入到酒店日常管理活动前应该由平台管理员先进行平台的测试与分析,当系统的各项功能都经过测试无误后再投入使用。酒店财务管理平台的测试使用设计好的测试用例及常规的测试流程进行。主要测试平台各项功能是否能够在使用过程中达到预期的结果,如果未能达到预期结果的系统功能需要进行修改。

  1. 测试用例

测试用例编号:A1

测试内容:登录过程中当用户输入的用户名密码数据为错误数据或者有其中一项内容在数据库中不匹配时,平台能否能给出正确的错误提示。

功能测试环境:与开发环境一致,windows732位操作系统。

测试步骤:

1 用户双击打开酒店财务管理平台,进入平台的登录界面。

2 随意输入一个用户名密码,点击登录系统。

3 用户输入一个在系统中存在的用户名,但输入一个错误的密码。

4 用户随意输入一个用户名,但输入一个已知的存在于平台中的密码。

预期结果:

1 当用户输入的用户名密码都不正确时,平台经过在数据库中的查询后应在登录界面提示用户输入的用户名密码不正确,请用户重新输入。

2 当用户输入的用户名正确而密码错误时应给出密码错误的提示。

3 当用户输入的用户名错误而密码正确时应给出用户名密码均错误的提示,请用户重新输入。

测试用例编号:A2测试内容:期末结账功能中平台能否完成正确的期末结账并最终生成核算内容。

功能测试环境:与开发环境一致,windows732位操作系统。

测试步骤:

1 会计人员进入期末结账功能模块对应的系统界面。

2 根据系统的下拉菜单提示,选择要核算的机构名称及要核算的年份。

3 系统根据核算机构及核算年份的选择显示该机构在该年度的核算明细列表。包括结账状态、操作员的名称、结账日期等内容。如果有关于该月份核算的详细内容会被填写在备注栏。

4 选择要核算的月份,在该月份前面的复选框上打钩。

5 点击期末结账,进入具体的核算界面。

预期结果:

平台能够在核算界面给出对应的核算结果。

测试用例编号:A3

测试内容:出纳人员在使用银行对账功能时能否生成正确的存款余额调节表,或能否自动根据新的对账结果修改I啊已有的存款余额调节表。

功能测试环境:与开发环境一致,windows732位操作系统。

测试步骤:

1 出纳人员进入银行对账功能模块对应的系统界面。

2 在与酒店合作的所有银行中选择要进行本次对账的银行账户。

3 根据系统提示录入酒店对该银行的对账单,并录入银行所开具的对账单。

4 选择对账方式。

5 对账方式可以是出纳人员手工对账,即出纳人员根据两张对账单逐项进行对账。

6 也可以选择自动对账,此时系统对相同项进行对账并生成存款余额表。

7 完成基本的银行对账操作,接下来可进行存款余额调节表的管理。

预期结果:

1 制作存款余额调节表。

2 根据新的对账结果修改已有的存款余额调节表。

测试用例编号:A4

测试内容:对系统的日志管理功能进行测试,测试平台能否根据用户的设置正常地打开或关闭日志记录功能,能否成功设置日志参数,能否显示操作人员的日志查询内容,以及能否成功删除日志内容。

功能测试环境:与开发环境一致,windows732位操作系统。

测试步骤:

1 会计人员进入日志管理功能模块对应的系统界面。

2 选择日志管理功能中的一个子功能。

3 会计人员选择日志记录子功能,进入日志记录子功能对应的功能界面。

4 会计人员选择参数设置子功能,进入参数设置子功能对应的功能界面。

5 会计人员选择日志查询子功能,进入日志查询子功能对应的功能界面。

6 会计人员选择日志删除子功能,进入日志删除子功能对应的功能界面。

7 根据系统提示进行对应功能的操作。

8 会计人员在日志记录子功能界面可以选择打开或关闭日志记录功能,一旦打开日志记录功能则从修改之时起,系统会根据参数给出的日志保存路径及格式记录系统的各项日志,包括数据日志、操作日志、用户日志等内容。会计人员也可选择定时的日志记录功能,即在约定的时间段内进行系统的日志记录,其余时段不进行日志记录。

9 设置日志记录的各项参数,包括日志记录类型,日志保存路径,日志自动刷新时间,是否自动删除旧日志,日志的文件保存大小限制,日志操作权限等内容。

10 选择查询的日志类型及查询的时间范围。

11 选择要删除的日志内容。系统一般不允许手动删除日志,因为日志的不正当删除可能导致系统的部分数据和操作无法恢复,也可能导致系统的部分安全性遭到破坏等。

12 操作完成,点击确定保存操作结果。

13 系统根据功能逻辑审核会计人员的操作是否合理,并给出操作结果显示。

预期结果:

1 日志记录成功被打开或关闭。

2 会计人员成功设置参数,保存后系统的日志记录将按照新的参数进行,旧日志保存在旧的路径中。

3 系统将会计人员查询的日志内容进行显示。

4 成功删除选择的日志内容或文件。

测试用例编号:A5

测试内容:会计人员使用科目账簿查询功能是能否根据输入的查询时间获得正确的账簿结果,以及输入的时间不合法时系统能否做出正确的提示,并返回到查询时间输入界面让用户重新输入。

功能测试环境:与开发环境一致,windows732位操作系统。测试步骤:

1 会计人员进入科目明细账簿查询功能模块对应的系统界面。

2 选择要查询的酒店科目明细账簿的时间范围。

3 点击查询按钮,将查询的时间范围发送给系统后台服务器,服务器执行查询操作。

4 服务器审核会计人员输入的账簿明细查询时间是否合法。

5 输出查询结果。

预期结果:

1 会计人员输入的查询时间合法,将账簿查询结果进行显示;

2 会计人员输入的账簿查询时间段不合法,系统自动返回到科目明细账簿查询条件输入界面。

测试用例编号:A6

测试内容:财务人员使用凭证查询功能时能否根据输入的查询条件获得相应的凭证信息,如果输入的查询条件没有对应的凭证时平台能否正常响应并返回到重新查询的界面。

功能测试环境:与开发环境一致,windows732位操作系统。

测试步骤:

1)财务人员进入凭证查询子功能界面。

2)输入要查询的凭证类型、编号等必要的查询信息,输入制单人、审核人等非必须的辅助信息。

3 点击确定进行凭证查询操作。

4 系统根据酒店财务人员输入的凭证查询条件查询数据库服务器中的凭证表,检查是否有对应的凭证信息。

5 返回并显示凭证查询结果。

预期结果:

1)查询条件输入正确,财务人员通过显示界面得到对应的凭证信息;

2)根据查询条件未在系统数据服务器中找到匹配的凭证,返回查询界面,财务人员可以重新输入查询条件。

  1. 测试结果分析

酒店财务管理平台的测试共使用了5个大的测试用例,达到预期结果的测试一共有

5个。具体的测试结果如表6.1所示。

6.1酒店财务管理系统测试结果表

总测试用例数量

5

通过的测试用例数量

5

未通过的测试用例

数量及问题发现

A级别测试问题发现

0

B级别测试问题发现

0

C级别测试问题发现

0

  1. 本章小结

基于Python的酒店财务信息管理系统经过测试其功能能够达到预期的实现结果,

能够满足需求分析与总体设计中关于系统功能所提出的一系列要求,能够满足当下酒店行业对财务管理系统的使用规范。

7章 总结与展望

如今的酒店向客户提供越来越多的服务类型,同时服务质量也随着经济的发展和服务人员素质的提高在不断进步。酒店越来越成为人们生活中一个不可缺少的部分。除了经济的不断发展,酒店行业作为我国的第三产业,其发展与旅游业的繁荣息息相关。另一方面,在大中型城市里,商务酒店作为商务洽谈、健身会友的常用场所,其优质服务的需求十分必要。服务已经成为酒店行业里比硬件设施更为重要的一个环节。而如何为客户提供更好的服务,从而为酒店企业创造更多的价值,需要企业的各个部门的积极参与,保证各个环节的有序开展。在这里面,财务作为企业的基础部门,其高效有序的工作能够为酒店的有序环境提供支持。财务管理作为企业的一个重要部门,其制度的建立,计划的实施,信息的管理都会影响整个部门的发展,而财务部门的管理与发展又会影响整个企业的进步。酒店行业以服务为主,而服务的基础是硬件设施的管理,作为酒店企业内的财务部门,除了对固定资产进行管理外,还需要维护酒店的日场财务管理,包括财务报表的管理,出纳管理,与银行的往来账务的管理。除了这些基础的财务管理外,财务部门还应该承担起对企业发展进行评估的责任。财务部门应该根据酒店的一些基本财务数据分析出各项财务指标,从而为酒店的高层提供决策的数据支持。

本文根据国内外财务管理信息系统的现状,结合酒店的实际环境和条件,完成基于Python的酒店财务管理平台的设计与实现。在整个系统的设计与实现过程中,主要完成五个方面的工作。首先明确了本研究的背景与意义,了解财务管理系统的国内外现状,完成论文的绪论部分。绪论为阅读本文的读者阐明了酒店管理信息系统的基本内容,所要实现的目标,系统服务的对象等基本内容,但未在这些内容上做深入的分析。基本的酒店财务信息管理,以及集团化的异地酒店财务信息管理,对酒店发展十分重要。这一部分内容对后续系统的设计定下了基础。接下来介绍了要实现本文所设计的系统需要用的技术概念及基本原理,包括PythonC/S架构、MySQL数据库等内容。

本文的系统设计部分分为两步,首先是系统的需求设计。系统的详细设计需要在需求分析的基础上进行,而需求分析的第一项重要内容就是确定系统的主要用户,只有确定了用户,然后再针对不同用户设计主要功能才能最好的满足所有用户的功能需求。明确了系统的主要用户后根据不同的用户进行用例分析,这一步为本文的系统功能设计提供了帮助。用例分析可以看作是对系统的功能进行分析,而除了功能的分析外,系统的非功能性分析同样很重要,非功能性分析关系到系统最终能否在服务器上进行部署,是否能够为今后的系统扩展所需要等内容。

在需求分析的基础上,本文对系统进行了总体设计,总体设计的主要内容集中在系统的数据库设计与界面设计方面。这两部分的设计一个处于整个系统体系结构的底层,一个处于系统体系结构的顶层,是系统除了实现逻辑外最重要的两个部分。最后本文完成了基于Python的酒店财务管理平台的详细设计及实现。对实现的系统的主要界面及实现的核心模块进行了介绍。

在酒店财务系统的设计与实现过程中还存在一些由于经验或技术能力导致的系统不足,主要包括以下两个方面:

(1)系统的用户角色设计只有一类,但实际的使用过程中用户的角色可能除了会计人员、出纳人员还有专门的后台系统维护人员、企业管理人员、财务部门领导等。

(1)软件的界面设计可以更加美观和具有实用性。

参考文献

  1. 闫丽•浅析如何推进酒店企业财务管理精细化建设[J].经营管理者.2011(11).
  2. AbhikBanerjee.Seekeroptimizationalgorithmforload-trackingperformanceofanautonomouspowersystem[J].InternationalJournalofElectricalPowerandEnergySystems,2012,43(1).
  3. KazushiIkeda.ALMware:Amiddlewareforapplicationlayermulticastprotocols[J].ComputerCommunications,2011,34(14).
  4. 王书程,曾贤龙,苏珏.基于Struts框架的进销存管理系统的设计与实现[J].计算机与信息技术.2008(08).
  5. VladaMatena,BethStearns著,瞿裕忠等译.J2EE平台上的EJB组件开发[M].机械工业出版社,2001.
  6. 李桃•浅谈酒店企业财务的现代化管理[J].财经界(学术版).2012(07).
  7. Sun Java

center.J2EETMPatterns.http://developer.java.sun.com/develop/technicalArticles/J2EE/patterns.2001.

  1. SunMicrosystemsIcn.CoreJ2EEPatterns.Oracle Java Technologies | OraclecoreJ2EEpatterns/index.html.2002.
  2. 苏明霞.基于构件的软件复用技术的研究及应用[D].武汉理工大学,

2009.

  1. 郝庆华,殷丽清.STRUTS架构在人才培训系统中的研究和应用[J].软件导刊.2010(12).
  2. 鲁铮•酒店企业财务管理信息化建设浅析[J].内蒙古科技与经济.2010(05).
  3. 王玲•新形势下酒店企业财务管理创新探究[J].China'sForeignTrade.2011(16).
  4. SzyperskiC,GruntzD,MurerS.Componentsoftware:beyond

object-orientedprogramming.2003.

  1. 刘壮.基于Spring+Hibernate的开发方法研究及实例[D].吉林大学,2005.
  2. 黎光伟.基于Python的机场软件及相关模块的设计与实现[D].电子科技大学,2005.
  3. 卢晓星,余金山.一种基于Python的应用框架设计及实现[J].计算机技术与发展.2008(04).
  4. 胡晓丹,魏长军.基于Struts+Spring+Hibernate架构的能源管理系统的研究[J].计算机与现代化.2006(12).
  5. 王长富,罗晓沛.基于WebPython的办公自动化系统的设计[J].微电子学与计算机.2007(08).
  6. 郝庆华,殷丽清.STRUTS架构在人才培训系统中的研究和应用[J].软件导刊.2010(12).47
  7. 孙晓奇,张晓静.会计信息质量特征与市场经济秩序[J].经济论坛.

2007(05). 48

  1. 周丛林.C/SB/S在石油信息系统的应用[J],中国石油和化工,2009,10
  2. 吴正平,谢学文,王仁明.基于C/S模式的多机器人网络通信系统[J],三峡大学学报(自然科学版),20093
  3. 刘红梅•基于C/SB/S体系结构应用系统的开发方法[J],计算机与现代化,200711
  4. 曾学军•浅析B/SC/S结构的开发与应用[J],网络通讯与安全2007,3
  5. 张炜.C/SB/S混合软件体系结构及其在数字化教学系统中的应用[J],计算机教育,20078
  6. 沈剑翘,聂华北软.件体系结构(风格)综述[j],电脑开发与应用,2007,11
  7. 周警伟.MVCweb系统中的模式与应用2005
  8. ChuckCavaness,JakartaStruts:SevenLessonsfromtheTrenches.http//www.onjava.com/pub/a/onjava/2002/10/30/jakarta.htnil?page=l,2002
  9. J2EE蓝图摘要二——JZEE基本架构:概述.

http://www.cn-java.com/target/news.php?news_id=94.

  1. SubrahmanyamAilamaraju,CedericBuest,JohnDavies等著.马树奇译.

Python编程指南(1.3版).北京:电子工业出版社,2002

  1. LiChunlinLuzhengdingLilayuan.Adistributedcomputingmodelanditsapplication[J].IEEEICCNMC200lIEEEcomputersocietypress,2006(10)341-346
  2. 王明文,朱清新.Web服务架构[J].计算机应用研究2005,(3):45-46
  3. 陈传波,魏书光.一种具有高度可扩展性和灵活性的软件模型研究[J].计算机工程与科学.2004(4):121-126
  4. 马淑红,单保录.数据库设计的可扩展性案例研究[J].科技信息,2009,(25):450
  5. 袁皓,杨晓懿•信息安全模型安全控制研究[J].信息安全与通信保密,2007,(2):43-45.
  6. EAl-Shaer,HHamed.ModelingandManagementofFirewallPolicies[J].IEEETransactionson

NetworkandServiceManagement.2004,1(1):2-10

本设计在郭东伟老师的悉心指导和严格要求下业已完成,从课题选择、方案论证到具体设计和调试,无不凝聚着老师的心血和汗水,在三年的研究生学习和生活期间,也始终感受着导师的精心指导和无私的关怀,让我受益匪浅。在此向郭老师表示深深的感谢和崇高的敬意。

不积跬步何以至千里,本设计能够顺利的完成,也归功于各位任课老师的认真负责,使我能够很好的掌握和运用专业知识,并在设计中得以体现。正是有了他们的悉心帮助和支持,才使我的毕业论文工作顺利完成。

点赞+收藏+关注  →私信领取本源代码、数据库

                       

  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于Python酒店管理系统的设计实现主要包括以下几个方面: 1. 系统功能设计:首先需要确定系统的功能模块,包括客房管理、订单管理、预订管理、入住管理、退房管理、费用管理等。确定功能模块后,可以使用Python的面向对象编程思想,将不同功能模块进行抽象和封装,建立相应的类和函数。 2. 数据库设计酒店管理系统需要存储大量的客房信息、订单信息、费用信息等数据,因此需要设计数据库来存储这些信息。可以使用关系型数据库MySQL或者非关系型数据库如MongoDB。利用Python数据库操作模块,如MySQLdb或pymongo,实现数据库的连接和数据CRUD操作。 3. 用户界面设计:为了方便用户操作,需要设计一个友好的用户界面。可以使用Python的图形用户界面库,如Tkinter或PyQt,来实现界面设计。通过布局界面、添加组件、编写事件响应函数等,实现用户与系统的交互。 4. 系统安全设计:为了保护系统的安全性,可以采取一些措施,如用户登录验证、权限管理、数据加密等。可以使用Python的加密模块,如hashlib或cryptography,来实现数据的加密与解密。同时,对用户输入进行合法性验证,防止恶意攻击。 5. 系统测试和优化:系统设计完成后,需要进行测试和优化。可以使用Python的单元测试框架,如unittest,编写相应的测试用例,测试系统的功能和性能。针对测试中的问题,进行性能优化,如优化数据库查询语句的效率、提高界面的响应速度等。 综上所述,基于Python酒店管理系统设计实现需要考虑系统功能设计数据库设计、用户界面设计、系统安全设计以及系统测试和优化等方面。通过合理的设计实现,可以提高酒店管理的效率和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值