涛哥大数据-随机点名器

简单概述

本部分是学习课程多易教育-Java基础篇当中的一个简单实例,这里做了一个实例相关的笔记进行记录。

任务目标

实现一个随机点名器,这个点名器需要又如下的功能:

  1. 其能够添加一定量的学生
  2. 能够根据指定的学号查找到学生
  3. 能够随机对学生进行点名

任务分析与实现

学生类

如果要实现一个随机点名器的功能,那么最开始我们要定义一个学生类,用于存放学生的一些信息,这里我们只需要简单的设置学生的id以及学生的姓名两个属性,对于这个随机点名器就够用了。

package com.doit.demo03;  
  
public class Student {  
    // 学生的id  
    String sid = new String();  
    // 学生的姓名  
    String name = new String();  
}

功能分析与实现

添加一定量学生

对于添加一定量学生,我们首先要知道其是一个对象数组,然后对对象数组的元素进行赋值来添加学生。

// 添加学生功能  
public static void addStudent(Student[] arr) {  
    Scanner sc = new Scanner(System.in);  
    // 进行学生的添加  
    for (int i = 0; i < arr.length; i++) {  
        Student s = new Student();  
        System.out.println("请输入学生的学号:");  
        s.sid = sc.next();  
        System.out.println("请输入学生的姓名:");  
        s.name = sc.next();  
        arr[i] = s;  
    }  
}

根据指定学号查找学生

当我们添加学生后,我们可以使用指定的学号来对学生进行查找,我们通过遍历整个对象数组,将每个学生对象当中的学生id取出进行匹配,如果匹配成功就将学生对象的信息描述出来,如果没有就输出没有找到学生对象。

public static void findStudent(Student arr[]) {  
    System.out.println("请输入学生的学号");  
    Scanner sc = new Scanner(System.in);  
    String findSid = sc.nextLine();  
    boolean flag = false;  
    for (int i = 0; i < arr.length; i++) {  
        String StudentSid = arr[i].sid;  
        if (Objects.equals(StudentSid, findSid)) {  
            System.out.println("找到了id为:" + findSid + "的学生,他的名字叫:" + arr[i].name);  
            flag = true;  
        }  
    }  
    if (!flag) {  
        System.out.println("没有找到id为:" + findSid + "的学生");  
    }  
}

注意:由于这里我们定义的是一个String类型,因此在进行两者比较时我们不能直接使用==进行比较,而是需要使用Objects.equals()来进行比较。

随机点名

随机点名的实现只需要我们对Random对象做好随机范围的限制,然后当我们随机之后,就可以将随机到的对象输出。

public static void ranStudent(Student arr[]) {  
    Random r = new Random();  
    int index = r.nextInt(arr.length);  
    System.out.println("请学号为:" + arr[index].sid + ", 姓名为:" + arr[index].name + "的学生,来回答这个问题.");  
}

遍历学生

这一部分就比较容易实现,只需要将对象数组当中所有的元素遍历出来就可以实现此功能。

public static  void printStudent(Student arr[]){  
    for (int i = 0; i < arr.length; i++) {  
        System.out.println("学号为:" + arr[i].sid + "姓名为:" + arr[i].name);  
    }  
}

附录

整体代码

Student.class

package com.doit.demo03;  
  
public class Student {  
    // 学生的id  
    String sid = new String();  
    // 学生的姓名  
    String name = new String();  
}

Test.class

package com.doit.demo03;  
  
import com.doit.demo03.Student;  
  
import java.util.Objects;  
import java.util.Random;  
import java.util.Scanner;  
  
public class Test {  
    public static void main(String[] args) {  
        System.out.println("欢迎使用随机点名器");  
        System.out.println("请先添加学生");  
        // 设定学生的添加数量  
        System.out.println("请问要添加多少个学生");  
        Scanner sc = new Scanner(System.in);  
        int num = sc.nextInt();  
        Student[] arr = new Student[num];  
  
        addStudent(arr);  
        init(arr);  
    }  
  
    public static void init(Student arr[]) {  
        while (true) {  
            System.out.println("请选择以下的功能使用");  
            System.out.println("1.查找学生 2.随机点名 3.遍历学生 0.退出点名器");  
            // 获取对应的功能  
            Scanner sc = new Scanner(System.in);  
            int num = sc.nextInt();  
  
            switch (num) {  
                case 1:  
                    findStudent(arr);  
                    break;  
                case 2:  
                    ranStudent(arr);  
                    break;  
                case 3:  
                    printStudent(arr);  
                    break;  
                case 0:  
                    System.out.println("正在退出请稍后");  
                    return;  
                default:  
                    System.out.println("没有这个数字的功能,请重新输入");  
            }  
        }  
    }  
  
    // 添加学生功能  
    public static void addStudent(Student[] arr) {  
        Scanner sc = new Scanner(System.in);  
        // 进行学生的添加  
        for (int i = 0; i < arr.length; i++) {  
            Student s = new Student();  
            System.out.println("请输入学生的学号:");  
            s.sid = sc.next();  
            System.out.println("请输入学生的姓名:");  
            s.name = sc.next();  
            arr[i] = s;  
        }  
    }  
  
    // 查找学生功能  
    public static void findStudent(Student arr[]) {  
        System.out.println("请输入学生的学号");  
        Scanner sc = new Scanner(System.in);  
        String findSid = sc.nextLine();  
        boolean flag = false;  
        for (int i = 0; i < arr.length; i++) {  
            String StudentSid = arr[i].sid;  
            if (Objects.equals(StudentSid, findSid)) {  
                System.out.println("找到了id为:" + findSid + "的学生,他的名字叫:" + arr[i].name);  
                flag = true;  
            }  
        }  
        if (!flag) {  
            System.out.println("没有找到id为:" + findSid + "的学生");  
        }  
    }  
  
    public static  void printStudent(Student arr[]){  
        for (int i = 0; i < arr.length; i++) {  
            System.out.println("学号为:" + arr[i].sid + "姓名为:" + arr[i].name);  
        }  
    }  
  
    // 随机点名功能  
    public static void ranStudent(Student arr[]) {  
        Random r = new Random();  
        int index = r.nextInt(arr.length);  
        System.out.println("请学号为:" + arr[index].sid + ", 姓名为:" + arr[index].name + "的学生,来回答这个问题.");  
    }  
}

关于我

我的Github: PorterZhang2021
我的博客地址:PorterZhang

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值