家庭理财系统.docx
- 文档编号:5178351
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:21
- 大小:180KB
家庭理财系统.docx
《家庭理财系统.docx》由会员分享,可在线阅读,更多相关《家庭理财系统.docx(21页珍藏版)》请在冰豆网上搜索。
家庭理财系统
软件工程综合实习任务书
系专业班级
课程设计名称:
设计题目:
家庭理财管理系统
完成期限:
自年月日至年月日共周
设计依据、要求及主要内容(可另加附页):
一、设计依据
[1]《软件工程综合实习任务书》
[2]《软件工程综合实习大纲》
二、设计要求
程序设计综合实习内容主要运用面向对象程序设计和数据库技术等,完成一个实践性较强、综合性的程序设计课题。
1、根据题目要求,划分不同的模块来完成相应的功能。
2、用户界面要友好。
3、功能模块的设计要合理。
4、程序测试要求使用:
全部合法数据;整体非法数据;局部非法数据。
进行程序测试,以保证程序的稳定。
5、综合实习结束交程序设计综合实习报告。
三、主要内容
(替换此段内容:
用一段话,写出你要完成的系统名称、主要功能等)
四、参考资料
[1]《DatabaseSystemConcepts》(FourthEdition)AbrahamSilberschatzHenryF.KorthS.SudarshanHigherEducationPress
[2]王珊.数据库系统概论(第四版).高等教育出版社,2007.
[3]罗运模.完全掌握SQLServer2000.人民邮电出版社,2001.
[4]白尚旺等.PowerDesigner软件工程技术.电子工业出版社,2004.
[5]张海藩.软件工程概论(第五版).清华大学出版社,2007.
指导教师(签字):
_______________
教研室主任(签字):
_______________
批准日期:
2011年12月19日
一、需求分析
1.1项目背景
随着社会主义的不断发展与进步,人们的生活部断完善,家庭的收入也越来越多,人们的收入再不是用来解决生计问题了,当今社会是一个讲求效率的社会,时间就是金钱。
开发简单,易于操作的,管理软件不仅可以节省时间,还可以避免浪费人力,物力,提高效率。
待开发系统是一个对家庭理财管理系统,简单,易学,将成为家庭理财的的好帮手。
本系统为家庭理财管理系统,通过建立家庭理财系统,使家庭财产管理工作规范化、制度化和程序化,减少此方面的不必要的浪费的时间与精力,避免管理的随意性,提高财产信息处理的速度和准确性,提高决策的水平。
将常规的工作交由计算机完成,提高管理家庭财产管理的效率。
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
信息存入系统
财产信息
2
新信息存入系统
D2财产去向信息
新财产信息
财产信息
家庭各个成员
财产信息
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
1
n
n
性别
出生日期
工作单位
3.2数据表结构
Accountinfo(收支表)
字段名称
数据类型
字段含义
默认值
是否外键
account_id
int
财务收支表主键
自增
否
account_date
datetime(8)
日期
NULL
否
account_type
varchar(20)
收支类型
NULL
否
account_name
varchar(50)
收支名称
NULL
否
account_number
int
金额
NULL
否
Finainfo(资产信息表)
字段名称
数据类型
字段含义
默认值
是否外键
Id
int
资产信息表主键
自增
否
Finatype
varchar(80)
资金类型
NULL
否
Bankename
varchar(80)
银行名称
Null
否
Finauser
Varchar(20)
银行开户人
Null
否
Finanumber
Int
金额
Null
否
User(用户信息表)
字段名称
数据类型
字段含义
默认值
是否外键
Id
int
用户信息表主键
自增
否
Username
varchar(80)
用户名称
NULL
否
Password
varchar(80)
用户密码
Null
否
Userid
Varchar(20)
用户id
Null
否
四、详细设计
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
extendsHibernateDaoSupportimplementsIGenericDao
Class
publicClass
returnpersistentClass;
}
publicvoidsetPersistentClass(Class
this.persistentClass=persistentClass;
}
@SuppressWarnings("unchecked")
publicAGenericHibernateDao(){
//动态代理获得相应的实体对象
this.persistentClass=(Class
System.out.println("ageneric:
"+this.getPersistentClass());
}
/**
*保存对象到数据库
*/
publicvoidcreate(Tentity){
//TODOAuto-generatedmethodstub
this.getHibernateTemplate().save(entity);
}
/**
*通过id查询
*/
publicTfindById(IDid){
//TODOAuto-generatedmethodstub
returnthis.getHibernateTemplate().get(persistentClass,id);
}
/**
*通过id删除对象
*/
publicvoiddelete(Tentity){
//TODOAuto-generatedmethodstub
this.getHibernateTemplate().delete(entity);
}
/**
*更新操作
*/
publicvoidupdate(Tentity){
//TODOAuto-generatedmethodstub
this.getHibernateTemplate().update(entity);
}
/**
*returnList
*获得全部数据,并存到List中
*/
publicList
//TODOAuto-generatedmethodstub
returnthis.getHibernateTemplate().loadAll(persistentClass);
}
/**
*returnList
*按条件查询,并存到List中
*/
@SuppressWarnings("unchecked")
publicList
//TODOAuto-generatedmethodstub
returnthis.getHibernateTemplate().find(hql,params);
}
/**
*returnPageBean
*按条件查询带分页信息的数据
*/
publicPageBeanfindByPageBean(finalStringhql,finalObject[]params,
finalintcurrentpage,finalintpageSize){
//TODOAuto-generatedmethodstub
returnthis.getHibernateTemplate().execute(newHibernateCallback
publicPageBeandoInHibernate(Sessionarg0)
throwsHibernateException,SQLException{
//TODOAuto-generatedmethodstub
PageBeanbean=newPageBean();
Queryqu=arg0.createQuery(hql);
for(inti=0;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 qu.setParameter(j,params[j]); } bean.setTotalRows(Integer.parseInt(qu.uniqueResult().toString())); bean.setCurrentPage(currentpage); bean.setPageSize(pageSize); returnbean; } }); } /** *returnPageBean *查询全部信息,带分页信息 */ publicPageBeanfindByPageBean(finalStringhql, finalintcurrentpage,finalintpageSize){ //TODOAuto-generatedmethodstub returnthis.getHibernateTemplate().execute(newHibernateCallback publicPageBeandoInHibernate(Sessionarg0) throwsHibernateException,SQLException{ //TODOAuto-generatedmethodstub PageBeanbean=newPageBean(); Queryqu=arg0.createQuery(hql); qu.setFirstResult((currentpage-1)*pageSize); qu.setMaxResults(pageSize); bean.setData(qu.list()); qu=arg0.createQuery("selectcount(*)"+hql.substring(hql.toLowerCase().indexOf("from"))); bean.setTotalRows(Integer.parseInt(qu.uniqueResult().toString())); bean.setCurrentPage(currentpage); bean.setPageSize(pageSize); returnbean; } }); } publicvoidbulkUpdate(Stringbulk,Object[]params){ //TODOAuto-generatedmethodstub } publicIntegercountByObject(Stringhql,Object[]param){ //TODOAuto-generatedmethodstub returnnull; } @SuppressWarnings("unchecked") publicList //TODOAuto-generatedmethodstub returnthis.getHibernateTemplate().find(hql); } }returntrue; } } returnfalse; 代码功能 对常用的方法进行抽取封装 代码编号 P1M0F0R00002 程序源码 packagecom.bank.dao; importjava.io.Serializable; importjava.util.List; importcom.bank.vo.PageBean; publicinterfaceIGenericDao publicvoidcreate(Tentity);//实体存入数据库 publicTfindById(IDid);//通过id查找 publicvoiddelete(finalTentity); publicvoidupdate(Tentity); publicList publicList publicPageBeanfindByPageBean(finalStringhql,finalObject[]params,finalintcurrentpage,finalintpageSize); publicPageBeanfindByPageBean(finalStringhql,finalintcurrentpage,finalintpageSize); publicvoidbulkUpdate(finalStringbulk,Object[]params); publicIntegercountByObject(finalStringhql,finalObject[]param); publicList } 5.3系统截图 5.3.1用户登录界面 5.3.2日常收支管理模块 5.3.3资产账户信息管理模块 六、系统测试 6.1测试方法 本相同采用手动测试方法,主要目的为验证系统中的权限控制、程序的容错性及对非法数据的检验能力。 6.2测试环境 硬件环境: 处理器: IntelPeteum4Core1.86Ghz内存: 2G 操作系统: Windows7Ultimate 运行环境: 数据库: mysql、Jdk版本: 1.6、服务器: tomcat6.0 浏览器要求: IE8谷歌浏览器 6.3测试用例 测试功能 用户登录 测试编号 M01T001 用例设计 用例编号 预期输入 预期输出 实际输出 Case_001 aa 正常登录 正常登录 Case_002 cc 无此用户跳转至主页 登陆失败 测试功能 收支信息删除 测试编号 M01T002 用例设计 用例编号 预期输入 预期输出 实际输出 Case_001 使用账号登录 正常登录 正常登录 Case_002 使用相同账号登录 重复登录跳转至主页 跳转至主页 6.4测试截图 8、总结 1.当前系统完成情况 a.用户登录 b.日常收支信息管理 c.资产信息管理 d.个性化界面设计 2.未完成部分 a.基本信息设置模块 b.数据统计管理模块 3.心得体会 在本次实习中,通过自己应用自己所学的知识,基本上完成了一个家庭理财系统。 在系统完成期间,遇到了各种各样的困难,但大部分上都能通过资料的查找等方式解决了,本次实习让我积累了不少的项目经验,总结如下: 对计算机项目的说明文档有了进一步了解,在项目初期,我们应该确立了项目的完成目的,根据确定的项目题目,进一步明确项目要求,即进行项目需求分析,在分析期间,应该制作出需求分析报告,以书面的形式罗列出项目要求的功能目的,如此能在以后的项目期间更有目的性,确保项目的合格完成。 系统设计说明书则进一步说明了要完成项目而进行的系统设计,其中涉及到了编码设计和使用文件设计,这些具体的设计项
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 家庭理财 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)