6.java基础短暂总结

案例一:买飞机票

package com.china.homework;

import java.util.Scanner;
//案例一买机票
/* 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
  按照如下规则计算机票价格:旺季(6-10月)头等舱9折,经济舱8.5折,其余月份为淡季头等舱7折,经济舱6.5折*/public class Test11 {

    public static void main(String[] args) {
        double price=getPrice();
        System.out.println("现在机票的价格是:"+price+"元");
    }

    public static double getPrice()
    {
        System.out.println("请输入价格");
        double price = getDada();
        System.out.println("请输入月份");
        double month = getDada();
        System.out.println("请选择舱号类型:1.(头等舱),2.(经济舱)");
        double type = getDada();
        if (month >= 6 && month <= 10) {//旺季
            if (type == 1) {
                System.out.println("头等舱");
                price *= 0.9;
            } else if (type == 2) {
                System.out.println("经济舱");
                price *= 0.85;
            } else {
                System.out.println("没有该类型");
            }
        } else {
            if (type == 1) {
                System.out.println("头等舱");
                price *= 0.7;
            } else if (type == 2) {
                System.out.println("经济舱");
                price *= 0.65;
            } else {
                System.out.println("没有该类型");
            }

        }
        return price;
    }
    public static double getDada() {//定义一个公共的获取数据//的方法
        Scanner scanner = new Scanner(System.in);
        double data = scanner.nextDouble();
        return data;
    }

}

案例二:找质数

package com.china.homework;
//找(101-200)间的质数(只能被1和自身整除的数叫质数)数字“1”、//不是质数
public class Test10 {
    public static void main(String[] args) {
        boolean flag=false;
        for(int i=101;i<201;i++)
        {

            for(int j=2;j<i;j++)
            {
                if(i%j==0)
                {
                    flag=true;//找到能被除的数那么说明不是质数
                    break;//不是质数就跳过
                }
            }

            if(flag==false)//当每个101-200的数逐个和(2-本身比较的时候,发现遍历结束依然没有找到,说明就是质数)
            {
                System.out.println(i+"是质数");
            }

            flag=false;
        }


    }
}

案例三:开发验证码

package com.china.homework;

import java.util.Random;
//案例三验证码
//定义方法实现随机产生一个5位数的验证码,每位可能是数字、大写字//母、小写字母。
public class Test13 {
    public static void main(String[] args) {
        char[] c=method();
        System.out.println(getCode(4,c));
    }
    public  static String getCode(int num,char[] chars)
    {
            String s="";
            Random random=new Random();

            for(int k=0;k<num;k++)
            {
                int i=random.nextInt(62);//随机5个数字
                s+=chars[i];//num代表拼接了次从62个字符里面选的然后再拼接
            }

            return s;
    }

    public static  char[] method()
    {
        char[] chars=new char[62];
            int index=0;//定义该变量,该变量用于统计数组长度
         for(char num='0';num<='9';num++)
         {
              chars[index]=num;
               index++;//自增
         }

        for (char upCase = 'A'; upCase <='Z'; upCase++) {
                      chars[index]=upCase;
                      index++;

        }

        for (char lowCase='a';lowCase<'z'; lowCase++) {
            chars[index]=lowCase;
            index++;
        }


        return chars;
     

    }
}

案例四:数组·元素复制

package com.china.homework;
//案例四数组复制,将一个数组里的元素复制到另外一个数组
public class Test14 {
    public static void copy(int[] arr1)
    {
        int[] arr2=new int[arr1.length];
        for(int i=0;i<arr1.length;i++)
        {
           arr2[i]=arr1[i];
        }

        System.out.print("[");
        for(int i=0;i<arr2.length;i++)
        {
            System.out.print(arr2[i]);
            if(i< arr2.length-1)
            {
                System.out.print(",");
            }
        }
        System.out.print("]");

    }
    public static void main(String[] args) {
           int[] arr1={1,3,6,7};
           copy(arr1);
    }
}

案例五:数字元素加密

package com.china.homework;

import java.util.Scanner;

/*案例五加密,某系统的数字密码,比如1983,采用加密方式进行传输,规则如下:先得到每位数,然后每位数都加上5,再对10求余,最后将所有数字反转,得到一串新数。*/
public class Test15 {

    public static  void method()
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个值");
        int num = sc.nextInt();

