JAVA思维提升

利用java做一个双色球彩票系统

要求

package ZY;
import java.util.Random;
import java.util.Scanner;
public class Test9双色球 {
//目标:模拟双色球//规则投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1-33中选择;蓝色球号码从1-16中选择。public static void main(String[] args) {//定义一个数组接受输入数字产生的数组int num[]= numbers();System.out.println("您的号码是");pr(num);//定义一个数组接受随机数字产生的数组int num2[] = createNumbers();System.out.println("中奖号码是");pr(num2);//调用中将判断的情况userNumbers(num,num2);//传入客户猜的数字的数组和系统答案的数组}public static void pr(int[] num) {System.out.print("[");for (int i = 0; i < num.length; i++) {System.out.print(i<num.length-1?num[i] + ", ":num[i]);}System.out.println("]");}//第一步:业务分析、用户投注一组号码//1.1、 设计一个方法,用于让用户投注一组号码并返回(前6个是红球号码,最后1个是蓝球号码 )public static int[] numbers() {//1.2、创建一个整型数组,用于存储用户投注的7个号码(前6个是红球号码,最后1个是蓝球号码)int number [] = new int[7];Scanner Y = new Scanner(System.in);// 1.3、遍历前6个位置,让用户依次投注6个红球号码,存入for (int i = 0; i < number.length-1; i++) {//-1是因为最后一位要去存储蓝球while (true) {//放到死循环里面,让他每次都去执行判断//1. 4、开始让用户为当前位置投注一个红球号码(1-33之间,不能重复)System.out.println("请输入第"+(i+1)+"个红球号码(1-33之间)");int num = Y.nextInt();//1.5、先判断用户输入的红球号码是否在1-33之间if (num<1||num>33) {System.out.println("对不起,您输入的红球号码不在1-33之间,请确认!");}//1.6通过上面的if判断了号码是在1-33之间了,接着还要继续判断这个号码是否重复,不重复才可以使用else {//1.6、 定义一个方法来判断是不死与前面输入的号码重复了if ( exist(number,num))//传入数组和输入的数字,返回的是布尔类型,再利用if进行判断{//当返回的是true的时候是重复了System.out.println("对不起,您当前输入的红球号码前面选择过,重复了,请确认!");}else {//此时没重复可以放进数组了number[i]=num;//遍历下标放进数组里面break;//录入成功后,结束死循环}}}}//1.7、投注最后一个蓝球号码while (true)//设置一个死循环,里层也惊醒判断和输出{System.out.println("请您输入最后1个蓝球号码(1-16):");int num = Y.nextInt();//判断是否在蓝球号码的范围里面if (num<1||num>16) {System.out.println("对不起,您输入的蓝球号码范围不对!");}else {//在范围里面直接把号码放进数组的最后一位number[6] = num;break;//录入成功后,结束死循环}}return number;}//创建一个返回布尔类型对数据进行判断是否重复的方法private static boolean exist(int[] number, int num) {for (int i = 0; i < number.length; i++) {if (number[i]==num) {return true;//此时就是重复}}return false;//没有重复的时候返回的代码}
//第二步:随机生成一组中奖号码//2.1、 设计一个方法,随机产生一组号码并返回(前6个是红球号码,最后1个是蓝球号码 )(利用函数组返回)public  static int[] createNumbers(){//2.2、定义一个空数组接受随机数int num2[] = new int[7];Random Q = new Random();for (int i = 0; i < num2.length-1; i++) {//-1是因为最后一位要去存储蓝球//每次遍历产生一个随机数int num = Q.nextInt(33)+1;//这种形式值从1-33都取闭区间//2.3、判断是否与前面的重复,同样需要放进一个死循环中一直执行while (true){if (!exist(num2,num))//此处!exist的意思是因为如果没有重复则false,!false就是true则可以执行后面的代码{num2[i]=num;break;//录入成功后,结束死循环}}}//2.4、产生最后一个蓝球号码int num3 = Q.nextInt(16)+1;//这种形式值从1-16都取闭区间num2[6]=num3;return num2;}
//第三步:判断中奖情况//3.1定义一个进行判断中奖情况的方法public static void  userNumbers(int number1[],int number2[]){//3.2、定义两个变量来接受红球猜中了几个,蓝球猜中了几个int red = 0;int bule = 0;//3.3、需要定义两个循环进行嵌套for (int i = 0; i < number1.length-1; i++) {//-1是因为最后一位要去存储蓝球for (int j = i+1; j < number2.length-1; j++) {if (number1[i]==number2[j]) {//拿外部用户输入的第一个数字对系统产生的数字挨个进行判断是否相等red++;break;//跳出内部的for循环}}}bule = number1[6] == number2[6] ? 1 : 0;//3.4、利用三元判断进行判断最后一个蓝球是不是相等System.out.println("您命中的红球数量是:"+red);System.out.println("您命中的蓝球数量是:"+bule);//3.5、进行判断奖金和中奖情况if (red==6&&bule==1){System.out.println("恭喜您,中奖1000万,可以开始享受人生了~~~");} else if (red==6&&bule==0) {System.out.println("恭喜您,中奖500万,可以稍微开始享受人生了~~~");} else if (red==5&&bule==1) {System.out.println("恭喜您,中奖3000元,可以出去吃顿小龙虾了~");} else if (red==5&&bule==0||red==4&&bule==1) {System.out.println("恭喜您,中了小奖:200元~");} else if (red==4&&bule==0||red==3&&bule==1) {System.out.println("中了10元~");} else if (red<3&&bule==1) {System.out.println("中了5元~~");}else {System.out.println("感谢您对福利事业做出的巨大贡献~~~");}}
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/440472.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ElasticSearch备考 -- Alias

一、题目 1) Create the alias hamlet that maps both hamlet-1 and hamlet-2 Verify that the documents grouped by hamlet are 8 2) Configure hamlet-3 to be the write index of the hamlet alias 二、思考 可以通过指定别名&#xff0c;来指向一个或多个索引&#xff0c…

