随机产生三位整数(数字0-1000)的彩票。程序提示用户输入一个三位的整数,然后依照下面判定用户是否赢得奖金:
如果用户输入的所有数包括顺序完全匹配彩票数字,奖金是10000美元。
如果用户输入的所有数匹配彩票的所有数字,奖金是3000美元。
如果用户输入的其中一个数匹配彩票号码中的一个数,奖金是1000美元。
运用面向对象的思想编程
package java01;
import java.util.Scanner;
//数字对象
class Number {
public int num;
public int g;// 个位
public int s;// 十位
public int b;// 百位
public Number(int lottery) {
super();
this.num = lottery;
this.g = lottery % 10;
this.s = lottery / 10 % 10;
this.b = lottery / 100;
}
@Override
public String toString() {
return "彩票数字是=" + num;
}
}
//测试类
public class Test {
public static void main(String[] args) {
System.out.print("Please enter three-digits:");
Scanner input = new Scanner(System.in);
int guess = input.nextInt();
while (guess <= 0 || guess >= 1000) {
System.out.println("Error enter,please try again!");
System.out.print("Please enter three-digits:");
guess = input.nextInt();
}
input.close();
// 执行自定义构造方法 初始化对象属性
Number l = new Number((int) (Math.random() * 1000));// 彩票数字对象
Number g = new Number(guess); // 猜的数字对象
System.out.println(l.toString());// 打印彩票号码
fun(l, g);// 判断并输出奖励
}
// 判断奖励方法
private static void fun(Number l, Number g) {
if (l.num == g.num)
System.out.println("you win $10000!");
else if (l.g == g.b && l.b == g.g && l.s == g.s)
System.out.println("you win $3000!");
else if (isContains(l.num, g.g) || isContains(l.num, g.b) || isContains(l.num, g.s)) {
System.out.println("you win $1000!");
} else {
System.out.println("No mattch!");
}
}
// 判断一个三位数字num是否包含一个数字n
private static boolean isContains(int num, int n) {
while (num != 0) {
if (num % 10 == n) {
return true;
}
num /= 10;
}
return false;
}
}