        int count=1;//数字位数
        int[] arr = new int[num];//初始化一个数组
        while (true) {
            int ge = num%10;
               //count--;
            arr[count-1] = ge;
            if (num/10==0){//当结果是0的时候,那么循环了几次//就有几位数
                break;
            }else {
                num/=10;
                count++;
            }
        }
        // count++;
        int[] newarr = new int[count];
        for (int i = 0; i < count; i++) {
            newarr[i] = (arr[i]+5)%10;//输出那么多数组就行,count变量很!重要!
            System.out.print(newarr[i]+"\t");
        }

        //反转
        for(int begin=0,end=newarr.length-1;begin<end;begin++,end--)
        {
            int temp=newarr[end];
             newarr[end]=newarr[begin];
            newarr[begin]=temp;
        }

        String s="";
        for(int i=0;i<newarr.length;i++)
        {
            s+=newarr[i];
        }
        System.out.print("最后的值是"+s);
    }

    public static void main(String[] args) {
          method();
    }

}

案例六:模拟双色球方案一

//双色球 ,前面的六位数字都是红色,最后一位是蓝色

package com.china.homework;

import java.util.Random;
/* 投注号码由6个红色球号码和1个蓝色球号码组成。红色球号码从1-33中选择,蓝色球号码从1-16中选择 */
public class Test18 {
    public static void method()
    {
        int[] arr=new int[7];
         /*arr[0]-arr[5]是前6个红色球号码*/
        arr[0]=randomNumber(arr);
        arr[1]=randomNumber(arr);
        arr[2]=randomNumber(arr);
        arr[3]=randomNumber(arr);
        arr[4]=randomNumber(arr);
        arr[5]=randomNumber(arr);
        arr[6]=new Random().nextInt(17)+1;//arr[6]是蓝色球号码
//增强for循环输出
        for(int arr2:arr)
        {
            System.out.print(arr2+" ");
        }
    }


    public static  int randomNumber(int[] arr)

    {
        int number;
        while (true) {
            number = new Random().nextInt(33) + 1;
            boolean flag = false;
            for (int i = 0; i < arr.length - 1; i++) {
                if (number == arr[i]) {
                    flag = true;
                    break;//这里的break只能打断for()循环,无法中断while()循环,所以while可以持续运行直到num符合条件
                }


            }

            if (flag == false) {//说明符合条件
                break;//这里是符合条件所以打断while()大循环·输出number
            }
        }
        return number;//返回的一定是符合条件而且不重复的数字number
    }

    public static void main(String[] args) {
             method();
    }
}

案例六 方案二

public static void main(String[] args) {
        //创建数组七位数  六位红号 一位蓝号  红号1-33  蓝号1-16
        //第一步生成随机中奖号
        int arr[] = new int[7];
        Random random = new Random();
        //随机蓝号
        arr[6] = random.nextInt(16) + 1;
        int crr[] = honghao(arr);
        for (int i = 0; i < crr.length; i++) {
            System.out.print(crr[i] + "\t");
        }
            //返回用户号码
           int yonghu[] = suer();
            bijiao(crr,yonghu);
    }
    //      用户号码与中奖号码取比较
    //第一部分 生成随机数
    public static int[] honghao(int brr[]) {
        //循环遍历将随机红号赋值给数组减一
        //随机红号
        while (true) {
            Random random = new Random();
            for (int i = 0; i < 6; i++) {
                boolean c = false;
                int sun = random.nextInt(33) + 1;
                for (int j = 0; j <= i; j++) {
                    if (sun == brr[j]) {
                        i--;
                        c = true;
                        break;
                    }
                }
                if (c != true) {
                    brr[i] = sun;
                }
            }
            break;
        }
        return brr;
    }

    //       存储用户输入的数据
    public static int [] suer() {
        Scanner sc = new Scanner(System.in);
        int brr[] = new int[7];
        for (int i = 0; i < 7; i++) {
            System.out.println("请输入第" +( i+1) + "位数:");
            int shuru = sc.nextInt();
            brr[i] = shuru;
        }
        return brr;
    }


    public static void bijiao(int crr[],int brr1[]) {
        //循环遍历 去对比
        //用户号码
        //int arr[] = suer();
        //中奖号码
       // int brr1[] = honghao(arr);
        //定义变量 计算红色中奖号码
        int sum = 0;
        //变量计算蓝号是否中奖
        int sum1 = 0;
        for (int i = 0; i < crr.length - 1; i++) {
            for (int i1 = 0; i1 < brr1.length - 1; i1++) {
                if (crr[i] == brr1[i1]) {
                    sum++;
                }
            }
        }
        if (crr[6] == brr1[6]) {
            sum1++;
        }
        if