记账系统毕业设计

更新时间:2024-05-25 17:03:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

大连交通大学2012届本科毕业设计(论文)

第一章 概述

1.1 引言

随着计算机网络的日益发展和广泛应用,以及数据库技术的应用,人们传统的一些

方式发生了巨大的改变,银行的业务从单一的吸收存款,发放贷款,发展为综合财务业务。由于我国实行严格的金融分业经营,商业银行投资渠道狭窄,各商业银行推出的个人理财业务,拓宽经营范围。而近些年银行理财服务开始像网络化转变。银行个人记账系统应运而生。

银行个人理财就是银行管理自己的财富,是自己私有理财顾问,合理的规划自己的财务的盈亏,进而提高财富的效能的经济活动。理财也就是对资本金和负债资产的科学合理的运作。通俗的来说,理财就是赚钱、省钱、花钱之道。理财就是打理钱财。

说起来理财是一件非常平凡的事情,但实际上却非常有学问。个人理财是一门新兴的实用科学,它是以经济学为指导(追求极大化目标)、以会计学为基础(客观忠实记录)、以财务学为手段(计划与满足未来财务需求、维持资产负债平衡)的边缘科学。

既然个人理财是门科学,我们就必须以科学、理性的态度来对待它。只有这样,才能达到理财的目标。

因为以往的理财方法比较单调和麻烦,所以本论文中的记账系统就是要建立一个综合的、系统的理财软件,进而开发出一个完整的计划和全权负责一项个人理财业务。

作为计算机应用的一部分,使用计算机对个人财务信息进行管理,具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够将您的资产就会一目了然,便于您对于所持有资产的分配管理。

在面向对象编程技术中,Eclipse凭借着其强大的功能和快速开发的特点,应用越来越广泛。本文介绍了个人理财的概念及 Eclipse的有关技术,并探讨了记账系统的设计思路和构成,然后详细分析了本子模块的实现过程,并给出了用 Eclipse实现的关键代码。该记账系统能够完成数据的输入、修改、删除、查询与统计等基本功能,适用于现代普通个人的财务管理。

顺应这种趋势,本次毕业设计主要是分析、设计和实现了记账系统,实现了个人理财中的用户管理、资产管理、债权债务管理、债券投资,股票投资等功能,能够实现网络化的个人理财管理。本文主要探讨个人资产债权债务模块的分析、设计和实现。

1

大连交通大学2012届本科毕业设计(论文)

1.2记账系统研究内容简介

理财是一个范畴很广的概念。从理财的主体来说,个人、公司、政府部门至国家等都有理财活动,但本文所阐述的主要是个人通过银行理财。个人理财、个人理财实际上是同一个概念。在国外,普通叫个人理财(可能与西方国家尊重个人自由、个体独立有关;或者是从理财中介的角度来说的,因为他们面对的是个人成员中的个体),在国内,我们主要叫个人理财比较合适,因为中国是一个重视个人、家族观念比较重的国家,以个人为主体进行理财的活动更加普遍。

所谓个人理财从概念上讲,就是学会有效、合理地处理和运用钱财,让自己的花费发挥最大的效用,以达到最大限度地满足日常生活需要的目的。简而言之,个人理财就是利用企业理财和金融的方法对个人经济(主要指个人收入和支出)进行计划和管理,增强个人经济实力,提高抗风险能力,增大个人效用。从广义的角度来讲,合理的个人理财也会节省社会资源,提高社会福利,促进社会的稳定发展。 从技术的角度讲,个人理财就是利用开源节流的原则,增加收入,节省支出,用最合理的方式来达到一个个人所希望达到的经济目标。这样的目标小到增添家电设备,外出旅游,大到买车、购屋、储备子女的教育经费,直至安排退休后的晚年生活等等。

个人理财就是管理自己的财富,进而提高财富的效能的经济活动。理财也就是对资本金和负债资产的科学合理的运作。通俗的来说,理财就是赚钱、省钱、花钱之道。理财就是打理钱财。

1.3 国内外研究现状及发展趋势

随着社会的不断进步,个人收入的不断增长,个人理财已经是一个不可回避的话题。但是国内居民一般容易混淆的两个概念是投资和投机,对理财投资中的风险话题也表现出了强烈的回避态度。对个人理财风险的不同理解,也使得目前国内居民对个人理财市场的参与不如发达国家那样普遍。理财行业在中国目前的现状是正在起步,或者说还处于市场的培育阶段。目前大家所接触到的所谓理财大多是出于宣传或者炒作的需要,真正的理财并没有出现。当然大家可能现在会看到如理财周刊上面的一些案例分析,这些都是十分之粗糙和简陋的,并不能称作是一个严格意义上的理财方案。

改革开放以来,中国经济得到了迅速的发展,个人收入也与日俱增,随着房产热、私家车、出国游等走入寻常百姓家,如何规划财富,如何让财富增值,如何享受财富也

2

大连交通大学2012届本科毕业设计(论文)

日渐成为每个个人关注的话题。《中国统计年鉴》的资料表明,近13年来,中国物价上涨率平均达到了6.5%,这一数字意味着,如果不用于投资理财,我们手头的现金每年就会减少6.5%。从20世纪90年代国内第一家银行推出个人理财产品,到目前几乎所有的银行都拥有了个人理财部,有些甚至引进了更高层次的贵宾理财;保险公司基金公司以及一些第三方理财机构也纷纷推出自己的理财规划师;报纸杂志各种媒体更是大篇幅地宣传与普及理财知识;各大金融机构也在近20个城市开展了“个人理财节”活动,如,2006年湖北首届金融理财文化节、2005年4月22日至24日大连市民理财节、民生银行2005年11月19日至20日在沪首家独家举行“个人理财节”等,金融市场的活跃动作与发展方向可见一斑。随着金融市场的全面开放,国外的金融机构,如,花旗银行、汇丰银行、荷兰银行、渣打银行和东亚银行等,也纷纷登陆中国,并将其成功成熟的经验借鉴到开拓中国市场上。

此外,由于在我国个人理财刚刚起步不久,因此,目前国内个人理财机构提供的品种与国外相比也显得过于单一。此外,由于国内对金融安全的考虑,因此,在一定程度上也限制了国内个人理财中投资的范围,目前国内开展的个人理财服务基本上只能选择国内的投资项目,因此,这也是国内个人理财与国外个人理财的最大不同。理财专家说,国内居民理财观念有偏颇、个人理财投资范围有限,以及理财产品的单一,也是约束理财市场的几大障碍。现在国外的公司大举进军中国也加大了个人理财的国内居民对个人理财的重视,这也必将加速国内理财市场的发展。