Java环境配置

下载安装JDK 选择长期稳定的版本jdk-21 安装 安装好之后查看bin目录&#xff0c;里面存放了各种工具命令&#xff0c;有比较重要的javac和java。 javac.exe 是 Java 编译器&#xff0c;用于将 Java 源代码&#xff08;.java 文件&#xff09;编译成字节码&#xff08;.class…

白嫖EarMaster Pro 7简体中文破解版下载永久激活

EarMaster Pro 7 简体中文破解版功能介绍 俗话说得好&#xff0c;想要成为音乐家&#xff0c;就必须先拥有音乐家的耳朵&#xff0c;相信很多小伙伴都已经具备了一定的音乐素养&#xff0c;或者是说想要进一步得到提升。那我们就必须练好听耳的能力&#xff0c;并且把这种能力…

[C语言]指针和数组

目录 1.数组的地址 2.通过指针访问数组 3.数组和指针的不同点 4.指针数组 1.数组的地址 数组的地址是什么&#xff1f; 看下面一组代码 #include <stdio.h> int main() { int arr[5] {5,4,3,2,1}; printf("&arr[0] %p\n", &arr[0]); printf(&qu…

使用C语言进行图形化编程:从入门到实践的全面指南

1. 引言 随着技术的进步和个人电脑性能的提升&#xff0c;图形用户界面&#xff08;Graphical User Interface, GUI&#xff09;已经成为软件开发的重要组成部分。尽管C语言本身并不直接支持GUI编程&#xff0c;但借助各种库和框架&#xff0c;C语言也能成为创建功能强大且美观…

嵌入式硬件设计

嵌入式硬件设计是指针对嵌入式系统&#xff08;一种专用的计算机系统&#xff0c;通常嵌入到其他设备中&#xff09;进行的硬件设计工作。嵌入式系统广泛应用于消费电子、工业控制、医疗设备、汽车电子、航空航天等领域。以下是嵌入式硬件设计的主要内容和步骤&#xff1a; 1.…

【unity游戏开发】彻底理解AnimatorStateInfo,获取真实动画长度

前言 前置知识&#xff1a;设置参数后&#xff0c;下一个循环才会切换对应动画&#xff0c;所以在下一个循环获取真实的动画长度 AnimatorStateInfo是结构体&#xff01;值类型&#xff0c;要不断重复获取才是最新的 主要是自动设置trigger切换的动画自动切回上一个动画&#x…

域名劫持怎么处理?如何判断dns是否被劫持

随着网络环境的日益复杂&#xff0c;网站安全问题也日益凸显。域名劫持怎么处理&#xff1f;域名劫持是网站运营中不容忽视的安全威胁&#xff0c;在遇到域名劫持的时候应该学会应急响应、加强安全防护措施以及持续的安全维护&#xff0c;我们可以有效降低其带来的风险。 域名劫…

时间序列顶会一网打尽!时间序列基础模型的最新进展!

