Java模拟生成双色球

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java模拟生成双色球相关的知识,希望对你有一定的参考价值。

考题 一(50分)要求写出一个程序,运行程序后在控制台能显示出 6个不重复的数字(1到33之间)即红球和一个篮球(1到16之间)数字,生成格式如下:生成的红球为: 02 06 12 17 19 27 30生成的篮球为: 05注意事项: 1. 将写好的程序运行10次以上,都未生成重复的红球则算完成项目。 2. 如何避免重复是本题的关键考题二(50分):在考题一的基础上增加需求,客户想模拟一下买多少注双色球能中一等奖。请在考题一的基础上帮客户设计程序,能模拟出结果。 提示: 1 . 可以先生成一注双色球作为一 可以先生成一注双色球作为等奖的双色球开奖号,保存。 2 . 不停的生成双色球,每生成一注就和一等奖双色球号进行比较,如果相同则程序停止。(在生成的过程中,用一个变量记住生成次数)考题三(拔高题):我们设计的程序已经让用户知道双色球中一等奖的难度了,但是用户不甘心,用户希望我们能升级我们的程序,实现这个功能:用户在控制台输入固定的金额,程序能够帮我们模拟出指定金额能生成多少注一等奖,多少注二等奖,多少注三等奖 ……。如:用户输入了500W,那么程序经过运算后控制台打印出如下效果(假设一等奖500W 二等奖 150W): 用户您好,您投入的5000000公得到收益如下: 中一等奖 0注 中二等奖 1注 中三等奖 4注 中四等奖 1注 中五等奖 3注 中六等奖 4注共计中得奖金:220000元

参考技术A public void main (String[] args)
int[] red=new int[7];
int blue=0;
for(int i=0;i<7;i=i+1)
red[i]=getRandom(33);
//判断重复
while(true)
boolean needcheck=false;
for(int k=0;k<i;k=k+1) if(red[i]==red[k]) needcheck=true;
if(needcheck)red[i]=red[i]+1; if(red[i]==34)red[i]=1elsebreak;

//判断重复结束

//红球赋值结束
blue=getRandom(16);
System.out.println("生成的红球为:"+ red[0]+red[1]+red[2]+red[3]+red[4]+red[5]+red[6]);
System.out.println("生成的蓝球为:"+ );


public int getRandom(int Max)
return Math.floor(Math.random()*33)+1;
本回答被提问者和网友采纳
参考技术B package Sumary918;

import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
/**
* 模拟双色球购买
* @author Administrator
*
*/
public class Asq
public static void main(String[] args)

//中奖提示
String falg="";
//中奖总金额
int Sum=0;
//中奖注数
int m=0;
//每注中奖金额
int je=10000000;

Mains ssq = new Mains();
Scanner scanner=new Scanner(System.in);

System.out.println("请输入您要购买的彩票数量(单位/注)");
int n=scanner.nextInt();

List<String> list = ssq.getXhao(n);
for (int i = 0; i < list.size(); i++)
System.out.println("第" + (i + 1) + "注:" + list.get(i));

if (list.get(i).equals(Mains.cp))
Sum+=Sum;
m+=i;
falg="恭喜你中奖了!";
else
falg="然而您,并没有中奖!";



System.out.println("\n本期中奖号码为:"+Mains.cp);
System.out.println(falg);




class Mains

static final String cp= getQq();
/**
* 返回6个编号不重复的红球和一个蓝球
*
* @return
*/
public static String getQq()
String st1 = "";
Map<Integer, Object> map = new LinkedHashMap<Integer, Object>();
for (int i = 0; map.size()<6; i++)
// 红球
map.put((int) (Math.random() * 33) + 1, "");


Set kesSet = map.keySet();
for (Object ob : kesSet)
st1 += " " + ob;


// 蓝球
int bule = ((int) (Math.random() * 16)+1);

return st1 + " " + bule;


/**
* 根据传入的参数n生成n注双色球
*
* @param n
* @return
*/
public List<String> getXhao(int n)
List<String> list = new ArrayList<String>();
for (int i = 0; i < n; i++)
list.add(this.getQq());

return list;

