家庭理财系统的设计与实现毕业论文.docx
- 文档编号:10894294
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:47
- 大小:556.23KB
家庭理财系统的设计与实现毕业论文.docx
《家庭理财系统的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《家庭理财系统的设计与实现毕业论文.docx(47页珍藏版)》请在冰豆网上搜索。
家庭理财系统的设计与实现毕业论文
家庭理财系统的设计与实现毕业论文
毕业论文(设计)
论文(设计)题目
家庭理财系统的设计与实现
院系名称
专业(班级)
姓名(学号)
指导教师
系负责人
完成时间
第一章绪论
1.1课题简介
随着社会的飞速发展,随着生活和文化水平的提高,现代家庭在理财上所要面对的项目和事物越来越多,需要处理的信息急剧增加。
现在我国的家庭财务管理水平还停留在纸介质的基础上,这样的机制已经不能适应时代的发展,因为它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
为了适应现代化的快节奏生活,也为了可以对如此多的信息实现科学的管理,家庭财务管理系统的需求也就应运而生。
本系统是一个小型家庭财务管理软件,系统目标是把适合家庭化管理的各种理财手段及家庭日常收支管理实现计算机化管理,使对家庭及家庭成员的收支活动更好地进行记录并加以统计分析成为可能,也使家庭理财变得方便,快捷,全面,适应社会不同阶层,不同行业人士的应用。
其界面友好,操作简单,除具备基本的财务信息管理外,还提供了用户管理,数据查询,报表统计等。
它多方面把握用户的财务情况,科学的统计数据。
家庭财务管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。
对于前者要求建立起数据一致性和完整性强、数据安全性好的库。
而对于后者则要求应用程序功能完备,易使用等特点。
本系统采用MyEclipse、Tomcat以及SQLServer开发环境,是一个提供家庭理财功能的软件,它主要使用于家庭成员对财务状况的掌握和管理,解决了日常的收支项目、收支金额、按时间统计等管理需求。
主要的功能包括:
1.账簿管理,包括日常收入与支出的记录,以及费用的经手人和记录时间同时给出备注以便查看。
2.家庭成员管理,包括账户的新建、修改、查询等操作,可以很方便地实现系统用户管理。
3.收支项目管理,对家庭主要的收入支出项目进行记录,供查询修改,一目了然。
4.报表统计,可以设置时间段,对整个家庭在这一指定的时间段内进行收支统计,给出详细盈亏结论。
1.2系统可行性分析
现在,人们的生活水平和文化素质普遍提高,并且开始注重生活质量。
随着市场经济的快速发展,观念的不断更新,个人理财意识普遍增强,特别是家庭理财意识得到很大发展,在意识上,一方面,人们对家庭和个人的各方面消费有想进行统计和分析的愿望,以便更好地做好家庭收支计划,和家庭财务管理。
另一方面,各种理财手段不断丰富,如何把各种理财手段统一起来,并且能更加方便的操作成为要求。
在物质基础上,计算机的应用开始普及,人们购置计算机和使用计算机的能力增强,人均计算机拥有量将快速提高。
这些条件说明,人们有购买一个家庭化财务软件的要求。
在一个可接受的价格范围内,将购买这种软件,因此具有市场潜力。
开发一个小型财务软件,用快速开发工具可在几个也内由几个人的开发小组完成。
经过以上分析,开发一个通用型家庭理财软件具有在经济和市场可行性。
技术上主要涉及界面设计和数据库设计。
在开发工具方面,可采用一个十分优秀的用于开发Java,J2EE的Eclipse插件集合——MyEclipse,它的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错,例如使用到的Tomcat。
利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。
1.3MyEclipse的介绍
MyEclipse,是一个十分优秀的用于开发Java,J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。
MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。
在结构上,MyEclipse的特征可以被分为7类:
JavaEE模型;WEB开发工具;EJB开发工具;应用程序服务器的连接器;JavaEE项目部署服务;数据库服务;MyEclipse整合帮助。
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。
MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。
MyEclipse6.0以后版本安装时不需安装Eclipse,开发本系统的工具为MyEclipse8.5。
1.4SQLServer数据库
SQL的全称是StructuredQueryLanguage,即结构化查询语言。
SQL语句可以从关系数据库中获得数据,也可以建立数据库、增加数据、修改数据。
1986年ANSI采用SQL语言作为关系数据库系统的标准语言,后被国际化标准组织(ISO)采纳为国际标准。
SQL语言使用方便、功能丰富、简洁易学,是操作数据库的工业标准语言,得到广泛地应用。
例如关系数据库产品DB2、ORACLE等都实现了SQL语言。
同时,其它数据库产品厂家也纷纷推出各自的支持SQL的软件或者与SQL的接口软件。
这样SQL语言很快被整个计算机界认可。
SQL语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。
SQL语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。
SQL语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。
当设计者在关系表上定义了索引时,系统会自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。
1.5B/S体系结构
浏览器/服务器模式(Browser/Server,简称C/S模式),三层结构,它的运行环境分客户端、应用服务器端和数据库服务器端三部分。
其原理图如下:
图1-1B/S模式原理图
B/S结构是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。
这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
客户机上只要安装一个浏览器(Browser),如NetscapeNavigator或InternetExplorer,服务器安装Oracle、Sybase、Informix或SQLServer等数据库。
浏览器通过WebServer同数据库进行数据交互。
在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。
浏览器通过WebServer同数据库进行数据交互。
1.6环境需求
1.6.1软件环境需求
本系统开发需求的软件有:
(1)Windowsxp操作系统。
(2)MyEclipse8.5
(3)SQLServer2005数据库
1.6.2硬件环境需求
本系统开发需求的硬件有:
(1)Intel奔腾系列以上CPU;
(2)硬盘数据量配置为120G;
(3)计算机内存要求为2G以上;
第二章系统需求分析
2.1系统结构分析初步
整个家庭财务管理系统的所有用户都是全部的家庭成员,考虑到使用该系统的是家庭主要管理成员(父母),其管理地位基本平等,在管理诉求上有着众多相同点,所以系统设计放宽用户权限的约束。
用户基本都可以进行系统功能的使用。
系统用户需要定时的对家庭财务进行管理,包括账目管理、收支项目管理、报表管理等。
因为这是一个家庭财务管理系,所以不需要编写注册界面,可以由已有用户直接建立新用户分配给具有操作能力的家庭成员。
利用数据库作为数据源,通过程序图形化界面的操作转化成对数据库的读写,这样便于数据管理。
更重要的是在系统使用一段时间后同样可以凭借数据库读写速度快的优势保证系统反应速度满足用户需求。
2.2系统设计思想
考虑到该小型家庭财务管理软件的系统要求,本系统采用MicrosoftSQLServer数据库加JDBC技术实现对数据库的访问,如下图:
图2-1系统数据交互结构图
2.3系统架构
通过对家庭财务管理系统功能的分析,本系统分为系统登陆界面、系统主界面、账簿管理界面、家庭成员管理界面、收支项目管理界面、报表统计界面。
系统结构设计图如下图:
图2-2系统结构设计图
2.4数据库需求分析
根据上面的系统分析和系统功能模块图,设计出下列数据项和数据结构。
1.用户信息,包括的数据项由:
编号,用户名,姓名,密码,权限。
2.账簿信息,包括的数据项有:
编号,金额,款项日期,备注,项目编号,用户编号。
3.收支项目信息,包括的数据项有:
编号,收支类型,备注。
第三章系统总体设计
3.1系统功能模块细分
根据对系统总体设计思想的分析,可将系统分为以下四大部分:
1.账簿管理模块:
负责对家庭账簿进行管理
2.家庭成员管理模块:
负责对家庭成员进行管理
3.收支项目管理管理模块:
负责对收支项目进行管理
4.统计报告管理模块:
负责对指定时间收支进行统计管理
下图为系统功能模块图:
图3-1系统功能模块图
3.2数据库设计
3.2.1数据库概念结构设计
数据库概念结构设计就是在以上数据项和数据结构的前提下,设计出满足用户需求的实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
本软件规划出的实体有:
用户信息实体,账簿信息实体,收支项目信息实体。
各个实体具体的描述E-R图如下:
用户信息实体E-R图:
图3-2用户信息实体E-R图
账簿信息实体E-R图:
图3-3账簿信息实体E-R图
收支项目信息实体E-R图:
图3-4收支项目实体E-R图
3.2.2数据库逻辑结构设计
根据以上的信息实体E-R图,本系统数据库中的各个表格的设计结构如下面的表:
表3-1用户表User
列名
类型
字段长度
约束
必填字段
备注
userId
int
4
pk
是
编号
userName
nvarchar
50
无
是
用户名
userTrueName
nvarchar
8
无
是
姓名
userPassword
nvarchar
50
无
是
密码
表3-2收支项目表Items
列名
类型
字段长度
约束
必填字段
备注
itemsId
int
4
pk
是
编号
itemsType
nvarchar
50
无
是
项目类型
itemsDetails
nvarchar
200
无
是
备注
表3-3账目表Account
列名
类型
字段长度
约束
必填字段
备注
accountId
int
4
pk
是
编号
accountMoney
money
8
无
是
金额
accoutDetails
varchar
200
无
是
备注
accountDate
datetime
8
无
是
日期
itemsId
int
4
无
是
项目编号
userId
int
4
无
是
用户编号
3.2.3数据库建表
先启动数据库服务管理器,打开SQLServer2000企业管理器,在企业管理器界面,右击“数据库”,选择“新建数据库”,填写数据库名称:
family,单击“确定”完成新建数据库。
打开查询分析器,在family里执行以下数据库建表语句完成建表:
CreatetableUser
(
userIdintnotnullprimarykey,
userNamenvchar(50)notnull,
userTrueNamevarchar(8)notnull,
userPasswordnvchar(50)notnull
);
CreatetableItems
(
itemsIdintnotnullprimarykey,
itemsTypenvchar(50)notnull,
itemsDetailsnvchar(200)notnull
);
CreatetableAccout
(
accountIdintnotnullprimarykey,
accountMoneymoneynotnull,
accountDetailsvarchar(200)notnull,
accountDatedatetimenotnull,
itemsIdintnotnull,
userIdintnotnull
);
执行完成之后可以看到如下3个表的结构:
图3-5user表
图3-6items表
图3-7account表
3.3系统整体详细设计
本系统只是个小型的家庭财务管理系统,因此整体的数据流走向不会太复杂,其中最主要的模块有账簿管理、收支项目管理、家庭成员管理以及报表统计。
系统整体数据流程图如下:
图3-8系统整体数据流程图
第四章系统实现
4.1JDBC建立数据库连接的设计
系统的核心内容是与数据库进行的数据交互,通过与数据库的连接,执行查询、插入、更改、删除等操作。
JDBC接口技术是一种通过java语言访问数据库的应用程序接口。
主要实现三个功能:
与一个数据库建立连接(connection);向一个数据库发送SQL语句(statement);处理数据库返回的结果(result)。
JDBC数据库连接步骤主要有:
1.加入命令行:
所有与数据库有关的对象和方法都在java.sql包中,所以在使用JSP访问数据库的程序中必须加入命令行:
<%@pageimport=”java.sql.*”%>
2.加载驱动程序,使用语句:
Class.forName(“DataBaseDrivers”);
Class是包java.lang中的一个类,该类通过调用静态方法forName加载驱动程序。
由于加载驱动程序时可能产生异常,所以需要异常处理程序段。
try{
…
}catch(Exceptione){
…
}
3.建立连接:
要连接一个数据库,必须创建Connection类的一个实例,使用语句:
Connectionconn=null;
conn=DriverManager.getConnection(connStr,userName,userPass);
调用DriverManager.getConnection方法建立与数据库的连接,指定了数据库的位置、用户名和用户密码。
一旦该方法找到了建立连接驱动程序和数据源,则通过用户名和口令开始与DBMS建立连接,如果连接通过则建立完成。
4.发送SQL语句:
JDBC提供了3个类向数据库发送SQL语句:
Statement、PrepareStatement和CallableStatement。
主要语句:
Connectionconn=null;
conn=DriverManager.getConnection(connStr,userName,userPass);
PrepareStatementpstmt=PrepareStatement(“select*fromuser”);
5.创建结果集对象:
Statementstmt=con.createStatement();
ResultSetrs;
rs=stmt.excuteQuery(“select*fromuserwhereuserId=’1’”);
6.执行SQL语句:
执行SQL语句可选用三种方法:
excuteQuery、excuteUpdate和excute。
excuteQuery用于产生单个结果集的语句,excuteUpdate用来执行insert、update、delete等操作,excute用来返回多个结果集等情况。
7.关闭对象:
结束对数据库的访问后要关闭建立的对象,同时可能产生异常所以要加上异常处理程序语句:
publicstaticvoidcloseConnection(Connectionconn){
if(conn!
=null){
try{
conn.close();
}catch(SQLExceptione){}
}
//System.out.println("关闭了数据库连接!
");
}
类似的有还有:
rs.close()//关闭ResultSet对象
stmt.close()//关闭Statement对象
4.2系统登录界面的设计
系统用户登录界面的设计:
1.模块名:
系统用户登录。
2.输入参数:
用户登录名、密码。
3.输出参数:
合法用户信息,错误信息。
用户登录界面的程序流程图如下:
否
是
否
是
图4-1用户登录界面的程序流程图
登录界面共添加2个文本框,2个按钮。
文本框用于用户输入用户名及密码。
登录按钮提交输入内容,查询数据库检测用户是否合法,如是系统用户则进入主界面,否则报错并要求重新输入登录信息。
取消按钮用于退出系统登陆界面。
系统用户登录模块的界面如下:
图4-2系统用户登录模块的界面图
主要代码设计如下:
loginAction.
<%@pageimport="user.action.UserAction"%>
<%@pageimport="pojo.UserBean"%>
<%@pagelanguage="java"
contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
<%
StringuserName=request.getParameter("userName");
StringuserPass=request.getParameter("userPass");
StringnextPage=request.getContextPath()+"/jsps/index.jsp";
Stringpath=request.getContextPath();
UserBeanbean=newUserAction().verifyLogin(userName,userPass);
if(bean==null)
{
nextPage=path+"/login.jsp";
session.setAttribute("errorMsg","帐户或密码错误!
");
}
else
{
session.setAttribute("userRights",bean.getUserRights());
session.setAttribute("userName",bean.getUserName());
}
response.sendRedirect(nextPage);
%>
4.3主界面的设计
主界面是通过登录验证后的功能操作界面,主体使用左右框架,左栏是功能导航栏,显示当前登录用户名以及可供操作的功能选项,选中会有反显效果。
通过这样的导航设置可以很方便地实现各功能间的切换,层次清晰。
右栏是各功能的操作界面。
使得整个系统在一个页面中就完全展示出来,符合小型系统简单快捷的特点。
主界面设计如下:
图4-3主界面设计图
主要代码设计如下(限于篇幅,有省略):
index.jsp
...
width="1004"height="81">
cellspacing="0"> class="mar004"> background="<%=path1%>/images/index_02.gif"> class="text004"><%=session.getAttribute("userName")! =null? session.getAttribute("userName"): ""%> 12px;text-decoration: none;color: gray">注销 background="<%=path1%>/images/index_03.gif"class="bg02"> class="mar005"> background="<%=path1%>/images/index_09.gif"id="td1"> href="<%=path1%>/jsps/account/account.jsp"target="mainframe" onClick="change1(document.all.t 如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。 copyright@ 2008-2022 冰点文档网站版权所有 经营许可证编号:鄂ICP备2022015515号-1