前言 最近时间序列基础模型领域&#xff0c;迎来了里程碑式的突破。 TimeGPT作为首个原生基础模型&#xff0c;于去年八月问世&#xff0c;一发布就震撼了预测领域。 众多其他基础模型也相继发布&#xff0c;包括但不限于&#xff1a; TimesFM MOIRAI Tiny Time Mixers&am…

鸿蒙next开发者第一课02.DevEcoStudio的使用-习题

【习题】DevEco Studio的使用 通过/及格分80/ 满分100 判断题 1. 如果代码中涉及到一些网络、数据库、传感器等功能的开发&#xff0c;均可使用预览器进行预览。F 正确(True)错误(False) 预览器不能进行传感器等特殊功能的开发,需要使用真机开发 2. module.json5文件中的…

C++ 观察者模式

观察者模式&#xff08;Observer Pattern&#xff09;是一种行为设计模式&#xff0c;用于在对象之间建立一对多的依赖关系&#xff0c;当一个对象的状态发生变化时&#xff0c;它的所有依赖对象都会得到通知并自动更新。 在观察者模式中&#xff0c;主题和观察者之间是松耦合…

Vue - 路由用法

前端路由就是URL中的hash与组件之间的对应关系。Vue Router是Vue的官方路由。 组成&#xff1a; VueRouter&#xff1a;路由器类&#xff0c;根据路由请求在路由视图中动态渲染选中的组件。<router-link>&#xff1a;请求链接组件&#xff0c;浏览器会解析成<a>。…

CentOS 7文件系统

从centos7开始&#xff0c;默认的文件系统从ext4变成了XFS。随着虚拟化的应用越来越广泛&#xff0c;作为虚拟化磁盘来源的大文件&#xff08;单个文件几GB级别&#xff09;越来越常见。 1.XFS组成部分&#xff1a; XFS文件系统在数据的分布上主要划分为三部分&#xff1a;数据…

(笔记)第三期书生·浦语大模型实战营(十一卷王场)–书生基础岛第5关---XTuner 微调个人小助手认知

学员闯关手册&#xff1a;https://aicarrier.feishu.cn/wiki/ZcgkwqteZi9s4ZkYr0Gcayg1n1g?open_in_browsertrue 课程视频&#xff1a;https://www.bilibili.com/video/BV1tz421B72y/ 课程文档&#xff1a; https://github.com/InternLM/Tutorial/tree/camp3/docs/L1/XTuner 关…

3. BBP系列运动控制板(飞控板)简介

3.1. 概述 Bread Board Pilot(简称BBP) 是在积累了前期 Single Pilot 及 PH7 飞控板大量设计及使用经验的基础上&#xff0c;全新基于PH47代码框架开发的高灵活性&#xff0c; 高性能&#xff0c; 超低成本的最新一代飞控板设计。 目前&#xff0c;因为其使用便捷灵活&#xf…

晶体管最佳效率区域随频率逆时针旋转原因分析

晶体管最佳效率区域随频率逆时针旋转原因分析 在功率放大器的设计时&#xff0c;晶体管最佳区域随频率逆时针旋转。但是&#xff0c;对于一般的微带电路&#xff0c;匹配阻抗区域是随着频率顺时针旋转的&#xff08;也有称这个特性是Foster特性&#xff09;&#xff0c;因此功…

基于ssm 和uniapp 开发的微信小程序的学生选课系统设计与实现

博主介绍&#xff1a;专注于Java&#xff08;springboot ssm 等开发框架&#xff09; vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不…

传感器模块编程实践(二)W5500 SPI转以太网模块简介及驱动源码

文章目录 一.概要二.W5500芯片介绍W5500通讯协议介绍 三.W5500模块介绍四.W5500模块原理图五.W5500以太网模通讯实验六.CubeMX工程源代码下载七.小结 一.概要 我们介绍过单片机的以太网系统一般是由&#xff1a;单片机MACPHYRJ45。有些单片机比如STM32F407VET6芯片内部自带MAC…

事件抽取(Event Extraction, EE)

一、引言 事件抽取&#xff08;Event Extraction, EE&#xff09;是信息抽取领域中的一个重要任务&#xff0c;旨在从非结构化文本中识别和抽取事件相关的信息。事件抽取通常包括识别事件触发词、事件类型以及事件中的参与者、时间、地点等元素&#xff0c;最终将这些信息结构…

Excel中的屠龙大招

indirect的地位部分动摇&#xff0c;神坛下已初生大力骑士——“”。 (笔记模板由python脚本于2024年10月06日 18:57:11创建&#xff0c;本篇笔记适合同时喜欢python和Excel的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&…