猜数字小游戏JAVA程序报告
- 格式:doc
- 大小:83.00 KB
- 文档页数:12
课程设计任务书学年第一学期面向对象程序设计()课程设计说明书班级名称:计算机科学与技术(对口)学生姓名:徐竹青学号:题目:猜数字游戏指导教师:徐志红起止日期:年月日至年月日计算机与信息工程学院目录.选题背景................................................................................................... 错误!未指定书签。
.设计思路....................................................................................................... 错误!未指定书签。
课程设计思想....................................................................................... 错误!未指定书签。
设计内容......................................................................................... 错误!未指定书签。
设计要求......................................................................................... 错误!未指定书签。
功能需求................................................................................................. 错误!未指定书签。
软硬件运行环境及开发工具................................................................. 错误!未指定书签。
Java课程设计(猜数字游戏)完整版简介猜数字游戏是一个经典的游戏,在这个游戏中,计算机会随机生成一个数字,玩家需要通过猜测来找出这个数字。
这个Java课程设计将带您一步步完成一个完整版的猜数字游戏,从计算机生成随机数到玩家的输入猜测,以及判断猜测结果的正确性,最后给出相应的提示。
步骤1. 确定游戏规则在猜数字游戏中,计算机会生成一个1到100之间的随机数,玩家需要通过输入猜测来找出这个数字。
计算机会根据玩家的猜测给出相应的提示,直到猜对为止。
提示包括猜测的数字与目标数字的大小关系,以及猜测次数。
2. 创建Java项目首先,我们需要创建一个新的Java项目。
你可以选择使用任何IDE,比如Eclipse或IntelliJ IDEA。
创建一个新的Java 项目,并为项目选择一个合适的名称。
3. 定义游戏的主要类我们开始创建游戏的主要类,例如GuessNumberGame。
在这个类中,我们会包含游戏的主要逻辑。
public class GuessNumberGame {// 代码内容}4. 生成随机数在GuessNumberGame类中,我们需要生成一个1到100之间的随机数,作为目标数字。
我们可以使用Java的java.util.Random类来实现。
import java.util.Random;public class GuessNumberGame {private int targetNumber;public void generateTargetNumber() {Random random = new Random();this.targetNumber = random.nextInt(100) + 1;}}5. 获取玩家的猜测接下来,我们需要获取玩家的输入猜测。
可以使用java.util.Scanner来获取控制台输入。
```java import java.util.Scanner;public class GuessNumberGame { private int targetNumber; private Scanner scanner;public GuessNumberGame() {this.scanner = new Scanner(System.in);}public void getGuessFromPlayer() {System.out.print(\。
XXXXXXX 大学实习(实训)报告名称Java程序设计项目实训01猜数游戏2112年12月31日至2013年1月6日共1周院系计算机工程系班级姓名系主任教研室主任指导教师目录目录 (2)一、课程设计的目的与要求 (3)二、题目说明 (3)2.1程序开发背景 (3)2.2开发工具介绍 (4)三、总体设计 (4)3.1.系统总体设计: (4)3.2.系统流程图: (5)3.3功能结构图: (6)四、详细说明 (6)4.1 类与数据结构的实现 (6)4.2 关键算法的实现 (7)4.3 运行结果分析 (11)五、遇到的问题和解决方法 (13)六、课程设计总结 (13)七、参考文献 (14)附录(源程序代码) (14)一、课程设计的目的与要求1) 复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2) 实训为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;3) 培养学生在项目开发中团队合作精神,创新意识及能力。
二、题目说明功能要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语.界面要示:用字符界面实现,也可用图形界面实现.2.1程序开发背景设计一个猜数字游戏程序,要求具体如下特性:(1)趣味性:要求游戏内容丰富多彩,语言风趣幽默。
(2)大众性:要求游戏界面操作简单,游戏规则简单易懂。
(3)合理性:游戏设计严谨,有条理,具体需求如下①输入任意一个数字。
数字的要求是1—100的整数即可。
②系统对您输入的数字进行判断。
如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生成数小.系统将提示您,数字太小请您重新输入。
如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大。
系统将提示您,数字太大请您重新输入。
如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请从新输入。
《面向对象程序设计》课程设计报告题目: 下拉列表运算器设计 专业: xxxxx 班级: xxx 姓名: xx 指导教师: xx 成绩:xxxxxx 年 x 月xx 日xx目录1 设计内容及要求 (1)1.1 课程设计目的 (1)1.2 设计项目名称 (1)1.3 类的结构分布 (1)2 概要设计 (2)2.1系统总体功能 (2)2.2 游戏流程概述 (2)3 设计过程或程序代码 (3)3.1 猜数游戏 (3)3.2功能模块详细设计 (4)3.3 类的设计 (5)4 程序代码调试 (6)4.1程序流程 (6)4.2关键算法及技术实现 (6)4.2.1 随机数的获取 (6)4.2.2 输入输出 (6)4.2.3 判断时间 (7)4.2.4 自动计数 (7)4.2.5 结果输出 (8)4.2.6 图形界面的实现 (8)4.3 类的实现 (9)5设计结果及分析 (10)5.1登录界面 (10)5.2游戏界面 (10)5.3猜数举例 (11)参考文献 (12)1 设计内容及要求功能要求:该程序用图形界面实现下面功能:用计算机产生一个100以内的随机数,游戏者进行猜数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜对为止。
游戏结束后计算出玩家所用的时间及所猜的次数。
1.1 课程设计目的通过设计一个《标准化考试系统设计》,进一步熟悉Java中的概念、基本知识和技能利用所学的基本知识和技能解决简单的面向对象的程序设计问题。
了解系统开发的需求分析、层次设计、模块分解、编码测试、模块组装及整体调试的全过程,加深对Java的理解及eclipse环境的使用:逐步熟悉程序设计的方法,并养成良好的编程习惯。
1.2 设计项目名称猜数游戏设计1.3 类的结构分布图 1 类的分布2 概要设计在设计标准考试设计时,编写了2个Java源文件:GuessShu.java,Dengru.java. 游戏分为随机数的获取,输入输出模块,判断模块,自动计数模块,结果输出模块。
java猜数字实验报告
《Java猜数字实验报告》
在本次实验中,我们利用Java编程语言实现了一个猜数字的小游戏,并进行了
相应的实验和测试。
在游戏中,计算机会随机生成一个数字,玩家需要通过输
入不同的数字来猜测正确的数字,直到猜中为止。
首先,我们使用Java编程语言编写了游戏的代码,并进行了调试和测试。
通过
编写代码,我们实现了游戏的基本功能,包括生成随机数字、接受玩家输入、
判断输入是否正确、给出相应的提示等。
经过多次的测试和修改,我们确保游
戏的逻辑和功能都能够正常运行。
其次,我们进行了游戏的实际测试。
我们邀请了一些志愿者来参与游戏,他们
在游戏中不断输入数字进行猜测,并观察游戏的表现和反馈。
通过实际测试,
我们发现游戏的交互性和趣味性较高,参与者对游戏的体验也非常积极。
最后,我们对游戏进行了性能测试。
我们模拟了大量的游戏场景,并观察了游
戏在不同情况下的表现。
通过性能测试,我们发现游戏在处理大量数据和用户
输入时依然能够保持流畅和稳定,没有出现明显的卡顿和延迟。
综上所述,通过本次实验,我们成功地使用Java编程语言实现了一个猜数字的
小游戏,并进行了相应的实验和测试。
游戏的功能和性能都得到了充分的验证,证明了我们的设计和实现是成功的。
希望通过这次实验,我们能够更深入地理
解和掌握Java编程语言的应用和特性。
《面向对象程序设计》课程设计报告题目:下拉列表运算器设计专业 : XXXXX班级:XXX 姓名:XX 指导教师:XXXXXX 年X 月XX 日XX目录1 设计内容及要求....................................................... 1...1.1 课程设计目的.................................................. 1...1.2 设计项目名称.................................................. 1...1.3 类的结构分布.................................................. 1...2 概要设计............................................................. 2...2.1 系统总体功能................................................... 2...2.2 游戏流程概述................................................... 2...3 设计过程或程序代码................................................... 3...3.1 猜数游戏....................................................... 3...3.2 功能模块详细设计...............................................4..3.3 类的设计....................................................... 5...4 程序代码调试......................................................... 6...4.1 程序流程....................................................... 6...4.2 关键算法与技术实现............................................. 6..4.2.1 随机数的获取............................................. 6..4.2.2 输入输出................................................. 6...4.2.3 判断时间................................................. 7...4.2.4 自动计数................................................. 7...4.2.5 结果输出................................................. 8...4.2.6 图形界面的实现........................................... 8..4.3 类的实现 ....................................................... 9...5 设计结果与分析...................................................... 1..0.5.1登录界面 ...................................................... 1..0.5.2游戏界面 ...................................................... 1..0.5.3猜数举例 ...................................................... 1..1. 参考文献....................................................................... 1..2. .1设计内容及要求功能要求:该程序用图形界面实现下面功能:用计算机产生一个100以内的随机数,游戏者进行猜数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜对为止。
使⽤JavaBean实现猜数字⼩游戏(Web实验)要求:游戏随机给出⼀个1—100(包括1和100)的数字,然后让你猜是什么数字。
游戏会提⽰太⼤或太⼩,从⽽缩⼩结果范围。
实例包含⼀个JavaBean(GessNumber.java)和两个JSP页⾯:guess.jsp,getNumber.jsp。
思路:使⽤ecplise,要通过javaBean实现,那么⾸先创建javaBean,然后再创建产⽣随机数的getNumber.jsp页⾯和可以交互对错的guess.jsp页⾯。
JavaBean:简单的说,JavaBean是遵循特殊规范的Java类。
按功能分,可以分为可视Bean和不可视两类。
可视Bean是在画⾯上可以显⽰的Bean,通过属性接⼝接收数据并显⽰在画⾯。
不可视Bean即JSP中时常使⽤的Bean,在程序的内部起作⽤,如⽤于求值、存储⽤户数据等。
1package chapter;//GuessNumber.java23public class GuessNumber {4private int answer=0;//⽣成的随机数5private int guessNumber=0;//⽤户猜的数6private int guessCount=0;//猜的次数7private String result=null;//返回的结果8private boolean right=false;//判断标志9public void setAnswer(int answer) {10this.answer=answer;11 guessCount=0;12 }13public int getAnswer()//这⾥写错了,写成了getAnser,导致报错Cannot find a method to read property [answer] in a bean of type [chapter.GuessNumber]14 {15return answer;16 }17public void setGuessNumber(int guessNumber) {//javabean必要的每个封装的属性都有set和get⽅法18this.guessNumber=guessNumber;19 guessCount++;20if(guessNumber==answer)21 {22 result="恭喜你,猜对了!";23 right=true;24 }25else if(guessNumber>answer)26 {27 result="对不起,你猜⼤了!";28 right=false;2930 }31else32 {33 result="对不起,你猜⼩了!";34 right=false;35 }36 }37public int getGuessNumber() {38return guessNumber;39 }40public int getGuessCount()41 {42return guessCount;43 }44public String getResult() {45return result;46 }47public boolean isRight() {//boolean型需要isxxx()⽅法48return right;49 }50public void setRight(boolean right)51 {52this.right=right;53 }5455 }需要注意的是ecplise中的javabean需要创建在当前项⽬的src中,先新建packge,再新建class。
Java猜数字游戏程序代码:import java.io.*;class FirstThread extends Thread{PipedInputStream in;DataInputStream dataIn;PipedOutputStream out;DataOutputStream dataOut;FirstThread(){in=new PipedInputStream(); //准备和另外一个线程的输出管道连接的输入管道。
dataIn=new DataInputStream(in);//用数据流从自己的输入管道读取数据。
out=new PipedOutputStream(); //准备和另外一个线程的输入管道连接的输出管道。
dataOut=new DataOutputStream(out); //用数据流向自己的输出管道写入数据。
}public PipedOutputStream getPipedOutputStream(){return out;}public PipedInputStream getPipedInputStream(){return in;}public void run(){int realNmber=(int)(Math.random()*100)+1;try {dataOut.writeUTF("给你一个1至100之间的数,请您猜");while(true){int receiveGuess=dataIn.readInt(); //读取另外一个线程的管道输出流中的数据。
if(receiveGuess>realNmber){dataOut.writeUTF("您猜大了");System.out.printf("\n您的猜测是:%d",receiveGuess);}else if(receiveGuess<realNmber){dataOut.writeUTF("您猜小了");System.out.printf("\n您的猜测是:%d",receiveGuess);}else{dataOut.writeUTF("您猜对了");System.out.printf("\n您的猜测是:%d",receiveGuess);return;}try{sleep(1200);}catch(InterruptedException e){}}}catch(IOException e){}}}class SecondThread extends Thread{PipedInputStream in;DataInputStream dataIn;PipedOutputStream out;DataOutputStream dataOut;SecondThread(){in=new PipedInputStream();dataIn=new DataInputStream(in);out=new PipedOutputStream();dataOut=new DataOutputStream(out);}public PipedOutputStream getPipedOutputStream(){return out;}public PipedInputStream getPipedInputStream(){return in;}public void run(){int gessNumber=(int)(Math.random()*100)+1;int min=0,max=100;while(true){try{String message=dataIn.readUTF(); //读取另外一个线程的管道输出流中的数据。
一、实训背景随着计算机技术的飞速发展,编程已成为当代大学生必须掌握的一项基本技能。
为了提高学生的编程能力和团队协作能力,我们开展了“猜数游戏”实训项目。
该实训项目旨在通过编写一个猜数游戏程序,让学生熟悉并掌握编程的基本概念和技巧,同时锻炼学生的逻辑思维和问题解决能力。
二、实训目标1. 熟悉并掌握编程的基本概念和技巧,如循环、条件判断、函数等。
2. 学会使用编程工具,如Visual Studio、Eclipse等。
3. 提高团队协作能力,培养学生的沟通和协调能力。
4. 培养学生的创新意识和实践能力。
三、实训内容1. 需求分析:分析猜数游戏的基本规则和功能需求。
2. 设计:设计猜数游戏的界面和逻辑结构。
3. 编码:使用编程语言(如Python、Java等)实现猜数游戏。
4. 测试:对猜数游戏进行测试,确保其功能和性能满足需求。
5. 文档编写:编写实训报告,总结实训过程中的经验和教训。
四、实训过程1. 分组与分工:将学生分成若干小组,每组4-6人,明确各成员的分工,如组长、程序员、测试员等。
2. 需求分析:各小组对猜数游戏的基本规则和功能需求进行讨论,形成初步的设计方案。
3. 设计:各小组根据需求分析结果,设计猜数游戏的界面和逻辑结构,包括游戏界面布局、用户交互方式、游戏规则等。
4. 编码:程序员根据设计方案,使用编程语言实现猜数游戏的功能。
在编码过程中,各成员需遵循编码规范,确保代码的可读性和可维护性。
5. 测试:测试员对猜数游戏进行测试,包括功能测试、性能测试、界面测试等,确保游戏运行稳定,无重大错误。
6. 文档编写:各小组整理实训过程中的资料,编写实训报告,总结实训经验和教训。
五、实训结果1. 技术成果:各小组成功实现了猜数游戏,包括游戏界面、用户交互、游戏规则等功能。
2. 团队协作:学生在实训过程中,通过讨论、分工、协作,提高了团队协作能力。
3. 个人能力:学生在实训过程中,掌握了编程的基本概念和技巧,提高了编程能力。
JAVA程序设计报告——猜数字小游戏目录一、猜数字小游戏简介 (4)二、用户需求分析 (4)三、问题描述 (4)1.课程设计的任务2.课程设计的要求四、模块设计 (5)1.课程设计的要求2.功能模块设计3.流程图五、功能设计 (7)1 . 随机数的产生模块2 . 输入判断模块3 . 记录猜测次数模块4.计时模块5.输入输出模块6.成绩判断模块六、异常处理 (9)七、调试分析 (10)八、不足之处 (11)九、总结 (12)十、程序附页 (13)摘要猜数字是一款非常经典的脑力游戏,游戏规则简单,是消磨时间、锻炼脑力的好选择。
通过选择猜数字游戏这个题目,可以让我掌握Java中的包和类,并且可以灵活的使用my eclipse软件。
同时更加深入的了解字符界面的编程过程。
使我更熟练的掌握Java程序框架的搭建和类的创建格式。
在分析阶段,要进行面向对象的需求分析、系统设计、画出相应的需求分析图、系统设计模型图,这些工作更能锻炼我的逻辑思维,更能培养我思考的全面性。
让我学会了多角度思考问题,对我以后的编程奠定了更好的基础。
一、猜数字小游戏简介系统随机产生任意一个1—100的自然数,玩家输入数字,若输入的数字比随机生成数小,系统将提示,数字太小请您重新输入;如果输入的数字比随机生成数大,系统将提示,数字太大请您重新输入;若输入的字符不是合法字符,系统将提示,您输入的数字不合法,请从新输入,游戏开始时,系统自动记录您猜数字的时间和次数,结束后显示游戏共花费的次数和时间及对游戏结果的评价。
二、用户需求分析设计一个猜数字游戏程序,要求具体如下特性:a.输入任意一个数字。
数字的要求是1—100的自然数即可。
b.系统对您输入的数字进行判断。
如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生成数小.系统将提示您,数字太小请您重新输入。
如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数大。
系统将提示您,数字太大请您重新输入。
如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请从新输入。
c. 游戏开始时,系统自动记录您猜数字的时间,结束后显示游戏共花费的时间。
d. 每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。
e. 在游戏结束时,可以选择关闭游戏,或者再来一局f. 游戏结束前可选择直接显示答案三、问题描述1.课程设计的任务:根据所选题目,完成课程设计的分析、设计和编码,写出课程设计报告。
(1)掌握Java的语言规范,面向对象的核心概念和特性;(2)掌握Java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等;(3)掌握Java应用软件的开发环境和开发过程;(4)掌握面向对象的思想和程序设计方法。
2.课程设计的要求:设计一个猜数字游戏程序,该游戏可以由程序随机产生整数,玩游戏者通过由用户输入数字来匹配上面所产生的数字。
用户随机输入数字,当与计算机产生的随机数相符合时,计算机将提醒用户,游戏成功的信息,当有偏差时,将会提醒偏差,如偏大或者是偏小。
四、模块设计1 . Array2 .3 .五、1 .随机数。
Random random = new Random();number = random.nextInt(100); // 产生一个1-100间的随机数2 . 输入判断模块在游戏界面中输入不合法try {guess = Integer.parseInt(jTextField1.getText()); //玩家输入获取}catch (Exception e) {JOptionPane.showMessageDialog(null, "请输入一个1-100之间的整数"); //显示对话框,输入不合法jTextField1.setText(""); //清空文本框内容jTextField1.requestFocus();return; }3 . 记录猜测次数模块// 记录玩家猜测的次数counter = 0;// 计数器增加一counter++;4 . 计时模块计时模块的代码分别写在游戏的开始和游戏的结束,取得时间差,以毫秒为单位。
long startTime = System.currentTimeMillis();long endTime = System.currentTimeMillis();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 . 成绩判断模块// 判断成绩。
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 {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是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言。
在写代码的过程中我们也遇到了一些的困难,就是对一些有关Java 语言的不理解,我便又到课本中去查找。
一个项目的成败关键不全在于技术。
要想在一个愉快的氛围里边以轻松的心情来完成紧张的工作,严谨的态度和工作的热情都是必不可少的。
以前上课时有许多的问题并没有真正的认识到,但通过这次试验的制作,使我掌握了许多更重要的知识点。
程序附页package JA V A;import jpublic class Login extends JFrame {ArrayList<String> names = new ArrayList<String>();ArrayList<String> pwd = new ArrayList<String>();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 stubfor (int i = 0; i < names.size(); i++) {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 JA V A;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("<html>★欢迎进入有趣的猜数字游戏★请输入1~100中的任意一个数:</html>");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);}});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);}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.requestFocus();return;}if (guess < number) {JOptionPane.showMessageDialog(null, "o(≧v≦)o太小啦");jTextField1.setText("");jTextField1.requestFocus();return;}if (guess == number) {endTime = System.currentTimeMillis();JOptionPane.showMessageDialog(null,"您总共猜了" + counter + "次共花了"+ (endTime - startTime) / 1000 + "秒的时间答对正确答案!"); //成绩判断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;}}jTextField1.setText(""); //清空文本框内容jTextField1.requestFocus(); //文本框获取输入焦点setVisible(false); //隐藏原界面}private void jTextField1KeyPressed(KeyEvent evt) {if (evt.getKeyCode() == KeyEvent.VK_ENTER) {jButton1.doClick(); // 文本框按回车键执行“确定”按钮的事件}}public static void main(String[] args) {new GuessNum();}}。