抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx

上传人:b****2 文档编号:3203569 上传时间:2023-05-05 格式:DOCX 页数:17 大小:254.83KB
下载 相关 举报
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第1页
第1页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第2页
第2页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第3页
第3页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第4页
第4页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第5页
第5页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第6页
第6页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第7页
第7页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第8页
第8页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第9页
第9页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第10页
第10页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第11页
第11页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第12页
第12页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第13页
第13页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第14页
第14页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第15页
第15页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第16页
第16页 / 共17页
抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx

《抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx》由会员分享,可在线阅读,更多相关《抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx(17页珍藏版)》请在冰点文库上搜索。

抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖.docx

抽奖程序需求分析抽奖程序功能描述抽奖程序在联欢会由抽奖

需求分析

3.1.抽奖程序功能描述

抽奖程序在联欢会由抽奖活动主持人输入奖票号码范围,并指定获奖等级后,在给定的号码范围内产生一个随机号码,作为该获奖等级的一个中奖号码。

如果产生的中奖号码与已产生的中奖号码重复,则给出明确的提示,放弃这个号码。

可随时显示或查询抽奖结果。

程序功能:

⑴抽奖工作人员可以输入不同的抽奖号范围,选择不同的中奖等级。

⑵本抽奖程序为随机抽取中奖号,如果产生了重复的中奖号将丢弃。

⑶产生的中奖号和对应的中奖等级记录在一个数据库文件中。

⑷可随时显示中奖记录。

⑸输入一个有效的奖票号码,能查询该奖票是否中奖。

3.2.抽奖程序用例模型

抽奖程序用例模型

3.3.抽奖程序静态模型和动态模型

3.3.1.静态模型

抽奖程序初步的类图如图所示,各类的功能说明如下。

GUI(图形用户界面):

识别用户的命令,接收用户的输入,显示程序的结果。

Recorder(记录员):

记录中奖信息。

Chooser(抽奖者):

抽出中奖号码。

Printing(显示对象):

显示中奖信息。

Searching(查询对象):

为奖票持有者查询中奖情况。

Checking(公证人):

验证奖票的有效性。

还有Ticket(奖票)、Records(中奖信息)等。

系统构件:

程序只有一个模块,无须构件图。

抽奖程序中有一个模块,安装在一台个人电脑上,没有必要专画一张部署图。

抽奖程序初步的类图

3.3.2.动态模型

抽奖程序初步的活动图及其泳道图分别如图如图所示

a.抽出中奖号码的活动b.显示中奖信息的活动c.查询中奖情况的活动

抽奖程序初步的活动图

抽出中奖号码活动的泳道图

显示中奖信息活动的泳道图

查询中奖情况活动的泳道图

3.4.运行环境和用户

⑴设备需求:

电脑(PIIICPU,256MB内存)。

⑵操作系统:

WindowsXP。

无须其他支撑软件。

⑶用户界面:

Windows风格界面。

⑷使用者可以是抽奖的操作人员、兑奖人员或奖票持有者。

3.5.条件与限制

⑴程序的中奖号码逐个产生,产生的顺序由操作者人工控制,这是用户的需求。

⑵抽奖的时间、地点与兑奖的时间、地点不同,所以要将抽奖结果保存在硬盘中。

⑶本程序中限于内部使用,所以对数据库的操作比较简单。

3.5.功能需求

3.5.1.能够输入抽奖号码

3.5.2.能随机产生中奖号码

3.5.3.能显示中奖信息

3.5.4.能查询中奖者的信息

3.6.性能需求

3.6.1.时间要求

用户单击开始抽奖后,程序1秒内调出“正在产生中奖号码的界面”,显示翻滚的随机奖票号码。

用户单击“选定中奖号码”到获取中奖号码的响应时间为1秒。

显示抽奖的记录,查询中奖记录,弹出时间在2秒之内。

3.6.2.数据精度要求

本程序全部为整数。

中奖等级有4等级。

最小奖票号为1,最大奖票号为99999999

3.7.属性需求

3.7.1.正确性:

本程序要求不会产生最小和最大号码之外的数字。

3.7.2.可靠性:

一般条件下,不会死机。

3.7.3.效率:

各个操作在1——20秒之内完成。

3.7.4.完整性:

