家庭理财系统Word文件下载.docx
《家庭理财系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《家庭理财系统Word文件下载.docx(21页珍藏版)》请在冰豆网上搜索。
本系统为家庭理财管理系统,通过建立家庭理财系统,使家庭财产管理工作规范化、制度化和程序化,减少此方面的不必要的浪费的时间与精力,避免管理的随意性,提高财产信息处理的速度和准确性,提高决策的水平。
将常规的工作交由计算机完成,提高管理家庭财产管理的效率。
1.2功能
本系统家庭成员共同使用,故在本系统中将设定两种用户身份,并对本系统提出以下需
家庭成员功能:
a.基本信息设置
✧银行信息浏览。
✧银行信息录入
✧家庭成员录入。
✧家庭成员浏览。
✧收支分类信息管理。
系统管理员功能:
a.日常收支管理
✧添加日常收支信息,包括日期、收支分类、名称、收支金额等信息。
✧修改日常收支信息。
✧删除日常收支信息。
✧查看日常收支信息。
b.资产账户信息管理
✧添加资产账户信息,包括资金类型、银行名称、存款类型、银行账号开户人、账户金额等信息。
✧修改资产账户信息。
✧查看资产账户信息。
c.银行往来管理
✧添加银行往来信息,包括银行名称、交易日期、交易类型、银行账号、账户金额、储蓄类型等信息。
✧修改银行往来信息。
✧查看银行往来信息。
d.数据统计管理
✧日常收支统计,按月份查询日常收支的流水帐。
✧银行交易统计,按月份查询银行交易信息。
✧家庭资产统计,统计家庭的存款总数、现金总数、总收入和总支出数据。
b.日常收支管理
1.3用例模型
系统管理员用例图
家庭成员用例图
1.4数据流图
1.4.1顶层数据流图
D1财产信息
D2财产去向信息
家庭账务管理员
家庭各个成员
1
财产信息事务处理
事务
2
信息存入系统
以前财产信息
财产信息
新财产信息
1.4.2家庭理财系统功能及数据流图
D1存储财产信息
1.1
接受新财产信息
1.2
更新财产信息
1.3
新信息存入系统
1.4.3详细数据流图
二、总体设计
2.1模块划分
家庭理财管理系统
2.1.家庭成员管理模块
2.1.1.系统管理员登录
2.1.2.家庭成员信息查询
2.2.日常收支信息管理模块
2.2.1.日常收支信息添加
2.2.2.日常收支信息删除
2.2.3.日常收支信息修改
2.2.4.日常收支信息浏览
2.3.资产账户信息管理模块
2.3.1.账户信息添加
2.3.2.账户信息修改
2.3.3.账户信息查询
2.3.4.账户信息删除
2.2系统结构图
三、数据库设计
3.1实体关系图
手机
家庭账务管理员Admin
管理、查看
家庭各成员
账务信息
登陆
姓名
收支
存取
时间
金额
使用者
1
n
性别
出生日期
工作单位
3.2数据表结构
Accountinfo(收支表)
字段名称
数据类型
字段含义
默认值
是否外键
account_id
int
财务收支表主键
自增
否
account_date
datetime(8)
日期
NULL
account_type
varchar(20)
收支类型
account_name
varchar(50)
收支名称
account_number
Finainfo(资产信息表)
Id
资产信息表主键
Finatype
varchar(80)
资金类型
Bankename
银行名称
Null
Finauser
Varchar(20)
银行开户人
Finanumber
Int
User(用户信息表)
用户信息表主键
Username
用户名称
Password
用户密码
Userid
用户id
四、详细设计
4.1模块设计说明
4.1.1家庭成员管理模块
模块名称
功能编号
功能名称
描述
家
庭
成
员
管
理
模
块
(M01)
M011
家庭成员注册
新加入家庭成员注册
M012
家庭成员删除
删除不合法用户
M013
系统管理员登录
登录系统
M014
家庭成员信息查询
查询家庭成员信息
4.1.2日常收支信息管理模块
日常
信息
(M02)
M021
日常收支信息增加
M022
日常收支信息查询
查询日常收支信息
M023
日常收支信息修改
日常收支信息信息修改
M024
日常收支信息删除
删除日常收支信息
4.1.3资产账户信息管理模块
资产
(M03)
M031
资产账户信息增加
M032
资产账户信息查询
查询资产账户信息
M033
资产账户信息修改
M034
资产账户信息删除
删除资产账户信息
五、系统实现
5.1运行环境
硬件环境:
处理器:
IntelPeteum4Core1.86Ghz内存:
2G
操作系统:
Windows7Ultimate
运行环境:
数据库:
mysql、Jdk版本:
1.6、服务器:
tomcat6.0
浏览器要求:
IE6.0以上或其他非IE内核浏览器
5.2部分代码
代码功能
实现对数据库中增删改查的操作
代码编号
P1M0F0R00001
程序源码
packagecom.bank.dao.impl;
importjava.io.Serializable;
importjava.lang.reflect.ParameterizedType;
importjava.sql.SQLException;
importjava.util.List;
importorg.hibernate.HibernateException;
importorg.hibernate.Query;
importorg.hibernate.Session;
importorg.springframework.orm.hibernate3.HibernateCallback;
importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
importcom.bank.dao.IGenericDao;
importcom.bank.vo.PageBean;
publicabstractclassAGenericHibernateDao<
TextendsSerializable,IDextendsSerializable>
extendsHibernateDaoSupportimplementsIGenericDao<
T,ID>
{
Class<
T>
persistentClass;
publicClass<
getPersistentClass(){
returnpersistentClass;
}
publicvoidsetPersistentClass(Class<
persistentClass){
this.persistentClass=persistentClass;
@SuppressWarnings("
unchecked"
)
publicAGenericHibernateDao(){
//动态代理获得相应的实体对象
this.persistentClass=(Class<
)((ParameterizedType)getClass().getGenericSuperclass()).getActualTypeArguments()[0];
System.out.println("
ageneric:
"
+this.getPersistentClass());
/**
*保存对象到数据库
*/
publicvoidcreate(Tentity){
//TODOAuto-generatedmethodstub
this.getHibernateTemplate().save(entity);
*通过id查询
publicTfindById(IDid){
returnthis.getHibernateTemplate().get(persistentClass,id);
*通过id删除对象
publicvoiddelete(Tentity){
this.getHibernateTemplate().delete(entity);
*更新操作
publicvoidupdate(Tentity){
this.getHibernateTemplate().update(entity);
*returnList
*获得全部数据,并存到List中
publicList<
findAll(){
returnthis.getHibernateTemplate().loadAll(persistentClass);
*按条件查询,并存到List中
findByObject(Stringhql,Object[]params){
returnthis.getHibernateTemplate().find(hql,params);
*returnPageBean
*按条件查询带分页信息的数据
publicPageBeanfindByPageBean(finalStringhql,finalObject[]params,
finalintcurrentpage,finalintpageSize){
returnthis.getHibernateTemplate().execute(newHibernateCallback<
PageBean>
(){
publicPageBeandoInHibernate(Sessionarg0)
throwsHibernateException,SQLException{
//TODOAuto-generatedmethodstub
PageBeanbean=newPageBean();
Queryqu=arg0.createQuery(hql);
for(inti=0;
i<
params.length;
i++){
qu.setParameter(i,params[i]);
}
qu.setFirstResult((currentpage-1)*pageSize);
qu.setMaxResults(pageSize);
bean.setData(qu.list());
qu=arg0.createQuery("
selectcount(*)"
+hql.substring(hql.toLowerCase().indexOf("
from"
)));
for(intj=0;
j<
j++){
qu.setParameter(j,params[j]);
bean.setTotalRows(Integer.parseInt(qu.uniqueResult().toString()));
bean.setCurrentPage(currentpage);
bean.setPageSize(pageSize);
returnbean;
}
});
*returnPageBean
*查询全部信息,带分页信息
publicPageBeanfindByPageBean(finalStringhql,
publicvoidbulkUpdate(Stringbulk,Object[]params){
publicIntegercountByObject(Stringhql,Object[]param){
returnnull;
find(Stringhql){
returnthis.getHibernateTemplate().find(hql);
}returntrue;
}
returnfalse;
对常用的方法进行抽取封装
P1M0F0R00002
packagecom.bank.dao;
publicinterfaceIGenericDao<
{
publicvoidcreate(Tentity);
//实体存入数据库
publicTfindById(IDid);
//通过id查找
publicvoiddelete(finalTentity);
publicvoidupdate(Tentity);
findAll();
findByObject(Stringhql,Object[]params);
publicPageBeanfindByPageBean(finalStringhql,finalObject[]params,finalintcurrentpage,finalintpageSize);
publicPageBeanfindByPageBean(finalStringhql,finalintcurrentpage,finalintpageSize);
publicvoidbulkUpdate(finalStringbulk,Object[]params);
publicIntegercountByObject(finalStringhql,finalObject[]param);
find(Stringhql);
}
5.3系统截图
5.3.1用户登录界面
5.3.2日常收支管理模块
5.3.3资产账户信息管理模块
六、系统测试
6.1测试方法
本相同采用手动测试方法,主要目的为验证系统中的权限控制、程序的容错性及对非法数据的检验能力。
6.2测试环境
IE8谷歌浏览器
6.3测试用例
测试功能
用户登录
测试编号
M01T001
用例设计
用例编号
预期输入
预期输出
实际输出
Case_001
aa
正常登录
Case_002
cc
无此用户跳转至主页
登陆失败
收支信息删除
M01T002
使用账号登录
使用相同账号登录
重复登录跳转至主页
跳转至主页
6.4测试截图
8、总结
1.当前系统完成情况
a.用户登录
b.日常收支信息管理
c.资产信息管理
d.个性化界面设计
2.未完成部分
a.基本信息设置模块
b.数据统计管理模块
3.心得体会
在本次实习中,通过自己应用自己所学的知识,基本上完成了一个家庭理财系统。
在系统完成期间,遇到了各种各样的困难,但大部分上都能通过资料的查找等方式解决了,本次实习让我积累了不少的项目经验,总结如下:
对计算机项目的说明文档有了进一步了解,在项目初期,我们应该确立了项目的完成目的,根据确定的项目题目,进一步明确项目要求,即进行项目需求分析,在分析期间,应该制作出需求分析报告,以书面的形式罗列出项目要求的功能目的,如此能在以后的项目期间更有目的性,确保项目的合格完成。
系统设计说明书则进一步说明了要完成项目而进行的系统设计,其中涉及到了编码设计和使用文件设计,这些具体的设计项