




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 课程设计说明书 NO.18 猜数游戏1.课程设计的目的 通过课程设计把课堂上讲的内容融会贯通,学会设计程序、开发应用软件等工作。经过实习掌握语言的语法结构,理解类和对象的概念,准确的使用各种数据类型,对面向对象中的继承和多态的概念会使用,在程序中提高代码的重用性,使设计的程序结构清晰、易于维护。本设计将一个猜数字游戏作为研究对象。设计出一个由系统随机选出一个1-100的数字不显示出来,由玩家猜这个数字,直到猜中为止,并显示出玩家猜中数字所用时间和次数对玩家做出评判,并对所涉及的相关技术进行初步的探讨。2.设计方案论证2.1设计思路设计一个猜数字游戏程序,该游戏可以由程序随机产生整数,玩游戏者
2、通过由用户输入数字来匹配上面所产生的数字。用户随机输入数字,当与计算机产生的随机数相符合时,计算机将提醒用户,游戏成功的信息,当有偏差时,将会提醒偏差,如偏大或者是偏小。设计一个猜数字游戏程序,其具有如下特性: (1)趣味性 要求游戏内容丰富多彩,语言风趣幽默。 (2)大众性 要求游戏界面操作简单,游戏规则简单易懂。 (3)合理性 游戏设计严谨,有条理,具体需求如下: 游戏开始时,自动显示游戏规则,系统自动记录并显示您猜数字的时间。 每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。 在游戏结束时,可以选择关闭游戏,或者再来一局。2.2设计方法 2.2.1系统总体设计 猜数字游戏游戏随
3、机给出一个1100(包括1和100)之间的数字,然后让你猜是什么数字。你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。经过几次猜测与提示后,最终推出答案。(如图1) 图1系统设计结构图 2.2.2游戏界面 采用图形界面显示。页面有如下功能:开始,结束,重来。游戏开始后,由计算机产生一个1-100的随机数,不显示在图形界面,但显示在字符界面。用户只需输入所猜想的数字,打印在输入框内,按“确定”按钮表示确定,游戏返回提示语句,按照提示语句操作,直至游戏结束。同时,计算机开始对游戏进行计时和计数功能。游戏过程中,如果不想继续玩了,可以直接退出,想重新开局,按“重新开始”按钮即可。想控
4、制界面大小只需拖拽图形界面边框即可。游戏结束后,可以选择“关闭”游戏,或者是“重新开始”。功能模块设计(如图2) 图2功能模块图 2.2.3随机数的获取功能描述:玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。 2.2.4输入输出模块功能描述:对玩家输入的数字进行判断和提示。如果玩家输入的不是系统要求的数字,系统将提示您,您输入的不是数字请重新输入.。如果玩家输入的数字与随机生成数相比较,比随机生成数小.系统提示您,数字太小请您重新输入。如果玩家输入的数字与随机生成数相比较,比随机生成数大.系统提示您,数字太大请您重新输入。(如图3) 图3输入输出模块图 2.2.5判断模块功能描
5、述:算出所用时间在玩家猜中时给出其所用时间,系统给出对其水平的判断和是否继续的提示;对玩家要求判断执行。(如图4) 图4判断模块图 2.2.6自动计数模块功能描述:系统根据您猜数字的次数,自动计数.(如图5) 图5自动计数模块图 2.2.7结果输出模块功能描述:直到用户猜到数字为止,提示信息是否重新猜数字,如果重新开始将进入下一次游戏,如果关闭将退出游戏系统。 2.2.8程序流程图 如图6所示 图6程序流程图3.设计结果与分析(1)开始运行程序时图形界面的显示(如图7) 图7图形显示界面(2)玩家输入一个数“25”后,点击“确定”,系统提示“猜的有点小了,再大一点!”。(如图8) 图8系统提示
6、(3)玩家再次输入一个数“70”后,点击“确定”,系统提示您“猜的有点大了,再小一点!”。(如图9) 图9系统提示 (4)玩家再次输入一个数“32”,点击“确定”,系统提示“猜了半天才猜出来,小同志,尚须努力”,单击确定显示“您总共猜了8次,您猜数字总共花了33秒”。(如图1011) 图10图形界面结果输出 图a 图11图形界面结果输出图b(5)玩家再重新玩一次,获取随机数后,玩家输入一个随机数“90”,点击“确定”,系统提示“正确”!您总共猜了2次,您猜数字总共花了14秒”。(如图12) 图12图形界面结果输出图c(6)如果玩家输入数字不再1到100以内数字系统提示错误!(如图13) 图13
7、图形界面提示输入错误4.设计体会通过这次课程设计,使我对JAVA这门课又做了一次系统的复习,对各个知识点也都有了更深刻的理解,让我掌握的更扎实,同时也增强了实际操作能力,另一方面也对编程语言有了新的认识,为以后的学习打下了基础。在本次试验中,给我印象最为深刻的是程序的编译过程中,从中我学到了许多以前学有学会和没有学到的函数。这次的学习让我从纸上谈兵逐渐的过渡到实践出真知。自己动手,自己发现和解决问题。发现了自己的许多不足。平时没有掌握好的知识在这次实验中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,还有的现在不能解决,我相信在以后的学习中能够解决好它们。5.参考文献1
8、丁振凡.Java语言实用教程M.北京:北京邮电大学出版社 2005 2耿祥义.Java2实用教程M.北京:清华大学出版社 20063赵付青.Java面向对象程序设计M.北京:国防工业出版社 2005 4耿祥义.Java课程设计M.北京:清华大学出版社 2005 附录 (1) /*程序运行时自动产生1-100的随机数*接受用户键盘输入数据并给出指示信息*直至猜对,游戏者猜对后,显示猜对次数*并且供计时功能*/importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.KeyAd
9、apter;importjava.awt.event.KeyEvent;importjava.util.Random;importjavax.swing.*;publicclassGuessNumextendsjavax.swing.JFrame/SetLook&Feeltry/设置窗口外观为windows外观 javax.swing.UIManager.setLookAndFeel(com.sun.java.swing.plaf.windows.WindowsLookAndFeel); catch(Exceptione)e.printStackTrace(); privateJLabeljL
10、abel1;privateJTextFieldjTextField1;privateJButtonjButton1;privateJButtonjButton2;privateintnumber=0;privateintcounter=0;longstartTime=System.currentTimeMillis(); longendTime;/*Auto-generatedmainmethodtodisplaythisJFrame*/ publicstaticvoidmain(Stringargs) GuessNuminst=newGuessNum(); inst.setVisible(t
11、rue);/显示窗口/*新建一个随机数产生器,然后生成一个1到100之间的整数*/ publicGuessNum() super(); initGUI(); Randomrandom=newRandom(); number=random.nextInt(100);/产生一个1-100间的随机数/*初始化窗口组件*/ privatevoidinitGUI() trysetDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);/窗口关闭时销毁窗口getContentPane().setLayout(null);/设置窗口布局为绝对布局jLa
12、bel1=newJLabel();getContentPane().add(jLabel1);jLabel1.setText(欢迎进入有趣的猜数字游戏;+1到100之间的整数,你猜是什么?快来猜猜看(.)+ 请输入你想猜的数:); jLabel1.setBounds(45,0,420,150);/设置标签位置 jTextField1=newJTextField(); getContentPane().add(jTextField1);jTextField1.setBounds(42,168,112,28);/输入窗口大小jTextField1.addKeyListener(newKeyAdap
13、ter()/文本框添加键盘按键监听-监听回车键publicvoidkeyPressed(KeyEventevt) jTextField1KeyPressed(evt););jButton1=newJButton();/如果玩家不是输入一个合法的整数,则让他重新输入。JOptionPane.showMessageDialog(null,数字不合法,请输入一个1-100之间的整数!);/显示一个对话框jTextField1.setText();/清空文本框内容jTextField1.requestFocus();/文本框获取输入焦点 return/对玩家的输入进行判断。if(guessnumber
14、)JOptionPane.showMessageDialog(null,猜的有点大了!,再小一点吧!);jTextField1.setText(); jTextField1.requestFocus();returnif(guessnumber)JOptionPane.showMessageDialog(null,猜的有点大了!,再小一点吧!); jTextField1.setText(); jTextField1.requestFocus(); returnif(guessnumber)JOptionPane.showMessageDialog(null,猜的一有点小了!,再大一点吧!);
15、jTextField1.setText(); jTextField1.requestFocus();returnif(guess=number)endTime=System.currentTimeMillis();(4)判定成绩模块 /判断成绩。 switch(counter)case1:JOptionPane.showMessageDialog(null,好厉害,真棒!();break; case2: case3: case4: case5: case6: case7:JOptionPane.showMessageDialog(null,这么快就猜对了,好厉害哦!();break; defa
16、ult:JOptionPane.showMessageDialog(null,猜了半天才猜出来,小同志,尚须努力啊!(_);break;JOptionPane.showMessageDialog(null,您总共猜了+counter+次共花了+(endTime-startTime)/1000+秒的时间答对正确答案!);jTextField1.setText();jTextField1.requestFocus();(5)计时模块 /计时模块的代码分别写在游戏的开始和游戏的结束,取得时间差,以毫秒为单位。longstartTime=System.currentTimeMillis();longendTime=System.currentTimeMillis();(6)异常处理 /一个典型的异常处理如下:trystatement(s);catch(exceptiontype1name)statement(s);catch(exceptiontype2name)statement(s);finallystatement(s);/编写如下代码:/SetLook&Feeltryjavax.swing.UIM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京汽车托运合同范本
- 2025年泰州货运从业资格证怎么考
- 修复车交易合同范本
- 医院弱电集成合同范本
- 制衣厂劳动合同范本
- 主厨合同范本
- 与中介定金合同范本
- 棉花劳务合同范本
- 冠名使用合同范本
- 劳动合同范本完整
- 中央2025年全国妇联所属在京事业单位招聘93人笔试历年参考题库附带答案详解
- CentOS 7系统配置与管理(Linux 试题库) 习题答案 (杨海艳 第2版)
- 手机直连卫星的可用频率分析
- 中国氢内燃机行业发展环境、市场运行格局及前景研究报告-智研咨询(2024版)
- 2025年春新人教版历史七年级下册课件 第16课-明朝的对外关系
- 施工单位工程质量自评报告三篇
- 开学季初三冲刺中考开学第一课为梦想加油课件
- 2025年四川绵阳科技城新区投资控股集团有限公司招聘笔试参考题库附带答案详解
- 2025年碳化硅(SiC)市场分析现状
- 2024年湖南高速铁路职业技术学院高职单招数学历年参考题库含答案解析
- 2024年沙洲职业工学院高职单招语文历年参考题库含答案解析
评论
0/150
提交评论