1、家庭财务管理系统是一个家庭必需的信息管理系统。通过我们对家庭财务管理的详细调查,大部分家庭对于财务的管理还是局限在使用传统的人工纸质记账管理的方式,这种方式存在许多缺点,如:效率很低、安全性差、管理难和产生大量纸质文件等。所以需要一个家庭财务管理系统来为每一个家庭的管理者提供充足的信息和快捷的查询手段。家庭财务管理系统的信息数据主要是家庭管理员对家庭的收支消费信息的输入,由于一个家庭每天都会有收入和支出的情况,导致数据库时时有更新,因此,能够及时有效的处理数据,就需要建立一个数据库来存储数据。该家庭财务管理系统的设计与实现,主要包括后台数据库的建立和维护以及前台应用程序的开发两个方面。对于后台
2、的数据库建立需要数据安全性好,对于前端应用程序则需要功能完善和易使用的特点。2.1.1 系统功能需求本系统由系统管理、基础数据管理、日常收支管理、银行储蓄管理、借还钱管理和理财分析等模块组成。系统管理模块需求:通过此模块可以验证用户登录、密码修改、重新登录和退出等功能。基础数据管理模块需求:通过此模块可以对家庭成员的添加、删除和修改,对收支项目的添加、删除和修改。日常收支管理模块需求:通过此模块可以对日常收入进行添加、删除和修改,对日常支出进行添加、删除和修改。银行储蓄管理模块需求:通过此模块可以对银行活期账户进行添加、删除和修改,对定期账户进行添加、删除和修改。借还钱管理模块需求:通过此模块
3、可以对家庭成员的各项借出款进行添加、删除和修改,对家庭成员的借入款进行添加、删除和修改。理财分析模块需求:通过此模块可以查询收支明细和生成理财分析报告。2.1.2 系统性能需求该系统要求具有良好的灵活性、可扩充性和可移植性,系统采用MySQL数据库,系统的数据都是通过数据库来保存,需要数据库具有很好的稳定性,系统可运行在主流的Windows操作系统平台上,操作系统要求响应速度快,使操作者感觉操作流畅。2.1.3 系统环境需求该系统采用C/S模式,系统基本环境为windows xp操作系统,在MyEclipse平台上开发,根据的运行需求以及系统的调试需求,需要满足下列的软硬件要求:硬件环境:CP
4、U:2.10GHz内存:512M以上硬盘:30GB以上VGA显示器或更高软件环境:运行环境:MyEclipse 7.5数据库:MySQL数据库客户端:Navicat for MySQL画图软件:Visio 2003操作系统:WindowsXP2.1.4 用户界面需求系统采用人机交互方式,主要通过界面来显示用户需要的信息,界面需要美观友好,信息查询方便灵活,输入输出数据格式友好便捷,并且具备简单的错误提示功能。2.2系统流程图该系统中,用户可以通过进入后台数据库对数据进行操作和管理,可以通过登录界面进入主界面管理各个功能模块。系统流程图如下图所示: 图 3-1 系统流程图2.3系统数据流图图 3
5、-2 0层数据流图图 3-3 功能级数据流图第三章 概要设计3.1系统概述本系统主要管理家庭财务信息的功能,主要是家庭管理员向该系统录入财务收支信息,对家庭成员的消费水平进行管理。采用C/S模式实现,用户可以通过浏览器向服务器发送请求,进行相关操作,服务器接收浏览器发送来的请求,将响应结果返回给客户端,财务管理信息存放到数据库里。3.2系统的功能结构图通过对家庭财务管理系统进行详细设计后,家庭财务管理系统由系统管理、基础数据管理、日常收支管理、银行储蓄管理、借还钱管理和理财分析等六个模块组成。系统功能结构如下图所示: 图 4-1 系统功能结构图3.3系统的各功能模块设计3.3.1系统管理模块功
6、能设计该模块实现的功能主要是用户登录、密码修改、重新登录和退出等系统管理模块功能图如下图所示:图 4-2 系统管理模块结构图3.3.2基础数据管理模块功能设计该模块实现的功能主要是家庭成员的添加、删除和修改,收支项目的添加、删除和修改等。基础数据管理模块功能图如下图所示:图 4-3 基础数据管理模块结构图3.3.3日常收支管理模块功能设计该模块实现的功能主要是日常收入和日常支出功能。日常收支管理模块功能图如下图所示:图 4-4 日常收支管理模块结构图3.3.4银行储蓄管理模块功能设计该模块实现的功能主要是对银行活期和定期账户进行添加、删除和修改及存取款记录等功能。银行储蓄管理模块功能图如下所示
7、:图 4-5 银行储蓄管理模块结构图3.3.5借还钱管理模块功能设计该模块实现功能主要是记录家庭成员各项借出款和借入款等情况。借还钱管理模块功能图如下图所示: 图 4-6 借还钱管理模块结构图3.3.6理财分析模块功能设计该模块实现功能主要是查询收支明细和生成理财分析报告等理财分析模块功能图如下图所示: 图 4-7 理财分析模块结构图3.4系统的数据库设计3.4.1 E-R图通常,采用实体-联系图(E-R图)来建立数据模型,包含实体、关系和属性三种成分,它是描述现实世界概念结构模型的有效方法。是一种数据库设计的概念模型,是描述数据实体与其他数据实体的关联的一种设计模式,实体内部的联系通常是指组
8、成实体的各种属性之间的联系,实体之间的联系通常是指不同实体集之间的联系。该系统主要有三个实体,分别为用户、银行、收支记录、存取款记录和借入借出记录。用户可以到银行开户、可以借入借出、可以收入支出、可以存取款,存取款的记录需要存入银行账户里。家庭财务管理的E-R图如下所示: 图 4-8 E-R图3.4.2 数据表设计本系统是实现家庭财务管理系统,主要设计了11张表,分别为fmtable,receivetable,outlaytable,dailyincometable,dailyexpensetable,currentaccounttable, currentaccountimfortable,
9、 depositaccounttable,lendtable,borrowtable,record表。分别用于存储家庭成员信息、收入项目信息、支出项目信息、日常收入信息、日常支出信息、活期账户信息、存取款信息、定期账户信息,借出款信息表,借入款信息表,记录表。下面给出数据表的详细设计。(1)家庭成员表用于记录家庭成员的基本信息表4-1 fmtable表字段名数据类型长度字段约束描述fmsnointNot null成员编号fmnamevarchar20成员姓名passwordNot null 密码sexenum性别brithdaydate出生年月telephone电话号码email30电子邮件(
10、2)收入项目表用于记录收入项目信息表4-2 receivetable表rsno收入项目编号rname50收入项目名称(3)支出项目表用于记录支出项目信息表4-3 outlaytable表osno支出项目编号oname支出项目名称(4)日常收入信息表用于记录日常收入的详细信息表4-4 dailyincometable表iid收入序号isnameibankaccount银行账号imember收入人员idate收入日期isumfloat收入金额remarks255备注(5)日常支出信息表用于记录日常支出的详细信息表4-5 dailyexpensetable表eid支出序号esnameebankacc
11、ountemember支出人员edate支出日期esum支出金额(6)活期账户表用于记录活期账户的信息表4-6 currentaccounttable表casno活期账户号cabankname活期银行名caholder活期账户持有者opendate开户日期bankbalance账户余额(7)存取款信息表用于记录每次的存取款记录信息表4-7currentaccountimfortable表caiid存取编号caisno活期银行账户cabankbalancecaitype存取类型caisum存取金额ncabankbalance账户现余额caidate存取日期caimember存取款人(8)定期账户
12、信息表用于记录定期账户的详细信息表4-8 depositaccounttable表dasno定期账户号dabankname定期银行名daholder定期账户持有者dadatedasum定期账户金额istakeout是否取出(9)借出款信息表用于记录借出款的详细信息 表4-9 lendtable表lendsno借出款编号getmoneyname得款人lendmoneyname借出人lbankaccountlendsum借出金额lendreason借出理由lenddate借出日期ispaybacked是否归还(10) 借入款信息表用于记录借入款的详细信息表4-10 borrowtable表borr
13、owsno借入款编号borrowname借入人borrowsum借入金额borrowreason借入理由borrowdate借入日期(11) 记录表用于记录每次银行账号更新的信息,用于每月总的余额查询。表4-11 recordtable表rid编号rbanksnordate记录日期rbankbalance银行余额第四章 系统详细设计与实现4.1创建与连接数据库JDBC(Java Database Connectivity)是Java应用程序连接各种不同数据库的标准API,可以为多种关系数据库提供统一访问,它由一组用Java编写的类和接口组成,开发人员可以通过该API连接到各种类型的数据库管理系
14、统,并对数据库中的数据进行操作,用户只需编写不同的SQL语句,而不必关心数据库的实现以及不同数据库之间的差异。JDBC包括两组接口,一组接口面向Java应用开发人员,另一组接口面向驱动程序编写人员,通过JDBC API可以完成三件事:建立与数据库管理系统的连接,向服务器提交要执行的SQL语句,处理返回的结果集。JDBC包括两个包:核心API(java.sql)和扩展的API(javax.sql),应用程序通过核心API的接口实现数据库连接和数据处理,其接口主要如下:java.sql.Driver:用于读取数据库驱动器的信息,提供连接方法,建立访问数据库所用的Connection对象。java.
15、sql.DriverManager:负责管理Driver对象,连接数据库,包括注册驱动程序、获得连接、向数据库发送信息。java.sql.Connection:连接Java数据库和Java应用程序之间的主要对象,创建所有的Statement对象,执行SQL语句。java.sql.ResultSet:用于控制对一个特定语句的行数据的存取,也就是数据库中由记录或行组成的集合。连接数据库的基本过程:1)建立数据源2) 引入java.sql包:import java.sql3) 加载驱动程序:Class.forName(“com.mysql.jdbc.Driver”)4) 创建与数据库的连接:Conn
16、ection con = DriverManager.getConnection(“jdbc:mysql:/localhost:3306/ffms”, “root”,“root”)5) 创建语句对象:Statement stmt = con.createStatement();6) 编写SQL语句7)执行SQL语句8)处理结果集9)关闭相关对象10)异常处理该家庭财务管理系统采用的数据是MySQL,连接数据库的主要代码如下:import java.sql.*;public class DataBaseManager Connection conn; ResultSet rs; Statemen
17、t stmt; public DataBaseManager() try Class.forName(com.mysql.jdbc.Driver); conn=DriverManager.getConnection(jdbc:3306/ffms,rootstmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); conn.setAutoCommit(false); catch(SQLException sqle) System.out.println(sqle.toString()
18、; catch (ClassNotFoundException e) e.printStackTrace(); public ResultSet getResult(String strSQL) try rs=stmt.executeQuery(strSQL); return rs; return null; public boolean updateSql(String strSQL) stmt.executeUpdate(strSQL); mit(); return true; return false; public void closeConnection() conn.close()
19、; catch(SQLException sqle) System.out.println(sqle.toString();4.2登录界面页面的设计用户在进入家庭财务管理系统时首先必须通过登录界面,输入用户名和密码,点击登录按钮,只有通过省份认证,才能进入系统的主界面。该模块设计主要涉及的类Login、DataBaseManager和MainMenu。Login类是登录类,该类的主要方法是getuserName()和getpassWord(),用于获得登录名和登录密码的信息,登录时需要身份认证,需要连接数据库,查询数据,需要引用DataBaseManager类,该类主要是连接数据库,输入的用户名和密码与数据库中的数据比较,如何相等就需要引用MainMenu类进入主界面,如果不相等就提示输入错误信息。该系统的登录界面如下图所示: 图 5-1 登录界面图登陆界面的核心代码如下:String username = userName.getText();String password = new String(passWord.getPassword();if(username.equals() JOptionPane.showMessage
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1