Java基础练习题7--猜拳游戏,模拟双色球功能,统计词语次数,判断大写字母,敏感词过滤程序


1.猜拳游戏


1表示石头,2表示剪刀,3表示布
接收用户输入的拳 并输出 ,然后电脑随机产生一个数 对比输赢
欢迎来到游戏中心
请用户出拳(1表示石头,2表示剪刀,3表示布)

import java.util.Random;
import java.util.Scanner;
/**
 * @create 2021-05-17 19:01
 * 出拳游戏:1表示石头,2表示剪刀,3表示布
 *    接收用户输入的拳  并输出 ,然后电脑随机产生一个数 对比输赢
 *    欢迎来到游戏中心
 *    请用户出拳(1表示石头,2表示剪刀,3表示布)
 */
public class ShiTouJiandaoBU {
    public static void main(String[] args) {
        ShiTouJiandaoBU stb=new ShiTouJiandaoBU();
        System.out.println("出拳游戏:1表示石头,2表示剪刀,3表示布");
        stb.game();
    }
    //用户:Y;电脑:C;
    public void game() {
        outer:
        for (int i = 0; i <100 ; i++) {
            Scanner s = new Scanner(System.in);
            System.out.println("请您出拳!");
            int Y = s.nextInt();
            System.out.println("电脑出拳");
            //这里用了Random类随机数的特点;
            Random r = new Random();
            //让电脑在1-3之间随机出拳;
            int C = (r.nextInt(3) + 1);
            System.out.println(C);
            //人类胜利时;
            if (Y == 1 && C == 2 || Y == 2 && C == 3 || Y == 3 && C == 1) {
                System.out.println("<用户出拳>----->" + check(Y) + "<电脑出拳>----" + check(C) + "<====用户胜利>");
            }
            //机子胜利时;
            else if (Y == 1 && C == 3 || Y == 2 && C == 1 || Y == 3 && C == 2) {
                System.out.println("<用户出拳>-----" + check(Y) + "<电脑出拳>-----" + check(C) + "<====电脑胜利>");
            }
            //用户和机子平局了
            else if (Y == 1 && C == 1 || Y == 2 && C == 2 || Y == 3 && C == 3) {
                System.out.println("平局");
            } else {
                //不小心输入了别的数字,提示无效;
                System.out.println("你们的比赛无效!请重新开始!");
                continue outer;
            }
        }
    }
    //进行检测出拳的识别;
    public String check(int q){
        if(q==1){
            return"石头";
        }if(q==2){
            return"剪子";
        }if(q==3){
            return"布";
        }
        else{
        return "无效的出拳";
        }
    }
}


2.模拟双色球摇奖功能


要求:每次随机从1-33的数字中随机取出5个不重复的数据
按照从小到大的顺序输出.

import java.util.Arrays;
import java.util.Random;
/**
 * @create 2021-05-17 19:25
 * 模拟双色球摇奖功能
 * 要求:每次随机从1-33的数字中随机取出5个不重复的数据
 * 按照从小到大的顺序输出.
 */
public class CaiPiaoDemo {
    public static void main(String[] args) {
        shseQ();
    }
    //将模拟的双色球功能写在一个静态方法中;
    public static  void shseQ(){
        //创建Random类;
        Random random =new Random();
        //创建数组;
        int[] array=new int[5];
        //定义数组的索引i;
        int i=0;
        while(true){
            //定义随机数r;(在1-33之间)
            int r=random.nextInt(33)+1;
            boolean res=true;
            for (int j = 0; j < array.length; j++) {
                if(array[j]==r){
                    res=false;
                }
            }
            //当抽到重复数组时,取消输出;
            if(res){
                array[i]=r;
                i++;
            }
            //当提取到5个元素时;停止;
            if(i==5){
                break;
            }
        }
        //排序;
        Arrays.sort(array);
        //输出:
        System.out.print("您的号码为:");
        System.out.println(Arrays.toString(array));
    }
}

3.统计某个词语的出现次数


以下是一段歌词,请从这段歌词中统计出朋友出现的次数。

  • “这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。
  • 朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。”;
/**
 *以下是一段歌词,请从这段歌词中统计出朋友出现的次数。
 * “这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。
 * 朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。”;
 */
