ImageVerifierCode 换一换
格式:DOC , 页数:24 ,大小:270.51KB ,
资源ID:10595523      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/10595523.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(java抽奖程序课程设计.doc)为本站上传会员【快乐****生活】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

java抽奖程序课程设计.doc

1、兰州商学院陇桥学院 工学系课程设计报告 设 计 题 目:抽奖程序 系 别:工学系 专 业 (方 向):电子商务 年 级、 班 学 生 姓 名: 学 生 学 号: 指 导 教 师: 2013年 12 月 5 日 目录 一、系统开发的背景 3 二、系统分析与设计 3 (一)系统功能要求 3 (二)系统模块设计 3 三、系统的设计

2、4 四、系统测试 5 五、总结 5 六、程序代码 6 抽奖程序 一、系统开发的背景 java语言的开发方法是当今世界最流行的开发方法,是当今流行的网络编程语言。它具有面向对象、跨平台、分布应用等特点。它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。很多程序开发人员得第一选择。为了将课堂上得知识掌握得更加透彻,深刻把握Java语言的重要概念及其面向对象的特性,锻炼学生熟练的应用面向对象的思想和设计方法解决实际问题的能力,开设了Java程序设计课程设计。让学生自己动手动脑,将书本上得知识运用到实践当中去,使知识能更好得融会贯通。 二、系统分析与设计 (一)系统功能要

3、求 1)能够在电脑上抽奖,分别抽取4等奖、3等奖、2等奖、1等奖、特等奖,设定每种奖项的人数后分别一次抽取每个奖项。 2)按给定的总人数以序号或电话号码为抽奖依据。 (二)系统模块设计 通过对系统功能的分析,抽奖系统功能如图1所示 打开抽奖人员保存地址 开始抽奖 暂停抽奖 记录中奖号码中奖等级 产生中奖 显示抽奖结果 图1 抽奖系统业务流程图 三、系统的设计 此小程序的基本流程是,在一个文本文件存放里面备选的数据,数据的格式是每行有姓名和手机号他们之间是用分隔符-来分隔的。然后在自定义一个方法,通过分隔符来区分姓名和手机号,然后将他们分别存

4、储进两个不同的可变向量当中。自定义一个线程,此线程是专门用来随机选取一个号码, 并且每隔50毫秒就将一个不同的号码显示在号码框中,这样就实现了号码的快速滚动,实现了完全模拟电视当中抽奖的画面为了实现选取出的一个号码不能再被选种,实现的方法是将他们从可变向量中清除出去。此程序首先从四等奖开始抽取四人,三等奖抽取三人,二等奖抽取二人,一等奖一人,特等奖一人。 显示一等奖 显示二等奖 显示三等奖 显示四等奖 退出显示 打开人员文件 子界面 关闭人员文件 抽奖功能流程图 四、系统测试 程序测试如下图: 五、总结 在设计程序时,不能妄想一次就将整

5、个程序设计好,反复修改、不断改进是程序设计的必经之路。在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计结束了,但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。我们通过查阅大量有关资料,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。通过这次课程设计我也发现了自身存在的不

6、足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力。 附件 六、程序代码 import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; public class ChooseAward extends JFrame

