数组实现学生管理系统

目录

数组与集合的区别

一、STUDENT包

1.Student类:

 二、OPERATE包

1.Add类:

2.Delete类:

 3.Revise类:

4.Seek类:

5.Show类:

三、USER包:

1.Demo类:

2.Face类:

四、运行结果展示


数组与集合的区别

1.灵活度:集合比数组更灵活,集合有多种实现方式和不同的适用场合

2.效率:数组的效率高于集合类

3.容量:集合可以改变,数组不可以改变

4.判断元素个数:数组需要用遍历实现,集合用sizeof()

一、STUDENT包

1.Student类:

package STUDENT;

public class Student {
    String id;
    String name;
    double score;

    public void setId(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setScore(double score) {
        this.score = score;
    }

    public double getScore() {
        return score;
    }

    public Student() {

    }

    public Student(String id, String name, double score) {
        this.id = id;
        this.name = name;
        this.score = score;
    }
}

 二、OPERATE包

1.Add类:

  • 使用有参构造
package OPERATE;

import java.util.Scanner;

import STUDENT.Student;

public class Add {
    public static int findIndex(Student[] students) {
        for (int i = 0; i < students.length; i++) {
            if (students[i] == null) {//遍历数组,当对象为空时,返回该地址,即为数组已经使用的长度
                return i;
            }
        }
        return -1;//表示数组开辟的空间已经用完,当返回-1时表示无法再存入数据
    }

    public static void addMessage(Student[] students) {
        Scanner in = new Scanner(System.in);

        System.out.println("请输入要添加的学生学号:");
        String id = in.next();

        System.out.println("请输入要添加的学生姓名:");
        String name = in.next();

        System.out.println("请输入要添加的学生分数:");
        double score = in.nextDouble();

        int index = findIndex(students);
        Student student = new Student(id, name, score);
        students[index] = student;

        System.out.println("添加成功!");
        System.out.println();
    }
}
  • 使用无参构造
public static void addMessage(Student[] students) {
        Scanner in = new Scanner(System.in);

        System.out.println("请输入要添加的学生学号:");
        String id = in.next();

        System.out.println("请输入要添加的学生姓名:");
        String name = in.next();

        System.out.println("请输入添加的学生分数:");
        double score = in.nextDouble();

        int index = findIndex(students);
        Student student = new Student();
        student.setId(id);
        student.setName(name);
        student.setScore(score);
        students[index] = student;
        
        System.out.println("添加成功!");
        System.out.println();
    }

2.Delete类:

package OPERATE;

import java.util.Scanner;

import STUDENT.Student;

public class Delete {
    public static void deleteMessage(Student[] students) {
        Scanner in = new Scanner(System.in);

        System.out.println("请输入要删除的学生学号:");
        String id = in.next();
        
        for (int i = 0; i < students.length; i++) {
            if (students[i] != null) {
                if (students[i].getId().equals(id)) {
                    students[i] = null;
                    System.out.println("删除成功!");
                    return;//找到目标后删除该信息
                }
            }
        }
        System.out.println("查无此人!");//如果遍历完没有找到学生信息,则说明没有该学生
        System.out.println();
    }
}

 3.Revise类:

package OPERATE;

import java.util.Scanner;

import STUDENT.Student;

public class Revise {
    public static void reviseMessage(Student[] students) {
        Scanner in = new Scanner(System.in);

        System.out.println("请输入要修改的学生学号:");
        String id = in.next();

        System.out.println("请输入新的学生姓名:");
        String name = in.next();

        System.out.println("请输入新的学生成绩:");
        int score = in.nextInt();

        for (int i = 0; i < students.length; i++) {
            if (students[i] != null) {
                if (students[i].getId().equals(id)) {
                    students[i].setId(id);
                    students[i].setName(name);
                    students[i].setScore(score);
                    System.out.println("修改成功!");
                    System.out.println();
                    return;
                }
            }
        }
        System.out.println("查无此人!");//如果遍历完没有找到学生信息,则说明没有该学生
        System.out.println();
    }
}

Revise类还可以通过有参构造和无参构造实现