如果出现意外情况(如掉电)要求数据能够保存下来。

3.7.5.易使用性:

界面符合Windows风格,能对照画面提示直接操作。

3.7.6.可维护性:

如果有错误时,能快速修复。

3.7.7.可测试性:

设计时尽可能减少测试各项功能的工作量。

3.7.8.复用性:

尽量选用已有的类来节省编写时间,设计尽量模块化,方便以后复用。

3.7.9.安全保密性;因为本程序主要是在娱乐活动中用,没有特别的安全性要求。

3.7.10.可理理解性:

要求程序中的按钮、提示信息直观,一看就懂。

3.7.11.可移植性:

要求能在PC机,手提电脑上通用。

3.7.12.互联性:

没有互联要求。

3.8.数据需求

3.8.1.静态数据

最大奖票号、最小奖票号、奖票。

3.8.2.动态数据

中奖记录、中奖奖票号、中奖等级。

3.8.3.数据文件描述

中奖记录;用数据库来保存中奖记录的中奖奖票号和中奖记录。

3.8.4.数据字典

⑴奖票=1{数字}5

⑵中奖等级=1{数字}2

⑶最大奖票号=1{数字}5

⑷最小奖票号=1{数字}5

⑸中奖奖票号=1{数字}5

⑹中奖记录=1{中奖奖票号中奖等级}n

 

四.系统分析与设计

4.1.根据前面的需求分析,开发初步的类图

先从谈话中筛选名词,去掉重复的或者应该作为属性的名词,得到如下的可能成为系统中类的名词:

图形用户界面(GUI),记录员(Recorder),抽奖者(Chooser),奖票(Ticket),中奖信息(Records),公正人(Checking),查询员(Searching),显示信息(Printing),抽奖规则(Rule)。

抽奖程序初步的类图如图所示

4.2.分析类的层次,填充类的信息

4.2.1.分析出类的属性,方法以及类的继承关系,找出哪些类要自己开发,哪些类可以继承或购买,并决定从何处继承。

4.2.2.GUI类可以由JAVA产生。

Ticket类只有一个属性,即票号(Number)。

Records类是Ticket类的继承类,增加一个属性,即中奖等级(Lever);按照数据与操作封装在一起的原则,给Records类增加一个写入中奖记录的方法(AddRecord)和一个打印中奖记录的方法(Printing),以及一个查询中奖情况的方法(Searching)。

抽奖程序细化的类图如下

4.3.分析系统用例,得到系统的构件

4.3.1.抽奖程序的用例模型增加到4个用例,抽出中奖号码用例包含查询中奖信息用例,显示中奖记录用例包含显示中奖记录。

下面对各个用例进行深入分析,得到各个用例的顺序图。

抽出一个中奖号码用例的顺序图

查询中奖情况用例的顺序列图

打印中奖记录用例的顺序列图

4.3.2.系统的数据构件。

需求分析阶段已得到系统中有一个存放中奖信息的数据库文件。

4.3.3.系统的软件构件。

因为这个程序很简单,不用经过复杂的架构设计。

系统中所有构件都驻留在同一个目录下,可直接给出构件及主要算法。

前面顺序图已经清楚地表明系统中各个对象间的交互,下面具体设计每个类的方法。

利用随机函数,产生一个介于最大奖票号码和最小奖票号码范围内的一个随机数据,作为预备中奖号码,查询中奖情况,如果该号码重复中奖,显示重复号码处理对话框有主持人现场决定该号码有效或无效。

如选择有效,则增加一条记录;如选择无效,则返回等待中奖号码产生界面。

4.3.4.界面设计。

系统显然要包括一组用户界面,在需求分析中初步确定的界面包是可行的,现对它进行细化和微小的调整,得到如图所示界面设计图。

抽奖程序界面流(a)

抽奖程序界面流(b)

 

4.4.设计测试用例

设计测试用例是按照需求所确定的用例模型,设计一组输入数据,一组预期的输出数据,供测试阶段的测试程序的功能是否满足拥护需求。

测试用例1:

MaxNumber=5,Minnumber=1,抽出10个号码,不允许重复、测试显示中奖信息、测试查询中奖情况。

测试用例2:

MaxNumber=1000,Minnumber=1,五个中奖等级,特等奖、一等奖、二等奖、,三等奖、没有其他的奖,不许重复。

