黑马程序员技术交流社区

标题: 随机彩票生成器 [打印本页]

作者: Flyxiang    时间: 2016-12-1 00:37
标题: 随机彩票生成器
package Demo;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;

/*
* 模拟 双色球 彩票机选程序.
双色球规则 :    一共 选 7 个号.  6个红色 , 1 蓝色的
红色球1-33中选6个,号码不能重复. 蓝色球16选1,号码不能重复.
红色   1- 33      
蓝色   1- 16
打印出机选结果 . 格式 :
红球: 12,15,18,20,30,33蓝球: 12 .

*/
public class Demo {

        public static void main(String[] args) {
               
                int[] arr=new int[33];
                //调用向arr数组填充1-33的数字的方法
                getArr(arr);
               
                //创建集合 ,并调用方法添加元素
                ArrayList<Integer> list=new ArrayList<Integer>();
                list=getList(list,arr);
               
               
                //调用数组遍历方法
                //printArr(arr);
               
                //创建彩票数组
                int[] newArr=new int[7];
                newArr=getNewArr(list,newArr);
               
                //将彩票数组冒泡排序
                Arrays.sort(newArr,0,newArr.length-1);
                //打印结果
                printResult(newArr);
               
               
        }
       
        //彩票打印结果的方法
        public static void printResult(int[] arr){
       
                String str1="红球:";
                String str2="篮球:";
               
                for (int i = 0; i < arr.length; i++) {
                       
                        if(i<arr.length-2){
                                str1+=arr[i]+",";
                        }else if(i==arr.length-2){
                                str1+=arr[i];
                        }else{
                                str2+=arr[i]+".";
                        }
                }
                System.out.println(str1+str2);
        }
       
        //数组向集合的转变
        public static ArrayList<Integer> getList(ArrayList<Integer> list,int[] arr){
                for (int i : arr) {
                        list.add(i);
                }
                return list;
        }
        //向arr数组填充1-33的数字的方法
        public static void getArr(int[] arr){
               
                for(int i=0; i<arr.length; i++){
                       
                        arr[i]=i+1;
                }
        }
       
        //遍历数组
        public static void printArr(int[] arr){
                for (int i : arr) {
                        System.out.println(i);
                }
        }
       
        //生成正确的彩票数组
        public static int[] getNewArr(ArrayList<Integer> list,int[] newArr){
                Random sj=new Random();
               
                for (int i = 0; i < newArr.length; i++) {
                        if(i!=newArr.length-1){
                        int index=sj.nextInt(33-i);
                        newArr[i]=list.get(index);
                        list.remove(index);
                        }else{
                                newArr[i]=sj.nextInt(16)+1;
                        }
                }
                return newArr;
        }
       
       
}

作者: xingrong    时间: 2016-12-1 00:53
没看懂

作者: hacker1520    时间: 2016-12-1 01:05


作者: xyy222    时间: 2016-12-1 02:39
看看....
作者: FAN8210    时间: 2016-12-1 06:36
今天就第一阶段考试了,写的没看懂

作者: lieyemu    时间: 2016-12-1 19:00
看看......................
作者: luantianyi    时间: 2016-12-1 22:25
这是第一阶段的么 很难如果学了 set 和 collections 好一点把




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2