编程题巩固知识点

双色球中奖查询


双色球中奖,红球1~33中选择6个,蓝球1~16中选择1个、
6红1蓝 一等奖  6红0蓝 二等奖  5红1蓝 三等奖
5红0蓝;4红1蓝 四等奖  4红0蓝;3红1蓝 五等奖
2红1蓝;1红1蓝;0红1蓝 六等奖
需要随机出中奖号码,和用户输入购买号码

//导包
import java.util.Scanner;
import java.util.Random;

public class text {
    public static void main(String[] args) {
        //创建键盘输入的对象
        Scanner sc = new Scanner(System.in);
        Random rand = new Random();

        //获得红球中奖的数字和蓝球中奖数字
        int[] lottery = getlottery(6, 33 , 1);
        int bluelottery = rand.nextInt(16) + 1;
        //用以验证先打印中奖数字
        System.out.println("中奖的红球号码为:");
        printArray(lottery);
        System.out.println("中奖的蓝球号码为:" + bluelottery);

        //给出提示并接受蓝球数据
        System.out.println("请输入你所买的蓝球号码:");
        int blueball = sc.nextInt();
        //判断蓝球数据合法性
        while(blueball < 1 || blueball > 16){
            System.out.println("请重新输入你所买的蓝球号码:");
            blueball = sc.nextInt();
        }
        //给出提示并接受红球数据
        int[] redball = getredball(6);

        //打印所输入数据
        printArray(redball);
        System.out.println("你所输入的蓝球号码为" + blueball);

        //对比红球中奖数
        int lotteryrednumber = compareArray(redball, lottery);
        //对比蓝球中奖数
        int lotterybluenumber = 0;
        if(bluelottery == blueball){
            lotterybluenumber = 1;
        }

        if(lotterybluenumber == 1) {
            //当蓝球中奖的情况
            switch (lotteryrednumber) {
                case 6 -> System.out.println("恭喜中一等奖");
                case 5 -> System.out.println("恭喜中三等奖");
                case 4 -> System.out.println("恭喜中四等奖");
                case 3 -> System.out.println("恭喜中五等奖");
                case 2, 1, 0 -> System.out.println("恭喜中六等奖");
            }
        }else{
            //当蓝球没有中奖的情况
            switch (lotteryrednumber) {
                case 6 -> System.out.println("恭喜中二等奖");
                case 5 -> System.out.println("恭喜中四等奖");
                case 4 -> System.out.println("恭喜中五等奖");
                default -> System.out.println("谢谢惠顾");
            }
        }
    }


    //接收红球号码的方法
    public static int[] getredball(int redballnumber) {
        //创建键盘输入的对象
        Scanner sc = new Scanner(System.in);
        int[] redball = new int[redballnumber];
        for (int i = 0; i < redballnumber; ) {
            System.out.println("请输入第" + (i + 1) + "个红球号码");
            //接收数据
            int temp = sc.nextInt();
            //判断数据合法性
            if (temp >= 1 && temp <= 33) {
                if(notrepeat(redball,temp) == true){
                    redball[i] = temp;
                    i++;
                }else{
                    System.out.println("你所输入的球数以重复,请重新输入");
                }
            } else {
                System.out.println("你所输入的球数不存在,请重新输入");
            }
        }
        return redball;
    }

    //创建随机的多球中奖号码的方法
    public static int[] getlottery(int ballnumber, int max, int min){
        //创建对象
        Random rand = new Random();
        int[] lottery = new int[ballnumber];
        for (int i = 0; i < ballnumber; i++) {
            boolean flag = false;
            //当验证结果为false时,重新执行该步骤
            while(flag == false){
                //赋值从min到max的随机数
                lottery[i] = rand.nextInt(max) + min;
                //当i为0时,直接达成条件,不需要对数值验证
                if (i == 0) {
                    flag = true;
                }
                //对数值验证,防止重复
                for(int j = 0; j < i;) {
                    if(lottery[i] != lottery[j]){
                        flag = true;
                        j++;
                    }else{
                        flag = false;
                        break;
                    }
                }

            }
        }
        return lottery;
    }

    //传入数组和要进入数组的数,防止重复的方法
    public static boolean notrepeat(int[] arr, int number){
        //对数值验证,防止重复
        for(int i = 0; i < arr.length;i++) {
            if(number == arr[i]){
                    return false;
            }
        }
        return true;
    }

    //对比红球数据
    public static int compareArray(int[] redball, int[] lottery){
        //定义count来记录中奖球数
        int count = 0;
        for (int i = 0; i < redball.length; i++) {
            for (int j = 0; j < lottery.length; j++) {
                if(redball[i] == lottery[j]){
                    count++;
                    break;
                }
            }
        }
        //返回中奖球数
        return count;
    }

