第一组股票系统概要设计v10.docx

上传人:b****4 文档编号:3463255 上传时间:2022-11-23 格式:DOCX 页数:11 大小:66.17KB
下载 相关 举报
第一组股票系统概要设计v10.docx_第1页
第1页 / 共11页
第一组股票系统概要设计v10.docx_第2页
第2页 / 共11页
第一组股票系统概要设计v10.docx_第3页
第3页 / 共11页
第一组股票系统概要设计v10.docx_第4页
第4页 / 共11页
第一组股票系统概要设计v10.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

第一组股票系统概要设计v10.docx

《第一组股票系统概要设计v10.docx》由会员分享,可在线阅读,更多相关《第一组股票系统概要设计v10.docx(11页珍藏版)》请在冰豆网上搜索。

第一组股票系统概要设计v10.docx

第一组股票系统概要设计v10

股票交易系统概要设计说明书

 

变更记录

日期

版本

变更说明

作者

2011-8-16

1.0

初始版本

成小鹰

签字确认

系统模块

对应章节

对应部门

负责人签字

目录

1引言4

1.1编写目的4

1.2背景4

1.3基线4

1.4定义4

1.5参考资料6

2总体设计7

2.1设计思想7

2.1.1系统构思7

2.1.2关键技术与算法8

3系统数据结构设计8

3.1数据结构9

3.2数据结构与系统元素的关系12

4尚待解决的问题12

1引言

1.1编写目的

本说明书建立在前期的需求分析基础之上目的在于明确说明操盘手股票交易系统的客户端与后台的基本框架,登录,股票交易,买卖,显示,查询几个模块的数据流程图,了解系统中数据的基本流向。

该系统功能仅限于局域模拟股票交易,不能进行网络连接,大数据的处理。

本说明书的预期读者为:

前期的内测版主要用于小组成员,公测版则面向线上的股票用户。

1.2背景

a)待开发的软件系统的名称:

操盘手股票交易系统

b)本项目的任务提出者为中软国际C++培训讲师,开发者为该培训班培训人员,用户面向对于C++编程比较熟悉的专业人员,该系统在该培训班的培训机房进行开发,该机房的计算机符合开发的基本要求。

c)该软件系统只需进行单机运行模拟股票交易即可。

1.3基线

股票系统需求分析说明书v1.0

1.4定义

1.日k线图:

日k线图就是将每天的k线按时间顺序排列在一起,反映该股票自上市以来的每天的价格变动情况的k线图。

2.日成交额:

  指当天已成交股票的金额总数。

3.日开盘价:

  日开盘价是指每个交易日的第一笔成交价格,这是传统的开盘价定义。

目前中国市场采用集合竞价的方式产生开盘价。

4.日收盘价:

  日收盘价是指每个交易日的最后一笔成交价格。

因为收盘价是当日行情的标准,又是下一个交易日开盘价的依据,可据以预测未来证券市场行情,所以投资者对行情分析时,一般采用收盘价作为计算依据。

5.日最低价:

  指当天该股票成交价格中的最低价格。

6.日最高价:

  指当天该股票成交价格中的最高价格。

7.股票代码:

股票的编号。

8.股票名称:

股票的名字。

9.最新价格:

当前最近一段时间内平均交易价格。

10.委买价:

用户委托买入股票的价格。

11.委卖价:

用户委托卖出的价格。

12.涨跌:

股票当前价格与昨天收盘价的差价。

13.涨幅:

涨跌对昨天收盘价的百分率。

14.当前最高价:

当日开盘之后,市场上交易的最高价

15.当前最低价:

当日开盘后,市场上交易的最低价

16.总手:

股票上市后的已达成交易的交易总量。

17.现手:

市场上正在流通或可交易的总量。

18.涨速:

当前时段的平均价格减去前一时段的平均价格的差除以时段的时间。

19.挂单表:

用户进行买/卖操作后提交给服务器的一张存有交易信息的表单(一种数据结构)。

  

1.5参考资料

●股票需求说明书;

●QTGUI开发指导;

●项目计划书

●C++帮助文档

●已有的股票模拟软件

2总体设计

2.1设计思想

2.1.1系统构思

系统功能层次图

2.1.2关键技术与算法

2.1.2.1股票成交价格的计算

简要说明本系统中的主要技术与算法。

这部分是概要设计的核心!

股票交易系统的主要算法是计算股价,绘制K线图以及曲线图

计算股票的平均价格:

从系统的挂单表中读取用户的买卖股票信息,将读取的用户信息分别用内存中的买卖两个容器存储。

在一个时间段内(1s),按照买卖双方利益最大化原则,按先按价格再按时间优先,从买方最高价,卖方最低价开始匹配(当买方的价格低于卖方的价格时停止匹配)。

成功交易价为买卖双方价格的平均值。

对这一时间段内的每一次成功交易价格求平均值,这个平均值就是这一时间段内成交的股票价格的平均价格。

将成交成功的股票记录保存到交易记录中,并从挂单表中删除除这次交易的买卖单,如果本次交易后,其中一方的挂单表中的股票交易量未达到预期数量,则不删除该支表单,只修改其表单上的数量,继续挂单。

2.2股票交易系统功能

本系统为模拟股票交易系统的基本功能,包括股民账户的注册、登录以及支付宝的注册和绑定。

账户登陆成功之后,用户能查看股票大盘的信息,可查询单支股票的详细信息(实时曲线图和历史k线图),也可查询和修改用户自己的信息(查询账户信息与支付宝信息,修改账户和支付宝的密码)。