  • 有参构造
        for (int i = 0; i < students.length; i++) {
            if (students[i] != null) {
                if (students[i].getId().equals(id)) {
                    Student student = new Student(id, name, score);
                    students[i] = student;
                    System.out.println("修改成功!");
                    return;
                }
            }
        }
        System.out.println("查无此人!");
  • 无参构造 
        for (int i = 0; i < students.length; i++) {
            if (students[i] != null) {
                if (students[i].getId().equals(id)) {
                    Student student = new Student();
                    student.setId(id);
                    student.setName(name);
                    student.setScore(score);
                    students[i] = student;
                    System.out.println("修改成功!");
                    return;
                }
            }
        }
        System.out.println("查无此人!");

4.Seek类:

package OPERATE;

import java.util.Scanner;

import STUDENT.Student;

public class Seek {
    public static void seekMessage(Student[] students) {
        Scanner in = new Scanner(System.in);
        
        System.out.println("请输入要查找的学生学号:");
        String id = in.next();

        for (int i = 0; i < students.length; i++) {
            if (students[i] != null) {
                if (students[i].getId().equals(id)) {
                    System.out.println("查询成功!");
                    System.out.println(
                            "该学生学号:" + students[i].getId() + "    该学生姓名:" + students[i].getName() + "    该学生分数:"
                                    + students[i].getScore());
                    System.out.println();
                    return;
                }
            }
        }
        System.out.println("查无此人!");//如果遍历完没有找到学生信息,则说明没有该学生
        System.out.println();
    }
}

5.Show类:

package OPERATE;

import STUDENT.Student;

public class Show {
    public static void showMessage(Student[] students) {
        int c = 0;
        System.out.println("以下为所有学生信息:");
        for (int i = 0; i < students.length; i++) {
            if (students[i] != null) {
                System.out.println("学号:" + students[i].getId() + "    姓名:" + students[i].getName() + "    分数:"
                        + students[i].getScore());
                c++;
            }
        }
        System.out.println("共有 " + c + " 个学生信息");
        System.out.println();
    }
}

三、USER包:

1.Demo类:

package USER;

import java.util.Scanner;

import OPERATE.*;
import STUDENT.Student;

public class Demo {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);

        Student[] students = new Student[100];

        Face face = new Face();
        face.menu();
        
        System.out.println();
        while (true) {
            System.out.println("1.增加 2.删除 3.修改 4.查询 5.展示 6.退出");
            System.out.println("请输入想要进行的操作:");
            int num = in.nextInt();

            if (num == 1) {
                Add.addMessage(students);// 增加学生信息,调用addMessage方法
            } else if (num == 2) {
                Delete.deleteMessage(students);// 删除学生信息,调用deleteMessage方法
            } else if (num == 3) {
                Revise.reviseMessage(students);// 修改学生信息,调用reviseMessage方法
            } else if (num == 4) {
                Seek.seekMessage(students);// 查询学生信息,调用seekMessage方法
            } else if (num == 5) {
                Show.showMessage(students);// 展示学生信息,调用showMessage方法
            } else if (num == 6) {
                System.out.println("感谢你的使用!");
                System.exit(0);
            } else {
                System.out.println("请重新输入:");
            }
        }
    }
}

2.Face类:

package USER;
public class Face {
    public void menu(){
        System.out.println("欢迎来到学生管理系统!");
        System.out.println("1:添加学生信息");
        System.out.println("2:删除学生信息");
        System.out.println("3:查找学生信息");
        System.out.println("4:显示所有学生信息");
        System.out.println("5:退出系统");
    }
}

四、运行结果展示

/*
 * 运行结果
 * 欢迎来到学生管理系统!
 * 1:添加学生信息
 * 2:删除学生信息
 * 3:查找学生信息
 * 4:显示所有学生信息
 * 5:退出系统
 * 
 * 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
 * 请输入想要进行的操作:
 * 1
 * 请输入要添加的学生学号:
 * 1
 * 请输入要添加的学生姓名:
 * 康茹
 * 请输入要添加的学生分数:
 * 520
 * 添加成功!
 * 
 * 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
 * 请输入想要进行的操作:
 * 1
 * 请输入要添加的学生学号:
 * 2
 * 请输入要添加的学生姓名:
 * 小白
 * 请输入要添加的学生分数:
 * 521
 * 添加成功!
 * 
 * 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
 * 请输入想要进行的操作:
 * 5
 * 以下为所有学生信息:
 * 学号:1 姓名:康茹 分数:520.0
 * 学号:2 姓名:小白 分数:521.0
 * 共有 2 个学生信息
 * 
 * 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
 * 请输入想要进行的操作:
 * 4
 * 请输入要查找的学生学号:
 * 1
 * 查询成功!
 * 该学生学号:1 该学生姓名:康茹 该学生分数:520.0
 * 
 * 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
 * 请输入想要进行的操作:
 * 2
 * 请输入要删除的学生学号:
 * 2
 * 删除成功!
 * 
 * 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
 * 请输入想要进行的操作:
 * 5
 * 以下为所有学生信息:
 * 学号:1 姓名:康茹 分数:520.0
 * 共有 1 个学生信息
 * 
 * 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
 * 请输入想要进行的操作:
 * 3
 * 请输入要修改的学生学号:
 * 1
 * 请输入新的学生姓名:
 * 康茹
 * 请输入新的学生成绩:
 * 1314
 * 修改成功!
 * 
 * 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
 * 请输入想要进行的操作:
 * 5
 * 以下为所有学生信息:
 * 学号:1 姓名:康茹 分数:1314.0
 * 共有 1 个学生信息
 * 
 * 1.增加 2.删除 3.修改 4.查询 5.展示 6.退出
 * 请输入想要进行的操作:
 * 6
 * 感谢你的使用!
 */

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值