APP下载

财务管理系统设计与实现

2015-03-02李佳等

软件导刊 2015年1期

李佳等

摘要:针对财务管理网络化需求,提出了基于Struts2架构、采用B/S结构的财务管理系统设计方案。该方案以美发店为参考模型,由客户管理、收入管理、支出管理、统计管理等几个模块组成。应用表明,该系统能够满足需求。

关键词:财务管理系统;Struts2架构;B/S结构

DOIDOI:10.11907/rjdk.143702

中图分类号:TP315

文献标识码:A 文章编号文章编号:16727800(2015)001011102

0 引言

伴随着信息技术的发展和互联网的广泛应用,财务管理从C/S模式扩展到B/S模式是必然的。“网络财务”是以网络计算技术为基础,实现企业财务与业务协同、各种远程操作、动态核算和在线财务管理、支持电子商务的一种全新的财务管理模式[1]。为了设计出优秀的系统,本文的财务管理系统选择“网络财务”的管理模式,采用基于Struts2架构浏览器/服务器(B/S)结构、大型数据库等技术,能够实现远程处理、集中处理和信息共享。

1 相关技术

1.1 B/S结构

B/S是Browser/Server的缩写,客户机上只要安装一个浏览器(Browser),如Internet Explorer,服务器安装Oracle、Sybase、MySQL 或 SQL Server等数据库。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,主要事务逻辑在服务器端实现,浏览器通过Web Server 同数据库进行数据交互。

B/S模式与传统的C/S模式相比,体现了集中式计算的优越性:具有良好的开放性,利用单一的访问点,用户可以在任何地点任何时间使用系统;可以跨平台以相同浏览器界面访问系统。

1.2 Struts 2架构

Struts2是一个 Pull类型的 MVC框架, 它与传统类型的 MVC框架不同之处在于:在 Struts 2中,Action既是模型, 又是业务控制器。视图直接从 Action里拉取所需的数据, 而不是另外需要一个单独的模型对象存在。在 Struts 2中, MVC 模式通过5个核心组件来实现:①Action;②拦截器;③值栈/OGNL;④结果类型;⑤结果 /视图技术[2]。

Struts2工作原理:使用 FilterDispatcher 将 HTTP转换成一个请求,这个请求穿过 Struts2 的拦截器,到达相应的 action 类,调用相应的 execute方法产生不同的result,这些result在struts.XML中被分别转换成不同的 Web 响应[3]。

2 系统设计与实现

2.1 系统总体结构设计

系统主要有4大模块,分别是客户管理、收入管理、支出管理、统计管理,每个模块都具有打印功能。为了操作方便,对数据增加提供了批量导入功能,节约了操作时间。系统功能模块如图1所示。

图1 系统功能模块

2.2 客户管理

客户管理是对美发店客户的详细资料进行管理。详细资料包括客户姓名、电话、邮箱等联系信息,以及头发特征,例如是否卷发、头发颜色、长度等,最后还有客户在本店的消费总金额。

该模块提供了搜索客户姓名功能,筛选出相应的客户,以及实现对客户详细资料的增删改功能。对客户资料的添加,可以分为单条手工录入和批量导入,前者操作比较繁琐,数据量大时可以选择后者。

2.3 收入管理

美发店收入仅限于客户的消费。收入属性包括客户编号、消费日期、消费金额。

该模块可搜索客户姓名,或者选择消费日期来筛选出相应的收入记录,以及收入的增删改。收入添加功能在客户管理模块操作,在该模块搜索出消费客户,随后在该条记录上点击“消费”按钮,即可跳转到收入添加页面,此时客户相关信息不可编辑。

2.4 支出管理

支出管理是对美发店所有支出的管理,包含员工工资、水电费、通信费、代理费以及其它费用。

该模块可选择支出日期来筛选相应的支出记录,以及实现支出的增删改功能。

2.5 统计管理

统计管理是对美发店财务情况的管理,美发店的营业利润就是收入金额减去支出金额。根据实际需要,统计管理分为统计盈亏(日盈亏、月盈亏、年盈亏)、支出、收入几个部分。统计管理是财务系统的核心,有效反映出整个美发店经济状况。

该模块提供日期段盈亏情况,支出、收入统计。盈亏统计可把一段时期的所有收入减去所有支出。盈亏统计核心代码如下:

incomes=inservice.getincomessbyfddate(selectGroup.getFdate(), selectGroup

.getEdate());

expenses=exservice.getexpensessbyfddate(selectGroup.getFdate(), selectGroup

.getEdate());

float income = 0;float expense = 0;

for(Income icm :incomes){

income += icm.getMoney();}

for(Expense exp :expenses){

expense+=exp.getMoney();}

float amount = income - expense;

具体运行效果如图2所示。

3 数据库设计与实现

考虑到数据库及其应用系统开发全过程,将数据库设计分为6个阶段:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库实施、数据库运行和维护[4]。

概念数据库设计可以使用ER(EntityRelationship)图、数据流程图等设计方法进行,实现时还可以采用某些工具进行。根据实际需求设计的数据库实体E-R图共用6个实体,分别是客户、收入、支出、盈亏统计、收入统计、支出统计,具体分布如图3所示。

图2 盈亏统计

图3 E-R实体

财务管理系统的大容量数据存储需要借助优秀的数据库平台,安全、完整地快速存储数据,以及方便灵活地查询,MySQL 数据库无疑是一个很好的选择,它是多线程、多用户的关系型数据库[5]。财务管理系统所涉及的主要数据库表如下 :①客户表:客户ID、客户编号、客户姓名、电话号码;②收入表:收入ID、客户编号、收入日期、金额;③支出表:支出ID、支出日期、支出类型、支出金额;④盈亏统计表:收入统计ID、支出统计ID、总计;⑤收入统计表:收入统计ID、开始日期、结束日期、总计;⑥支出统计表:支出统计ID、开始日期、结束日期、总计。

4 结语

基于B/S结构的美发店财务管理系统实现了财务管理网络化,用户操作方便,系统界面友好,采用了多级安全机制并支持电子商务。

参考文献:

[1] 李宝泉.基于B_S结构的财务管理系统的设计与实现[D].北京:北京工业大学,2010.

[2] ROUGHLEY I.Starting struts2[EB/OL].http://www.infoq.com/minibooks/startingstruts2.

[3] 丁波,晁爱农.基于Struts2 框架的AJAX开发研究[J].计算机工程与设计,2009 (16):39103913.

[4] 张露.数据库设计[J].安阳工学院学报,2007(6):7779.

[5] 李荣国.MySQL数据库在自动测试系统中的应用[J].计算机应用,2011(12):150153.