JAVA猜数字游戏论_第1页
JAVA猜数字游戏论_第2页
JAVA猜数字游戏论_第3页
JAVA猜数字游戏论_第4页
JAVA猜数字游戏论_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、攀枝花学院学生课程设计(论文)题 目:猜数字游戏学生姓名:刘 鹏学 号: 200810801037所在院(系):计算机专业:计算机科学与技术班级:08计本(2)班指导教师: 吴建兵 职称:年 月 日攀枝花学院教务处制题目猜数字游戏1、课程设计的目的通过本课程设计使学生能够较全面的掌握面向对象程序设计的有关概念和开发方法,以便能较全面地理解、掌握和综合运用所学的知识,提高自身的编程能力2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)编写一个猜数字游戏,要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至 猜到,给出所用时间和评语。3、主要参考文献1朱福喜.ja

2、va语言程序设计(第二版).科学出版社2陈国君等.java程序设计基础(第二版).清华大学出版社3 deitel.java大学基础教程(第六版).电子工业出版社4 marycampione.java语言导学(第四版).机械工业出版社5 y.daniel liang.java语言程序设计基础篇(第六版).机械工业出版社6 kathy sierra.head first java(第二版).东南大学出版社4、课程设计工作进度计划在舁 厅p时间(天)内容安排备注11r分析设计准备周一22编程调试阶段周二至周三31编写课程设计报告周四一41考核周五_总计5 (天)指导教师(签字)日期年 月 日教研室意

3、见:年 月 日学生(签字):接受任务时间:年 月 日题目名称猜数字游戏评分项目分 值得 分评价内涵工 作 表 现20%01学习态度6遵守各领纪律,作刻苦努力,具后良好的科学 工作态度。02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠 道获取与课程设计有关的材料。03课题工作量7按期圆满完成规定的任务,工作量饱满。能 力 水 平 35%04综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题, 能正确处理实验数据,能对课题进行理论分析, 得出有价值的结论。05应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并 较好地论述课题的实施方案;有收集、加工各种 信息及获取

4、新知识的能力。06设计(实验)能力,方案 的设计能力5能正确设计实验方案, 独立进行装置安装、调试、 操作等实验工作,数据正确、可靠;研究思路清 晰、完整。07计算及计算机应用能力5具有较强的数据运算与处理能力;能运用计算机 进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析 能力(综合分析能力、技 术经济分析能力)10具有较强的数据收集、分析、处理、综合的能力。成 果 质 量45%09插图(或图纸)质量、篇 幅、设计(论文)规范化 程度5符合本专业相关规范或规定要求;规范化符合本 文件第五条要求。10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分, 结论严谨

5、合理;实验正确,分析处理科学。11创新10对前人工作有改进或突破,或有独特见解。成绩指 导 教 师 评 语指导教师签名:年 月日攀枝花学院java设计论文摘要 21 .需求分析 31.1 用户需求分析32.2开发环境分析32.问题描述 42.1 课程设计白勺任务:42.2 .课程设计的要求:43模块设计 53.1 系统总体设计53.2 功能模块设计54功能设计 61.1. 随机数的产生模块 6错误!未定义书签。61.2. 输入判断模块.1.3. 记录猜测次数模块1.4. 计时模块61.5. 输入输出模块 61.6. 成绩判断模块75 .程序流程图 96 .异常处理 107 .调试分析 11总结

6、 12参考文献 13程序附页 1414摘要猜数字是一款非常经典的脑力游戏,游戏规则简单,但是玩起来难度较大, 是消磨时间、锻炼脑力的好选择。通过选择猜数字游戏这个题目,可以让我掌握java中的包和类,并且可以灵活的使用 my eclipse 软件。同时更加深入的了解字符界面的编程过程。 使我更熟练的掌握 java程序框架的搭建和类的创建格式。在分析阶段,要进行面向对象的需 求分析、系统设计、画出相应的需求分析图、系统设计模型图,这些工作更能锻炼我的逻辑 思维,更能培养我思考的全面性。让我学会了多角度思考问题,对我以后的编程奠定了更好 的基础。关键词 猜数字游戏,java编程,课程设计1 .需求

