第一组股票系统概要设计v10文档格式.docx
- 文档编号:16368661
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:11
- 大小:66.17KB
第一组股票系统概要设计v10文档格式.docx
《第一组股票系统概要设计v10文档格式.docx》由会员分享,可在线阅读,更多相关《第一组股票系统概要设计v10文档格式.docx(11页珍藏版)》请在冰豆网上搜索。
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;
//用户登陆密码
//支付宝ID
structTStock//股票
stringstockID;
//股票编号
stringstockName;
//股票名称
stringstockType;
//股票类型
structTMarket//市场
TStockstock;
//股票
doublecurPrice;
//股票当前价
doublecomBuyPrice;
//委买价
doublecomSellPrice;
//委卖价
doubleclosingPrice;
//昨天收盘价
doubleopeningPrice;
//今天开盘价
doublemarkup;
//涨幅
doublemarkupNum;
//涨跌量
doublecurHighPrice;
//当前最高价
doublecurLowPrice;
//当前最低价
intAllTradeNum;
//股票目前交易总量(总手)
intcurAbleNum;
//当前可交易量(现手)
doubleriseSpeed;
//涨速
doubleAllTradeMoney;
//股票目前交易额(总额)
structTHolding//用户持有表
//用户编号
intholdingNum;
//股票持有量
structTGatherList//统计表
intdayTradeNum;
//当天交易量
intdayHighPrice;
//当天最高价
intdayLowPrice;
//当天最低价
intclosingPrice;
//当天收盘价
intopingPrice;
//当天收盘价
intdate;
//日期
structTStockCurve//股票曲线
//股票当前价格
intcurTime;
//当前时间
structTTradeInfo//交易记录
inttradeNum;
//交易数量
doubledealPrice;
//成交价格
//成交时间
structTOrderList//挂单表
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//用户类
TUserm_user;
//用户成员
CPayment*m_payment;
//支付宝对象
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//用户操作
CUser*user;
//用户对象
CUserOperator(stringuserName);
//构造函数
~CUserOperator();
//析构函数
boolchangeLoginPasswd(stringnewPasswd);
//修改登陆密码
boolchangePayPasswd(stringnewPasswd);
//修改支付宝密码
voidtiePayment();
//绑定支付宝
voidcheckUserinfo(stringuserName);
//查询用户信息
voidcheckUserstock(stringuserName);
//查询用户持有股票信息
voidcheckUserTrade(stringuserName);
//查询用户交易信息
boolbuyStock(stringstockID);
//用户买入
boolsellStock(stringstockId);
//用户卖出
3.2数据结构与系统元素的关系
因为支付宝的主键是作为用户的外键存在,所以支付宝类作为用户类的成员出现。
用户类,支付宝类,股票类,分别封装自己的属性与操作。
而用户类则是建立这几个类之间的关系而存在。
说明各个数据结构与访问这些数据结构的各个系统元素之间的对应关系。
将数据和系统的程序模块有机地结合起来。
可以进一步向系统最终的数学模型(程序语言)靠近。
4尚待解决的问题
以上类的抽象为前台客户端的操作使用,所有后台数据的处理尚未设计。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一组 股票 系统 概要 设计 v10