软件工程 家庭财务管理系统的设计与实现最终稿.docx
- 文档编号:26299018
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:62
- 大小:3.02MB
软件工程 家庭财务管理系统的设计与实现最终稿.docx
《软件工程 家庭财务管理系统的设计与实现最终稿.docx》由会员分享,可在线阅读,更多相关《软件工程 家庭财务管理系统的设计与实现最终稿.docx(62页珍藏版)》请在冰豆网上搜索。
软件工程家庭财务管理系统的设计与实现最终稿
职工工资管理系统的设计与实现
摘要:
近几年来,随着经济全球化和城乡居民生活需求不断变化及计算机科学技术的飞速发展,人们的生活水平不断提升,理财意识逐渐深入人心,直接影响着人们的生活,因此人们迫切需要一个高效、方便的管理家庭财务的系统。
该系统采用Java技术,使用C/S模式,采用MyEclipse开发工具、MySQL数据库、VISIO2003画图工具和Photoshop图像处理等工具,对家庭财务管理系统进行需求分析、概要设计、详细设计和对各功能模块进行单元测试和综合测试,主要包括后台数据库的建立和维护及前台应用程序的开发。
通过该系统,可以方便地对日常收入、日常支出、现金的借入及借出进行管理,该系统具备浏览、查询、添加、删除、修改和报表等功能,界面友好且操作简单。
关键词:
家庭财务管理系统;Java;MySQL;C/S
第一章可行性分析
1.1可行性分析
可行性分析是指在现有的技术、经济、法律和社会效益等方面的条件下分析每一项需求实施的可行性,通过可行性分析,可以对系统的技术、操作和经济方面提出相关要求和设计方案。
可行性分析就是解决一个项目是否有可行解以及是否值得去解的问题。
对于每个管理系统来说,首先都需要对系统有一个合适的设计思想和方法,对系统有个明确的方案,使用现有技术能否实现该系统,该系统的经济效益能否超过它的开发成本,系统的操作方案在用户组织里能否行得通,选择合理的操作系统和开发环境等等,这些都对系统的开发起着很重要的作用。
只有通过对系统进行可行性分析才能构建完善的系统。
本系统的可行性分析将从技术可行性、操作可行性、经济可行性和法律可行性四个方面进行说明。
1.1.1技术可行性
由于该系统所要满足的硬件是计算机,软件方面是采用JDK1.6开发环境、MyEclipse开发工具和MySQL数据库,这些设备和软件易于实现和满足。
采用的语言是Java语言,具有可移植性,功能易于实现,界面比较美观,操作简单,能够移植到其他计算机上运行,与平台无关,能够满足更多的用户,使得该系统能被很多家庭所接受。
所以该系统在技术上是可行的。
1.1.2经济可行性
现代化信息管理和电脑普及的今天,该系统如果开发成功,成本比较低,工作效率比较高,维护费用比较低,能给一个家庭带来很多的方便,该系统采用比较容易学的Java语言编写,由于Java平台的自由和开放性使得该系统实现不是很复杂、开发周期比较短,开发人员成本低。
该系统的成本主要是开发和数据库的维护上,所设计的成本都比较低,能给一个家庭带来很大的利润。
因此在经济上是可行的。
1.1.3操作可行性
该系统在操作上是可行的,系统是采用Windows平台开发的,是家庭管理者与系统之间的操作,窗口和界面简单直观,人性化,易用操作和管理,业务逻辑清晰,各模块容易扩充。
因此在操作上是可行的。
1.1.4法律可行性
随着社会主义的发展和人们的生活水平的提高,对于一个家庭来说,所面对的事情都越来越复杂了,特别是对家庭财产的管理。
如何有效的管理和利用当今的计算机技术来达到人们所期望的生活已经在人们心中深入人心了,对于一个家庭财产管理系统的设计与实现对于每个家庭来说都是有必要的,没有任何侵犯法律问题。
因此,在法律上该系统是可行的。
第二章需求分析
2.1系统需求分析
家庭财务管理系统是一个家庭必需的信息管理系统。
通过我们对家庭财务管理的详细调查,大部分家庭对于财务的管理还是局限在使用传统的人工纸质记账管理的方式,这种方式存在许多缺点,如:
效率很低、安全性差、管理难和产生大量纸质文件等。
所以需要一个家庭财务管理系统来为每一个家庭的管理者提供充足的信息和快捷的查询手段。
家庭财务管理系统的信息数据主要是家庭管理员对家庭的收支消费信息的输入,由于一个家庭每天都会有收入和支出的情况,导致数据库时时有更新,因此,能够及时有效的处理数据,就需要建立一个数据库来存储数据。
该家庭财务管理系统的设计与实现,主要包括后台数据库的建立和维护以及前台应用程序的开发两个方面。
对于后台的数据库建立需要数据安全性好,对于前端应用程序则需要功能完善和易使用的特点。
2.1.1系统功能需求
本系统由系统管理、基础数据管理、日常收支管理、银行储蓄管理、借还钱管理和理财分析等模块组成。
系统管理模块需求:
通过此模块可以验证用户登录、密码修改、重新登录和退出等功能。
基础数据管理模块需求:
通过此模块可以对家庭成员的添加、删除和修改,对收支项目的添加、删除和修改。
日常收支管理模块需求:
通过此模块可以对日常收入进行添加、删除和修改,对日常支出进行添加、删除和修改。
银行储蓄管理模块需求:
通过此模块可以对银行活期账户进行添加、删除和修改,对定期账户进行添加、删除和修改。
借还钱管理模块需求:
通过此模块可以对家庭成员的各项借出款进行添加、删除和修改,对家庭成员的借入款进行添加、删除和修改。
理财分析模块需求:
通过此模块可以查询收支明细和生成理财分析报告。
2.1.2系统性能需求
该系统要求具有良好的灵活性、可扩充性和可移植性,系统采用MySQL数据库,系统的数据都是通过数据库来保存,需要数据库具有很好的稳定性,系统可运行在主流的Windows操作系统平台上,操作系统要求响应速度快,使操作者感觉操作流畅。
2.1.3系统环境需求
该系统采用C/S模式,系统基本环境为windowsxp操作系统,在MyEclipse平台上开发,根据的运行需求以及系统的调试需求,需要满足下列的软硬件要求:
硬件环境:
CPU:
2.10GHz
内存:
512M以上
硬盘:
30GB以上
VGA显示器或更高
软件环境:
运行环境:
MyEclipse7.5
数据库:
MySQL
数据库客户端:
NavicatforMySQL
画图软件:
Visio2003
操作系统:
WindowsXP
2.1.4用户界面需求
系统采用人机交互方式,主要通过界面来显示用户需要的信息,界面需要美观友好,信息查询方便灵活,输入输出数据格式友好便捷,并且具备简单的错误提示功能。
2.2系统流程图
该系统中,用户可以通过进入后台数据库对数据进行操作和管理,可以通过登录界面进入主界面管理各个功能模块。
系统流程图如下图所示:
图3-1系统流程图
2.3系统数据流图
图3-20层数据流图
图3-3功能级数据流图
第三章概要设计
3.1系统概述
本系统主要管理家庭财务信息的功能,主要是家庭管理员向该系统录入财务收支信息,对家庭成员的消费水平进行管理。
采用C/S模式实现,用户可以通过浏览器向服务器发送请求,进行相关操作,服务器接收浏览器发送来的请求,将响应结果返回给客户端,财务管理信息存放到数据库里。
3.2系统的功能结构图
通过对家庭财务管理系统进行详细设计后,家庭财务管理系统由系统管理、基础数据管理、日常收支管理、银行储蓄管理、借还钱管理和理财分析等六个模块组成。
系统功能结构如下图所示:
图4-1系统功能结构图
3.3系统的各功能模块设计
3.3.1系统管理模块功能设计
该模块实现的功能主要是用户登录、密码修改、重新登录和退出等
系统管理模块功能图如下图所示:
图4-2系统管理模块结构图
3.3.2基础数据管理模块功能设计
该模块实现的功能主要是家庭成员的添加、删除和修改,收支项目的添加、删除和修改等。
基础数据管理模块功能图如下图所示:
图4-3基础数据管理模块结构图
3.3.3日常收支管理模块功能设计
该模块实现的功能主要是日常收入和日常支出功能。
日常收支管理模块功能图如下图所示:
图4-4日常收支管理模块结构图
3.3.4银行储蓄管理模块功能设计
该模块实现的功能主要是对银行活期和定期账户进行添加、删除和修改及存取款记录等功能。
银行储蓄管理模块功能图如下所示:
图4-5银行储蓄管理模块结构图
3.3.5借还钱管理模块功能设计
该模块实现功能主要是记录家庭成员各项借出款和借入款等情况。
借还钱管理模块功能图如下图所示:
图4-6借还钱管理模块结构图
3.3.6理财分析模块功能设计
该模块实现功能主要是查询收支明细和生成理财分析报告等
理财分析模块功能图如下图所示:
图4-7理财分析模块结构图
3.4系统的数据库设计
3.4.1E-R图
通常,采用实体-联系图(E-R图)来建立数据模型,包含实体、关系和属性三种成分,它是描述现实世界概念结构模型的有效方法。
是一种数据库设计的概念模型,是描述数据实体与其他数据实体的关联的一种设计模式,实体内部的联系通常是指组成实体的各种属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。
该系统主要有三个实体,分别为用户、银行、收支记录、存取款记录和借入借出记录。
用户可以到银行开户、可以借入借出、可以收入支出、可以存取款,存取款的记录需要存入银行账户里。
家庭财务管理的E-R图如下所示:
图4-8E-R图
3.4.2数据表设计
本系统是实现家庭财务管理系统,主要设计了11张表,分别为fmtable,receivetable,outlaytable,dailyincometable,dailyexpensetable,currentaccounttable,currentaccountimfortable,depositaccounttable,lendtable,borrowtable,record表。
分别用于存储家庭成员信息、收入项目信息、支出项目信息、日常收入信息、日常支出信息、活期账户信息、存取款信息、定期账户信息,借出款信息表,借入款信息表,记录表。
下面给出数据表的详细设计。
(1)家庭成员表用于记录家庭成员的基本信息
表4-1fmtable表
字段名
数据类型
长度
字段约束
描述
fmsno
int
Notnull
成员编号
fmname
varchar
20
Notnull
成员姓名
password
varchar
20
Notnull
密码
sex
enum
0
Notnull
性别
brithday
date
0
Notnull
出生年月
telephone
varchar
20
电话号码
varchar
30
电子邮件
(2)收入项目表用于记录收入项目信息
表4-2receivetable表
字段名
数据类型
长度
字段约束
描述
rsno
int
Notnull
收入项目编号
rname
varchar
50
Notnull
收入项目名称
(3)支出项目表用于记录支出项目信息
表4-3outlaytable表
字段名
数据类型
长度
字段约束
描述
osno
int
Notnull
支出项目编号
oname
varchar
50
Notnull
支出项目名称
(4)日常收入信息表用于记录日常收入的详细信息
表4-4dailyincometable表
字段名
数据类型
长度
字段约束
描述
iid
int
Notnull
收入序号
isname
varchar
50
Notnull
收入项目名称
ibankaccount
varchar
50
Notnull
银行账号
imember
varchar
20
Notnull
收入人员
idate
date
0
Notnull
收入日期
isum
float
0
Notnull
收入金额
remarks
varchar
255
备注
(5)日常支出信息表用于记录日常支出的详细信息
表4-5dailyexpensetable表
字段名
数据类型
长度
字段约束
描述
eid
int
Notnull
支出序号
esname
varchar
50
Notnull
支出项目名称
ebankaccount
varchar
50
Notnull
银行账号
emember
varchar
20
Notnull
支出人员
edate
date
0
Notnull
支出日期
esum
float
0
Notnull
支出金额
remarks
varchar
255
备注
(6)活期账户表用于记录活期账户的信息
表4-6currentaccounttable表
字段名
数据类型
长度
字段约束
描述
casno
varchar
50
Notnull
活期账户号
cabankname
varchar
20
Notnull
活期银行名
caholder
varchar
20
Notnull
活期账户持有者
opendate
date
0
Notnull
开户日期
bankbalance
float
0
Notnull
账户余额
(7)存取款信息表用于记录每次的存取款记录信息
表4-7currentaccountimfortable表
字段名
数据类型
长度
字段约束
描述
caiid
int
Notnull
存取编号
caisno
varchar
50
Notnull
活期银行账户
cabankbalance
float
0
Notnull
账户余额
caitype
enum
0
Notnull
存取类型
caisum
float
0
Notnull
存取金额
ncabankbalance
float
0
Notnull
账户现余额
caidate
date
0
Notnull
存取日期
caimember
varchar
20
Notnull
存取款人
(8)定期账户信息表用于记录定期账户的详细信息
表4-8depositaccounttable表
字段名
数据类型
长度
字段约束
描述
dasno
varchar
50
Notnull
定期账户号
dabankname
varchar
50
Notnull
定期银行名
daholder
varchar
20
Notnull
定期账户持有者
dadate
date
0
Notnull
开户日期
dasum
float
0
Notnull
定期账户金额
istakeout
enum
0
Notnull
是否取出
(9)借出款信息表用于记录借出款的详细信息
表4-9lendtable表
字段名
数据类型
长度
字段约束
描述
lendsno
int
Notnull
借出款编号
getmoneyname
varchar
20
Notnull
得款人
lendmoneyname
varchar
20
Notnull
借出人
lbankaccount
varchar
50
Notnull
银行账号
lendsum
float
0
Notnull
借出金额
lendreason
varchar
255
借出理由
lenddate
date
0
Notnull
借出日期
ispaybacked
enum
0
Notnull
是否归还
remarks
varchar
255
备注
(10)借入款信息表用于记录借入款的详细信息
表4-10borrowtable表
字段名
数据类型
长度
字段约束
描述
borrowsno
int
Notnull
借入款编号
borrowname
varchar
20
Notnull
借入人
lendmoneyname
varchar
20
Notnull
借出人
lbankaccount
varchar
50
Notnull
银行账号
borrowsum
float
Notnull
借入金额
borrowreason
varchar
255
借入理由
borrowdate
date
0
Notnull
借入日期
ispaybacked
enum
0
Notnull
是否归还
remarks
varchar
255
备注
(11)记录表用于记录每次银行账号更新的信息,用于每月总的余额查询。
表4-11recordtable表
字段名
数据类型
长度
字段约束
描述
rid
int
Notnull
编号
rbanksno
varchar
50
Notnull
银行账号
rdate
date
0
Notnull
记录日期
rbankbalance
float
Notnull
银行余额
第四章系统详细设计与实现
4.1创建与连接数据库
JDBC(JavaDatabaseConnectivity)是Java应用程序连接各种不同数据库的标准API,可以为多种关系数据库提供统一访问,它由一组用Java编写的类和接口组成,开发人员可以通过该API连接到各种类型的数据库管理系统,并对数据库中的数据进行操作,用户只需编写不同的SQL语句,而不必关心数据库的实现以及不同数据库之间的差异。
JDBC包括两组接口,一组接口面向Java应用开发人员,另一组接口面向驱动程序编写人员,通过JDBCAPI可以完成三件事:
建立与数据库管理系统的连接,向服务器提交要执行的SQL语句,处理返回的结果集。
JDBC包括两个包:
核心API(java.sql)和扩展的API(javax.sql),应用程序通过核心API的接口实现数据库连接和数据处理,其接口主要如下:
java.sql.Driver:
用于读取数据库驱动器的信息,提供连接方法,建立访问数据库所用的Connection对象。
java.sql.DriverManager:
负责管理Driver对象,连接数据库,包括注册驱动程序、获得连接、向数据库发送信息。
java.sql.Connection:
连接Java数据库和Java应用程序之间的主要对象,创建所有的Statement对象,执行SQL语句。
java.sql.ResultSet:
用于控制对一个特定语句的行数据的存取,也就是数据库中由记录或行组成的集合。
连接数据库的基本过程:
1)建立数据源
2)引入java.sql包:
importjava.sql
3)加载驱动程序:
Class.forName(“com.mysql.jdbc.Driver”)
4)创建与数据库的连接:
Connectioncon=DriverManager.getConnection(“jdbc:
mysql:
//localhost:
3306/ffms”,“root”,“root”)
5)创建语句对象:
Statementstmt=con.createStatement();
6)编写SQL语句
7)执行SQL语句
8)处理结果集
9)关闭相关对象
10)异常处理
该家庭财务管理系统采用的数据是MySQL,连接数据库的主要代码如下:
importjava.sql.*;
publicclassDataBaseManager
{
Connectionconn;
ResultSetrs;
Statementstmt;
publicDataBaseManager()
{
try{
Class.forName("com.mysql.jdbc.Driver");conn=DriverManager.getConnection("jdbc:
mysql:
//localhost:
3306/ffms","root","root");
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
conn.setAutoCommit(false);
}
catch(SQLExceptionsqle)
{
System.out.println(sqle.toString());
}catch(ClassNotFoundExceptione){
e.printStackTrace();
}
}
publicResultSetgetResult(StringstrSQL)
{
try{
rs=stmt.executeQuery(strSQL);
returnrs;
}
catch(SQLExceptionsqle)
{
System.out.println(sqle.toString());
returnnull;
}
}
publicbooleanupdateSql(StringstrSQL)
{
try{
stmt.executeUpdate(strSQL);
mit();
returntrue;
}
catch(SQLExceptionsqle)
{
System.out.println(sqle.toString());
returnfalse;
}
}
publicvoidcloseConnection()
{
try{
conn.close();
}
catch(SQLExceptionsqle)
{
System.out.println(sqle.toString());
}
}
}
4.2登录界面页面的设计
用户在进入家庭财务管理系统时首先必须通过登录界面,输入用户名和密码,点击登录按钮,只有通过省份认证,才能进入系统的主界面。
该模块设计主要涉及的类Login、DataBaseManager和MainMenu。
Login类是登录类,该类的主要方法是getuserName()和getpassWord(),用于获得登录名和登录密码的信息,登录时需要身份认证,需要连接数据库,查询数据,需要引用DataBaseManager类,该类主要是连接数据库,输入的用户名和密码与数据库中的数据比较,如何相等就需要引用MainMenu类进入主界面,如果不相等就提示输入错误信息。
该系统的登录界面如下图所示:
图5-1登录界面图
登陆界面的核心代码如下:
Stringusername=userName.getText();
Stringpassword=newString(passWord.getPassword());
if(username.equals(""))
JOptionPane.showMessage
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 家庭财务管理系统的设计与实现最终稿 家庭 财务管理 系统 设计 实现 最终