模拟股票自动交易系统.docx
- 文档编号:8113189
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:45
- 大小:243.96KB
模拟股票自动交易系统.docx
《模拟股票自动交易系统.docx》由会员分享,可在线阅读,更多相关《模拟股票自动交易系统.docx(45页珍藏版)》请在冰豆网上搜索。
模拟股票自动交易系统
数学与计算机学院
课程设计说明书
课程名称:
软件工程
课程代码:
8404131
题目:
模拟股票自动交易系统
年级/专业/班:
2009级软件工程4班
学生姓名:
学 号:
开始时间:
2011年5月23日
完成时间:
2011年6月8日
课程设计成绩:
学习态度及平时成绩(30)
技术水平与实际能力(20)
创新(5)
说明书(计算书、图纸、分析报告)撰写质量(45)
总分(100)
指导教师签名:
年月日
软件工程课程设计任务书
学院名称:
数学与计算机学院课程代码:
__8404131________
专业:
软件工程年级:
2009级
一、设计题目
模拟股票自动交易系统。
二、主要内容
网上股票交易系统,实现股票自动交易。
实现了股票按特定时间买卖,股票智能止盈,股票智能买入,股票价格监控买卖,股票成本计算等功能,设置好后,无需人在旁边,自动完成交易。
三、具体要求及应提交的材料
1.分析阶段:
网上股票交易系统,实现股票自动交易。
实现了股票按特定时间买卖,股票智能止盈,股票智能买入,股票价格监控买卖,股票成本计算等功能,设置好后,无需人在旁边,自动完成交易。
2.设计阶段:
针对分析阶段提出的软件要求,给出实现的方案和具体细节说明。
(1)系统具有5个基本功能成分:
自动监视、自动止盈止损、自动买卖、自动下单、条件化交易
(2)根据分析,导出系统的功能模块图。
(3)根据功能确定软件模块组成及调用关系。
3.编码阶段:
建造模块,在可视化编程环境下,按照软件设计要求制作界面和完成对模块的编码,由此使软件设计具体化为软件作品。
4.运行维护
在软件运行时,检查软件的不足或错误,并进行维护。
5.编写课程设计报告
(1)设计题目
(2)任务要求
(3)系统总体方案
(4)各功能模块和流程图
(5)心得体会和参考资料
注:
学生完成课程设计后,提交课程设计报告及相关电子文档,要求将前述全部内容依先后顺序写成设计报告一份,要求文字通畅、字迹工整,文字不少于5000字,装订成册。
四、进度安排
序号
设计内容
天数
1
分析设计内容,给出解决方案
3
2
创建数据库及建表
3
3
可视化界面设计
3
4
对所建数据库进行设计,整理设计思路,编码、测试,写出课程设计报告
3
5
指导老师检查设计结果并做成绩评定
2
总计
14
五、参考资料
[1]张海藩.软件工程导论,清华大学出版社,2004
[2]陈明.实用软件工程基础,清华大学出版社,2003
[3]殷人昆.实用软件工程,清华大学出版社,2003
[4]宋波.UML面向对象技术与实践,科学出版社,2004
指导教师签名日期年月日
系主任审核日期年月日
目录
1.前言……………………………………………………………………………1
2.需求分析………………………………………………………………………2
2.1.功能分析……………………………………………………………………2
2.2.方案分析……………………………………………………………………2
3.概要设计………………………………………………………………………3
3.1.数据结构…………………………………………………………………3
3.2.逻辑结构与物理结构……………………………………………………3
3.3.功能模块划分………………………………………………………………4
3.3.1.结构框图……………………………………………………………………5
3.3.2.程序流图……………………………………………………………………7
3.3.3.模块功能分析及外部设计…………………………………………………8
3.4.抽象数据类定义………………………………………………………………9
4.详细设计………………………………………………………………………10
4.1.数据类型定义…………………………………………………………………10
4.2.主要模块内部设计…………………………………………………………10
4.2.1.模块1设计………………………………………………………………10
4.2.2.模块2设计………………………………………………………………11
4.2.3.模块3设计………………………………………………………………14
5.实现与调试分析…………………………………………………………………16
5.1.实现环境………………………………………………………………………16
5.2.语言选择………………………………………………………………………16
5.3.调试分析………………………………………………………………………16
6.测试分析…………………………………………………………………………17
6.1.测试用例………………………………………………………………………17
6.2.测试结果………………………………………………………………………17
6.3.性能分析………………………………………………………………………17
7.用户手册………………………………………………………………………18
总结………………………………………………………………………………19
参考文献…………………………………………………………………………20
附录源程序文件名清单:
1.前言
当前股票交易内部已经完全实现了计算机化管理,而个人用户操作股票买卖时,却依然使用传统的电话或是当面与股票代理人和银行代表联系。
这样不仅操作烦琐,又浪费宝贵的时间,更可以在买卖中遭受不必要的经济损失。
因此提出开发一个“网上股票交易系统”的项目。
该项目的主要目标是:
开发一个能利用网络来进行查看股市行情,股票买卖,和相关银行操作的应用系统。
它与传统交易方式相比具有明显方便快捷的特性,用户通过股票端与我们后台建立的股票代理交易系统进行交易,并可以在网上进行帐号查询等银行操作,真正实现在任何可以上网的地点就可以进行一站式的股票交易。
大量调查表明,大多数股民都期望能够更加方便的进行股票交易。
目前我国网民达到了1.1亿,而股民也发展到了6000万活动帐户。
国家正在对股票交易市场,进行大刀阔斧的改革。
从目前的情况看改革的效果已逐步显现,股市已经转暖。
国家商务部对股市前景表示乐观,预计将有大量新股民发展。
在技术上,股票交易与任何其他实物在网上交易没有实质区别,甚至更易实现,因为任何交易都只要在帐面上实现就可以了。
介于目前电子商务在世界范围内的成功,我们更有理由相信我们的系统具有良好的前景。
2.需求分析
2.1功能分析
任务时中要求实现股票自动交易。
实现了股票按特定时间买卖,股票智能止盈,股票智能买入,股票价格监控买卖,股票成本计算等功能,设置好后,无需人在旁边,自动完成交易。
但由于此次设计仅在VC++平台实现,也不联网,而且设计者自身水平有限,要实现任务书要求的功能是很困难的。
在咨询老师后,本次设计仅模拟一般情况下的股票交易,具体功能如下:
1显示股票行情。
2管理员系统,实现对股票的增减改删等操作。
3用户操作系统,实现买卖查询股票,并且系统可根据股票行情给用户提供买卖参考。
2.2方案分析
根据任务书和参考相关资料得出,该系统需满足以下几方面需求
1)问题分析
(1)功能需求:
该模块实现模拟股票交易功能。
该模块实现股票交易过程中的买入、卖出、查询等功能。
(2)性能需求:
系统的相应时间不能超过10ms
(3)出错处理需求:
当输入的信息不全,或格式不正确时,提示出错信息。
2)问题描述
(1)信息要求:
可实现股票行情实时查询,并能根据行情提供交易方案。
(2)处理要求:
该模块实现数据的录入、修改、删除、查询等功能。
(3)安全性与完整性要求。
用户进入系统前必须登陆,输入密码,经服务器确认后放开进入系统进行相关操作。
3)数据的更新修改:
更新:
系统允许管理员级别的用户对数据进行更新、修改并且存盘操作;编辑:
系统允许管理员级别的用户对数据进行编辑、删除的操作,保证现库的真实性与实时性。
4)打印输出:
系统可以将用户查询到的内容动态地生成报表,并打印输出。
3.概要设计
3.1数据结构
该公交查询系统是基于C++开发,用类的私有成员定义数组来记录各种公交的信息,各个子系统之间都是以对象来完成连接的。
对象通过调用成员函数来完成对各种功能的实现。
不同的私有成员根据具体情况来定义其类型。
都是以类的私有成员出现的。
使用文件对信息进行录入保存。
该系统处理流程如下图:
图3-1处理流程图
图3-1-1E-R图
3.2逻辑结构和物理结构
1逻辑结构设计
采用定义结构体的方式,结构体成员要包含应该输入的股票编号、股票名称、股票价格等。
但还有一些数据成员如股票分析,要根据数据处理后才能得出最后的数据。
2物理结构设计
数据中各表的文件物理结构采用顺序的记录文件。
系统用例图如下:
图3-2
3.3功能模块划分
3.3.1程序结构图
根据程序的运行模式可以给出整个程序的结构框图。
如图所示:
图3-3-1结构框图
3.3.2程序流图
图3-3-2程序流图
3.3.3模块功能分析及外部设计
1模块功能分析
股票市场:
显示当前股票行情。
注册新用户:
注册新用户,并判断是否设为管理员。
管理员功能:
添加新股票、挂出股票,恢复交易、删除已有股、挂起股票,停止交易、修改代码及名称操作。
用户功能:
买入、卖出、查询股票的功能。
股票分析功能:
根据用户信息和当前股票行情,提供选择参考。
2外部设计
(1)用户界面
采用图形用户界面(GUI),包含菜单、按钮、对话框等元素。
(2)软件接口
软件运行于VisualStudio.NET平台上。
(3)硬件接口
运行于windowsxp及以上。
3.4抽象数据类定义
ADTgp{
数据对象:
b={stockname,stockcode,customername,password,faxing,shangshi}
数据关系:
r={
基本操作:
Log_in(char*)const;//登录
Register(Customer*);//注册
Hang_Up_Stock();//挂起股票
Un_Hang_Stock();//解挂股票
Modify_Stock(Stock[]);//修改股票
Delete_Stock();//删除股票
Input_For_New_Stock();//加入新股票
Market_Analysis();//市场分析
Save(Stock[]);//保存修改
}ADTstock
4.详细设计
4.1数据类型定义
Stock类:
存放股票数据,类中方法对股票进行各项操作。
VoidHangUpStock();//挂起股票
voidUnHangStock();//解挂股票
voidModifyStock(Stock[]);//修改股票
voidDeleteStock();//删除股票
voidInterface();//选择面板
voidStockExchangeMarket();//显示信息
voidSwitchchoice();//选择服务
voidInputForNewStock();//加入新股票
voidMarketAnalysis();//市场分析
voidSave(Stock[]);//保存修改
Customer类:
存放用户信息,类中方法对用户进行各项操作。
Customer();//对用户初始化
voidLogin(char*,char*,Customer)const;//登录
voidRegister(Customer*);//注册
voidStockPortfolio(Customer)const;
4.2主要模块内部设计
4.2.1管理员用户模块设计
4.2.1.1模块算法
管理员登陆后可以删减股票,挂起股票,解挂股票等等,通过这些功能来管理股票。
同时,用户还可以查看股票情况,帮助自己进行股票的有效交易。
股票的市场情况可根据用户的使用情况而随之变化。
程序通过选择判断,循环控制来实现。
Stock类:
存放股票数据,类中方法对股票进行各项操作。
VoidHangUpStock();//挂起股票
voidUnHangStock();//解挂股票
voidModifyStock(Stock[]);//修改股票
voidDeleteStock();//删除股票
voidInterface();//选择面板
voidStockExchangeMarket();//显示信息
voidSwitchchoice();//选择服务
voidInputForNewStock();//加入新股票
voidMarketAnalysis();//市场分析
voidSave(Stock[]);//保存修改
Customer类:
存放用户信息,类中方法对用户进行各项操作。
Customer();//对用户初始化
voidLogin(char*,char*,Customer)const;//登录
voidRegister(Customer*);//注册
voidStockPortfolio(Customer)const;
4.2.1.2流程图
图4-2-1-2
4.2.1.3伪代码
Start
Loop:
a
Ifbthen
A
Elseifcthen
B
Elseifdthen
C
Elseifethen
D
Endif
Endif
Endif
Endif
Endloop
Stop
4.2.2.查询模块设计
4.2.1.1模块算法
case'8':
{//查看信息
system("cls");
cout<<"\t\t*************模拟股票交易系统***********"< cout<<"\t\t-----------------------------------------"< cout<<"公司\t\t代码\t流通股\t可动股\t发行价上市价状态"< for(inti=0;i { cout<<""< <<"\t"< <<"\t"< <<"\t"<<(share[i].hang==0? "未挂起": "已挂起")< } cout<<"\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"< cout<<"持有股票市值\t可用资金\t总资产"< cout< getch(); break; } 4.2.2.2流程图 图4-2-2-2 4.2.2.3伪代码 Start qdo thenfdo End; 4.2.3注册用户模块设计 4.2.1.1模块算法 classCustomer { friendclassStock; private: intgly;//是否管理员 charcustomer_name[30];//用户名 charpassword[10];//密码 charshare_holding_name[5][30];//持有股票名称 charshare_holding_code[5][5];//持有股票代码 longintshare_holding_value[5];//持有股票数量 doublemoney,shzh,zzch;//现金余额,市值,总资产 public: Customer(); voidLog_in(char*)const;//登录 voidRegister(Customer*);//注册 voidStock_Portfolio()const;//Portfolio--有价证券 }; 4.2.3.2流程图 图4-2-3-2 4.2.3.3伪代码 Start Whileqdo F Enddo Else P End; 5.实现与调试分析 5.1.实现环境 WindowsXP VisualStudio.NET2005 VC6.0 5.2.语言选择 C++语言作为开发语言 5.3.调试分析 本网上股票交易系统,模拟了网上股票交易的一般流程,虚拟了股票买进卖出的基本过程,在经过测试之后,通过不断调试后,基本实现了任务书上的基本要求。 6.测试分析 此处采用的是黑盒测试法,及主要测试系统的每个功能是否能正确运作。 6.1.测试用例 测试用例表如下: 用户类 登陆函数 1.是否有记录 2.核对用户,密码 注册函数 1输入用户名 2输入密码 3是否设置为管理员 用户交易主界面函数 实现与股票类中的管理函数相连接 股票类 主界面函数(进入交易系统) 显示信息 股票操作函数 1买入2买出 3添加新股票4挂出股票恢复交易5删除股票6挂起股票 7修改代码名称8查看 9退出 保存股票信息函数 实现对股票文件的保存 6.2.测试结果 经过测试,各模块运行平稳,基本功能都按照预期设想得到实现。 6.3性能分析 经过测试用例的测试,发现本系统还是存在一些性能方面的问题的,比如占用系统资源比较大等,在任务数比较多的情况下,系统反应时间不够快,内部功能算法还可以进行优化。 7.用户手册 此系统操作简单易懂,直接登录界面后,按照屏幕上给的提示,用户可以根据自己所需要的操作进行操作。 具体操作如下: 打开系统以后,出现以下界面: 根据需求选择您所要的服务: 在这里用户可以查看市场信息、注册新用户、登录用户和分析股票。 然后若登录,显示下一股票操作界面,选其他有相应操作。 在股票操作界面中,有买入、卖出、添加新股票、挂出股票,恢复交易、删除已有股、挂起股票,停止交易、修改代码及名称、查看等操作选择,用户可根据提示,完成相应操作。 其中添加新股票、挂出股票,恢复交易、删除已有股、挂起股票,停止交易、修改代码及名称操作只对管理员开放。 总结 本文分析了的功能需求,进行了系统设计,介绍了各模块的算法设计与实现过程。 在VC环境下开发完成了网上股票交易系统,,该系统模拟网上股票交易情况,在这个系统里,可以管理至多5只股票的交易。 首先用户要注册,注册完后方可登陆。 在登陆的界面中,管理员登陆后可以删减股票,挂起股票,解挂股票等等,通过这些功能来管理股票。 同时,用户还可以查看股票情况,帮助自己进行股票的有效交易。 股票的市场情况可根据用户的使用情况而随之变化。 开始做课程设计,,不知道从哪里下手。 看着周围的同学都写出来像模像样的代码,自己却不知道从何着手,真的慌了,不管三七二十一,先按照题上的大概要求写了几段,回过头一看却错的离谱,一腔的热情被浇了头冷水。 只有等静下心参考周围的同学,慢慢开始摸索,慢慢的各个子函数个功能实现,程序的框架也基本成型。 同时也深知写一个完整功能的程序不是那么简单,对那些流行软件的开发者也起了崇敬之心,对IT这个行业也有更新的认识。 在课程设计中,需要感谢的是指导老师陈红红老师,在她的督促下才能按时完成这个课程设计,并且对于各种提出的问题很热情的解答。 整个完成的过程中周围的同学给了不少帮助,而且帮忙解决了很多想不通的问题,在此真的非常感激每个人! 有进步是因为有帮助。 参考文献 [1]张海藩编著.软件工程导论(第4版)。 清华大学出版社: 2007 [2]Islamabad.Softwaretoolsforforgerydetection[J].Businessline.2001.(5). [3]StanleyB.Lippman,JoseeLajoieBarbaraE.Moo编著.李师贤,蒋爱军译.C++Primer(第四版).北京: 人民邮电出版社,2009 [4]IvorHorton编著.李予敏绎.C++入门经典(第三版).北京: 清华大学出版社,2006 [5]郑阿奇丁有和郑进编著.VisualC++实用教程(第三版).北京: 电子工业出版社,2008 #include #include #include #include #include #include #include #defineMAX5 inti=0,j=0,Hang,flag; intnum_of_stock; intgushu; classCustomer; classStock { private: floatfaxing,shangshi;//股票发行价,上市价 charstock_name[20];//股票名称 charstock_code[6];//股票代码 charchoice;//Interface()下选择 inthang;//是否挂起(1为是,0为否) longintstock_volume;//股票总股数 longintvolume_available;//股票可流通量 public: Stock(); voidHang_Up_Stock();//挂起股票 voidUn_Hang_Stock();//解挂股票 voidModify_Stock(Stock[]);//修改股票 voidDelete_Stock();//删除股票 voidInterface();//选择面板 voidS
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 股票 自动 交易系统