猜数字小游戏JAVA程序报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

JAVA程序设计报告——猜数字小游戏JAVA程序设计报告2目录一、猜数字小游戏简介…………………………………………4二、用户需求分析………………………………………………4三、问题描述……………………………………………………41.课程设计的任务2.课程设计的要求四、模块设计……………………………………………………51.课程设计的要求2.功能模块设计3.流程图五、功能设计……………………………………………………71.随机数的产生模块2.输入判断模块3.记录猜测次数模块4.计时模块5.输入输出模块6.成绩判断模块六、异常处理……………………………………………………9七、调试分析……………………………………………………10八、不足之处……………………………………………………11九、总结…………………………………………………………12十、程序附页……………………………………………………13JAVA程序设计报告3摘要猜数字是一款非常经典的脑力游戏,游戏规则简单,是消磨时间、锻炼脑力的好选择。通过选择猜数字游戏这个题目,可以让我掌握Java中的包和类,并且可以灵活的使用myeclipse软件。同时更加深入的了解字符界面的编程过程。使我更熟练的掌握Java程序框架的搭建和类的创建格式。在分析阶段,要进行面向对象的需求分析、系统设计、画出相应的需求分析图、系统设计模型图,这些工作更能锻炼我的逻辑思维,更能培养我思考的全面性。让我学会了多角度思考问题,对我以后的编程奠定了更好的基础。JAVA程序设计报告4一、猜数字小游戏简介系统随机产生任意一个1—100的自然数,玩家输入数字,若输入的数字比随机生成数小,系统将提示,数字太小请您重新输入;如果输入的数字比随机生成数大,系统将提示,数字太大请您重新输入;若输入的字符不是合法字符,系统将提示,您输入的数字不合法,请从新输入,游戏开始时,系统自动记录您猜数字的时间和次数,结束后显示游戏共花费的次数和时间及对游戏结果的评价。二、用户需求分析设计一个猜数字游戏程序,要求具体如下特性:a.输入任意一个数字。数字的要求是1—100的自然数即可。b.系统对您输入的数字进行判断。如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生成数小.系统将提示您,数字太小请您重新输入。如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大。系统将提示您,数字太大请您重新输入。如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请从新输入。c.游戏开始时,系统自动记录您猜数字的时间,结束后显示游戏共花费的时间。d.每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。e.在游戏结束时,可以选择关闭游戏,或者再来一局f.游戏结束前可选择直接显示答案三、问题描述1.课程设计的任务:根据所选题目,完成课程设计的分析、设计和编码,写出课程设计报告。(1)掌握Java的语言规范,面向对象的核心概念和特性;(2)掌握Java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等;(3)掌握Java应用软件的开发环境和开发过程;(4)掌握面向对象的思想和程序设计方法。2.课程设计的要求:设计一个猜数字游戏程序,该游戏可以由程序随机产生整数,玩游戏者通过由用户输入数字来匹配上面所产生的数字。用户随机输入数字,当与计算机产生的随机数相符合时,计算机将提醒用户,游戏成功的信息,当有偏差时,将会提醒偏差,如偏大或者是偏小。JAVA程序设计报告5开始游戏注册登陆开始界面记录时间次数产生随机数重新开始显示答案计时模块输出输入模块判断模块模块组成登陆模块系统开始计时由用户输入一个数guess猜小Y产生随机数number系统结束计时系统统计猜数次数及对成绩的评价结束开始G=NGNGN猜大四、模块设计1.系统总体设计2.功能模块设计3.流程图JAVA程序设计报告6五、功能设计1.随机数的产生模块我们可以借助JavaAPI提供的Random类来产生一个随机数。首先在main函数中加入以下代码:Randomrandom=newRandom();number=random.nextInt(100);//产生一个1-100间的随机数2.输入判断模块在游戏界面中输入不合法try{guess=Integer.parseInt(jTextField1.getText());//玩家输入获取}catch(Exceptione){JOptionPane.showMessageDialog(null,请输入一个1-100之间的整数);//显示对话框,输入不合法jTextField1.setText();//清空文本框内容JAVA程序设计报告7jTextField1.requestFocus();return;}3.记录猜测次数模块//记录玩家猜测的次数counter=0;//计数器增加一counter++;4.计时模块计时模块的代码分别写在游戏的开始和游戏的结束,取得时间差,以毫秒为单位。longstartTime=System.currentTimeMillis();longendTime=System.currentTimeMillis();5.输入输出模块//对玩家的输入进行判断。if(guessnumber){JOptionPane.showMessageDialog(null,o(≧v≦)o猜大了);jTextField1.setText();jTextField1.requestFocus();return;}if(guessnumber){JOptionPane.showMessageDialog(null,o(≧v≦)o太小啦);jTextField1.setText();jTextField1.requestFocus();return;}if(guess==number){endTime=System.currentTimeMillis();6.成绩判断模块//判断成绩。switch(counter){case1:JOptionPane.showMessageDialog(null,O(∩_∩)O太给力了吧);break;case2:JAVA程序设计报告8case3:JOptionPane.showMessageDialog(null,OHMYGOD!!!好腻害);break;case4:case5:case6:JOptionPane.showMessageDialog(null,O(∩_∩)O猜对,很不错哦!);break;case7:case8:case9:case10:JOptionPane.showMessageDialog(null,(+﹏+)有点慢,还要多练习);break;default:JOptionPane.showMessageDialog(null,(+﹏+)oh!NO,太慢啦,);break;}六、异常处理我们在运行程序时往往会出现许多错误,而Java语言提供了异常(Exception)处理机制帮助程序员发现并处理异常。所谓异常,就是在程序执行过程中能干扰程序正常流程的事件。导致异常的原因很多,比如文件找不到、数组越界、除以零等。当异常出现时,一个异常对象将被自动生成并传递给Java“运行时环境”,如果“运行时环境”找不到异常句柄,Java程序便会自行中断。try{statement(s);}catch(exceptiontype1name){statement(s);}catch(exceptiontype2name){statement(s);}finally{statement(s);}try语句括起来的语句可能抛出异常。try语句至少要搭配一个catch语句或finally语句,不能单独使用,我设计的猜数字游戏需要从控制台获取玩家输入的数字,有多个异常处理try{JAVA程序设计报告9setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);getContentPane().setLayout(null);}catch(Exceptione){e.printStackTrace();}try{//获取玩家的输入guess=Integer.parseInt(jTextField1.getText());}catch(Exceptione)七、调试分析JAVA程序设计报告10八、不足之处本小游戏还未建立游戏记录部分,无法记录玩家游戏成绩记录和建立游戏排行榜在界面设计方面还较为简单,游戏还有很多可修改和增加难度的地方JAVA程序设计报告11总结经过这几天努力终于完成了这份课设,虽然在操作的过程中我都遇到了许多的困难,但是却使我得到了许多的意外收获。Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。在写代码的过程中我们也遇到了一些的困难,就是对一些有关Java语言的不理解,我便又到课本中去查找。一个项目的成败关键不全在于技术。要JAVA程序设计报告12想在一个愉快的氛围里边以轻松的心情来完成紧张的工作,严谨的态度和工作的热情都是必不可少的。以前上课时有许多的问题并没有真正的认识到,但通过这次试验的制作,使我掌握了许多更重要的知识点。程序附页packageJAVA;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.util.ArrayList;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JPanel;importjavax.swing.JPasswordField;importjavax.swing.JTextField;publicclassLoginextendsJFrame{ArrayListStringnames=newArrayListString();ArrayListStringpwd=newArrayListString();privatestaticfinallongserialVersionUID=1L;publicLogin(){this.setLocation(100,100);this.setSize(400,180);JAVA程序设计报告13this.setTitle(欢迎进入有趣的猜数字小游戏);loginWindow();setLocationRelativeTo(null);//窗口居中显示this.setVisible(true);}publicvoidloginWindow(){JLabelname=newJLabel(请输入玩家姓名:);JLabelpassword=newJLabel(请输入登陆密码:);finalJTextFieldtfName=newJTextField(20);finalJPasswordFieldtfPassword=newJPasswordField(20);JButtonok=newJButton(注册);JButtoncancel=newJButton(登录);JPanelpm=newJPanel();JPanelp1=newJPanel();JPanelp2=newJPanel();JPanelp3=newJPanel();p1.add(name);p1.add(tfName);p2.add(password);p2.add(tfPassword);ok.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventarg0){names.add(tfN

1 / 18
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功