三位数彩票问题(面向对象)

随机产生三位整数(数字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;
	}

}

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WaitIKnowYou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值