7、 { /** * */ //系统自动生成 private static final long serialVersionUID = 7510608124693852355L; JButton b_start = new JButton("开始"); JButton b_stop = new JButton("停止"); JPanel p_north=new JPanel(); JP

8、anel p_center=new JPanel(); JPanel p_south=new JPanel(); //菜单栏 JMenuBar menubar=new JMenuBar(); //菜单项 JMenu fileMenu=new JMenu("文件"); JMenu setMenu=new JMenu("设置"); JMenu aboutMenu=new JMenu("关于"); /*

9、 * 菜单子项 */ private JMenuItem[] filem={new JMenuItem("选择文件"),new JMenuItem("另存为.."), new JMenuItem("保存"),new JMenuItem("退出") }; JTextField t_identNumber = new JTextField(); // 身份证号的文本域 Vector v_identNumbe

10、r = new Vector(); // 存放读取出来的身份证的号码 Vector v_name = new Vector(); // 存放读取出来的人的姓名 Vector v_printident = new Vector(); // 存放中奖人的身份证号码 JLabel l_information = new JLabel(); JLabel l_identNumber = new JLabel(); JLabel l_sysinformation = new JLabel("系统

11、信息:"); JFileChooser filechooser = new JFileChooser(); // 文件选择器 //选择随机数的线成 public ChooseThread awardThread = null; int chooseTime = 0; // 按下停止按钮的次数,也就是抽奖的次数 public ChooseAward() { super("小型抽奖系统"); t_identN

12、umber.setEditable(false); /* * 1.4以后的JDK可以不用Container */ Container contentPane = getContentPane(); //BorderLayout布局管理器,东,南,西,北 contentPane.setLayout(new BorderLayout()); /*

13、 * 给几个按钮和子菜单添加监听器 */ filem[0].addActionListener(new ActionListener() { // 注册加载事件的监听器 public void actionPerformed(ActionEvent e) {

14、 b_loadident_ActionPerformed(e); } }); b_start.addActionListener(new ActionListener() { // 注册开始事件的监听器 public void actionPerformed(Ac

15、tionEvent e) { b_start_ActionPerformed(e); } }); b_stop.addActionListener(new ActionListener() {// 注册停

16、止事件的监听器 public void actionPerformed(ActionEvent e) { b_stop_ActionPerformed(e); } });

17、 filem[2].addActionListener(new ActionListener() {// 注册打印事件的监听器 public void actionPerformed(ActionEvent e) { b_printaward_ActionPerformed(e);

18、 } }); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0);

19、 } }); //将菜单子项加入菜单中 for(int i=0;i

20、arator(); } //将菜单条加入frame中 menubar.add(fileMenu); menubar.add(setMenu); menubar.add(aboutMenu); setJMenuBar(menubar); /*将p_north设计为一个状态栏,显示一些操作过程

21、中的信息 * 创建一个左对齐方式的流布局 */ p_south.setLayout(new FlowLayout(FlowLayout.LEFT)); l_information.setForeground(Color.blue); p_south.add(l_sysinformation); p_south.add(l_information); con

22、tentPane.add(p_south,BorderLayout.SOUTH); /* * 设置的一些显示方式,字体,大小等,为了尽量美观一点 */ Font xuehao=new Font("null",

23、Font.PLAIN,30); l_identNumber.setFont(xuehao); //字体的居中对齐 l_identNumber.setHorizontalAlignment(0); l_identNumber.setText("手机号"); Font number=new Font("null",Font.BOLD,30);//粗体

24、 t_identNumber.setFont(number); //设置字体颜色 t_identNumber.setForeground(Color.red); t_identNumber.setHorizontalAlignment(0); //给上面的jpanel设置布局 p_north.se

25、tLayout(new GridLayout(2,1)); p_north.add(l_identNumber); p_north.add(t_identNumber); contentPane.add(p_north,BorderLayout.NORTH); //给中间的jpanel 设置布局 p_center.setLayout(new GridLay