public class TongJiPengyou {
    public static void main(String[] args) {
        String s=new String("这些年一个人,风也过,雨也走,有过泪,有过错, 还记得坚持甚么,真爱过才会懂,会寂寞会回首,终有梦终有你在心中。 朋友一生一起走,那些日子不再有,一句话,一辈子,一生情,一杯酒。朋友不曾孤单过,一声朋友你会懂,还有伤,还有痛,还要走,还有我。");
        int number=0;
        String p="朋友";
        //定义开始索引和结束索引位置;
        int start=0;
        int end=0;
        while(true){
            //使用indexOf方法拿到"朋友"第一次出现的位置;
            start=s.indexOf("朋友",start);
            end=start+2;
            if(start>0){
                //使用substring进行截取判断;
                p=s.substring(start,end);
                start++;
                number++;
            }
            else{
                break;
            }
        }
        System.out.println("出现次数为"+number);
        /*//粗略计算出现3次;
        System.out.println("字符串长度为:"+s.length());//121
        int a1=s.indexOf(p,0);
        System.out.println("第一次获取的位置:"+a1);//57
        System.out.println(s.substring(a1,a1+2));
        int a2=s.indexOf(p,a1+2);
        System.out.println("第二次获取的位置:"+a2);//89
        System.out.println(s.substring(a2,a2+2));
        int a3=s.indexOf(p,a2+2);
        System.out.println("第三次获取的位置:"+a3);//99
        System.out.println(s.substring(a3,a3+2));
        int a4=s.indexOf(p,a3+2);
        System.out.println("第四次获取的位置:"+a4);//不存在
        System.out.println(s.substring(a4,a4+2));*/
    }
}


4.判断输入的字母是否为大写字母


从控制台输入一个字母,判断是否大写字母.

import java.util.Scanner;
/**
 * @create 2021-05-17 19:42
 * 从控制台输入一个字母,判断是否大写字母.
 */
public class PanDuanZiMu {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        panduan(scanner);
    }
    //判断是否为大写字母的方法;
    public static void panduan(Scanner scanner){
        System.out.println("请输入一个字母");
        String s=scanner.next();
        //通过substring方法来获取到第一个字符;
        // 然后再用matches方法进行判断;
        //[A-Z] 是匹配大写字母;
        boolean res=(s.substring(0,1)).matches("[A-Z]");
        if(res==true){
            System.out.println("输入的是第一个字符是大写字母");
        }
        else{
            System.out.println("输入的第一个字符不是大写字母");
        }
    }
}

5.编写敏感词过滤程序


编写敏感词过滤程序 `说明:在网络程序中,聊天软件中,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。 这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉。`
/**
 * 编写敏感词过滤程序
 * 说明:在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。
 * 如“变性”、“涩情”、“爆炸的”、“恐怖的”、“***枪”、“军火的”等,这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉。
 */
public class GuoLvQi{
    public static void main(String[] args) {
    String s="兵器例如发现的某个的兵器的的人出现的枪械的活动时什么兵器dde212s兵器.";
    guolv(s);
    }
    //敏感词过滤程序
    public static void guolv(String s){
        String[] mgc={"发现了","变性","涩情","兵器","爆炸的","恐怖的","军火的","***枪"};
        for (int i = 0; i < mgc.length; i++) {
            for (int j = 0; j < s.length(); j++) {
                //字符串包含了敏感词时;
                if (s.contains(mgc[i])) {
                    //遍历记录出现的位置,并且遍历字符串来调整位置
                    int a = s.indexOf(mgc[i], j);
                    //截取敏感字符;
                    String s1 = s.substring(a, a + 3);
                    //替换敏感词;
                    s = s.replaceAll(s1, "???");
                }
            }
        }
        //输出过滤后的字符;
        System.out.println(s);
    }
}

以上是关于Java模拟生成双色球的主要内容,如果未能解决你的问题,请参考以下文章

基于Java SE的模拟双色球彩票系统

使用Java数组实现双色球选号

Java基础项目(模拟双色球抽奖系统)

Java基础项目(模拟双色球抽奖系统)

Java 用两个一维数组实现双色球彩票

java day2一个模拟双色球的代码