7、分析1.1 用户需求分析设计一个猜数字游戏程序,要求具体如下特性:a.输入任意一个数字。数字的要求是 1100的自然数即可。b.系统对您输入的数字进行判断。如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生成数小.系统将提示您,数字太小请您重新输入。如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大。系 统将提示您,数字太大请您重新输入。如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请从新输入。c.游戏开始时,系统自动记录您猜数字的时间,结束后显示游戏共花费的时间。d.每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。e.在游戏结束

8、时,可以选择关闭游戏,或者再来一局。2.2开发环境分析硬件要求能运行windows9.x操作系统的微机系统。java1序设计语言及相应的集成开发环境,j2sdkf口 eclipse开发工具。j2sdk简介:j2sdk是就阿java的开发环境包。它包含 jdk(开发工具包)和 jre(运行时环境包)。eclipse简介:eclipse是一个开放源代码的、基于java的可扩展开发平台。 就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,eclipse 附带了一个标准的插件集,包括 java开发工具(java development tools , jdt)。2.问题描

9、述2.1 课程设计的任务:根据所选题目,完成课程设计的分析、设计和编码,写出课程设计报告。(1)掌握java的语言规范,面向对象的核心概念和特性;(2)掌握java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等;(3)掌握java应用软件的开发环境和开发过程;(4)掌握面向对象的思想和程序设计方法。2.2 .课程设计的要求:设计一个猜数字游戏程序,该游戏可以由程序随机产生整数,玩游戏者通过由用户输入 数字来匹配上面所产生的数字。用户随机输入数字,当与计算机产生的随机数相符合时,计 算机将提醒用户,游戏成功的信息,当有偏差时,将会提醒偏差,如偏大或者是偏小。3模块设计3.1 系统

10、总体设计猜数字游戏一游戏随机给出一个1100 (包才1和100)之间的数字,然后让你猜是什么 数字。你可以随便猜一个数字,游戏会提示太大还是太小,从而缩小结果范围。经过几次猜 测与提示后,最终推出答案。游戏界面开始游戏产生随机数记求猜测的次数记录时间游戏开始后,由计算机产生一个1-100的随机数,不显示在图形界面,但显示在字符界面。用户只需输入所猜想的数字,打印在输入框内,按“确定”按钮表示确定,游戏返回提示语句, 按照提示语句操作,直至游戏结束。同时,计算机开始对游戏进行计时和计数功能。3.2 功能模块设计模块的组成记时模块帆断梗菽|输入输出模块的时间l断否法一判是台一出出丞演 始爱港束记时