26、out(1,2,10,0)); p_center.add(b_start); p_center.add(b_stop); contentPane.add(p_center,BorderLayout.CENTER); } /* * 加载按钮事件方法

27、 */ public void b_loadident_ActionPerformed(ActionEvent e) { int k = 0; chooseTime = 0; //从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取 BufferedReader reader = null; //此方法会返回一个int值 int i

28、 = filechooser.showOpenDialog(this); // 显示打开文件对话框 /* * 确实所选择的是对话框上的确定按钮 */ if (i == JFileChooser.APPROVE_OPTION) { // 点击对话框中打开选项 File f = filechooser.getSelectedFile(); // 得到所选择的文件

29、 try { l_information.setText("数据加载中,请稍等..."); //读取字符流 reader = new BufferedReader(new FileReader(f)); //循环读取

30、 while (true) { //读取一个文本行 String data = reader.readLine(); System.out.println(data);//开发时候测试用 //

31、 读完了数据 if (data == null) { l_information.setText("数据加载完成!"); break; }

32、 //通过“-”这个符号将 字符串分离为两部分,再存放到向量里面 Vector v = this.apart(data, "-"); //System.out.println(data);//开发时候测试用

33、 if (v == null) { l_information.setText("数据格式不正确,请重新加载!"); return; } /*

34、 * 分别将分离开来的手机号码,和姓名分别放入两个可变向量当中 * 这里应该使用泛型,由于本人还没有熟练掌握泛型,姑且放之 * * * 捕获异常,看是否出现了格式错误,因为一般出现了格

35、式错误 * 这两条语句都会发生无法取得元素的错误 */ try { v_identNumber.add(k, v.elementAt(0));

36、 v_name.add(k, v.elementAt(1)); k++; } catch(Exception e4) {

37、 System.out.println("格式中没有分隔符号出现的错误"); //JOptionPane.showMessageDialog(this, "导入的数据格式错误!"); l_information.setText("导入的数据格式错误!");

38、 break; } } } catch (Exception ex) { ex.printStackTrace(); // 输出出错信息 } } }

39、 /* * 启动按钮的事件 */ public void b_start_ActionPerformed(ActionEvent e) { //判断存储两个标记的向量中是否为空 if (v_identNumber.size() <= 0 || v_name.size() <= 0) { l_information.setText("数据没有加载,请加载数据!

40、"); } else { if (chooseTime > 11) { l_information.setText("抽奖结束,若要再进行一次须重新启动程序!"); } else//执行....

41、 { awardThread = new ChooseThread(this); awardThread.changeflag_start(); l_information.setText("将产生:特(1名),一(1名),二(2名),三(3名)等奖,四(4名)等奖"); l_identNumber.setText("选

42、取中..."); b_start.setEnabled(false); b_stop.setEnabled(true); } } } /* * 暂停按钮的事件 */ public void b_stop_ActionPerformed(ActionEvent e) {

43、 //将跳转的数字置于停止状态 awardThread.changeflag_stop(); String awardmessage = ""; chooseTime++;//第几次按停止按钮 String str_name = ""; String message=""; /* * 根据第几次来按停止按钮来决定是产生几等奖

44、 */ switch (chooseTime) { case 1: case 2: case 3: case 4://按前三次都是产生三等奖 //寻找停止在号码框中的数字,是对应的的存放号码的向量中的第几个 for (int k = 0; k

45、 < v_identNumber.size(); k++) { //找到了对应的号码 if ((t_identNumber.getText()).equals(v_identNumber.elementAt(k))) { //取出这个号码对应的名字

46、 str_name = (String) v_name.elementAt(k); //为防止下次抽的时候再抽到相同的号码,所以把它们从向量中移除掉 v_identNumber.removeElementAt(k); v_name.removeElementAt(k); break;//跳出

47、循环 } } l_identNumber.setText("四等奖"); b_start.setText("继续"); //这是要输出到文本文件的信息 awardmessage = "四等奖 " + t_identNumber.getText() + str_name + "\r\n";

48、 //将要打印的文本信息先存放到一个可变向量中 v_printident.addElement(awardmessage); message = "第"+chooseTime+"位四等奖得主为: "+str_name; JOptionPane.showMessageDialog(this, message); break; case 5:

49、 case 6: case 7: for (int k = 0; k < v_identNumber.size(); k++) { //找到了对应的号码 if ((t_identNumber.getText()).equals(v_identNumber.elementAt(k)))

50、 { //取出这个号码对应的名字 str_name = (String) v_name.elementAt(k); //为防止下次抽的时候再抽到相同的号码,所以把它们从向量中移除掉 v_identNumber.removeElementAt(k);

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服