1.4 ECLIPSE概述

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只

是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。

虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。

3

大连交通大学2012届本科毕业设计(论文)

这种平等和一致性并不仅限于 Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于 Java 语言;例如,支持诸如 C/C++、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。

基于 Eclipse 的应用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。 2.2SQL SERVER数据库简介

目前市场上数据库的主流厂商及产品有IBM DB2、Microsoft SQL SERVER 2000、ORACLE 9i、Sybase。本系统采用SQL Server 2000数据库进行数据管理。SQL Server作为微软在Windows系列平台上开发的数据库,一经推出就以其易用性得到了很多用户的青睐。Microsoft Windows Server 2000是最新的、功能强大的、面向商业用户的操作系统,它的特点是易于使用,具有灵活性、可靠性的优点。它具有学习操作简单,兼容性良好,适用于电子商务建设,增加了数据仓库的特性,增强了建设在线商务方面的功能等优点。区别于FoxPro、Access小型数据库,SQL Server是一个功能完备的数据库管理系统。SQL Server的事务处理量大,响应速度快,并能为数百或更多用户维持这种高性能。

SQL Server 2000 也是当今网络编程中使用的比较多的一个数据库系统,java是目前最流行的编程语言,在编程中涉及的比较多也比较重要的就是数据库问题,java自身提供了对各类主流数据库系统的支持,通过java.sql 库,提供了统一的接口,使得可以在java环境下不必对程序作大规模的修改,只要更改相应的驱动程序,即可实现对各类数据库的操作,从而提高软件的生存周期和降低软件的开发成本和维护费用。所以本系统采用SQL Server2000数据库进行开发。

1.5 JAVA编程语言简介

Java是一种语法简洁、清晰的语言,它的程序运行需要一个解释器,也就是所谓的“虚拟机”。虚拟机以某种高速算法解释执行Java的面向对象语言代码。Java是基于WWW开发的,主要分为客户端和服务器端两大类型。Java客户端软件包括Applet应用小程序,传统的客户端图形界面程序、各类加点设备的客户端应用程序。服务器端软件则包括利

4

大连交通大学2012届本科毕业设计(论文)

用Socket套接字或使用封装了Socket功能函数的Java高级网络流类编写的Server并发程序、Servlet程序、JSP网页程序和服务器端的EJB组件等。

根据Sun的Java语言白皮书中的归纳和总结,简单地说,Java语言有如下特点: 1.简单(Simple)。程序较小,编写容易,能够在小型机器上执行,基本的解释器约为40KB,若加上基本的程序库,约为215KB。

2.面向对象(Object-Oriented)。一个对象的状态只由对象自己可知的变量定义。Java把这些变量称为数据域或者成员变量。数据域对对象来说是私有的,除非显示地使用关键字来定义它们的作用域,使它们对其他类可见。一个对象的行为是由它上面的操作定义的。在Java中,这些操作被叫做方法。方法可以改变一个对象的状态,创建新对象,实现实用的功能等。

3.分布式(Distributed)。Java有一个庞大的程序库,且容易地与HTTP和FTP等TCP/IP通信协议相配合。

4.健壮性(Robust)。有Java所编写的程序,在多数情况下执行稳定。Java与C/C++最大不同是Java通过一个指针模型来排除内存被覆盖和毁损数据的可能性。

5.安全性(Secure)。Java是被设计用于网络及分布式的环境中,Java拥有数个阶层的互锁保护措施,能有效地防止病毒的侵入和破坏行为的发生。

6.结构中立(Architecture Neutral)。Java的编译器产生一种结构中立的目标文件格式,这使得编译码得以在很多种处理器中执行。

7.解释执行(Interpreted)。Java解释器能直接在任何机器上执行Java位元码,这对于缩短程序的开发过程,有很大的帮助。

8.高性能(High Performance)。Java位元码可迅速地能被转换成机器码,从位元码转换到机器码的性能与C和C++几乎没有分别。

9.多线程的(Multi threaded)。Java语言具有多线程的功能,这对于交互回应能力及即时执行行为是有帮助的。

10.动态性(Dynamic)。Java比C或C++语言更具有动态性,更能适应时刻在变的环境,Java不会因程序库的更新而必须重新编译程序。

5

大连交通大学2012届本科毕业设计(论文)

1.6 JSP编程语言简介

在Sun正式发布JSP(Java Server Pages)之后,这种新的Web应用开发技术很快引起了人们的关注。JSP为创建高度动态的Web应用提供了一个独特的开发环境。按照 Sun 的说法,JSP能够适应市场上包括Apache WebServer 、IIS4.0在内的85%的服务器产品。

JSP与Microsoft的ASP技术非常相似。两者都提供在HTML代码中混合某种程序代码、由语言引擎解释执行程序代码的能力。在ASP或JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP和JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP和JSP都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。

ASP的编程语言是VBScript之类的脚本语言,JSP使用的是Java,这是两者最明显的区别。此外,ASP与JSP还有一个更为本质的区别:两种语言引擎用完全不同的方式处理页面中嵌入的程序代码。在ASP下,VBScript代码被ASP引擎解释执行;在JSP下,代码被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。

执行 JSP 代码需要在服务器上安装 JSP 引擎。此处我们使用的是 Sun 的 JavaServer Web Development Kit ( JSWDK )。为便于学习,这个软件包提供了大量可供修改的示例。安装 JSWDK 之后,只需执行 startserver 命令即可启动服务器。在默认配置下服务器在端口 8080 监听,使用 http://localhost:8080 即可打开缺省页面。

在运行 JSP 示例页面之前,请注意一下安装 JSWDK 的目录,特别是\子目录下的内容。执行示例页面时,可以在这里看到 JSP 页面如何被转换成 Java 源文件,然后又被编译成 class 文件(即 Servlet )。 JSWDK 软件包中的示例页面分为两类,它们或者是 JSP 文件,或者是包含一个表单的 HTML 文件,这些表单均由 JSP 代码处理。与 ASP 一样, JSP 中的 Java 代码均在服务器端执行。因此,在浏览器中使用\查看源文件\菜单是无法看到 JSP 源代码的,只能看到结果 HTML 代码。所有示例的源代码均通过一个单独的\页面提供。

Java Servlet是一种开发Web应用的理想构架。 JSP以Servlet技术为基础,又在许多方面作了改进。JSP页面看起来象普通HTML页面,但它允许嵌入执行代码,在这一点上,它和ASP技术非常相似。利用跨平台运行的JavaBean 组件,JSP为分离处理逻