11、同结时票时断己级 等4功能设计4.1. 随机数的产生模块我们可以借助java api提供的random类来产生一个随机数。产生一个1-100间的随机数数字不合法,请输入一个1-100之间的整数! ); /清空文本框内容首先在main函数中加入以下代码: random random = new random。; number = random.nextint(100); /4.2. 入判断模块joptionpane.showmessagedialog(null, 显示一个对话框jtextfield1.settext();/jtextfield1.requestfocus();/文本框获取输入焦点

12、4.3. 记录猜测次数模块/记录玩家猜测的次数counter = 0;/计数器增加一counter + +;4.4. 计时模块计时模块的代码分别写在游戏的开始和游戏的结束,取得时间差,以毫秒为单位。long starttime = system.currenttimemillis();long endtime = system.currenttimemillis();4.5. 输入输出模块/对玩家的输入进行判断。if (guess number) joptionpane.showmessagedialog(null, 猜大了哦!!);jtextfield1.settext();jtextfie

13、ld1.requestfocus();return;if (guess number) joptionpane.showmessagedialog(null, 太小啦);jtextfield1.settext();jtextfield1.requestfocus();return;if (guess = number) endtime = system.currenttimemillis();4.6. 成绩判断模块/判断成绩。switch (counter) case 1:joptionpane.showmessagedialog(null,你是神么? ?这也太给力了吧! !);break;c

14、ase 2:case 3:case 4:case 5:case 6:case 7:joptionpane.showmessagedialog(null,这么快就猜对了,很不错哦!);break;default:joptionpane.showmessagedialog(null,猜了半天才猜出来,还要多多练习哦!);break;joptionpane.showmessagedialog(null,您总共猜了 + counter + 次 共花了”+ (endtime - starttime) / 1000 + 秒的时间答对正确答案 !);jtextfield1.settext();jtextfi

15、eld1.requestfocus();5.程序流程图6.异常处理我们在运行程序时往往会出现许多错误,而java语言提供了异常(exception)处理机制帮助程序员发现并处理异常。所谓异常,就是在程序执行过程中能干扰程序正常流程的事件。 导致异常的原因很多,比如文件找不到、数组越界、除以零等。当异常出现时,一个异常对 象将被自动生成并传递给java “运行时环境”,如果“运行时环境”找不到异常句柄,java程序便会自行中断。try statement(s); catch (exceptiontype1 name) statement(s); catch (exceptiontype2 nam

16、e) statement(s); finally statement(s);try语句括起来的语句可能抛出异常。try语句至少要搭配一个catch语句或finally语句,不能单独使用,我设计的猜数字游戏需要从控制台获取玩家输入的数字,有多个异常处理try setdefaultcloseoperation(windowconstants.dispose_on_close);getcontentpane().setlayout(null); catch (exception e) e.printstacktrace();try /获取玩家的输入guess = integer.parseint(j

17、textfield1.gettext(); catch (exception e)7.调试分析总结经过这几天努力终于完成了这份课设,虽然在操作的过程中我都遇到了许多的困难,但 是却使我得到了许多的意外收获。java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。在写代码的过程中我 们也遇到了一些的困难,就是对一些有关java语言的不理解,我便又到课本中去查找。一个项目的成败关键不全在于技术。要想在一个愉快的氛围里边以轻松的心情来完成紧张的工作, 严谨的态度和工作的热情都是必不可少的。以前上课时有许多的问题并没有真正的认识到, 但通过这

18、次试验的制作,使我掌握了许多更重要的知识点。参考文献1黄明等,梁旭,周绍斌.java课程设计电子工业出版社20062杨昭.二级java语言程序设计教程中国水利水电出版社 20063赵文靖.java程序设计基础与上机指导清华大学出版社20064张广彬,孟红蕊,张永宝.java课程设计案例精编清华大学出版社20075黄晓东.java课程设计案例精编(第一版)中国水利水电出版社 20046美cay s.horstmann 程峰等译.java2核心技术机械工业出版社2003西安电子科技大学出版社2006中国水利水电出版社2006机械工业出版社.2008.人民邮电出版社.2006.7赵毅主.跨平台程序设

19、计语百一java8王路群.java高级程序设计9夏宽理.java语言程序设计10 丁新民.java程序设计教程程序附页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.jlabel;import javax.

20、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;private int c

21、ounter = 0;long starttime = system.currenttimemillis();long endtime;程序附页* 新建一个随机数产生器,然后生成一个1到100之间的整数* /public guessnum() super (刘鹏) initchuankou(); random random = new random(); number = random.nextint(100);/产生一个 1-100 间的随机数/* 初始化窗口组件 */private void initchuankou() try setdefaultcloseoperation(windo

22、wconstants.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);/设置标签位置jt

23、extfield1 = new jtextfield();getcontentpane().add(jtextfield1);67程序附页jtextfield1.setbounds(50, 60, 112, 28);jtextfield1.addkeylistener(new keyadapter() 文本框添加键盘按键监听-监听回车键public void keypressed(keyevent evt) jtextfieldlkeypressed(evt););jbutton1 = new jbutton();getcontentpane().add(jbutton1);jbutton1.

24、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.pri

25、ntstacktrace();setvisible(true);private void jbutton1actionperformed(actionevent evt) int guess = 0; /记录玩家所猜测的数字counter+; 计数器增加一。67程序附页try /获取玩家的输入guess = integer.parseint(jtextfield1.gettext(); catch (exception e) /如果玩家不是输入一个合法的整数,则让他重新输入。joptionpane.showmessagedialog(null,数字不合法,t#输入一个1-100 之间的整数!工显示一个对话框jtextfield1.settext();/清空文本框内容jtextfield1.requestfocus();/文本框获取输入焦点return;/对玩家的输入进行判断。if (guess number) joptionpane.showmessagedialog(null, 猜大了哦!!);jtextfield1.settext();j

温馨提示

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

评论

0/150

提交评论