Java面向对象实例(双色球摇号篇)
来源:互联网 发布:java身份证识别 编辑:程序博客网 时间:2024/05/16 07:29
要求
1.随机生成几组双色球号码
2.前五个为红号,后一个为蓝号,用”|”隔开
3.用面向对象实现
定义一个类命名为Ball,其中两个属性:a.球的数字
b.球是否已经出现过。
方法: a.球的geters方法
b.球的是否出现的的geters和setters方法
c.以字符串打印球这个对象的方法(小于10补零,大于10不作操作)
package com.lovoinfo;/** * 球(双色球摇奖用的数字球) * * @author Administrator * */public class Ball { private int number;// 摇出的球的数字 private boolean isUsed;// 球是否被用过 /** * 构造器 * * @param number球的号码 */ public Ball(int number) { this.number = number; } /** * number属性访问器 * * @return number球的号码 */ public int getNumber() { return number; } /** * used属性访问器 * * @return 如果球被使用过返回true否则返回false */ public boolean isUsed() { return isUsed; } /** * used属性修改器 * * @param isUsed * true表示球被使用过false表示球没有被使用过 */ public void setUsed(boolean isUsed) { this.isUsed = isUsed; } /** * 如果球的数字小于十,在数字前面补零 * @return <10返回0+number,大于十返回number */ public String getNumStr() { return number < 10 ? "0" + number : "" + number;//条件运算 }}
定义第二个类:
方法:a.球的装载load()
b.摇出蓝色球
c.摇出红色球(保证一个数字只出现一次)
d.排序
f.产生随机号
package com.lovoinfo;import java.util.Arrays;import java.util.Comparator;/** * 双色球摇号机 * * @author Administrator * */public class LotteryMachine { private Ball[] redBalls = new Ball[33]; private Ball[] blueBalls = new Ball[16]; /** * 装入红色球和蓝色球 */ public void load() { for (int i = 0; i < redBalls.length; i++) { redBalls[i] = new Ball(i + 1);// 装好33个红球 } for (int i = 0; i < blueBalls.length; i++) { blueBalls[i] = new Ball(i + 1);// 装好16个蓝色球 } } /** * 摇出一个蓝色球 * * @return 球的对象 */ public Ball getBlueBall() { int randomIndex = (int) (Math.random() * blueBalls.length); return blueBalls[randomIndex]; } /** * 摇出6个红球 * * @return 装红球的数组 */ public Ball[] getRedBalls() { Ball[] balls = new Ball[6]; for (int i = 0; i < balls.length; i++) { Ball tempBall = null; do { int randomIndex = (int) (Math.random() * redBalls.length); tempBall = redBalls[randomIndex];// 把球放在数组里面装起来 } while (tempBall.isUsed());// 确保选的tempBall不是重复的数字,否则重选 balls[i] = tempBall; tempBall.setUsed(true); } Arrays.sort(balls, new Comparator<Ball>() { @Override public int compare(Ball o1, Ball o2) { return o1.getNumber() - o2.getNumber(); } }); return balls; } /** * 生成随机号码 * * @return 随机号码的字符串 */ public String generrateRandomNumber() { load(); Ball[] rBalls = this.getRedBalls(); Ball bBalls = this.getBlueBall(); String str = ""; for (int i = 0; i < rBalls.length; i++) { str += rBalls[i].getNumStr() + " "; } str += "|"; str += bBalls.getNumStr(); return str; }}
命名第三个类:测试类:在控制台输入机选注数,输出机选的注数
package com.lovoinfo;import java.util.Scanner;public class Test01 { public static void main(String[] args) { LotteryMachine lm=new LotteryMachine(); Scanner sc = new Scanner(System.in); System.out.println("机选几注:"); int n=sc.nextInt(); for(int i=0;i<=n;i++){ System.out.println(lm.generrateRandomNumber()); } sc.close(); }}
0 0
- Java面向对象实例(双色球摇号篇)
- java面向对象实例
- java面向对象实例
- java面向对象实例
- Java-面向对象实例--宠物商店
- Java面向对象编程实例详解
- java基础面向对象与实例
- JAVA面向对象--ComputerOperation(实例)
- Java面向对象抽象类实例
- java面向对象高级分层实例_BaseDao
- 简单实例复习java面向对象
- java基础; 面向对象编程; 对象的实例化
- 面向对象小实例
- 面向对象编程实例
- 面向对象实例编程
- 面向对象实例
- 面向对象-结婚实例
- 面向对象-宠物狗实例
- 部署描述文件web.xml解析(一)总述
- Jump
- C# 泛型 基类约束
- java开发中23种设计模式
- LVM详解
- Java面向对象实例(双色球摇号篇)
- Fatal NI connect error 12170.
- Vijos P1142 HXOS(HN2002)题解
- 【多线程_提高篇】 创建高效且可伸缩的结果缓存
- ios学习笔记-Lecture5:UITextView
- Linux vi 我的常用命令
- 实现键盘记录的e.Whick和keyCode
- Java的HashMap和HashTable
- swift语言-隐式解析可选