6

大连交通大学2012届本科毕业设计(论文)

辑与显示样式提供了卓越的解决方案。JSP必将成为ASP技术的有力竞争者。

7

大连交通大学2012届本科毕业设计(论文)

第二章 需求分析

2.1 需求分析

生命周期是指软件开发全部过程、活动和任务的结构框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。好的软件必须要有一个合理,科学的需求分析。有人经统计发现,在不成功的软件项目中有一半左右是由于需求分析不周造成的,可见把建立完善的需求分析作为第一条基本原理是吸取了前人的教训而提出来的。

2.2功能需求 2.2.1个人管理模块

用户管理模块是对用户进行管理的,主要实现的功能有用户的注册,用户的登陆,

用户信息的更新和用户密码修改等功能。

2.2.2收支分析模块

收支分析主要是对个人的收入和支出的一种合理管理,另外提供了理财报警功能,

如果支出大于收入则系统将会给用户警报。

2.2.3资产管理模块

资产管理模块主要是对个人买入和卖出个人资产的一种管理。总体上来说就是对

现金的支出和收入进行管理,让用户对自己的资产能够一目了然,也能够更好的计划个人的开支。

2.2.4债券管理模块

债券管理主要是对债券的买入金额,收益率等的记录,并且根据买入金额和收益

率可以计算出收益金额。

2.2.5股票管理模块

股票管理模块主要是为了能够帮助个人更好的管理股票信息的模块,并且可以计

算出股票的盈利情况。

2.2.6保险投入模块

保险投入模块主要是记录个人投保信息。

8

大连交通大学2012届本科毕业设计(论文)

2.3记账系统的性能需求

该系统在性能功能上应达到如下需求:

◆ 操作简单、界面友好:录入数据简单易操作,主要实现的个人理财的收支分析,资产管理,债券管理,股票投资,保险投入。收支分析主要是为了给用户提供一个平衡收支的一个平台,如果收支失衡,则系统会提示用户合理理财;债券管理主要是对个人债券信息进行录入,系统会根据你债券的情况买入价格和收益率计算出盈利金额;资产管理主要是对用户的买入和卖出的资产进行整合分析,最后计算出资产的合计金额;股票投资主要是对个人买入股票的价格和数量以及卖出的价格进行计算,最好得出盈利金额;保险投入主要是对个人保险信息的一个记录。

◆ 即时可见:对个人理财信息的处理(包括录入、修改、删除)将立即在系统界面显示出来,达到“即时发布、即时见效”的功能;

◆ 系统运行应该快速、稳定、高效和可靠;

◆ 在结构上应具有很好的可扩展性,便于将来的功能扩展和维护。

2.4 运行环境 2.4.1硬件环境

(1)服务器端

服务器端的最低配置是由建立站点所需的软件来决定的,在最低配置的情况下,服务的性能往往不尽如人意,现在的硬件性能已经相当出色,而且价格也很便宜,因此通常应给服务器端配置高性能硬件。

本网络系统服务器端的配置如下:

? 处理器:Inter Pentium 4 1.86GHz或更高 ? 内存:1GB ? 硬盘空间:80GB ? 光驱:CD-ROM 48X ? 显卡:SVGA显示适配器

(2)用户端

因为用户端主要用于浏览和操作数据,所以对客户端的硬件要求不高,不过现在的

9

大连交通大学2012届本科毕业设计(论文)

电脑有很高的性价比,因此需要的配置应该高于下面的配置。 ? 处理器:Inter Pentium 166 MX或更高 ? 内存:32MB ? 硬盘空间:1GB ? 光驱:CD-ROM 48X ? 显卡:SVGA显示适配器

2.4.2 软件环境

(1)服务器端

? 操作系统:Windows xp ? 网络协议:TCP/IP ? Web服务器:Tomcat 5.0 ? 数据库:SQL SERVER2000 ? 浏览器:Internet Explore 5.0以上 (2)用户端

? 操作系统:Windows 98/ME/2000/XP/Vista ? 网络协议:TCP/IP ? 数据库:SQL SERVER2000

? 浏览器:Internet Explore 5.0以上建议分辨率为1024×768像素

10

大连交通大学2012届本科毕业设计(论文)

第三章 总体设计

3.1记账系统的模型结构

该系统的模型结构如图3-1所示:

收支分析债券投资股票投资保险投入资产管理个人信息管理智能理财系统图3-1 记账系统机构图图示

该系统结构分为三个逻辑层:

三层架构:模型层主要是为了联接显示层和业务层,本系统遵循MVC三层架构,模型层起到一个传递数据和存储数据的作用,而客户端浏览器相当于显示层,主要是为了给用户展现数据,而业务层是对用户的需求的一种动作执行。

3.2记账系统的功能模块简介

图3-2列出系统的功能模块:

11

大连交通大学2012届本科毕业设计(论文)

用户管理用户注册用户登陆收支分析资产管理登陆后经权限判断债券管理股票投资保险投资收支报警添加收支修改收支删除收支添加资产修改资产删除资产添加债券修改债券删除债券添加保险修改保险删除保险添加保险修改保险删除保险记账系统用户登陆

图3-2 系统模块

工作流程为:

打开该系统,用户注册个人帐号,根据个人帐号登录系统,每个人登录系统后只可以对个人理财信息进行操作,本系统为单机版记账系统,即用户注册即为系统管理员,用户可以任意对自己的理财信息进行增加,修改和删除。并且可以对个人密码进行修改。收支分析模块主要是对用

户收支情况的分析,用户可以录入自己的收支信息,并且可以对自己的信息进行修改和删除操作,用户收支情况是系统自动计算得出的,用户,如果用户的支出大于收入,则点击收支分析则会出现系统警报;债券管理主要是用户对个人债券信息的录入,如果需要变动则可以对债券信息进行修改,并且只要填写用户债券数和盈利率就可以得出债券的盈利金额。资产管理模块:资产管理模块主要是对个人买入和卖出个人资产的一种管理。总体上来说就是对现金的支出和收入进行管理,让用户对自己的资产能够一目了然,也能够更好的计划个人的开支;股票管理模块:股票管理模块主要是为了能够帮助

12

大连交通大学2012届本科毕业设计(论文)

个人更好的管理股票信息的模块,并且可以计算出股票的盈利情况;保险投入模块:保险投入模块主要是记录个人投保信息。

