package com.eduask.test;
import java.util.Scanner;
/**
* 1、完整模拟双色球开奖(需要使用到逻辑运算符、if else、while、for、数组排序、数组比对)
数字要求: 无论自选或机选实现红球不重复
6个红球号码不能重复,数字只能为1~33中的任意数字
一个蓝球号码可以和红球重复,但数字只能为1~16中的任意一个
a、用户选号:
方式一自选:让用户输入6个红球号码、输入1个蓝球号码
方式二机选:随机抽取6个红球1个蓝球
输出用户选号结果(应对结果进行排序)
b、系统随机生成开奖号码:
抽取6个红球号码、1个蓝球号码
输出系统开奖号码(应对结果进行排序)
c、公布用户的中奖情况(一等奖,二等奖,三等奖...)
*
*
*/
public class Ch01 {
static Scanner sc=new Scanner(System.in);//实例化输入对象 全局变量
public static void main(String[] args) {
int [] reds=new int[6]; //存放红色球
int blue=-1;//存放蓝球
System.out.println("欢迎来到J18福利彩票");
System.out.println("请选择购买方式 1、手选 2、机选");
int xz=sc.nextInt();//选择方式
if(xz==1){
//手选
//因为我们不知道要输入多少次才是不重复的6个红色球,所以定义一个死循环
for(int i=0;i<reds.length;i++){
System.out.println("请输入第"+(i+1)+"个号码:");
reds[i]=sc.nextInt();//存放输入的红色球号码
if(reds[i]<1||reds[i]>33){
System.out.println("你输入的号码超出范围,请重新输入~!");
i--;
}
//循环比较
for(int j=0;j<i;j++){
//判断 数组的数据是否有重复
if(reds[j]==reds[i]){
System.out.println("你输入的红色号码有重复");
i--;
break;
}
}
}
for(;;){
System.out.println("请输入蓝色球号码:");
blue=sc.nextInt();
if(blue>0&&blue<17){
break;
}
}
}else{
//机选 调用机选方法,返回机选的红色数组
reds=getRed();
// getRed();
blue=(int)(Math.random()*16+1);
}
//福利中彩票生成
int [] jReds=getRed();
int Jlue=(int)(Math.random()*16+1);
int count=0;
//使用穷举法 进行比对
for(int i=0;i<reds.length;i++){
for(int j=0;j<jReds.length;j++){
//如果号码一致 自增
if(reds[i]==jReds[j]){
count++;
}
}
}
System.out.println("你的号码是:");
for(int i=0;i<reds.length;i++){
System.out.print(reds[i]+"\t");
}
System.out.println(blue);
System.out.println("开奖号码是:");
for(int i=0;i<jReds.length;i++){
System.out.print(jReds[i]+"\t");
}
System.out.println(Jlue);
if(blue==Jlue&&count<3){
System.out.println("六等奖,5块,可以吃个油条");
}else if(count==4&&blue!=Jlue){
System.out.println("五等奖、10块,2两面");
}else if(count==3&&blue==Jlue){
System.out.println("五等奖、10块,2两面");
}else if(count==5&&blue!=Jlue){
System.out.println("四等奖、200块,私房牛肉面");
}else if(count==4&&blue==Jlue){
System.out.println("四等奖、200块,私房牛肉面");
}else if(count==6&&blue==Jlue){
System.out.println("三等奖、3000块");
}else if(count==6&&blue!=Jlue){
System.out.println("二等奖、100000块");
}else if(count==6&&blue==Jlue){
System.out.println("一等奖、5000000块");
}else{
System.out.println("继续努力吧,少年");
}
}
/**
* 方法
* @return
*/
//返回机选的红色球号码
//公共的静态方法 这个方式的返回类型 方法名字(见名知意)
public static int [] getRed(){
//6个红色球数组
int reds[]=new int[6];
//循环数组
for(int i=0;i<reds.length;i++){
reds[i]=(int)(Math.random()*33+1);
//循环比较
for(int j=0;j<i;j++){
//判断 数组的数据是否有重复
if(reds[j]==reds[i]){
i--;
break;
}
}
}
return reds;
}
}
package com.eduask.demo;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
// TODO Auto-generated method stub
one();
// two();
// three();
// four();
// five();
// six();
}
/**
* 1.使用随机数给一个10个元素的一维数组赋值,对10个整数排序。
*/
public static void one(){
int [] nums={12,15,18,28,38,138,848,1};
//选择排序
// for(int i=0;i<nums.length;i++){
// for(int j=i+1;j<nums.length;j++){
// if(nums[i]>nums[j]){
// int temp=nums[i];
// nums[i]=nums[j];
// nums[j]=temp;
// }
// for(int k=0;k<nums.length;k++){
// System.out.print(nums[k]+"\t");
// }
// System.out.println();
// }
// System.out.println();
// }
//
// for(int i=0;i<nums.length;i++){
// System.out.print(nums[i]+"\t");
// }
//冒泡排序
for(int i=0;i<nums.length;i++){
for(int j=0;j<nums.length-i-1;j++){
if(nums[j]>nums[j+1]){
int temp=nums[j];
nums[j]=nums[j+1];
nums[j+1]=temp;
}
for(int k=0;k<nums.length;k++){
System.out.print(nums[k]+"\t");
}
System.out.println();
}
System.out.println();
}
for(int i=0;i<nums.length;i++){
System.out.print(nums[i]+"\t");
}
}
/**
* 2.将一个数组倒序输出
如:原数组:{56,89,4,1,3,69}
输出后:{69,3,1,4,89,56}
*/
public static void two(){
int [] nums={56,89,4,1,3,69};
System.out.print("{");
//注意数组长度值问题,在初始化i的时候,需要 数组.length-1
for(int i=nums.length-1;i>=0;i--){
if(i==0){
System.out.print(nums[i]);
}else{
System.out.print(nums[i]+",");
}
}
System.out.println("}");
}
/**
* 3.使系统生成50个0-9之间的随机数,将每个数字出现的次数
存入一个一维数组中,统计出现次数最多和出现次数最少的数字,及出现次数
和出现频率。
*/
public static void three(){
int [] nums=new int[10];
for(int i=0;i<50;i++){
int num=(int)(Math.random()*10);//随机生成0-9
nums[num]++;//生成随机数 对应下标位置 自增
}
int maxIndex=0;//存储出现最多次数的下标
int minIndex=0;//存储出现最少次数的下标
//循环数组
for(int i=1;i<nums.length;i++){
//比较大小 交换位置
if(nums[maxIndex]<nums[i]){
maxIndex=i;
}
//比较大小 交换位置
if(nums[minIndex]>nums[i]){
minIndex=i;
}
}
//循序数组,比较数组中是否存在和最多最少 一致的次数
for(int i=0;i<nums.length;i++){
if(nums[maxIndex]==nums[i]){
System.out.println("最多的数是:"+i+","
+ "出现了"+nums[i]+",出现的频率:"+(nums[i]/50.0));
}
if(nums[minIndex]==nums[i]){
System.out.println("最少的数是:"+i+","
+ "出现了"+nums[i]+",出现的频率:"+(nums[i]/50.0));
}
}
}
/**
* 4.定义一个二维数组,在定义时给定数组长度,并通过输入为该数组赋值
*/
public static void four(){
int [][] nums=new int[3][4];
Scanner sc=new Scanner(System.in);
//循环第一层数组
for(int i=0;i<nums.length;i++){
for(int j=0;j<nums[i].length;j++){
System.out.println("请输入第"+(i+1)+"层数组的第"+(j+1)+"个的数据:");
nums[i][j]=sc.nextInt();
}
}
for(int i=0;i<nums.length;i++){
for(int j=0;j<nums[i].length;j++){
System.out.println("请输入第"+(i+1)+"层数组的第"+(j+1)+"个的数据:"+nums[i][j]);
}
}
}
/**
* 5、定义一个第一层长度为3的二维数组,通过随机数为每层数组定义长度,并通过length得到该数组的每层长度
*/
public static void five(){
/**
* 数组的维度不管多少,,一定是从最外层进行剥离
*/
int [][]nums=new int[3][];
//循环第一层数组
for(int i=0;i<nums.length;i++){
//定义一个一维数组 长度随机生成 然把这个一维数组赋值给第一层的对应下标位
nums[i]=new int[(int)(Math.random()*9)];
}
for(int i=0;i<nums.length;i++){
System.out.println(nums[i].length);
}
}
/**
* 6、三个同学四门课程
1、为每位同学的每门课程打分
2、求每个同学的平均分
3、求每门课程的平均分
4、求所有成绩中的最高分
5、求所有成绩中100分有几个。
*/
public static void six(){
int [][] nums=new int[3][4];
Scanner sc=new Scanner(System.in);
int max=-1;//存放的是最高分
int count=0;//存放的是100分的有多少个
//找的是每个同学
for(int i=0;i<nums.length;i++){
int tongxueavg=0;
//找的是没门课程
for(int j=0;j<nums[i].length;j++){
System.out.println("请输入第"+(i+1)+"个同学的第"+(j+1)+"课的成绩:");
nums[i][j]=sc.nextInt();// 打分
tongxueavg+=nums[i][j];//统计每个同学的总分数
//比较出所有同学的最高分数
if(max<nums[i][j]){
max=nums[i][j];
}
//记录100多少个
if(100==nums[i][j]){
count++;
}
}
System.out.println("第"+(i+1)+"个同学的平均分是:"+(tongxueavg/4));
}
System.out.println("最高分是:"+max);
System.out.println("100分成绩有"+count+"个。");
//因为我们需要统计的是 4门课程,所有外层循序4次,内层循环3次,
for(int i=0;i<4;i++){
int fs=0;
for(int j=0;j<3;j++){
fs+=nums[j][i]; //取值的层次是没有改变的
}
System.out.println("第"+(i+1)+"门课程的平均分:"+(fs/3));
}
}
}
package com.eduask.test;
import java.util.Scanner;
public class ATM {
static double money=0.0;//创建一个账户,金额0.0
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
for(;;){
System.out.println("欢迎来到爱存不存银行");
System.out.println("请选择交易类型:1 存钱 2 取钱 3 查询余额 4 退出");
int num=sc.nextInt();
if(num==1){
System.out.println("你的存款金额为:");
double m=sc.nextDouble();
add(m);
}else if(num==2){
System.out.println("你的取款金额为:");
double m=sc.nextDouble();
if(m>money){
System.out.println("余额不足");
}else{
if(m%100==0){
jian(m);
}else{
System.out.println("该机器只提供100元面值存取");
}
}
}else if(num==3){
query();
}else{
break;
}
}
}
/**
* 存钱
*/
public static void add(double m){
money+=m;
}
/**
* 取钱
*/
public static void jian(double m){
money-=m;
}
/**
* 查询余额
*/
public static void query(){
System.out.println("你的余额为:"+money);
}
}
package wangxin;
import java.util.Scanner;
public class Work4 {
public static void main(String[] args) {
//买车票=========================================================
//定义输入语句对象
Scanner wx=new Scanner(System.in);
String []q={"哈尔滨","长春","沈阳","天津","北京","石家庄","郑州","武汉","广州"};
int []b={0,49,77,98,136,195,243,302,397};
System.out.println("请输入起点站:");
String start=wx.next();
System.out.println("请输入终点站:");
String last=wx.next();
//用循环找输入的值是否在数组内
int index=-1;
int index1=-1;
for(int i=0;i<q.length;i++){
if(start.equals(q[i])){
index=i;
}
if(last.equals(q[i])){
index1=i;
}
}
if(index1>index){
//判断起点站
if(index!=-1){
System.out.println("你的起点是:"+q[index]);
}
//判断终点站
if(index1!=-1){
System.out.println("你的终点是:"+q[index1]);
}
int piao=b[index1]-b[index];
System.out.println(q[index]+"到"+q[index1]+"的票价是:"+piao+"元");
}
//判断是不是终点起点颠倒
else if(index1<index){
System.out.println("你买的是反方向的车票");
}
//判断输入的是不是站台名字或者起点终点是不是同一站台
else{
System.out.println("起点站(或终点站)输入一致或错误,该站不是停靠站。");
}
}
}