猜数游戏
基本功能:系统随机产生一个1到100间的整数,要求用户从键盘输入一个整数,如果数值小于随机值,系统提示“小了”;如果数字大于随机值,,则提示“大了”;如果猜中,提示“成功...
基本功能:系统随机产生一个1到100间的整数,要求用户从键盘输入一个整数,如果数值小于随机值,系统提示“小了”;如果数字大于随机值,,则提示“大了”;如果猜中,提示“成功”。如果用户输入非法数据,系统给予“输入有误的”提示。
要求:
1、设计图形用户界面
2、时钟计时或者限定时间,并以进度条显示剩余时间
3、显示历史数据,为用户提供参考
4、设置计数器,显示猜数次数
猜数游戏示例:
import java.awt.*;
import javax.swing.*;
public class Test{
public static void main(String args[]){
int rnd=(int)(Math.random()*100)+1;
int counter=1;
while(true) {
String str=javax.swing.JOptionPane.showInputDialog("请输入数据:");
char[] sarray =str.toCharArray();
for(int c=0;c<sarray.length;c++)
if(!Character.isDigit(sarray[c])) {
javax.swing.JOptionPane.showMessageDialog(null,"错误输入!");
System.exit(0);
}
int i=Integer.parseInt(str);
if(i<rnd)
javax.swing.JOptionPane.showMessageDialog(null,"小了");
else if(i>rnd)
javax.swing.JOptionPane.showMessageDialog(null,"大了");
else {
javax.swing.JOptionPane.showMessageDialog(null,"成功!\n你猜了 "+ counter + " 次!");
System.exit(0);
}
counter++;
}
}
}
这个程序的设计还不是很合理,也不够健壮。若单击“确定”以外的按钮,或者未输入数据而单击“确定”按钮,程序会出现异常情况。
=================================================================
求教:要怎样改才合理呢? 展开
要求:
1、设计图形用户界面
2、时钟计时或者限定时间,并以进度条显示剩余时间
3、显示历史数据,为用户提供参考
4、设置计数器,显示猜数次数
猜数游戏示例:
import java.awt.*;
import javax.swing.*;
public class Test{
public static void main(String args[]){
int rnd=(int)(Math.random()*100)+1;
int counter=1;
while(true) {
String str=javax.swing.JOptionPane.showInputDialog("请输入数据:");
char[] sarray =str.toCharArray();
for(int c=0;c<sarray.length;c++)
if(!Character.isDigit(sarray[c])) {
javax.swing.JOptionPane.showMessageDialog(null,"错误输入!");
System.exit(0);
}
int i=Integer.parseInt(str);
if(i<rnd)
javax.swing.JOptionPane.showMessageDialog(null,"小了");
else if(i>rnd)
javax.swing.JOptionPane.showMessageDialog(null,"大了");
else {
javax.swing.JOptionPane.showMessageDialog(null,"成功!\n你猜了 "+ counter + " 次!");
System.exit(0);
}
counter++;
}
}
}
这个程序的设计还不是很合理,也不够健壮。若单击“确定”以外的按钮,或者未输入数据而单击“确定”按钮,程序会出现异常情况。
=================================================================
求教:要怎样改才合理呢? 展开
2个回答
展开全部
偶也是初学Java,但楼上的情况偶也遇过~
偶当时的解决方法是:
单独写一个getNumber方法,并且可以抛出一个自定义异常UserCancelException表示用户点击了“确定”之外的按钮,然后交给主程序决定是否退出
(顺道一说,已经写了import javax.swing.*,那后面就不需要写成javax.swing.JOptionPane,直接写JOptionPane就行了)
大概代码如下
import javax.swing.*;
class Demo {
private static int getNumber() throws UserCancelException{
for(;;) { //建立死循环,当数据无效时再次提示输入
String str = JOptionPane.showInputDialog("请输入数据:");
//若没点确定,showInputDialog会返回一个null
if (str == null) throw new UserCancelException();
if (str.equals("")) { //判断是否空
//单纯显示信息,用showMessageDialog方法
JOptionPane.showMessageDialog(null, "不能为空!","错误", JOptionPane.ERROR_MESSAGE);
} else {
try {
int num = Integer.parseInt(str); //格式有效性交给parseInt去判断,它会抛出NumberFormatException
return num;
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(null, "请输入正确数值!", "错误", JOptionPane.ERROR_MESSAGE);
}
}
}
}
public static void main(String[] args) {
try {
System.out.println(getNumber());
} catch(UserCancelException ex) {
//捕捉到UserCancelException的话,说明用户想退出游戏
//当然也可以在getNumber中捕获此异常并退出,只是通常
//不会在子函数里写退出语句
System.exit(0);
}
}
}
//自定义的异常
class UserCancelException extends Exception {
}
偶当时的解决方法是:
单独写一个getNumber方法,并且可以抛出一个自定义异常UserCancelException表示用户点击了“确定”之外的按钮,然后交给主程序决定是否退出
(顺道一说,已经写了import javax.swing.*,那后面就不需要写成javax.swing.JOptionPane,直接写JOptionPane就行了)
大概代码如下
import javax.swing.*;
class Demo {
private static int getNumber() throws UserCancelException{
for(;;) { //建立死循环,当数据无效时再次提示输入
String str = JOptionPane.showInputDialog("请输入数据:");
//若没点确定,showInputDialog会返回一个null
if (str == null) throw new UserCancelException();
if (str.equals("")) { //判断是否空
//单纯显示信息,用showMessageDialog方法
JOptionPane.showMessageDialog(null, "不能为空!","错误", JOptionPane.ERROR_MESSAGE);
} else {
try {
int num = Integer.parseInt(str); //格式有效性交给parseInt去判断,它会抛出NumberFormatException
return num;
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(null, "请输入正确数值!", "错误", JOptionPane.ERROR_MESSAGE);
}
}
}
}
public static void main(String[] args) {
try {
System.out.println(getNumber());
} catch(UserCancelException ex) {
//捕捉到UserCancelException的话,说明用户想退出游戏
//当然也可以在getNumber中捕获此异常并退出,只是通常
//不会在子函数里写退出语句
System.exit(0);
}
}
}
//自定义的异常
class UserCancelException extends Exception {
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询