    //用于验证的打印数组方法
    public static void printArray(int[] array){
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }
    }
}

控制台的小型学生管理系统

创建面向对象Student

package StudentSystem;

public class Student {
    private int id;
    private String name;
    private int age;

    //空参构造
    public Student () {
    }
    //带参构造
    public Student (int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    //id的设置和调用
    public void setid(int id) {
        this.id = id;
    }
    public int getid() {
        return id;
    }
    //name的设置和调用
    public void setname(String name) {
        this.name = name;
    }
    public String getname() {
        return name;
    }
    //age的设置和调用
    public void setage(int age) {
        this.age = age;
    }
    public int getage() {
        return age;
    }
}

代码主体

package StudentSystem;
//导入键盘输入包
import java.util.Scanner;

public class StudentSystem {
    public static void main(String[] args) {
        //创建键盘输入的对象,和放入student的数组
        Scanner sc = new Scanner(System.in);
        Student[] arr = new Student[3];
        Student st1 = new Student(001, "张三" , 19);
        Student st2 = new Student(002, "李四" , 22);
        //Student st3 = new Student(003, "王五" , 26);

        //将数据赋值给数组
        arr[0] = st1;
        arr[1] = st2;
        //arr[2] = st3;

        //获得新数组和打印验证
        arr = addstudent(arr);
        for (int i = 0; i < arr.length; i++) {
            Student Student = arr[i];
            if(Student != null){
                System.out.println(Student.getid() + " ," + Student.getname() +
                        " ," + Student.getage());
            }
        }

        //删除一个数据
        arr = delete(arr);
        //打印新数组
        for (int i = 0; i < arr.length; i++) {
            Student Student = arr[i];
            if(Student != null){
                System.out.println(Student.getid() + " ," + Student.getname() +
                        " ," + Student.getage());
            }
        }

        //查询一个id把他找出来
        int index = getindex(arr, 2);
        if(index >= 0){
            //索引存在
            Student Student = arr[index];
            int temp = Student.getage() - 1;
            Student.setage(temp);
        }else{
            //索引不存在
            System.out.println("索引不存在,所以修改失败");
        }
    }

    //添加新学生的方法
    public static Student[] addstudent(Student[] arr) {
        Student st = scannerstudent(arr);
        //定义一个计数器用记录
        int count = 0;
        //数组内还有空间的情况
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == null) {
                arr[i] = st;
                return arr;
            }
            count ++;
        }
        //数组内没有空间的情况
        Student[] temparr = creatarr(arr);
        temparr [count] = st;
        return temparr;
    }

    //键盘获取学生信息
    public static Student scannerstudent(Student[] arr) {
        Scanner sc = new Scanner(System.in);
        boolean flag = true;
        Student st = new Student();
        while (flag == true){
            //接受键盘输入的信息
            System.out.println("请输入新的添加学生的学号");
            int a = sc.nextInt();
            System.out.println("请输入新的添加学生的姓名");
            String b = sc.next();
            System.out.println("请输入新的添加学生的年龄");
            int c = sc.nextInt();
            st = new Student(a, b, c);
            flag = Judgment(arr, a);
            if(flag == true){
                System.out.println("输入的学号重复,请重新输入");
            }
        }
        return st;
    }

    //对id的唯一性判断的方法
    public static boolean Judgment(Student[] arr, int id){
        for (int i = 0; i < arr.length; i++) {
            Student Student = arr[i];
            //需要非空才可以使用getid
            if (Student != null && arr[i].getid() == id) {
                return true;
            }
        }
        return false;
    }

    //创建一个数组,它的长度是老数组长度+1
    public static Student[] creatarr(Student[] arr) {
        Student[] temparr = new Student[arr.length + 1];
        for (int i = 0; i < arr.length; i++) {
            temparr[i] = arr[i];
        }
        return temparr;
    }

    //根据输入的id,查询是否在数组中存在,然后删除
    public static Student[] delete(Student[] arr) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入你要删除的学生id");
        while (true){
            int tempid = sc.nextInt();
            for (int i = 0; i < arr.length; i++) {
                if (arr[i].getid() == tempid) {
                    arr[i] = null;
                    System.out.println("已删除" + tempid + "学生的所有信息");
                    return arr;
                }
            }
            System.out.println("没有找到该信息的学生,请重新输入");
        }
    }

    //寻找索引的方法
    public static int getindex(Student[] arr, int id) {
        for (int i = 0; i < arr.length; i++) {
            Student Student = arr[i];
            if (Student != null) {
                int tempid = Student.getid();
                if (tempid == id) {
                    //此时i为id所在st的索引
                    return i;
                }
            }
        }
        //没有索引为-1,所以表示无索引
        return -1;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值