同时,通过挂单委托的方式,对大盘上的股票进行买卖。

3系统数据结构设计

3.1类的抽象

本系统使用主要数据结构为支付宝、用户、股票、市场、用户持有表、曲线、统计信息、交易记录信息、挂单信息九个结构体以及支付宝类、用户类、后台数据处理类、数据库连接类、用户操作类。

本系统分为服务端与客户端:

服务端(即后台):

通过数据处理类对所有数据经行封装处理,实时连接数据库,实时将最新信息更新到数据库。

客户端(前台):

用户通过支付宝类、用户类、用户操作类可进行账户的注册、登陆,以及股票的买卖。

提示:

不管是在前台还是后台,凡牵涉到数据库信息的查询、修改、删除或者更新,都需要通过数据库连接类进行数据库的连接。

具体结构体和类的抽象如下:

structTPayment//支付宝

{

stringpayID;//支付宝ID

stringpayPasswd;//支付宝密码

doublepayMoney;//支付宝余额

};

structTUser//用户

{

stringuserID;//用户ID

stringuserName;//用户姓名

stringuserPasswd;//用户登陆密码

stringpayID;//支付宝ID

};

structTStock//股票

{

stringstockID;//股票编号

stringstockName;//股票名称

stringstockType;//股票类型

};

structTMarket//市场

{

TStockstock;//股票

doublecurPrice;//股票当前价

doublecomBuyPrice;//委买价

doublecomSellPrice;//委卖价

doubleclosingPrice;//昨天收盘价

doubleopeningPrice;//今天开盘价

doublemarkup;//涨幅

doublemarkupNum;//涨跌量

doublecurHighPrice;//当前最高价

doublecurLowPrice;//当前最低价

intAllTradeNum;//股票目前交易总量(总手)

intcurAbleNum;//当前可交易量(现手)

doubleriseSpeed;//涨速

doubleAllTradeMoney;//股票目前交易额(总额)

};

structTHolding//用户持有表

{

stringuserID;//用户编号

stringstockID;//股票编号

intholdingNum;//股票持有量

};

structTGatherList//统计表

{

stringstockID;//股票编号

intdayTradeNum;//当天交易量

intdayHighPrice;//当天最高价

intdayLowPrice;//当天最低价

intclosingPrice;//当天收盘价

intopingPrice;//当天收盘价

intdate;//日期

};

structTStockCurve//股票曲线

{

stringstockID;//股票编号

doublecurPrice;//股票当前价格

intcurTime;//当前时间

};

structTTradeInfo//交易记录

{

stringstockID;//股票编号

inttradeNum;//交易数量

doubledealPrice;//成交价格

intcurTime;//成交时间

};

structTOrderList//挂单表

{

stringuserID;//用户编号

stringstockID;//股票编号

intstockNum;//股票数量

intorderType;//委托买卖类型(0:

买1:

卖)

intorderPrice;//委托价格

intorderTime;//委托时刻

};

classCPayment//支付宝类

{

private:

TPaymentm_payment;//支付宝成员

public:

CPayment(stringpayID=0);//构造函数

~CPayment();//析构函数

doublegetMoney()//返回金钱数

{

returnm_payment.payMoney;

}

boolchangeMoney(doublemoney);//改变金钱数,money是修改的数额。

boolchangePasswd(stringpasswd);//修改支付宝密码

boolisPasswd(stringpasswd);//验证密码是否匹配

booladdPayment

};

classCUser//用户类

{

private:

TUserm_user;//用户成员

CPayment*m_payment;//支付宝对象

public:

CUser(stringuserName);//构造函数

~CUser();//析构函数

voidloadUserInfo();//加载用户信息

voidsaveUserInfo();//保存用户信息

voidchangePasswd();//修改用户密码

voidpassUserInfo(string&userName,TPayment&payment)//传递用户信息

{

userName=m_user.userName;

payment.payID=m_payment.payID;

payment.payMoney=m_payment.payMoney;

payment.payPasswd="1";

}

boolchangeUserMoney(doublemoney)//更改用户金钱

{

if(payment.changeMoney(money))

{

returntrue;

}

returnfalse;

}

};

classCUserOperator//用户操作

{

private:

CUser*user;//用户对象

public:

CUserOperator(stringuserName);//构造函数

~CUserOperator();//析构函数

boolchangeLoginPasswd(stringnewPasswd);//修改登陆密码

boolchangePayPasswd(stringnewPasswd);//修改支付宝密码

voidtiePayment();//绑定支付宝

voidcheckUserinfo(stringuserName);//查询用户信息

voidcheckUserstock(stringuserName);//查询用户持有股票信息

voidcheckUserTrade(stringuserName);//查询用户交易信息

boolbuyStock(stringstockID);//用户买入

boolsellStock(stringstockId);//用户卖出

};

3.2数据结构与系统元素的关系

因为支付宝的主键是作为用户的外键存在,所以支付宝类作为用户类的成员出现。

用户类,支付宝类,股票类,分别封装自己的属性与操作。

而用户类则是建立这几个类之间的关系而存在。

说明各个数据结构与访问这些数据结构的各个系统元素之间的对应关系。

将数据和系统的程序模块有机地结合起来。

可以进一步向系统最终的数学模型(程序语言)靠近。

4尚待解决的问题

以上类的抽象为前台客户端的操作使用,所有后台数据的处理尚未设计。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1