整个记账系统开发的总目标是让用户可以轻易的对个人收入与支出进行管理。可以对自己的金钱进行大胆的规划,对自己应该做出怎样的投资也不用在头疼,通过该软件,用户可以在进行参考后较为轻易的做出决定。该系统运用简单,操作方便,可以使用户节约记账的时间,克服纸张不容易保存的缺点。

可以通过资产管理模块,实现用户对个人资产的记录、统计、规划。可以建立各种账户类型,以便管理各种账户的财务状况。

对资产,股票,保险的基本信息存入数据库,可以进行检索。有方便的查询方法,如:日期,状态等信息进行检索。

提供较为完善的差错控制与友好的用户界面,尽量避免误操作。

3.3数据库设计

数据库的设计是MIS系统的核心部分,设计数据库,首先要进行需求分析,然后进行数据库 的概念结构设计、逻辑结构设计、数据库结构实现等步骤。本套记账系统采用的Microsoft SQL Server2000作为访问数据库的服务器,用它来对数据进行存储,在数据库应用系统的开发过程中,数据库的结构设计是一个非常重要的问题。我们在这里所说的数据库结构设计是指数据库中各个表结构的设计,包括信息保存在哪个表格中,各个表的结构如何以及各个表之间的关系。数据库结构的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现等等。

3.3.1数据库设计

数据库逻辑设计分为三个阶段,分别是:收集和分析用户要求、建立E-R 模型和数据库模式设计。

数据库逻辑设计中的第一阶段收集和分析用户需求是按以下四步进行的:分析用户活动,确定系统范围,分析用户活动所涉及的数据和分析系统数据。

逻辑设计第二阶段建立E-R 模型分两步,首先应进行局部E-R 模型设计,然后进行

13

大连交通大学2012届本科毕业设计(论文)

总体E-R 模型的设计。

股票编买入金额 股数 卖出价股票名 债券编号 债券 投资人 股票 备注 购买日股票代投资人 创建日买入价债券代码 收益率 n n 关联 账户名称 关联 1 真实姓1 地址 账 户 邮件 地址 密码 账户号 1 1 创建时间 创建时间 关联 关联 n n 保险名称 金额 商业保险 备注 保险类型 投保人 商业保险社会保险投保人 社会保险 备注 保险名金额 备注 保险类型 图 3-3.1 总体ER图 逻辑设计第三阶段在数据库模式设计阶段分两步进行,第一步初步设计:把E-R 图转换为关系模型,第二步优化设计:对模式进行调整和改善。

我们所要进行研究的是逻辑设计的第三步即将E-R图像关系模型转化。 实体转换出的关系模式:

账户表{账户号,账户名称,电话,邮箱,地址,密码}

债券记录表{投资人,债券名称,债券代码,买入金额,收益率,赢利金额}

14

大连交通大学2012届本科毕业设计(论文)

股票记录表{投资人,股票名称,股票代码,买入价格,股数,卖出价格,赢利金额}

社会保险记录表{社会保险单号,投保人,日期,保险类型,金额,备注} 商业保险记录表{社会保险单号,投保人,日期,保险类型,金额,备注} 保险类型记录表{保险类型编号,保险类型名称}

1:n联系转换出的关系模式:不转换为表,而将1端实体的主键放到n端的实体作为n端实体的外键。

3.3.2数据库结构设计

数据库物理设计包括:选择存储结构、确定存取方法、选择存取路径、确定数据的存放位置。主要解决选择文件存储结构和确定文件存取方法的问题。在数据库中访问数据的路径主要表现为如何建立索引。如要直接定位到所要查找的记录,应采用索引方法存取方法(索引表)。顺序表只能从起点进去向后一个个访问记录。数据库的物理实现取决于特定的DBMS,在规划存储结构时主要应考虑存取时间和存储空间,这两者通常是互相矛盾的,要根据实际情况决定。

索引并不是越多越好。虽然索引能提高查询效率,但由于是对数据表的映射,所以进行DML操作(增、删、改)时效率就会降低。经常查询的字段应该建索引,数据量庞大,查询的结果记录很少也需要建索引。

在上面的实体以及实体之间关系模式的基础上,形成数据库中的表以及各表之间的关系。通过合理规划,需要设计7个数据库表来保存需要更新的数据:账户表(表3-1)、债券记录表(表3-2)、股票记录表(表3-3)、社会保险表(表3-5)、商业保险表(表3-6)。其结构如下:

表3-1:账户表(Account)

字段名 user_id user_name Password real_name Email

说 明 账户号 账户名称 密码 真实姓名 邮件

15

类 型 int varchar varchar varchar varchar

长 度 可否为空 主键 4 30 30 30 30

否 是 是 是 是

大连交通大学2012届本科毕业设计(论文)

Address Phone

地址 电话

varchar varchar

60 30

是 是

表3-2:债券记录表(Bond_buy)

字段名 bond_id user_id Code Name Money interest_rate create_date

表3-3:股票记录表(Stock_buy)

字段名 user_id stock_id Code Name first_price last_price stock_num Remark create_date

表3-5:社会保险表(Insurance_social)

字段名 ins_id user_id

说 明 社会保险单号 投保人

16

说 明 债券编号 投资人 债券代码 债券名称 买入金额 收益率 购买日期

类 型 int int varchar varchar float float datetime

长 度 可否为空 主键 4 4 20 9,2 4 8 8

否 否 否 是 是 是 是

是 是 是

说 明 投资人 股票编号 股票代码 股票名称 买入价格 卖出价格 股数 备注 创建日期

类 型 int int char char float float int varchar datetime

长 度 可否为空 主键 4 4 10 10 8 8 4 2000 8

否 否 否 是 是 是 是 是 是

是 是 是

类 型 int int

长 度 可否为空 主键 4 4

否 否

大连交通大学2012届本科毕业设计(论文)

Name insurance_id

Money Remark create_date

保险名称 保险类型编号

金额 备注 创建时间

varchar int float varchar datetime

4 4 8 20 9,2

否 是 是 是 是

表3-6:商业保险表(Insurance_social)

字段名 ins_id user_id Name insurance_id

Money Remark create_date

说 明 商业保险单号 投保人 保险名称 保险类型编号

金额 备注 创建时间

类 型 int int varchar int float varchar datetime

长 度 可否为空 主键 4 4 4 4 8 20 9,2

否 否 否 是 是 是 是

17

大连交通大学2012届本科毕业设计(论文)

第四章 系统详细设计及实现

4.1系统登录

登录页面:主要功能是用户利用用户名和密码登录,并且可以注册新用户。已存在用户可直接登录。新用户需点击“注册”进行注册账号。点击注册后,页面跳转到 “web/enterAddUserAction.do”。如图4-1所示:

