软件详细设计方案说明书(例) 下载本文

详细设计说明书

这种插入排序方法完全符合了撮合算法中价格优先、时间优先的要求,而且效率也是比较高的。

在集合竞价前和连续竞价后进行的插入排序都是这样进行的,而在集合竞价撮合之后,对两队列的重新排列,我们首先使用了memset函数将前面已全部成交的t个元素清空,然后将t到N(原总非空元素个数)前移t位。

如下列代码所示:

for (int p=0; *t < *N; p++,*t++)

{ }

QueueStruct temp; temp=Queue[*t]; Queue[*t]=Queue[p]; Queue[p]=temp;

5.2.4 撮合算法的运行机制

在交易所正常运行时,一天内分为开市、开盘、休市、复开、收市等5个步骤。

开市:每天上午9:15开市。这时候,股民可以通过券商向交易所递单。同一只股票的买卖单开始分别进入这只股票的买卖队列中,但并不进行撮合。该过程一直持续到9:25。

开盘:每天上午9:30正式开盘。9:25-9:30为盘前处理,这段时间也就是集合竞价撮合算法运行的时间。9:25,买卖两队列开市不再接收新的单子。新的单子这时都放在缓冲区中,直到两队列运行完整个集合竞价算法后开市重新进单时,再依序将单子从缓存区取出读入买卖队列进行连续竞价的撮合。买卖队列于9:25开始集合竞价,运算完毕,得出开盘价等所有统计数据并发布行情以及发送完所有回报之后,重新接收单子进入该日正常交易中,使用连续竞价算法进行撮合。

详细设计说明书

休市:每天上午11:00休市。此时,所有的券商不再接受买卖单子,也不再给交易所递单。交易所将此前已经收到的所有单子撮合之后处于休息阶段。并进行各种当日前市盘点。

复开:每天下午13:30复开。此时,券商开市接收用户的递单,并将其送交交易所。交易所重新开市进入连续竞价撮合

收市:每天下午15:00收市。此时交易所不再接受任何单子,准时进行最后一笔单子的撮合之后,关闭撮合线程。将最后得到的收盘价等数据统计发送完之后,当天的所有工作全部结束。

如图3.2.5所示。

9:25开市9:30开盘11:00休市13:30复开15:00收市开市开盘休市复开收市 图3.2.5

详细设计说明书

5.3 数据库设计

数据库服务器为SQL SERVER 2005 EXPRESS

股票信息表

记录了股票的当前信息

用户信息表

第 1 页

详细设计说明书

交易订单表

其中userid和stockid是外键

关系图如下

第 2 页

详细设计说明书

第 3 页