Java-学生信息系统的数据搜索功能

需求:

后台程序需要存储学生信息并展示然后要提供按照学号搜索学生信息的功能

分析:

① 定义一个Student类,定义ArrayList集合存储学生对象信息并遍历展示出来

② 提供一个方法,可以接收ArrayList集合,和要搜索的学号,返回搜索的学生对象并展示.

③ 使用死循环,让用户可以不停的搜索

学号姓名年龄班级
20180302叶孤城23护理一班
20180303东方不败23推拿二班
20180304西门吹雪26中药学四班
20180305梅超风26神经科二班

学生类

public class Student {
    private String studyNumber;
    private String name;
    private int age;
    private String className;

    public Student() {
    }

    public Student(String studyNumber, String name, int age, String className) {
        this.studyNumber = studyNumber;
        this.name = name;
        this.age = age;
        this.className = className;
    }

    public String getStudyNumber() {

        return studyNumber;
    }

    public void setStudyNumber(String studyNumber) {

        this.studyNumber = studyNumber;
    }

    public String getName(){
    return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }
}

测试类

public static void main(String[] args) {
        //1.定义学生类
        //2.创建集合存储学生对象,创建学生对象封装学生信息
        //把学生对象添加到集合中去
        ArrayList<Student> students = new ArrayList<>();
        students.add(new Student("20180302", "叶孤城",23,"护理一班"));
        students.add(new Student("20180303", "东方不败",23,"推拿二班"));
        students.add(new Student("20180304", "西门吹雪",26,"中医药三班"));
        students.add(new Student("20180305", "梅超风",26,"神经科四班"));
        //3.遍历这些学生信息展示
        System.out.println("学号\t\t\t姓名\t\t年龄\t班级");
        for (int i = 0; i < students.size(); i++) {
            Student s = students.get(i);
            System.out.println(s.getStudyNumber() + "\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getClassName());

        }
        //4.定义方法完成按照学号的搜索
        Scanner sc = new Scanner(System.in);
        while (true){//使用死循环可以让用户不断地搜索
            System.out.println("请您输入学号查询学生对象: ");
            String studyNumber = sc.next();
            //5.调用方法查询
           Student s = getStudentById(students, studyNumber);
           //6.判断s中是否存在学生对象地址
            if(s == null){
                System.out.println("对不起,查无此人!");
            }else {
                System.out.println("您查询的学生信息如下: ");
                System.out.println(s.getStudyNumber() + "\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getClassName());

            }
        }
    }

    /**
     * 根据学生的学号查询学生对象返回
     * @param students  存储全部学生对象的集合
     * @param studyNumber  搜索学生信息的学号
     * @return 学生对象 | null
     */
    public static Student getStudentById(ArrayList<Student> students,String studyNumber){
        for (int i = 0; i < students.size(); i++) {
            Student s = students.get(i);
            //2.询问当前遍历的这个学生对象的学号,是否是我们要找的学号
            if (s.getStudyNumber().equals(studyNumber)){
                //学号是字符串,可以调用String的方法判断搜索的学号与集合里的学号是否相同
                //这个s代表的学生对象就是我们要找的
                return s;//把这个学生对象的地址送出去
            }
        }
        return null;//查无此人
    }
}

运行截图:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值