关键代码:

public class LogoutAction extends BaseAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { HttpSession session = request.getSession(); session.invalidate(); return actionMapping.findForward(\

图4-1 登录页面截图

4.1.1注册新用户

提交用户名密码(英文数字支持),填写真实姓名,邮箱,地址,电话(可以为空值)。

点击提交,可以注册新账户。点击后退可以返回登录界面。如图 4-1.1 所示:

图 4-1.1 新用户注册截图

系统登录成功页面:系统登录成功后可以看到系统的所有功能菜单以及欢迎语句,

18

大连交通大学2012届本科毕业设计(论文)

在此页面可使用系统功能:个人管理、收支分析、资产管理债券投资、股票投资、保险投入。点击功能“button\即可触发功能,跳转到功能页面 如图4-2所示: 关键代码:

public class EnterLoginAction extends BaseAction {

public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {

UserForm userForm = (UserForm) actionForm; return actionMapping.findForward(\

图4-2 登录成功页面截图

4.2用户管理模块

用户登录后可以修改个人信息、用户名、邮箱、地址、电话。填写新的信息后,点击修改,即可完成修改个人信息的操作 。点击“后退”取消修改。如图4-2.1所示: 关键代码:

public class EnterSysAdminAction extends BaseAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { UserForm userForm = (UserForm) actionForm; IdentityBean bean = this.getIdBean(request); UserForm form = DBController.getMemberById(Integer.parseInt(bean .getUserId())); try { BeanUtils.copyProperties(userForm, form); } catch (IllegalAccessException e) {

19

大连交通大学2012届本科毕业设计(论文)

// TODO Auto-generated catch block e.printStackTrace();

} catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); }

return actionMapping.findForward(\

图4-2.1用户管理截图

4.2.1 修改密码

点击“修改密码”button,页面跳转到“web/changePasswordAction.do?userId=1”。用户进行修改密码操作,点击“后退”取消修改。

关键代码:

public class ChangePasswordAction extends BaseAction{ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {

UserForm userForm = (UserForm) actionForm; return actionMapping.findForward(\

4.3收支录入模块

收支录入页面:用户成功登陆后可以对自己的个人收支情况进行系统录入,和修改操作。对收支情况进行修改。输入查询日期范围查询收支详情。点击“添加信息”进行收支情况录入。选择收支条目,进行删除操作。如图4-3所示:

关键代码:

public class SearchFeeAction extends BaseAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request,

20

大连交通大学2012届本科毕业设计(论文)

HttpServletResponse response) {

TechContentForm form = (TechContentForm) actionForm; IdentityBean idBean = this.getIdBean(request); List list = null; String forward = \if (this.isButton(request, \ list = DBController.getMaxRate(idBean.getUserId(), form .getCreateDate(), form.getEndDate()); } else if (this.isButton(request, \ list = DBController.getMaxFee(idBean.getUserId(), form .getCreateDate(), form.getEndDate()); } else {

list = DBController.getFeeList(idBean.getUserId(), form .getCreateDate(), form.getEndDate()); }

if (list != null && !list.isEmpty()) { TechContentForm form2 = (TechContentForm) list .get(list.size() - 1); form.setTotalFee(form2.getTotalFee()); form.setTotalRate(form2.getTotalRate()); }

form.setTechList(list);

return actionMapping.findForward(\

图4-3 收支情况输入页面截图

4.3.1 收支信息添加

点击“添加信息”button,页面跳转到“web/enterAddFeeAction.do?path=Y”日期栏选择支出日期(系统自动弹出日期选择对话框),选择收支原因 (下拉list给出备选选项) 工资,奖金,分红,额外津贴,其他收入,生活费,交通费,服装费,休息娱

21

大连交通大学2012届本科毕业设计(论文)

乐,电话费,医疗保险,其他费用,备注录入支出具体原因。点击提交进行提交。点击后退,取消录入。如图4-3.1所示:

关键代码:

public class AddFeeAction extends BaseAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception { TechContentForm form = (TechContentForm) actionForm; IdentityBean idBean = this.getIdBean(request); if (StringUtils.isEmpty(form.getNoId())) { DBController.addFee(Integer.parseInt(idBean.getUserId()),form); } else { DBController.updateFee(form); }

if (\

return actionMapping.findForward(\ }

return actionMapping.findForward(\

添加收支分析主要是对用户的收入和支出进行记录,单击添加按钮的单击事件主要程序如下:

public class AddFeeAction extends BaseAction {

public ActionForward execute(ActionMapping actionMapping,

ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception {

TechContentForm form = (TechContentForm) actionForm; IdentityBean idBean = this.getIdBean(request);

if (StringUtils.isEmpty(form.getNoId())) { //执行插入操作的方法

DBController.addFee(Integer.parseInt(idBean.getUserId()),form); } else {

}

DBController.updateFee(form);

if (\

22

大连交通大学2012届本科毕业设计(论文)

//执行成功页面的转向

return actionMapping.findForward(\

}

}

return actionMapping.findForward(\

图 4-3.1添加支出信息截图

4.3.2收支分析报警模块

收支分析报警页面:如果用户支出大于则系统会进行报警。如图4-3.2所示:

图4-3.2收支报警页面截图

4.4股票模块

股票列表页面:股票管理主要是对股票的信息的买入和卖出价格的计算,卖出价格

减去买入价格乘以股数即为股票盈利金额。点击日期范围输入要查询的股票日期,或输

23

大连交通大学2012届本科毕业设计(论文)

入股票代码进行股票信息查询,或输入股票名称进行股票信息查询。如果输值不存在,显示所有股票信息 。点击“投资股票”进行股票信息的录入。选择股票条目,进行删除操作。如图4-4所示 : 关键代码:

public class SearchStockAction extends BaseAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { TechContentForm form = (TechContentForm) actionForm; IdentityBean idBean = this.getIdBean(request); List list = null; String forward = \ list = DBController.getStockList(idBean.getUserId(), form.getCreateDate(), form.getEndDate(),form.getCode(),form.getName()); // if (list != null && !list.isEmpty()) { // TechContentForm form2 = (TechContentForm) list.get(list.size() - 1); // form.setTotalFee(form2.getTotalFee()); // form.setTotalRate(form2.getTotalRate()); form.setTechList(list); return actionMapping.findForward(\

图4-4 股票列表页面截图

4.4.2 股票信息添加

在股票信息页面点击“投资股票”button 。页面跳转到

“web/enterAddStockAction.do?path=Y”页面进行股票信息的录入 。输入股票日期(系统弹出日期选择对话框),输入股票代码(数字),输入股票名称,买入价格(单位:元),股数,卖出价格(单位:元)。录入后系统自动算出股票盈亏情况。点击后退取消操作。

24

大连交通大学2012届本科毕业设计(论文)

如图4-4.2所示 : 关键代码:

public class AddStockAction extends BaseAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception { TechContentForm form = (TechContentForm) actionForm; IdentityBean idBean = this.getIdBean(request); if (StringUtils.isEmpty(form.getNoId())) { DBController.addStock(Integer.parseInt(idBean.getUserId()),form); } else { DBController.updateStock(form); }

if (\

return actionMapping.findForward(\ } return actionMapping.findForward(\

图4-4.2 股票信息录入截图

4.5资产管理模块

资产管理主要是对个人买入和卖出信息的统计,资产管理列表页面。

输入日期范围(系统弹出日期选择对话框),选择买入,卖出,查询资产状况。如果选择为空值,则显示所有资产状况。选择收支条目,进行删除操作。点击“添加内容”添加资产增减条目。点击“查询内容”查询资产内容。如图5-5所示: 关键代码:

public class SearchAssetAction extends BaseAction {

25

大连交通大学2012届本科毕业设计(论文)

public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { TechContentForm form = (TechContentForm) actionForm; IdentityBean idBean = this.getIdBean(request); List list = null; String forward = \ list = DBController.getAssetList(idBean.getUserId(), form.getCreateDate(), form.getEndDate(),form.getType()); float total = 0; if (list != null && !list.isEmpty()) { for (int i = 0; i < list.size(); i++) { TechContentForm form2 = (TechContentForm) list.get(i); if (form2.getTypeId().equals(\ total = total - new Float(form2.getFee()); }else{ total = total + new Float(form2.getFee()); } } } form.setTechList(list); form.setTotalFee( String.valueOf(total)); return actionMapping.findForward(\

图5-5 资产管理页面截图

4.5.1资产添加

点击“添加内容”添加资产内容,页面跳转到“enterAddAssetAction.do?path=Y”

选择日期(系统自动弹出日期选择对话框),选择资产变更日期,选择买入(减少资产),卖出(添加资产),输入金额,填写收支原因,点击“添加”提交表格。如果输入值不

26

大连交通大学2012届本科毕业设计(论文)

存在则显示所有资产信息。选择收支条目,进行删除操作。 如图4-5.1所示 关键代码:

public class AddAssetAction extends BaseAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception { TechContentForm form = (TechContentForm) actionForm; IdentityBean idBean = this.getIdBean(request); if (StringUtils.isEmpty(form.getNoId())) { DBController.addAsset(Integer.parseInt(idBean.getUserId()),form); } else { DBController.updateAsset(form); }

if (\

return actionMapping.findForward(\ } return actionMapping.findForward(\

图4-5.1 资产添加截图

4.6债券投资管理模块

债券投资列表页面:债券投资主要是对债券的买入金额和收益率的记录,通过买入金额和收益率得出盈利金额。输入日期范围(系统自动弹出日期选择对话框,选择查询债券日期,输入债券代码,债券名称查询债券信息。点击“查询债券”提交表格显示查询信息。输入值不存在则显示所有债券信息。选择资产条目,进行删除操作。如图4-6所示:

关键代码:

27

大连交通大学2012届本科毕业设计(论文)

public class SearchBondAction extends BaseAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { TechContentForm form = (TechContentForm) actionForm; IdentityBean idBean = this.getIdBean(request); List list = null; String forward = \ list = DBController.getBondList(idBean.getUserId(), form.getCreateDate(), form.getEndDate(),form.getCode(),form.getName());

// if (list != null && !list.isEmpty()) { // TechContentForm form2 = (TechContentForm) list.get(list.size() - 1); // form.setTotalFee(form2.getTotalFee()); // form.setTotalRate(form2.getTotalRate()); // } form.setTechList(list); return actionMapping.findForward(\

}

图4-6 债券信息查询截图

4.6.1债券信息添加

点击“投资债券”添加债券。页面跳转到“web/enterAddBondkAction.do?path=Y”

选择日期(系统自动弹出日期选择对话框),选择资产变更日期,输入债券代码(数字),债券名称,买入金额,收益率(单位%),点击“提交”提交表格。点击“后退”取消添加信息。如图4-6.1所示 : 关键代码 :

28

大连交通大学2012届本科毕业设计(论文)

public class AddBondAction extends BaseAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception { TechContentForm form = (TechContentForm) actionForm; IdentityBean idBean = this.getIdBean(request); if (StringUtils.isEmpty(form.getNoId())) { DBController.addBound(Integer.parseInt(idBean.getUserId()),form); } else { DBController.updateBond(form); }

if (\

return actionMapping.findForward(\ } return actionMapping.findForward(\

图4-6.1 债券投资列表页面截图

4.7保险投入管理模块

保险投入列表页面:保险投入页面主要是对个人保险买入的记录。输入日期范围(系统自动弹出日期选择对话框)选择查询保险日期,选择保险类型商业保险、社会保险,点击“查询保险”提交表格显示查询信息 。输入值不存在则显示所有保险信息 。选择保险条目,进行删除操作。如图4-7所示: 关键代码:

public class SearchInsAction extends BaseAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) { TechContentForm form = (TechContentForm) actionForm;

29

大连交通大学2012届本科毕业设计(论文)

IdentityBean idBean = this.getIdBean(request); List list = null; String forward = \list = DBController.getInsList(idBean.getUserId(), form.getCreateDate(), form.getEndDate(),form.getType()); if (list != null && !list.isEmpty()) { TechContentForm form2 = (TechContentForm) list.get(list.size() - 1); form.setTotalFee(form2.getTotalFee()); form.setTotalRate(form2.getTotalRate()); }

form.setTechList(list);

return actionMapping.findForward(\

图4-7保险信息查询截图

4.7.1保险信息添加

点击“添加保险”添加保险内容,页面跳转到“web/enterAddInsAction.do?path=Y”

选择日期(系统自动弹出日期选择对话框),选择保险投保日期,输入保险名称,保险类型:社会保险、商业保险 。输入金额。点击“提交”提交表格。点击“后退”取消添加信息。如图4-7.1所示: 关键代码 :

public class AddInsAction extends BaseAction { public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) throws Exception { TechContentForm form = (TechContentForm) actionForm; IdentityBean idBean = this.getIdBean(request); if (StringUtils.isEmpty(form.getNoId())) { DBController.addIns(Integer.parseInt(idBean.getUserId()),form); } else { DBController.updateIns(form);

30

大连交通大学2012届本科毕业设计(论文)

}

if (\

return actionMapping.findForward(\ } return actionMapping.findForward(\

图4-7.1 保险投入页面截图

4.8 系统配置

4.8.1Server.xml文件配置

本系统采用连接池连接数据库,需要对Tomcat下的Server.xml进行配置。首先打开

tomcat下的conf文件夹,然后找到Server.xml文件,找到以下段落:

factory=\ pathname=\

中间添加

name=\ type=\ username=\

31

大连交通大学2012届本科毕业设计(论文)

password=\

driverClassName=\ maxIdle=\ maxWait=\

url=\

maxActive=\

4.8.2 ContextServer.xml文件配置

然后配置Context上下文文件:填入下面段落:

type=\完成以上工作则连接池配置成功。

4.9系统部分重要功能及其代码 4.9.1连接池代码

首先,让我们来看看连接池的概念:

连接池允许应用程序从连接池中获得一个连接并使用这个连接,而不需要为每一个连接请求重新建立一个连接。一旦一个新的连接被创建并且放置在连接池中,应用程序就可以重复使用这个连接而不必实施整个数据库连接创建过程。当应用程序请求一个连接时,连接池为该应用程序分配一个连接而不是重新建立一个连接;当应用程序使用完连接后,该连接被归还给连接池而不是直接释放。

优点:使用连接池的最主要的优点是性能。创建一个新的数据库连接所耗费的时间主要取决于网络的速度以及应用程序和数据库服务器的(网络)距离,而且这个过程通常是一个很耗时的过程。而采用数据库连接池后,数据库连接请求可以直接通过连接池满足而不需要为该请求重新连接、认证到数据库服务器,这样就节省了时间。

缺点:数据库连接池中可能存在着多个没有被使用的连接一直连接着数据库(这意味着资源的浪费)。ps:这必须要求开发人员在开发时估计这个系统最大提供的数量是多少。

池的创建和分配

32

大连交通大学2012届本科毕业设计(论文)

当连接打开时,将根据一种精确的匹配算法来创建连接池,该算法会使连接池与连接中的字符串相关联。每个连接池都与一个不同的连接字符串相关联。当新连接打开时,如果连接字符串不精确匹配现有池,则将创建一个新池。

连接数据库代码: public class DBController { }

33

public static Connection getConnection() { }

Connection conn = null; try {

Context initCtx = new InitialContext();

Context ctx = (Context) initCtx.lookup(\// 获取连接池对象

Object obj = (Object) ctx.lookup(\// 类型转换

javax.sql.DataSource ds = (javax.sql.DataSource) obj; conn = ds.getConnection();

} catch (Exception e) { }

return conn;

e.printStackTrace();

大连交通大学2012届本科毕业设计(论文)

第五章 测试

软件测试事挼弩箭开发过程的重要组成部分,是用来确定一个程序平直或者性能的师傅符合开发之前所提出的一些要求。软件测试就是在软件投入运行前,对软件需求分析,设计规格说明和编码的最终复审,是软件品质保证的关键步骤。软件测试是为了发现错误而执行程序的过程。在编写出买一个模块之后,已经对系统做了必要的单元测试和整合测试。为了验证本系统的功能及质量,本章将对银行记账系统进行全面的系统性能测试性能测试及验收测试,以求达到完善的目的。

对于软件测试技术,可以从不同角度加以分类。从测试是否针对系统的内部结构和具体实现算法的角度来看,可以分为白盒测试和黑盒测试。黑盒测试也成功能测试或者数据驱动测试,着眼于程序外部结构,不考虑内部逻辑,针对软件界面和软件功能进行测试。白盒测试也称结果测试或者逻辑驱动测试,是穷举路经测试。在使用这一方案时,检测者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径是天文数字。丹即使每条路径都测试了任然可能有错误。本因本系统采用黑盒测试法,以确认系统各个功能都正常使用为目的的。

5.1 系统测试 5.1.1界面测试

确定测试用例如下:

(1)测试界面设计是否合理,简洁,美观,操作是否方便。 (2)功能键,数据项信息是否齐全。 (3)确认系统中统一功能名称是否统一。 (4)整个系统设计样,式风格是否统一。

(5)确认对话框视图或编辑器中所有字段名称显示风格是否统一。 (6)确认个视图可以正常显示并且相互作用良好

5.1.2用户登录模块测试

确认测试用例如下

(1)密码信息有效性测试:特殊字符,正常字符,空字符(不输入),空格。 (2)登录名是否区分大小写。

34

大连交通大学2012届本科毕业设计(论文)

(3)登陆是否允许重名。

(4)用户名字和密码都为最大长度。 (5)用户名字和密码都是最小程度。

(6)用户名字和密码都是费最大和最小长度的数据。 (7)用户名长度大于要求1位。 (8)用户名长度小于要求1位。 (9)密码程度大于要求1位。 (10)密码长度小于要求1位。 (11)是否记住上次登录名。

(12)密码信息有效性测试:字母数字混排,数字,符号数字,字母符号,数字符号,空字符(不输入),空格,ASCII字符,字符串在有空格,串在有半角空格。 (13)口令锁定:即输入口令次数的限制。 (14)密码显示是否一星号或者别的符号显示。 (15)看是否支持tab和enter键等。 (16)密码是否可以复制粘贴。 (17)不输入旧密码,直接改密码。 (18)输入错误旧密码。 (19)不输入确认新密码。 (20)不输入新密码。

(21)新密码和确认新密码不一致。 (22)新密码中有空格。

(23)新密码程度有效性测试方法同上。 (24)新密码为非允许字符。

(25)测试密码是否区分大小写,新密码中英文小写,确认密码中英文大写。 (26)新密码与旧密码一样能否修改成功。

经测试登陆用户模块在以上用例均能正常运行,但是登录功能系统只具备密码或用户为空时的提醒,并不支持密码信息有效性的测试。

5.1.3系统功能性测试

确认测试用例如下:

35

大连交通大学2012届本科毕业设计(论文)

(1)个字段输入正确的信息值保存,确认系统是否可以正确完成新增操作。

(2)进入添加对话框不输入任何信息值,系统给出某个不允许为空字段的提醒信息。 (3)非法测试:校验数值型字段输入位非数值,保存时候系统是否给出相应的提示信息,确定数值型字段是否能接受负数。 (4)边界测试:确认数值型字段的边界值。

(5)精确值测试,测试小数位数市口在定义的长度内。 (6)字段精确值是否正确。

(7)测试字符型字段是否可以接受空格。 (8)保存新添加的记录信息。

(9)测试新增/修改信息保存后,信息列表是否自动刷新。 (10)修改记录时确认个字段是否已经保存了添加时输入的信息值。

(11)修改记录时确认各字段所保存/取的的信息值,是否添加时输入的相关信息值完全匹配。

(12)修改记录时确认字段是否柏存修改后的信息值。

(13)修改界面的字段长度是否与添加界面相应字段长度一致。 (14)修改界面字段命名是否与新增界面相应字段命名完全一致。 (15)下拉选择字段要求只要选择输入信息值。

(16)确认下拉列表中的选项值是否与相应的集合值域完全匹配。 (17)测试下来列表中的选择值是否有否重复。

(18)测试下拉菜单的信息值是否根据所选择的项目显示,联动下拉菜单是否对应项目。

(19)树结构相应的显示及操作可以被执行。

经上述用例测试,股票,债券,财产,收入支出模块系统功能能均能正常运行。

5.1.4算法测试

(1)测试前需要充分了解算法的整个计算过程及结果值的精确度。 (2)算法测试之前需要准备充足,而且是准确无误的测试用例。 (3)根据输入值确认系统计算输出结果是否与预期结果完全一致。

(4)如果计算公式中含有引用其它模块的数据,先确认数据提取是否相对应的正确。 (5)先用等价划分法,边界值测试方法测试输入数据是否在需求范围内。

36

大连交通大学2012届本科毕业设计(论文)

(6)严格按照测试用例执行测试,确认计算结果是否正确无误,注意结果的精确度。 经验证算法部分运行正常,计算结果正确。

5.2 性能测试

设定压力测试指标如事物的响应时间是否可以接受?内存是否够用?等等。根据性能缺陷,进行缺陷定位,调优工作;直到满足性能测试指标。

5.3 验收测试

在经过系统测试之后,发现软件的功能基本都可以实现,且工作性能良好,可以满足用户的需要。

但在设计中还存在一些不足,在规范化程度上没有做到十分完美。而且由于系统开发的时间和资源有限,所以设计过程中难免有考虑不到的地方,可能导致系统的功能不够健全。

37

大连交通大学2012届本科毕业设计(论文)

第六章 总结

随着国内信息化的发展,理财的观念将更加深入人心。对于社会的组成单位——个人来说,如何理财已经渐渐地被重视。个人理财管理系统也将越来越能发挥它的作用。由于此系统涉及到了很多理财知识,所以对于普通用户来说,还是不容易上手,但是此系统拥有丰富的理财知识介绍,可以让普通用户轻松入门。入门容易,但要进一步深入理解理财,还需要花更多时间来学习。

记账系统是近些年来企业信息化的一项新兴产物,其产生有着一定的时代背景与技术背景,随着信息时代的到来,信息之间的互动与传递使得本就发展迅速的世界变得更加疯狂,面对着如此的压力,对于年轻的个人来说,记账系统能成为个人理财的好帮手,为每一个个人管理好每一分钱。

本系统应用Eclipse作为开发工具,SQL Server2000作为其数据库后台,凭借着具有快速,高效率的Eclipse,依靠强大数据处理能力的SQL Server2000,本套系统在一个多月的时间内完成了,这套系统是在了解了目前比较成熟的MIS系统的整体思想的基础之上开发完成的,它整合了理财方面的知识,加上中国的一些实际国情以及电子行业的发展趋势,使得这套系统相对完善。

在系统中,实现了增删改查的基本功能还实现了打印的功能,系统的界面友好,易操作,不失为一套比较卓越的个人理财管理系统。

38

大连交通大学2012届本科毕业设计(论文)

致 谢

在论文撰写过程中,得到论文指导老师的悉心指导,在此向他致以诚心的谢意。同时真诚感谢五年来教授我的老师们,是他们使我获得了良好的理论知识和实践技能,让我能在面对各种新技术的学习中有个良好的前提和扎实的基础。

在大学的五年里,十分感谢母校对我的培养,让我度过了有意义的校园生活.在学习中感谢各位任课老师对我的教导,无论在理论上还是在实践中,你们都给与我很大的帮助,增强了我的自信心,提高了积极性,使得我能够顺利毕业.这对于我以后的工作和学习都带来很大的帮助.在这次实习中感谢你们耐心的辅导和各种资料的无偿提供。在此特别感谢指导我毕业设计的老师,她认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅.谢谢你们对我的支持和鼓励!

另外还要感谢我的同组的成员,感谢他们为我提供的各种文献资料及工作中的帮助,没有他们的协助我个人是不能完成这个网站的.我深刻体会到:万众一心是做任何事情的关键的!还要感谢各类网站给我带来的方便.对于你们的无私奉献我再次说声谢谢!

最后,也感谢我的父母,他们给我提供了无微不至的物质和精神上的关怀,使我能够顺利的完成学业。

39

大连交通大学2012届本科毕业设计(论文)

参考文献

[1] Danny Ayers.Java 数据编程指南[M],电子工业出版社,2003

[2] John Bell.Java Servlets 2.3编程指南[M], 北京:电子工业出版社,2002 [3] Subrahmanyam Allamaraju.J2EE编程指南[M], 第三版,北京:电子工业出版社,2002 [4] 何梅.Java Applet编程实例[M],北京:清华大学出版社,2002

[5] Bruce Schneier著,吴世钟,祝世雄等译.应用密码学[M],第二版,北京:机械工业出版社,2001

[6] 尹华伟,张洪均,吴令安.混沌在信息加密中的应用[J].科学通报,2003 [7]夏帮贵,刘凡馨. 数据库编程实作教程[M],北京:北京希望电子出版社 2001 [8]杨学瑜.JSP入门与提高[M], 北京:清华大学出版社 2003 [9]李大军.商业管理信息系统[M],北京:清华大学出版社 2002 [10]薛华成.管理信息系统[M], 第三版,北京:清华大学出版社 1999 [11]张龙祥、陶影.数据库原理与设计[M],西安:西安交大出版社 2002 [12]Mike Jasnowski.Xml和Web服务宝典[M],北京:电子工业出版社, 2003

[13]宝贝工作室.Dreamweaver Ultradev 4 动态网站开发实用教程[J].北京:机械工业出版社,2001

[14](美)(Horstmann,C.S.)霍斯特曼 (Cornell,G.)科奈尔.JAVA核心技术[M].第一版,北京:机械工业出版社,2006

40

本文来源:https://www.bwwdw.com/article/gwa7.html

Top