周一至周五 | 9:00—22:00

期刊论文网 > 工业技术论文 > 计算机自动化技术论文 > 基于JAVA的股票交易系统的计算机程序研究与设计论文

基于JAVA的股票交易系统的计算机程序研究与设计论文

2018-12-11 11:09:13来源:组稿人论文网作者:婷婷

  摘 要

  随着21世纪的到来,计算机技术迅速发展。传统应用软件逐渐退出历史的舞台,取而代之多种信息网络集成的应用软件,让社会更加信息化。信息化社会的逐渐成型与微电子技术的飞速发展,给效率低、落后的产品带来的巨大的冲击。在当下社会中,除去人力、物力、财力这三种资源,最重要的就当属信息资源。并且,信息不属于基本资源,是属于非物质资源。所以,信息在这么重要的情况下,也需要进行管理、控制。本次设计的虚拟股票交易系统是将计算机语言技术应用到股票信息的管理上,为股票信息带来更为方便的管理,为新接触股票的人员带来便利。

  本次设计的股票交易系统基于JAVA平台开发,运用了JSP技术来进行编写程序,使用SQLSever来进行数据的储存以及与前台的转换。文档着重讲述了该系统的开发背景、需要达到的功能要求、系统的开发过程。着重说明了系统的设计重点、设计思想、难点技术和解决方案。

  关键词:计算机;Java;JSP;Sqlserver

  第1章 绪论

  1.1股票交易系统的研究背景及意义

  当前信息技术飞速发展,不仅给人们带来的机遇,更给信息的相关管理工作带来的非比寻常的挑战。现在在计算机互联网信息开放的形式下,传统的信息管理,比如股票管理系统已经不足以适应当下环境,达不到企业经营管理的要求。 所以说,当前的信息管理已经不能适应当前的经济发展要求,需要开发新型的管理软件来满足大众需求。需要有一个功能全面、操作便捷的系统来帮助人们学习炒股。

  作为一名计算机相关专业的学员,并在惠普学习了软件的相关知识,很希望能尽自己一份微薄的力量去为大众服务。

  1.2国内外研究现状及其发展

  近些年来,我国的信息管理事业迅猛发展,手工管理的方式已经不能适应像股票资讯等有大量事务需要处理的工作,提高信息技术来管理事务迫在眉睫。国内目前已经有很多公司完成了信息化管理,搭建了内部的局域网管理系统,外部和因特网相连,硬件设备也非常齐全。在应用软件这一方面,我国也有很多软件开发公司已经开发除了各种股票资讯管理软件。但是这些管理软件大多数是按照国内的管理制度来设计的,本地化比较明显,达不到国际化标准,也不能得到国际的认可。

  1.3股票交易系统主要研究的内容

  在此次的系统开发中,结合我在济宁惠普学习期间学到的知识,开发过程中严格按照原理原型模型每个阶段的任务,来安排整个开发的进度。

  开始先通过调研,详细了解开发的需求,并满足可行性要求;然后概要设计阶段,分析E-R图来进行数据库的设计,并且确定下来要使用的技术;之后详细设计,分出系统模块及其应有的功能;代码编写阶段,先实现各个按钮链接之间的互相跳转功能,然后编写功能代码,是数据库与程序传输相通;最后是测试阶段,严格按照测试用例对系统进行测试。

  系统开发的总任务是:系统、规范且智能的实现信息管理,提高管理效率,让使用者便于操作,更容易的去管理股票资讯。实现信息的细节化管理,将错误发生率降到最低。 第2章 虚拟股票交易的系统总体设计

  2.1 相关技术支持介绍

  2.1.1 JSP简介

  是一种基于JAVA语言来开发WEB的技术。

  2.1.2 Eclipse简介

  基于JAVA语言的开发平台,为开发者提供框架和服务等便利功能。

  2.1.3 Sqlserver简介

  此次设计需要用Sqlserver来作为数据库。

  2.1.4 B/S模式分析

  不同于C/S架构,不需要安装较为庞大的客户端,只需要用浏览器来访问。

  2.2 股票交易系统的需求分析

  股票交易行业发展迅速,为了满足广大股票爱好者的需求,满足对于股票还不是很了解的人们对于股票的兴趣,同时也是为了提高股票信息管理的工作效率。开发一个操作简单、便于管理的股票交易系统显得尤为重要。

  2.2.1 应用需求分析

  系统的性能要求就是指系统的储存、后援空间,重新启动需要考虑到系统的运行效率以及安全性等方面的问题。

  硬件需求表2-1如下:

  服务器硬件 处理器:Intel 酷睿 内 存:512M 或更大 硬 盘:120G 或更大软件 Microsoft Windows XP

  Microsoft sqlserver Microsoft tomcat 6.0 或更高版本 Microsoft Office 2003客户机硬件无特殊要求,只要能上连接互联网即可软件Microsoft Windows XP

  Microsoft IE 6.0 或更高版本

  2.2.2 运行需求分析

  硬件条件:局域网;酷睿 CPU、1G RAM、PC机要求10G硬盘以上;打印机。

  软件条件:Windows XP IE6.0以上。

  2.2.3 可靠性需求分析

  可靠性的衡量标准有以下三个,安全性、事务性和稳定性。稳定性的构成如下:严重性、可恢复性、故障的频率、可预见性、准确性和平均故障间隔时间等。

  2.2.4 运行环境需求

  此系统只要有一台计算机就可以运行。

  计算机配置如表2-2所示:

  硬件软件环境处理器:inter酷睿i5以上操作系统:windows7内存:4G以上数据库:Sqlserver2000硬盘空间:500GB以上浏览器:IE11以上

  2.3 数据流程分析

  2.3.1 系统操作流程

  系统主界面

  系统登录界面

  系统管理

  输入操作员及密码

  检查

  密码正确

  功能界面

  功能处理

  错误信息

  密码错误

  数据库

  图2-3 系统操作流程图

  2.3.2 数据增加流程

  数据增加流程图如下:

  开始

  自动生成编号

  输入数据

  是否合法

  写入数据库

  结束

   SHAPE \* MERGEFORMAT 

  图2-4 数据增加流程图

  2.3.3 数据修改流程

  数据修改流程图如下:

  开始

  选择需要修改记录

  输入数据

  是否合法

  写入数据库

  结束

  图2-5 数据修改流程图

  2.3.4 删除数据的流程

  数据删除流程图如下:

  开始

  选择需要删除记录

  是否删除

  更新数据库

  图2-6 数据删除流程图

  2.4 可行性分析

  此系统分析了其他各种股票交易系统而编成,对比了其他股票交易系统的优点和缺点,因为 Sqlserver数据库服务器所存在的优势,最终用JSP技术制作此系统的动态网页,Sqlserver作为本系统数据库服务器。可行性分析的重要目的是:明确系统的规模、目标和功能,调查系统开发背景、必要性和意义,从而决定系统的方案和计划。通过调查分析,新系统设计方案的可行性如下。

  2.4.1 经济可行性

  本次开发为想了解股票的朋友提供了方便,系统的开发、维护所需要的费用都不高,经济上可行。

  2.4.2 时间可行性

  在两个月学习与实践中,我通过自学和请教老师和同学,基本掌握了相关的知识,虽然时间上是有点紧,但是我通过不屑的努力是可以做到的,可以使其基本功能完善。

  2.4.3 法律可行性

  技术资料是合法有效的。

  在开发系统的过程里并没有存在知识产权的问题。

  无抄袭的相关情况。

  综上所述,开发本次系统从经济上、从时间上、从法律上都是完全可靠的。

  第3章 虚拟股票交易系统的设计

  3.1 系统开发步骤

  股票信息管理系统成立可以分为几个阶段:系统的开发、实施、设计、分析和工作等阶段。每个阶段严格按照线性步骤来开发,每个阶段都产生工作文档并进行评估,在之后的设计中不能轻易改变之前的评估结果。

  上述开发的方法优点是:有利于设计开发工作的管理与组织,并且最大程序上减少了开发的复杂性。(据不特定统计:在三个建立信息管理系统的阶段中,运行阶段和维护阶段竟然占了三分之一工作量,然而系统的规划总体和开发系统的阶段里的工作量大概是整个系统开发工作量的三分之二,这些数据说明开发一个信息管理系统,特别重视的应该是对它的维护工作,这样才能使它更加完善[12]。)

  3.2 功能模块设计

  系统功能就是要弄清楚它可以用来做什么事情,然后形成一个逻辑模型。然后把逻辑模型转换成物理模型,最后再着手实现系统的需求。系统功能需要完善而且界面需要美丽,成功的系统设计这两者都要有,但是其中功能模块必然比界面更加重要,系统设计图像的数据流分析阶段,需要在结构化设计概要说明的基础上,映射到软件体系结构中的某些程序。系统功能模块如图3-1所示:

  股票交易系统

  系统设置管理

  购买信息管理

  投资视点管理

  股票信息管理

  用户信息管理

  帐号信息设置管理

  密码信息设置管理

  用户信息添加

  用户信息删除

  用户信息修改管理

  投资视点管理

  投资视点提交

  股票信息添加

  股票信息修改

  股票信息删除

  购买信息添加

  购买信息修改

  购买信息删除

  图3-1系统功能模块图

  3.3 数据库概念设计

  每个开发的程序中,数据库都是首先需要考虑的重要一部分,数据库选择SQLSever,数据库实体E-R图如图3-2所示:

  股票资讯信息

  属于

  属于

  查询

  管理

  用户

  分类信息

  管理员

  股票交易系统

  管理

  管理

  管理

  查询

 

  图3-2整体实体E-R图

  3.4 数据库逻辑结构设计

  主要设计出数据库的表如下:

  admin管理员信息表3-3:

  列 名数据类型长度说 明idint4编号namevarchar50管理员IDpasswordvarchar50管理员密码Realnamevarchar50增加时间Sexvarchar50性别agevarchar50年龄addressvarchar50地址telvarchar50电话addtimevarchar50时间Member会员信息表3-4:

  列 名数据类型长度说 明idint4编号Usernamevarchar50帐号Passwordvarchar50密码Realnamevarchar50姓名Sexvarchar50性别Agevarchar50年龄Addressvarchar50地址Emailvarchar50邮箱Regtimevarchar50时间Ifusevarchar50状态Fl分类信息表3-5:

  列 名数据类型长度说 明idint4编号Mcvarchar50名称Jj企业介绍信息表3-6:

  列 名数据类型长度说 明idint4编号Nrvarchar50内容Sjvarchar50时间Xw投资视点信息表3-7:

  列 名数据类型长度说 明idint4编号Btvarchar50标题Nrvarchar50内容Sjvarchar50时间Gs产品信息表3-8:

  列 名数据类型长度说 明idint4编号Bhvarchar50编号Mcvarchar50名称Gsvarchar50公司

  Gm购买信息表3-9:

  列 名数据类型长度说 明idint4编号Bhvarchar50编号Mcvarchar50名称Jzvarchar50净值Slvarchar50数量Membervarchar50用户Jz净值信息表3-10:

  列 名数据类型长度说 明idint4编号Bhvarchar50编号Mcvarchar50名称Jzvarchar50净值Slvarchar50数量Membervarchar50用户

  第4章 虚拟股票交易系统的实现

  4.1 系统首页的实现

  系统首页上为用户提供虚拟股票交易平台的各个功能的导航栏,用户可以通过点击进入相应模块。

  系统首页效果图如图4-1所示:

  图4-1 系统首页界面

  4.2 登陆模块的实现

  这个模块实现了用户登录的功能,用户通过输入帐号、密码来登录,进行相关操作,由服务端将信息传送到后台数据库,与其中数据进行比较,二者不一样则提示错误,反之,登录成功进入系统。

  登录模块的时序图如图4-2所示:

  用户¦

  系统

  数据库

  登录

  1 : 用户名

  2 :验证用户名

  3 密码¦

  4 : 验证密码

  5 : 信息正确

  6 : 成功登录

  图4-2 用户登录模块时序图

  输入正确账号、密码,则进入用户操作中心;输入的账号、密码有误,或不对应,则提示相应错误,系统继续停留在登录界面。用户登录模块如图4-3所示:

  图4-3登陆模块界面

  4.3 用户信息管理模块的实现

  管理员权限可以在用户添加模块中新建一个用户,只需要输入一个账户的基本信息即可。该操作会在数据库中对应生成数据储存在其中。用户信息管理模块时序图如图4-4所示:

  修改用户

  信息界面

  用户

  用户DAO

  1 : 查询用户信息

  2 :检索用户信息

  6 : 提交修改信息

  7 : 提交修改信息

  10 : 返回修改结果

  管理员

  业务逻辑类

  3 :检索用户信息

  4 :返回用户信息

  5 :修改用户信息

  8 : 提交修改信息

  9 : 审核修改

  信息

  11 : 返回修改结果

  图 4-4 用户管理模块时序图

  注册用户管理模块的功能是对用户的管理、增加功能,可以提高用户的安全性,有利于相关的管理和操作。用户信息管理模块如图4-5所示:

  图4-5 用户信息管理模块界面

  4.4 密码信息管理模块的实现

  用户登入后可进行修改密码等操作管理自身信息。

  密码信息管理模块时序图如图4-6所示:

  修改密码

  信息界面

  密码

  密码DAO

  1 : 查询密码信息

  2 :提交旧密码

  6 : 提交密码信息

  7 : 提交修改信息

  10 : 返回修改结果

  管理员

  业务逻辑类

  3 :提交旧密码

  4 :返回密码信息

  5 :修改密码信息

  8 : 提交修改信息

  9 : 审核修改

  信息

  11 : 返回修改结果

  图 4-6 修改密码模块时序图

  经常修改密码有利于自身账号安全。

  如图4-7所示:

  图4-7修改密码模块界面

  4.5 股票信息管理模块的实现

  管理员可以通过增加股票信息来为系统增加股票,输入股票信息点击添加即可。

  股票信息增加时序图如图4-8所示:

  注册用户¦

  增加股票信息界面

  股票类

  业务逻辑类

  1 : 增加股票信息

  2 :提交增加股票信息

  3 密码¦

  6 : 返回结果

  7 :返回结果

  3 :提交增加股票信息

  4 : 审核股票信息

  5 : 保存数据

  8 :返回结果

  图4-8 股票信息管理时序图

  股票管理的功能在用户中心左侧所在的申请信息管理导航条,通过此项功能可以对股票信息进行相关的管理操作,包括股票信息管理、查询股票信息。添加股票时,要求填写的股票信息要尽可能的详细。并且可以在系统中进行删除、修改等相关操作。股票信息管理如图4-9所示:

  图4-9 股票信息管理模块界面

  第5章 程序测试与评价

  5.1 程序的调试

  测试环境:WindowsXP\7等操作系统,Myeclipse8.5的调试环境,Sqlserver2008数据库。经过多次测试,能在WindowsXP\7等操作系统,Myeclipse8.5的调试环境上正常运行。基本上实现了预期的功能,目前试运行良好。

  5.2 程序的测试

  5.2.1 测试的重要性及目的

  (1)测试的重要性

  软件的测试在软件的开发过程中占据着相当重要的位置,以前在传统的瀑布模式中,软件测试只存在与运行维护阶段之前,是保障质量的比较好的办法。随着时代的进步,软件工程界内出现一种新观点,此种观点认为软件每一阶段都理应包含测试,从而尽可能早一点发现错误并加以纠正,因为在早期阶段进行相关的测试,就可以及时发现错误,并且组织错误的扩散,以免不必要的麻烦和困难。

  软件的开发不管用什么样的技术和方法,系统中总会出现错误,这是不可避免的。采用新的开发方式、先进的语言、完善的开发过程,可以最大限度的降低错误,但仍然不能完全避免错误,所以维护程序就显得更加的重要,于此可以发现维护程序的实质相当于二次开发,甚至是更多次的开发,在实践中,测试软件是一件非常困难的工作,因此很多人就会敷衍了事,以下就是开发中常见的在测试中一些错误的看法和不应有的太多,列举下来引以为戒:

  测试过程没有成就感,认为测试工作并不像编码和设计那样需要技术;

  测试过程繁琐并且枯燥,不会引起我们的兴趣;

  测试工作过程中极其大意不付责任;

  在测试中发现漏洞是对开发者工作的否定;

  开发者对自己的程序总有盲目的肯定性,当别人找出漏洞时会不相信。

  (2)测试的目的

  测试的目的就是为了找出系统在开发过程中出现的漏洞,所以测试应该直接针对开发过程中的困难点以及易出错的点。

  系统的测试是检测错误的运行过程;

  好的测试都能检测到相关的错误

  测试的中心就是要查找出错误,而不是证明系统没有错误,但是也不是说发现错误是软件测试的唯一的目的,并不是查不出错误所进行的工作就没有价值。

  5.2.2 测试的步骤

  与系统开发的过程相类似,测试工作也有测试生命周期,周期中的每个步骤在逻辑上是前一个步骤的延续。大型软件由多个系统组成,每个系统又分为多个模块,由此而成的测试步骤如下:

  (1)相关模块的测试发现的经常是代码和精细设计的漏洞。

  (2)对应系统测试经常出现错误的是软件开发前期设计的错误,也有对用户需求分析的错误。

  (3)结尾验收测试经常发现是系统需求说明书所存在的错误。

  5.2.3 测试的主要内容

  测试工作的内容由以下几个部分构成,即:代码的审查、集成测试、单元测试、系统测试和确认测试。

  (1)单元测试

  单元测试是检查系统设计最小的单位(—个模块),通过测试检查模块的功能与模块的实际功能是否相符合,以及代码的相关错误。

  (2)集成测试

  集成测试是把每个模块集成起来进行测试,其主要目的检查每个模块之间借口存在的漏洞。用来发现将子功能模块集成起来成为系统有没有达到预期的目标;有些小的误差可能会累积起来将漏洞放大。

  (3)确认测试

  确认测试用来确保软件可以像预定要求那样工作,将整个系统整合起来,确认是否达到了预期的效果。

  (4)系统测试

  系统测试是从性能测试、安全测试、强度测试和恢复测试等四个方面来进行系统测试。它的目的是保证其与系统中其他部分整合运行。

  此外对系统的单独测试主要从以下三个方面入手:

  ① 功能测试:测试能否满足开发的要求,能否实现了设计所描述的功能,能否让用户的需求得到满足。

  ② 性能及强度的测试:最高实际限度的测试系统能力,即软件在某些超负荷环境下其功能是否还能按照预期实现。

  ③ 安全测试:测试系统在收到外界干扰的情况下会不会出现数据紊乱等错误。

  5.2.4 测试用例

  (1) 用户登录测试

  用户登录信息测试过程如表5-1所示:

  测试目的操作流程测试用例预测结果测试结果用户登录填写用户名、密码,点击“登录”按钮用户名:123

  密码:123登录失败提示错误信息用户名:liu

  密码:111登录成功登录成功

  表5-1 用户登录测试表

  (2) 信息发布测试

  信息发布测试过程如表5-2所示:

  测试项目操作流程测试用例预测结果测试结果信息发布先登录管理员权限,再点击“信息”按钮空发布失败,弹出提示按钮发布失败,提示请填写内容“模拟测试内容”发表成功发表成功

  表5-2 信息发布测试表

  (3)后台管理登录测试

  后台管理登录测试过程如表5-3所示:

  测试目的操作流程测试用例预测结果测试结果后台管理登录进入首页,填写用户名、密码,点击“登录”按钮用户名:liu

  密码:23564登录失败提示错误信息用户名:a

  密码:a登录成功登录成功

  表5-3 后台管理登录测试

  第6章 总结

  大学四年如白驹过隙,转瞬即逝,在最后的这几个月中,终于有机会向老师同学展示我大学四年的所学所得,能够让我把书本的理论知识得以学以致用,但是在我的内心深处我知道,这仅仅是一个开始,而不是终结,我还有很多的知识需要学习,还有更多的路要走,我会继续努力。这次设计的程序是股票系统,希望能够为广大对股票有兴趣的人带来便利,这次设计不是一个人的功劳,在此谢谢老师同学和同事的帮助。在设计的过程中提高了我与人交流讨论的能力,也提高了我的学习能力,这是我在大学中上的最后一课。

  虽然这个程序在一定程度上为股民能提供便利,但是需求是不断的增长的,技术是在更新的,所以随着时间的推移,这次的设计需要不断的更新和完善的,以下两点是我对本次设计开的项目的展望:

  1.系统通用性的问题

  此次的设计可以满足较为大型的企业对于股票资讯管理的需求,还不是很适合小型企业,有待开发完善。

  2.与其他部门系统相对接的问题

  再次开发重点将在于把股票交易系统、股票信息管理系统和企业的办公管理系统相连接,从而更加的便利,实现信息的共享。

  附录

  部分源代码:

  package com.action;

  /**

  * 管理员登陆 增加 修改 删除

  */

  import java.io.IOException;

  import java.text.SimpleDateFormat;

  import java.util.Calendar;

  import java.util.List;

  import java.util.StringTokenizer;

  import javax.servlet.ServletException;

  import javax.servlet.http.HttpServlet;

  import javax.servlet.http.HttpServletRequest;

  import javax.servlet.http.HttpServletResponse;

  import javax.servlet.http.HttpSession;

  import com.bean.ComBean;

  import com.util.Constant;

  import com.util.MD5;

  public class AdminServlet extends HttpServlet {

  /**

  * Constructor of the object.

  */

  public AdminServlet() {

  super();

  }

  /**

  * Destruction of the servlet.

  * The doGet method of the servlet.

  * @throws ServletException if an error occurred

  * @throws IOException if an error occurred

  */

  public void doGet(HttpServletRequest request, HttpServletResponse response)

  throws ServletException, IOException {

  doPost(request,response);

  }

  /**

  * The doPost method of the servlet.

  * @throws ServletException if an error occurred

  * @throws IOException if an error occurred

  */

  throws ServletException, IOException {

  response.setContentType(Constant.CONTENTTYPE);

  request.setCharacterEncoding(Constant.CHARACTERENCODING);

  try{

  HttpSession session = request.getSession();

  if(method.equals("one")){//用户登录

  String username = request.getParameter("username");

  String password = request.getParameter("password");

  if(str==null)

  else{

  session.setAttribute("user", username);

  }

  }

  else if(method.equals("uppwd")){//修改密码

  String username=(String)session.getAttribute("user");

  String oldpwd = request.getParameter("oldpwd");

  String newpwd = request.getParameter("newpwd");

  }

  else{

  if(flag == csuccess){

  request.setAttribute("message", "操作成功!");

  }

  else {

  request.setAttribute("message", "操作失败!");

  }

  }

  }

  else if(method.equals("addm")){//增加系统用户

  String username = request.getParameter("username");

  String password = request.getParameter("password");

  String realname = request.getParameter("realname");

  String sex = request.getParameter("sex");

  String age = request.getParameter("age");

  String address = request.getParameter("address");

  String tel = request.getParameter("tel");

  if(str==null){

  "values('"+username+"','"+password+"','"+realname+"','"+sex+"','"+age+"','"+address+"','"+tel+"','"+date+"')");退出登录

  if(flag == csuccess){

  request.setAttribute("message", "操作成功!");

  }

  else {

  request.setAttribute("message", "操作失败!");

  }

  else{

  request.setAttribute("message", "该用户名已存在!");

  }

  }

  String id = request.getParameter("id");

  String password = request.getParameter("password");

  String realname = request.getParameter("realname");

  String sex = request.getParameter("sex");

  String age = request.getParameter("age");

  String address = request.getParameter("address");

  String tel = request.getParameter("tel");

  "address='"+address+"',tel='"+tel+"' where id='"+id+"'");

  if(flag == csuccess){

  request.setAttribute("message", "操作成功!");

  }

  else {

  request.setAttribute("message", "操作失败!");

  }

  }

  String id = request.getParameter("id");

  if(flag == csuccess){

  request.setAttribute("message", "操作成功!");

  }

  else {

  request.setAttribute("message", "操作失败!");

  }

  }

  else{//无参数传入转到错误页面

  }

  }catch(Exception e){

  e.printStackTrace();

  }

  }

  /**

  * Initialization of the servlet.

  *

  * @throws ServletException if an error occure

  */

  }

栏目分类