抽奖程序设计说明书.docx
- 文档编号:6285395
- 上传时间:2023-01-05
- 格式:DOCX
- 页数:9
- 大小:18.17KB
抽奖程序设计说明书.docx
《抽奖程序设计说明书.docx》由会员分享,可在线阅读,更多相关《抽奖程序设计说明书.docx(9页珍藏版)》请在冰豆网上搜索。
抽奖程序设计说明书
抽奖程序设计说明书
1概述
1.1系统简述
学院将举行庆元旦暨迎新春联欢晚会,其中有抽奖活动,需要一个抽奖程序。
抽奖程序在联欢会由抽奖活动主持人,输入奖票号码范围,并指定获奖等级后,在给定的号码范围内产生一个随机号码,作为该获奖等级的一个中奖号码。
如果产生的中奖号码与已产生的中奖号码重复,则给出明确的提示,由操作人员选择中奖号“有效”(即中奖规则允许一个奖票重复获奖),或者是“无效”(即不允许一个奖票重复获奖)。
可随时显示或打印抽奖结果。
1.2软件设计目标
1(2(1、程序功能:
1.输入中奖规则:
输入最小奖票号码,输入最大奖票号码,输入是否允许重复获奖。
2.产生中奖号码:
产生一个界于最小奖票号和最大奖票号之间的数。
并且判定该数是
否为一个有效的中奖号。
3.显示中奖信息:
以表格的形式显示到目前为止所有抽出的中奖奖票号码和中奖等
级。
4.更新中奖记录:
将中奖奖票号和中奖等级写入“LuckyRecord”文件。
5.打印中奖记录:
以表格形式打印“LuckyRecord”文件的内容。
1(2(2运行环境和用户
1设备需求:
学校工会的手提电脑(P3CPU,256M内存)。
2操作系统:
WINDOWS2000。
无需其它支撑软件。
3用户界面:
WINDOWS风格界面。
4使用者可以是抽奖的操作人员,兑奖人员。
1.2.3外部接口
1系统输入:
从用户界面输入抽奖规则
2系统输出:
存放“中奖信息”的文本文件。
3硬件接口:
一般的PIII机或更高档微机或手提电脑
4软件接口:
Windows2000或以上版本
1.3参考资料
见《抽奖程序需求规格说明书》
1.4修订版本记录
1
抽奖程序设计说明书,第1版,设计者:
06软件游戏2-2
2术语表
见《抽奖程序需求规格说明书》数据字典
3用例
抽奖程序
抽出中奖号码
《include》活动主持人活动主持人查询中奖情况
打印中奖记录
《include》兑奖者兑奖者
显示中奖记录
查询中奖情况
奖票持有者奖票持有者
图1抽奖程序细化的用例图
1、抽出中奖号码用例:
它产生一个有效的中奖号码,它包含查询中奖情况用例。
2、打印中奖记录用例:
从连接的打印设备上以表格形式打印中奖记录,它包含显示中奖记录用例。
3、显示中奖记录用例:
以表格的形式在屏幕上显示中奖记录。
4、查询中奖情况用例:
对用户输入的奖票号,搜索中奖记录,如果该给定的奖票号在
中奖记录中,则给出中奖等级,否则,给出没有中奖的信息。
4设计概述
抽奖程序采用面向对象的方法进行需求捕获、分析与设计,用面向对象的程序设计语言C++实现,系统主要的算法是产生中奖号码的算法,查询中奖信息的算法,显示中奖信息的算法。
由于程序适用的范围是局部的,要求不高,采用随机函数产生中奖号码。
查询中奖情况由于中奖记录不多,采用顺序查询。
显示中奖记录方式按中奖记录顺序逐个显示。
整个程序很小是一个整体,没有子系统,没有构架的太多考虑。
采用UML对系统进行建模。
4.3系统界面
在《抽奖程序需求规格说明书》中已经对用户界面有了初步的设想,这里给出用户界面具体的设计,总共有八个界面。
2
初始界面
X深圳市信息职业技术学院迎新春趣味抽奖请先输入最大奖票号,最小奖票号,再点击“开始抽奖”最小奖票号:
XXXXXX最大奖票号:
XXXXXXX开始抽奖
显示或打印中奖记录
查询中奖信息
结束程序
等待中奖号码产生的界面
X深圳市信息职业技术学院迎新春趣味抽奖请确认抽奖等级,点击“选定中奖号码”得到一个中奖号
X正在抽取等奖
中奖号码:
XXXXXXXXXXXXXXXXX
返回初始界面选定中奖号码
重复号处理界面
中奖号重复,请选定有效,还是丢弃,
有效丢弃
产生了一个中奖号码界面
X深圳市信息职业技术学院迎新春趣味抽奖
又有一个幸运者中奖
中奖号码:
XXXXXXXXXXXXXXXXX
中奖等级
X确定
3
显示中奖记录界面
X深圳市信息职业技术学院迎新春趣味抽奖
返回初始界面结束程序打印中奖记录
中奖记录
中奖等级奖票号码
XXXXXXXXXX
XXXXXXXXXX
..........
查询中奖情况界面
X深圳市信息职业技术学院迎新春趣味抽奖请先输入奖票号码,再点击“查询”按钮
奖票号:
XXXXXX
查询
查询中奖情况结果界面之一
X深圳市信息职业技术学院迎新春趣味抽奖奖票号:
XXXXXX
恭喜您中了X等奖确定
查询中奖情况结果界面之二
X深圳市信息职业技术学院迎新春趣味抽奖
奖票号:
XXXXXX不好意思,您这次运气不太好没有中奖~
确定
图2抽奖程序界面
4
初始界面
点击“开始抽奖”点击“返回初始界面”
点击“选定中奖号码”
等待中奖号码产生产生一个中奖号码点击“确定”
初始界面
点击“显示或打印中奖记录”
点击“返回初始界面”
显示中奖记录
初始界面
点击“查询中奖信息”
查询中奖信息
点击“确定”点击“查询”点击“查询”or点击“确定”
查询中奖信息结果界面之二查询中奖信息结果界面之一
图3抽奖程序界面间的转换(界面流)
4.4约束和假定
1用户期望程序的界面是Windows风格。
界面设计已满足。
2用户期望中奖信息显示成表格形式。
因此设计决定在显示中奖记录用例中采用网格控件。
3抽奖和打印中奖信息分开在不同时间完成,所以中奖信息必须以文件形式保存在硬盘里。
4抽奖程序将安装在工会的一台手提电脑(配置:
PIIICPU,256内存,Windows2000操作系统)
上运行。
经分析,抽奖程序无需复杂的构架设计,系统中所有构件都驻留一台电脑内可行。
5本程序只限于内部使用,考虑到工会部门人员的操作水平,工会的手提电脑上不一定有数据库支持环
境,所以采用文本文件来记录“中奖信息”。
因为用文本文件记录中奖奖信息,工会的工作人员,
尤其是兑奖人员,可以直接用Windows自带的记事本打开中奖信息和打印中奖信息,方便工作。
将网格控件中显示的信息存入文本文件,每个字段间插入空格,每条中奖记录中间插入一个空行,
将文本文件的内容按顺序显示在网格控件中,技术上可行。
可以实现第2条和本条限制。
6因为是院内娱乐性活动,没有严格的法律公证,奖票的有效性验证也只是增加趣味性。
7抽奖规则(Rule)是系统的初始化信息,它应该包含所有初始化信息,但是用户要求将中奖等级,
每个等级中奖的人数,是否允许重复中奖三个规则留给主持者现场人工控制以增加抽奖的趣味性。
设计时,在整个系统中只有Chooser类使用最大号码和最小号码两个属性,按信息封装原则,将
它们划归Chooser类,去掉初步类图中的Rule类。
5
5对象模型
5.1系统对象模型
TicketChooser
MinNumberNumber
MaxNumber
Choose()1..*
1Records
Lever
AddRecord()
Printing()
Searching()
图4抽奖程序类图
6对象描述
chooser类:
只能产生一个对象,它是一个临时对象
属性1:
MinNumber,int,限定:
界于1~20000之间,如果为空则取1
属性2:
MaxNumber,int,限定:
界于1~20000之间,如果为空则取1000
方法:
choose(),返回值:
int
Choose()算法描述:
利用随机函数,产生一个介于最大奖票号码和最小奖票号码范围内的一个随机数据,作为预备中奖号码,查询中奖情况,如果该号码重复中奖,显示重复号处理对话框由主持人现场决定该号有效或无效,如选择有效,则增加一条记录,如选择无效,则返回等待中奖号码产生界面。
Ticket类:
可产生多个对象,它是一个临时对象
属性1:
Number,int,限定界于1~20000之间
Records类:
只能产生一个对象,它是一个持久对象
属性1:
继承Ticket类的Number属性。
属性2:
Lever,int,如果没有给定则“等待中奖号码产生”界面中的“选定中奖号码按钮”无效。
方法1:
Add(),正常执行,无返回值。
如果发生错误,显示操作系统返回的出错提示。
Add():
打开LuckyRecord.txt文件,在文件最未尾增加一条中奖记录。
写入信息按中奖号码,空格,中奖等级,回车换行符的顺序写入文本文件末尾,关闭LuckyRecord.txt。
方法2:
Printing()
Printing():
打开LuckyRecord.txt文件,在屏幕上逐条显示中奖记录,等待用户点击“打印中奖信息”按钮后逐条打印中奖信息,关闭LuckyRecord.txt。
6
方法3:
Searching()
Searching():
打开LuckyRecord.txt文件,逐条读出LuckyRecord.txt文件的中奖记录,比较中奖记录中的奖票号与查询奖票号,如果奖票号在LuckyRecord.txt中,则显示“中奖号码,中奖等级”,否则显示“没有中奖”,关闭LuckyRecord.txt。
测试用例:
测试用例1:
MaxNumber=5MinNumber=1,抽出10个号码,分别选定允许重复,不允许重复,当选择不
允许重复时,没法产生10个中奖号码,因为最大号和最小号中间只有5个数,测试打印中奖信息,测
试查询中奖情况。
测试用例2:
MaxNumber=1000MinNumber=1,五个中奖等级,特等奖1名,一等奖3名,二等奖8名,三等奖8名,没有其它的奖,不允许重复。
抽出20个中奖人数,测试抽奖情况与实际是否相符,测试打印功能,测试查询功能。
7动态模型
有三个场景:
抽出一个中奖号码,显示中奖记录并打印中奖记录,查询中奖情况7.1场景1:
抽出一个中奖号码场景
:
Records:
GUI:
Chooser
enter(MaxNumber)
初enter(MinNumber)始enter("开始抽奖")状
态
查询中奖情况(Ticket.Number)等待
中奖
号码
产生[不允许重复中奖]
[奖票没有重复中奖]
[奖票重复中奖]
重复号增加一个中奖记录
处理[允许重复中奖]
产生
一个
中奖
号码
图5抽出一个中奖号码场景顺序图
7
初始界面
点击“开始抽奖”点击“返回初始界面”
点击“选定中奖号码”
等待中奖号码产生产生一个中奖号码点击“确定”图6抽出一个中奖号码场景用户界面间的转换
7.2场景2:
显示中奖记录并打印中奖记录场景
:
Records:
GUI:
打印机
初始
状态
Keystroke
显示
enter(打印)中奖打印记录
图7显示并打印中奖记录场景顺序图
初始界面
点击“显示或打印中奖记录”点击“返回初始界面”
显示中奖记录图8显示并打印中奖记录场景用户界面间的转换
7.3场景3:
查询中奖情况场景
8
:
Records:
GUI
初始
状态
Keystroke查询中Ticket.Number奖情况
[中奖]查询中奖
情况结果
界面之一
[未中奖]查询中奖
情况结果
界面之二
图9查询中奖情况场景顺序图
初始界面
点击“查询中奖信息”
查询中奖信息
点击“确定”点击“查询”点击“查询”or点击“确定”
查询中奖信息结果界面之二查询中奖信息结果界面之一
图10查询中奖情况场景用户界面转换图
8非功能性需求
抽奖程序的运行速度,响应时间,安全性,稳定性等性能要求较低,除操作系统外没有其它的软件环境
要求,全部组件都安装在一台个人电脑或手提电脑上,没有硬件接口要求,前面的设计可以满足用户的非功
能性要求。
9辅助文档
《抽奖程序需求规格说明书》
9
10
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 抽奖 程序设计 说明书