猜数字小游戏JAVA程序报告_第1页
猜数字小游戏JAVA程序报告_第2页
猜数字小游戏JAVA程序报告_第3页
猜数字小游戏JAVA程序报告_第4页
猜数字小游戏JAVA程序报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

JAVA 程序设计报告 猜数字小游戏 JAVA 程序设计报告 2 目录 一 猜数字小游戏简介 4 二 用户需求分析 4 三 问题描述 4 1 课程设计的任务 2 课程设计的要求 四 模块设计 5 1 课程设计的要求 2 功能模块设计 3 流程图 五 功能设计 7 1 随机数的产生模块 2 输入判断模块 3 记录猜测次数模块 4 计时模块 5 输入输出模块 6 成绩判断模块 六 异常处理 9 七 调试分析 10 八 不足之处 11 九 总结 12 十 程序附页 13 JAVA 程序设计报告 3 摘 要 猜数字是一款非常经典的脑力游戏 游戏规则简单 是消磨时间 锻炼脑力的 好选择 通过选择猜数字游戏这个题目 可以让我掌握 Java 中的包和类 并且可 以灵活的使用 my eclipse 软件 同时更加深入的了解字符界面的编程过程 使我 更熟练的掌握 Java 程序框架的搭建和类的创建格式 在分析阶段 要进行面向对 象的需求分析 系统设计 画出相应的需求分析图 系统设计模型图 这些工作更 能锻炼我的逻辑思维 更能培养我思考的全面性 让我学会了多角度思考问题 对 我以后的编程奠定了更好的基础 JAVA 程序设计报告 4 一 猜数字小游戏简介 系统随机产生任意一个 1 100 的自然数 玩家输入数字 若输入的数字比随机生成数 小 系统将提示 数字太小请您重新输入 如果输入的数字比随机生成数大 系统将提示 数字太大请您重新输入 若输入的字符不是合法字符 系统将提示 您输入的数字不合法 请从新输入 游戏开始时 系统自动记录您猜数字的时间和次数 结束后显示游戏共花费 的次数和时间及对游戏结果的评价 二 用户需求分析 设计一个猜数字游戏程序 要求具体如下特性 a 输入任意一个数字 数字的要求是 1 100 的自然数即可 b 系统对您输入的数字进行判断 如果玩家输入的数字与计算机随机生成数相比较 输入的数字比随机生成数小 系统将 提示您 数字太小请您重新输入 如果玩家输入的数字与计算机随机生成数相比较 如果输入的数字比随机生成数大 系统将提示您 数字太大请您重新输入 如果玩家输入的字符不是合法字符 系统将提示您 您输入的数字不合法 请从新输 入 c 游戏开始时 系统自动记录您猜数字的时间 结束后显示游戏共花费的时间 d 每猜测一次 系统会记录下来 游戏结束后 显示共猜测多少次 e 在游戏结束时 可以选择关闭游戏 或者再来一局 f 游戏结束前可选择直接显示答案 三 问题描述 1 1 课程设计的任务 课程设计的任务 根据所选题目 完成课程设计的分析 设计和编码 写出课程设计报告 1 掌握 Java 的语言规范 面向对象的核心概念和特性 2 掌握 Java 的编程技术 包括异常处理 图形界面设计 多线程 网络通信程序等 3 掌握 Java 应用软件的开发环境和开发过程 4 掌握面向对象的思想和程序设计方法 2 2 课程设计的要求 课程设计的要求 设计一个猜数字游戏程序 该游戏可以由程序随机产生整数 玩游戏者通过由用户输 入数字来匹配上面所产生的数字 用户随机输入数字 当与计算机产生的随机数相符合时 JAVA 程序设计报告 5 开始游戏注册登陆 开始界面 记录时间次数产生随机 数 重新开始显示答案 计时模块输出输入模块判断模块 模块组成 登陆模块 系统开始计时 由用户输入一个数 guess 猜小 Y 产生随机数 number 系统结束计时 系统统计猜数次数 及对成绩的评价 结 束 开 始 G N GN 猜大 计算机将提醒用户 游戏成功的信息 当有偏差时 将会提醒偏差 如偏大或者是偏小 四 模块设计 1 1 系统总体设计系统总体设计 2 2 功能模功能模块设计块设计 3 3 流程流程图图 JAVA 程序设计报告 6 五 功能设计 1 1 随机数的产生模块随机数的产生模块 我们可以借助 Java API 提供的 Random 类来产生一个随机数 首先在 main 函数中加入以下代码 Random random new Random number random nextInt 100 产生一个 1 100 间的随机数 2 2 输入判断模块输入判断模块 在游戏界面中输入不合法 try guess Integer parseInt jTextField1 getText 玩家输入获 取 catch Exception e JAVA 程序设计报告 7 JOptionPane showMessageDialog null 请输入一个 1 100 之间的整数 显示对话框 输入不合 法 jTextField1 setText 清空文本框内容 jTextField1 requestFocus return 3 3 记录猜测次数模块记录猜测次数模块 记录玩家猜测的次数 counter 0 计数器增加一 counter 4 4 计时模块计时模块 计时模块的代码分别写在游戏的开始和游戏的结束 取得时间差 以毫秒为单位 long startTime System currentTimeMillis long endTime System currentTimeMillis 5 5 输入输出模块输入输出模块 对玩家的输入进行判断 if guess number JOptionPane showMessageDialog null o v o 猜大了 jTextField1 setText jTextField1 requestFocus return if guess number JOptionPane showMessageDialog null o v o 太小啦 jTextField1 setText jTextField1 requestFocus return if guess number endTime System currentTimeMillis 6 6 成绩判断模块成绩判断模块 判断成绩 JAVA 程序设计报告 8 switch counter case 1 JOptionPane showMessageDialog null O O 太给力了 吧 break case 2 case 3 JOptionPane showMessageDialog null OH MY GOD 好腻害 break case 4 case 5 case 6 JOptionPane showMessageDialog null O O 猜对 很不错哦 break case 7 case 8 case 9 case 10 JOptionPane showMessageDialog null 有点慢 还要多练习 break default JOptionPane showMessageDialog null oh NO 太慢啦 break 六 异常处理 我们在运行程序时往往会出现许多错误 而 Java 语言提供了异常 Exception 处理 机制帮助程序员发现并处理异常 所谓异常 就是在程序执行过程中能干扰程序正常 流程的事件 导致异常的原因很多 比如文件找不到 数组越界 除以零等 当异常 出现时 一个异常对象将被自动生成并传递给 Java 运行时环境 如果 运行时环境 找不到异常句柄 Java 程序便会自行中断 try statement s catch exceptiontype1 name statement s catch exceptiontype2 name statement s finally JAVA 程序设计报告 9 statement s try 语句括起来的语句可能抛出异常 try 语句至少要搭配一个 catch 语句或 finally 语句 不能单独使用 我设计的猜数字游戏需要从控制台获取玩家输入的数字 有多个异常处理 try setDefaultCloseOperation WindowConstants DISPOSE ON CLOSE getContentPane setLayout null catch Exception e e printStackTrace try 获取玩家的输入 guess Integer parseInt jTextField1 getText catch Exception e 七 调试分析 JAVA 程序设计报告 10 八 不足之处 本小游戏还未建立游戏记录部分 无法记录玩家游戏成绩记录和建立游戏排行榜 在界面设计方面还较为简单 游戏还有很多可修改和增加难度的地方 JAVA 程序设计报告 11 总结 经过这几天努力终于完成了这份课设 虽然在操作的过程中我都遇到了许 JAVA 程序设计报告 12 多的困难 但是却使我得到了许多的意外收获 Java 是一种简单的 面向对象 的 分布式的 解释型的 健壮安全的 结构中立的 可移植的 性能优异 多线程的动态语言 在写代码的过程中我们也遇到了一些的困难 就是对一些 有关 Java 语言的不理解 我便又到课本中去查找 一个项目的成败关键不全在 于技术 要想在一个愉快的氛围里边以轻松的心情来完成紧张的工作 严谨的 态度和工作的热情都是必不可少的 以前上课时有许多的问题并没有真正的认 识到 但通过这次试验的制作 使我掌握了许多更重要的知识点 程序附页 package JAVA import java awt event ActionEvent import java awt event ActionListener import java util ArrayList import javax swing JButton import javax swing JFrame import javax swing JLabel import javax swing JOptionPane import javax swing JPanel import javax swing JPasswordField import javax swing JTextField JAVA 程序设计报告 13 public class Login extends JFrame ArrayList names new ArrayList ArrayList pwd new ArrayList private static final long serialVersionUID 1L public Login this setLocation 100 100 this setSize 400 180 this setTitle 欢迎进入有趣的猜数字小游戏 loginWindow setLocationRelativeTo null 窗口居中显示 this setVisible true public void loginWindow JLabel name new JLabel 请输入玩家姓名 JLabel password new JLabel 请输入登陆密码 final JTextField tfName new JTextField 20 final JPasswordField tfPassword new JPasswordField 20 JButton ok new JButton 注册 JButton cancel new JButton 登录 JPanel pm new JPanel JPanel p1 new JPanel JPanel p2 new JPanel JPanel p3 new JPanel p1 add name p1 add tfName p2 add password p2 add tfPassword ok addActionListener new ActionListener public void actionPerformed ActionEvent arg0 names add tfName getText pwd add tfPassword getText JOptionPane showMessageDialog null 注册成功 tfName setText tfPassword setText cancel addActionListener new ActionListener SuppressWarnings deprecation Override SuppressWarnings deprecation public void actionPerformed ActionEvent arg0 TODO Auto generated method stub for int i 0 i names size i JAVA 程序设计报告 14 if names get i equals tfName getText if pwd get i equals tfPassword getText JOptionPane showMessageDialog null 登陆成功 setVisible false 隐藏原界面 new GuessNum 进入主界面 else JOptionPane showMessageDialog null 用户名或密 码有误 p3 add ok p3 add cancel pm add p1 pm add p2 pm add p3 this add pm this setDefaultCloseOperation JFrame EXIT ON CLOSE public static void main String args new Login package JAVA import java awt event ActionEvent import java awt event ActionListener import java awt event KeyAdapter import java awt event KeyEvent import java util Random import javax swing JButton import javax swing JLabel import javax swing JFrame import javax swing JOptionPane import javax swing JTextField import javax swing WindowConstants import java awt FlowLayout JAVA 程序设计报告 15 public class GuessNum extends javax swing JFrame private static final long serialVersionUID 1L private JLabel jLabel1 private JTextField jTextField1 private JButton jButton1 private JButton jButton2 private JButton jButton3 private int number 0 private int counter 0 long startTime System currentTimeMillis long endTime 计算时间 public GuessNum super 猜数字小游戏 initChuangkou Random random new Random number random nextInt 100 产生一个 1 100 的 随机数 private void initChuangkou try setDefaultCloseOperation WindowConstants DISPOSE ON CLOSE 窗口关闭时销毁窗口 getContentPane setLayout null 设置窗口布局为绝对布局 JFrame frame new JFrame Test Buttons frame setLayout new FlowLayout jLabel1 new JLabel getContentPane add jLabel1 jLabel1 setText 欢迎进入有趣的猜数字游戏 请输入 1 100 中的任 意一个数 jLabel1 setBounds 75 20 200 50 jTextField1 new JTextField getContentPane add jTextField1 jTextField1 setBounds 110 100 112 28 jTextField1 addKeyListener new KeyAdapter public void keyPressed KeyEvent evt jTextField1KeyPressed evt JAVA 程序设计报告 16 jButton1 new JButton getContentPane add jButton1 jButton1 setText 确定 jButton1 setBounds 120 160 100 25 jButton1 addActionListener new ActionListener public void actionPerformed ActionEvent evt jButton1ActionPerformed evt 按钮被点击时 执行该 方法 jButton2 new JButton getContentPane add jButton2 jButton2 setText 显示答案 jButton2 setBounds 120 200 100 25 jButton2 addActionListener new ActionListener public void actionPerformed ActionEvent evt2 jButton2ActionPerformed evt2 按钮被点击时 执行该 方法 jButton3 new JButton getContentPane add jButton3 jButton3 setText 再来一次 jButton3 setBounds 120 240 100 25 jButton3 addActionListener new ActionListener public void actionPerformed ActionEvent evt3 jButton3ActionPerformed evt3 按钮被点击时 执行该 方法 pack this setSize 340 400 窗口大小 setLocationRelativeTo null 设置窗口在显示器居中显示 catch Exception e e printStackTrace setVisible true JAVA 程序设计报告 17 private void jButton2ActionPerformed ActionEvent evt2 JOptionPane showMessageDialog null 答案是 number 直接显示答 案 setVisible false 隐藏原界面 return private void jButton3ActionPerformed ActionEvent evt3 setVisible false new GuessNum private void jButton1ActionPerformed ActionEvent evt int guess 0 counter 计数器加一 try guess Integer parseInt jTextField1 getText 玩家输入获取 catch Exception e JOptionPane showMessageDialog null 请输入一个 1 100 之间 的整 数 显示对话框 输入不合法 jTextField1 setText 清空文本框内容 jTextField1 requestFocus return if guess number JOptionPane showMessageDialog null o v o 猜大了 jTextField1 setText jTextField1 requestF

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论