《JAVA猜数字游戏论文43703.pdf》由会员分享,可在线阅读,更多相关《JAVA猜数字游戏论文43703.pdf(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 攀枝花学院 学生课程设计(论文)题 目:猜数字游戏 学生姓名:*学 号:*所在院(系):计 算 机 专 业:计算机科学与技术 班 级:08 计本(2)班 指 导 教 师:吴建兵 职称:年 月 日 攀枝花学院教务处制 题 目 猜数字游戏 1、课程设计的目的 通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)编写一个猜数字游戏,要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。3、主要参考文献 1
2、朱福喜.Java 语言程序设计(第二版).科学出版社 2陈国君等.Java 程序设计基础(第二版).清华大学出版社 3 Deitel.Java 大学基础教程(第六版).电子工业出版社 4 MaryCampione.Java 语言导学(第四版).机械工业出版社 5 Y.Daniel Liang.Java 语言程序设计基础篇(第六版).机械工业出版社 6 Kathy Sierra.Head First Java(第二版).东南大学出版社 4、课程设计工作进度计划 序号 时间(天)内容安排 备注 1 1 分析设计准备 周一 2 2 编程调试阶段 周二至周三 3 1 编写课程设计报告 周四 4 1 考
3、核 周五 总计 5(天)指导教师(签字)日期 年 月 日 教研室意见:年 月 日 学生(签字):接受任务时间:年 月 日 题目名称 猜数字游戏 评分项目 分值 得分 评价内涵 工作 表现 20%01 学习态度 6 遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。02 科学实践、调研 7 通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料。03 课题工作量 7 按期圆满完成规定的任务,工作量饱满。能力 水平 35%04 综合运用知识的能力 10 能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05 应用文献的能力 5 能
4、独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。06 设计(实验)能力,方案的设计能力 5 能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07 计算及计算机应用能力 5 具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。08 对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10 具有较强的数据收集、分析、处理、综合的能力。成果 质量 45%09 插图(或图纸)质量、篇幅、设计(论文)规范化程度 5 符合本专业相关规范或规定要求;规范化符合本文件第
5、五条要求。10 设计说明书(论文)质量 30 综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。11 创新 10 对前人工作有改进或突破,或有独特见解。成绩 指导教师评语 指导教师签名:年 月 日 攀枝花学院 JAVA 设计论文 1 摘 要.2 1.需求分析.3 1.1 用户需求分析.3 2.2 开发环境分析.3 2.问题描述.4 2.1 课程设计的任务:.4 2.2.课程设计的要求:.4 3 模块设计.5 3.1 系统总体设计.5 3.2 功能模块设计.5 4 功能设计.6 4.1.随机数的产生模块.6 4.2.输入判断模块.错误!未定义书签。4.3.记录猜测次
6、数模块.6 4.4.计时模块.6 4.5.输入输出模块.6 4.6.成绩判断模块.7 5.程序流程图.9 6.异常处理.10 7.调试分析.11 总结.12 参考文献.13 程序附页.14 攀枝花学院 JAVA 设计论文 2 摘 要 猜数字是一款非常经典的脑力游戏,游戏规则简单,但是玩起来难度较大,是消磨时间、锻炼脑力的好选择。通过选择猜数字游戏这个题目,可以让我掌握 Java 中的包和类,并且可以灵活的使用 my eclipse 软件。同时更加深入的了解字符界面的编程过程。使我更熟练的掌握 Java 程序框架的搭建和类的创建格式。在分析阶段,要进行面向对象的需求分析、系统设计、画出相应的需求
7、分析图、系统设计模型图,这些工作更能锻炼我的逻辑思维,更能培养我思考的全面性。让我学会了多角度思考问题,对我以后的编程奠定了更好的基础。关键词 猜数字游戏,JAVA 编程,课程设计 攀枝花学院 JAVA 设计论文 3 1.需求分析 1.1 用户需求分析 设计一个猜数字游戏程序,要求具体如下特性:a.输入任意一个数字。数字的要求是 1100 的自然数即可。b.系统对您输入的数字进行判断。如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生成数小.系统将提示您,数字太小请您重新输入。如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大。系统将提示您,数字太大请您重新输
8、入。如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请从新输入。c.游戏开始时,系统自动记录您猜数字的时间,结束后显示游戏共花费的时间。d.每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。e.在游戏结束时,可以选择关闭游戏,或者再来一局。2.2 开发环境分析 硬件要求能运行 Windows 9.X 操作系统的微机系统。JAVA 程序设计语言及相应的集成开发环境,J2SDK 和 eclipse 开发工具。J2SDK 简介:j2sdk 是就阿 Java 的开发环境包。它包含 JDK(开发工具包)和JRE(运行时环境包)。eclipse 简介:Eclipse 是一个开放源
9、代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。攀枝花学院 JAVA 设计论文 4 2.问题描述 2.1 课程设计的任务:根据所选题目,完成课程设计的分析、设计和编码,写出课程设计报告。(1)掌握 Java 的语言规范,面向对象的核心概念和特性;(2)掌握 Java 的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等;(3)掌握 Java 应用软件的开发环境和开发过程;(4)掌握面向对象的
10、思想和程序设计方法。2.2.课程设计的要求:设计一个猜数字游戏程序,该游戏可以由程序随机产生整数,玩游戏者通过由用户输入数字来匹配上面所产生的数字。用户随机输入数字,当与计算机产生的随机数相符合时,计算机将提醒用户,游戏成功的信息,当有偏差时,将会提醒偏差,如偏大或者是偏小。攀枝花学院 JAVA 设计论文 5 3 模块设计 3.1 系统总体设计 猜数字游戏游戏随机给出一个 1100(包括 1 和 100)之间的数字,然后让你猜是什么数字。你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。经过几次猜测与提示后,最终推出答案。游戏开始后,由计算机产生一个 1-100 的随机数,不显示
11、在图形界面,但显示在字符界面。用户只需输入所猜想的数字,打印在输入框内,按“确定”按钮表示确定,游戏返回提示语句,按照提示语句操作,直至游戏结束。同时,计算机开始对游戏进行计时和计数功能。3.2 功能模块设计 攀枝花学院 JAVA 设计论文 6 4 功能设计 4.1.随机数的产生模块 我们可以借助 Java API 提供的 Random 类来产生一个随机数。首先在 main 函数中加入以下代码:Random random=new Random();number=random.nextInt(100);/产生一个 1-100 间的随机数 4.2 输入判断模块 JOptionPane.showMe
12、ssageDialog(null,数字不合法,请输入一个 1-100 之间的整数!);/显示一个对话框 jTextField1.setText();/清空文本框内容 jTextField1.requestFocus();/文本框获取输入焦点 4.3.记录猜测次数模块/记录玩家猜测的次数 counter=0;/计数器增加一 counter;4.4.计时模块 计时模块的代码分别写在游戏的开始和游戏的结束,取得时间差,以毫秒为单位。long startTime=System.currentTimeMillis();long endTime=System.currentTimeMillis();4.5
13、.输入输出模块 /对玩家的输入进行判断。if(guess number)JOptionPane.showMessageDialog(null,猜大了哦!);jTextField1.setText();攀枝花学院 JAVA 设计论文 7 jTextField1.requestFocus();return;if(guess y 猜大啦 猜小了哦 Y N 产生随机数 m x=y 系统结束计时 系统统计猜数次数 结 束 开 始 攀枝花学院 JAVA 设计论文 10 6.异常处理 我们在运行程序时往往会出现许多错误,而 Java 语言提供了异常(Exception)处理机制帮助程序员发现并处理异常。所谓
14、异常,就是在程序执行过程中能干扰程序正常流程的事件。导致异常的原因很多,比如文件找不到、数组越界、除以零等。当异常出现时,一个异常对象将被自动生成并传递给 Java“运行时环境”,如果“运行时环境”找不到异常句柄,Java程序便会自行中断。try statement(s);catch(exceptiontype1 name)statement(s);catch(exceptiontype2 name)statement(s);finally statement(s);try 语句括起来的语句可能抛出异常。try 语句至少要搭配一个 catch 语句或 finally 语句,不能单独使用,我设计
15、的猜数字游戏需要从控制台获取玩家输入的数字,有多个异常处理 try setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);getContentPane().setLayout(null);catch(Exception e)e.printStackTrace();try /获取玩家的输入 guess=Integer.parseInt(jTextField1.getText();catch(Exception e)攀枝花学院 JAVA 设计论文 11 7.调试分析 攀枝花学院 JAVA 设计论文 12 总结 经过这几天努力终于完成了
16、这份课设,虽然在操作的过程中我都遇到了许多的困难,但是却使我得到了许多的意外收获。Java 是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。在写代码的过程中我们也遇到了一些的困难,就是对一些有关 Java 语言的不理解,我便又到课本中去查找。一个项目的成败关键不全在于技术。要想在一个愉快的氛围里边以轻松的心情来完成紧张的工作,严谨的态度和工作的热情都是必不可少的。以前上课时有许多的问题并没有真正的认识到,但通过这次试验的制作,使我掌握了许多更重要的知识点。攀枝花学院 JAVA 设计论文 13 参考文献 1 黄明等,梁旭,周绍斌.Jav
17、a 课程设计 电子工业出版社 2006 2 杨昭.二级 Java 语言程序设计教程 中国水利水电出版社 2006 3 赵文靖.Java 程序设计基础与上机指导 清华大学出版社 2006 4 张广彬,孟红蕊,张永宝.Java 课程设计案例精编清华大学出版社 2007 5 黄晓东.Java 课程设计案例精编(第一版)中国水利水电出版社 2004 6 美Cay S.Horstmann 程峰等译.JAVA2 核心技术机械工业出版社 2003 7 赵毅主.跨平台程序设计语言Java 西安电子科技大学出版社 2006 8王路群.Java 高级程序设计 中国水利水电出版社 2006 9 夏宽理.Java 语
18、言程序设计 机械工业出版社.2008.10 丁新民.Java 程序设计教程 人民邮电出版社.2006.攀枝花学院 JAVA 设计论文 14 程序附页 package liupeng;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.JLab
19、el;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JTextField;import javax.swing.WindowConstants;import java.awt.FlowLayout;public class GuessNum extends javax.swing.JFrame private JLabel jLabel1;private JTextField jTextField1;private JButton jButton1;private int number=0
20、;private int counter=0;long startTime=System.currentTimeMillis();long endTime;程序附页 67 /*新建一个随机数产生器,然后生成一个 1 到 100 之间的整数 */public GuessNum()super(刘鹏);initChuankou();Random random=new Random();number=random.nextInt(100);/产生一个 1-100 间的随机数 /*初始化窗口组件 */private void initChuankou()try setDefaultCloseOperat
21、ion(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(欢迎进入有趣的猜数字游戏!请输入 1100 中的任意一个数:);jLabel1.setBounds(2,0,200,50);/设置标签
22、位置 jTextField1=new JTextField();getContentPane().add(jTextField1);程序附页 67 jTextField1.setBounds(50,60,112,28);jTextField1.addKeyListener(new KeyAdapter()/文本框添加键盘按键监听-监听回车键 public void keyPressed(KeyEvent evt)jTextField1KeyPressed(evt););jButton1=new JButton();getContentPane().add(jButton1);jButton1.
23、setText(确定);jButton1.setBounds(70,110,60,28);jButton1.addActionListener(new ActionListener()/按钮添加监听 public void actionPerformed(ActionEvent evt)jButton1ActionPerformed(evt);/按钮被点击时 执行该方法 );pack();this.setSize(220,200);/设置窗口大小 setLocationRelativeTo(null);/设置窗口在显示器居中显示 catch(Exception e)e.printStackTr
24、ace();setVisible(true);private void jButton1ActionPerformed(ActionEvent evt)int guess=0;/记录玩家所猜测的数字 counter+;/计数器增加一。程序附页 67 try /获取玩家的输入 guess=Integer.parseInt(jTextField1.getText();catch(Exception e)/如果玩家不是输入一个合法的整数,则让他重新输入。JOptionPane.showMessageDialog(null,数字不合法,请输入一个 1-100 之间的整数!);/显示一个对话框 jTex
25、tField1.setText();/清空文本框内容 jTextField1.requestFocus();/文本框获取输入焦点 return;/对玩家的输入进行判断。if(guess number)JOptionPane.showMessageDialog(null,猜大了哦!);jTextField1.setText();jTextField1.requestFocus();return;if(guess number)JOptionPane.showMessageDialog(null,太小啦);jTextField1.setText();jTextField1.requestFocus
26、();return;if(guess=number)endTime=System.currentTimeMillis();/判断成绩。switch(counter)case 1:JOptionPane.showMessageDialog(null,你是神么?这也太给力了程序附页 67 吧!);break;case 2:case 3:case 4:case 5:case 6:case 7:JOptionPane.showMessageDialog(null,这么快就猜对了,很不错哦!);break;default:JOptionPane.showMessageDialog(null,猜了半天才猜
27、出来,还要多多练习哦!);break;JOptionPane.showMessageDialog(null,您总共猜了+counter+次 共花了 +(endTime-startTime)/1000+秒的时间答对正确答案!);jTextField1.setText();jTextField1.requestFocus();private void jTextField1KeyPressed(KeyEvent evt)/监听文本框回车 if(evt.getKeyCode()=KeyEvent.VK_ENTER)jButton1.doClick();/文本框按回车键 执行“确定”按钮的事件 public static void main(String args)System.out.println(欢迎来到猜数字游戏);new GuessNum();程序附页 67