抽出20个中奖人数,测试抽奖情况与实际是否相符,测试显示功能,测试查询功能。

系统的分析与设计工作,不再获得更进一步的信息,这时可暂时停止这个工作。

从这个简单的分析与设计实例中可以看出,在统一软件的开发过程中,需求捕获、分析与设计三个核心工作流相互间的联系是无缝的。

从初级阶段到细化阶段,系统分析人员和设计人员对待开发系统的了解越来越深入,需求捕获、分析与设计等工作流也经过了多次迭代。

五.系统实现

5.1.用户界面的实现

抽奖程序是实现对用户应用的一个简单程序,在此程序中将有5个主要Java文件分别创建程序界面。

5.2.主类的界面:

Chou

5.2.1.此界面中可以选择抽奖的等级及要输入抽奖的范围,若最小奖票号小于最大奖票号则会提示你重新输入,若有非法数字输入也会弹出警告的对话框。

5.2.2.主方法中包含产生随机数的方法(Math.random())并且能产生不断滚动的数字。

此界面还有查询、显示全部信息的功能。

5.3.选定号码的类:

Xuan

此类主要是选定一个号码,并且选中的号码与数据库已存在的数据进行比较。

若有已经抽过奖的号码,则弹出一个对话框,放弃这个数字。

5.4.中奖界面的类:

Zhong

若选中的号码在数据库中不存在,则会在此界面中显出中奖号码与中奖等级。

此界面还有选择下一次抽等级的功能。

5.5.查询界面的类:

ChaXong

此类主要是为用户查询中奖信息提供方便,通过连接数据库完成此功能。

5.6.显示界面的类:

Xian

此类负责显示数据库中的全部信息,并且有返回主界面的功能。

5.7.主类的部分代码:

publicvoidactionPerformed(ActionEvente){

t1.setText(ch.getSelectedItem());

deng=t1.getText();

if(e.getSource().equals(name5)){

try{

flags1=true;

min=Integer.parseInt(t2.getText());

max=Integer.parseInt(t3.getText());

}catch(NumberFormatExceptione1){//输入非数字时的异常处理

Stringtitle="警告";

Stringmsg="输入非法字符或没有字符";

newCuo(ob1,title,msg);

}

}

if(flags1==true){

if(e.getSource().equals(name5)){

if(max<=min){//最大奖票号小于最小奖票号时的处理

Stringtitle="警告";

Stringmsg="范围有误";

newFan(ob1,title,msg);}

else{

this.dispose();

newXuan("幸运等你拿");}

}

}

if(e.getSource().equals(name6)){

this.dispose();

newXian("幸运等你拿");

}

deng=t1.getText();

try{Xuan.t1.setText(deng);

}catch(Exceptione2){

}

if(e.getSource().equals(name7)){

this.dispose();

newChaXong("查询结果");

}

}

publicstaticvoidmain(String[]args){

newSplashWindow();//欢迎界面

StringID=null;

Chouob=newChou("幸运等你拿");

ob1=ob;

while(flags){//产生随机数

longresult1=0;

longresult=0;

result=(long)(max*Math.random()+0.5);

while(result

result=(long)(max*Math.random()+0.5);

}

Stringssh=String.valueOf(result);

try{Xuan.t2.setText(ssh);

}catch(Exceptione){

}

try{

Thread.sleep(100);

}catch(Exceptione2){}

}

连接数据库的部分代码:

try{

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

}catch(ClassNotFoundExceptionce){

System.out.println(ce);}

try{

connect=DriverManager.getConnection("jdbc:

odbc:

Test");

st=connect.createStatement();

rset=st.executeQuery("Select*fromtab");

while(rset.next()){

StringID=rset.getString("中奖等级");

Stringname=rset.getString("中奖号码");

p1.setBackground(newColor(211,203,203));

p1.setForeground(newColor(255,0,0));

p1.add(newLabel(ID,Label.CENTER));

p1.add(newLabel(name,Label.CENTER));

}

}catch(SQLExceptionse){

}finally{

try{

if(rset!

=null)

rset.close();

if(st!

=null)

st.close();

if(connect!

=null)

connect.close();

}catch(SQLExceptionse){

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2