Java-黑马Java学习项目–学生管理系统增删改查功能

学生管理系统

学生管理系统实现步骤

  • 案例需求

    ​ 针对目前我们的所学内容,完成一个综合案例:学生管理系统。该系统主要功能如下:

    ​ 添加学生:通过键盘录入学生信息,添加到集合中

    ​ 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除

    ​ 修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改

    ​ 查看学生:将集合中的学生对象信息进行展示

    ​ 退出系统:结束程序

  • 实现步骤

    1. 定义学生类,包含以下成员变量

      ​ private String sid // 学生id

      ​ private String name // 学生姓名

      ​ private String age // 学生年龄

      ​ private String address // 学生所在地

    2. 学生管理系统主界面的搭建步骤

      2.1 用输出语句完成主界面的编写
      2.2 用Scanner实现键盘输入
      2.3 用switch语句完成选择的功能
      2.4 用循环完成功能结束后再次回到主界面

    3. 学生管理系统的添加学生功能实现步骤

      3.1 定义一个方法,接收ArrayList集合
      3.2 方法内完成添加学生的功能
      ​ ①键盘录入学生信息
      ​ ②根据录入的信息创建学生对象
      ​ ③将学生对象添加到集合中
      ​ ④提示添加成功信息
      3.3 在添加学生的选项里调用添加学生的方法

    4. 学生管理系统的查看学生功能实现步骤

      4.1 定义一个方法,接收ArrayList集合
      4.2 方法内遍历集合,将学生信息进行输出
      4.3 在查看所有学生选项里调用查看学生方法

    5. 学生管理系统的删除学生功能实现步骤

      5.1 定义一个方法,接收ArrayList集合
      5.2 方法中接收要删除学生的学号
      5.3 遍历集合,获取每个学生对象
      5.4 使用学生对象的学号和录入的要删除的学号进行比较,如果相同,则将当前学生对象从集合中删除
      5.5 在删除学生选项里调用删除学生的方法

    6. 学生管理系统的修改学生功能实现步骤

      6.1 定义一个方法,接收ArrayList集合
      6.2 方法中接收要修改学生的学号
      6.3 通过键盘录入学生对象所需的信息,并创建对象
      6.4 遍历集合,获取每一个学生对象。并和录入的修改学生学号进行比较.如果相同,则使用新学生对象替换当前学生对象
      6.5 在修改学生选项里调用修改学生的方法

    7. 退出系统

      使用System.exit(0);退出JVM

学生类的定义

package studentAdministerSystem.firstStuSystem;

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

public Student() {
}

public Student(String id, String name, int age, String address) {
    this.id = id;
    this.name = name;
    this.age = age;
    this.address = address;
}

public String getId() {
    return id;
}

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

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 getAddress() {
    return address;
}

public void setAddress(String address) {
    this.address = address;
}

}

测试类的定义

package studentAdministerSystem.firstStuSystem;

import java.util.ArrayList;
import java.util.Scanner;

public class firstStudentSystem {
/案例需求
​ 针对目前我们的所学内容,完成一个综合案例:学生管理系统。该系统主要功能如下:
​ 添加学生:通过键盘录入学生信息,添加到集合中
​ 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除
​ 修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改
​ 查看学生:将集合中的学生对象信息进行展示
​ 退出系统:结束程序
/
public static void main(String[] args) {
System.out.println(“1:添加学生信息”);
System.out.println(“2:删除学生信息”);
System.out.println(“3:修改学生信息”);
System.out.println(“4:查询学生信息”);
System.out.println(“5:退出”);
Student stu = new Student();
Scanner sc = new Scanner(System.in);

    ArrayList<Student> list = new ArrayList<>();
    //loop:
    while (true){
        String choose = sc.next();
        switch (choose){
            case "1":
                addStudent(list);
                break;
            case "2":
                deleteStudent(list);
                break;
            case "3":
                alterStudent(list);
                break;
            case "4":
                queryStudent(list);
                break;
            case "5":
            {
                System.out.println("退出");
                //break loop;
                System.exit(0);//停止虚拟机运行
            }
            default:
                System.out.println("没有这个选项");
        }
    }
}


public static void addStudent(ArrayList<Student> list){
    Student stu = new Student();
    Scanner sc = new Scanner(System.in);
    String id = null;
    while(true){
        System.out.println("请输入学生的id");
        id = sc.next();
        boolean flag =contain(list,id);
        if (flag){
            System.out.println("id已经存在,请重新输入");
        }else{
            stu.setId(id);
            break;
        }
    }
    System.out.println("请输入学生的姓名");
    String name = sc.next();
    stu.setName(name);
    System.out.println("请输入学生的年龄");
    int age = sc.nextInt();
    stu.setAge(age);
    System.out.println("请输入学生的住址");
    String address = sc.next();
    stu.setAddress(address);

    //把学生对象放在集合中
    list.add(stu);
    //提示用户信息添加成功
    System.out.println("学生信息添加成功");
}

//删除学生信息
public static void deleteStudent(ArrayList<Student> list){
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入要删除学生的id");
    String id = sc.next();
    //查询id在集合中的索引
    int index = getIndex(list, id);
    if(index>=0){
        list.remove(index);
        System.out.println("id为"+id+"的学生信息删除成功");
    }else{
        System.out.println("id不存在,请重新输入");
        return;
    }

}

//修改学生信息
public static void alterStudent(ArrayList<Student> list){
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入修改学生的id");
    String id = sc.next();
    int index = getIndex(list,id);
    if(index ==-1){
        System.out.println("要修改的id" + id + "不存在,请重新输入");
        return;
    }

    //当代码执行到这里,表示什么?表示当前id是存在的。
    //获取要修改的学生对象
    Student stu = list.get(index);
    //输入其他的信息并修改
    System.out.println("请输入要修改的学生姓名");
    String newname = sc.next();
    stu.setName(newname);

    System.out.println("请输入要修改的学生年龄");
    int newAge = sc.nextInt();
    stu.setAge(newAge);

    System.out.println("请输入要修改的学生家庭住址");
    String newAddress = sc.next();
    stu.setAddress(newAddress);

    System.out.println("学生信息修改成功");

}

//查询学生信息
public static void queryStudent(ArrayList<Student> list){
    if(list.size()==0){
        System.out.println("当前无学生信息");
        //结束方法
        return;
    }
    //打印表头信息
    for (int i = 0; i < list.size(); i++) {
        Student stu = list.get(i);
        System.out.println(stu.getId()+"\t"+stu.getName()+"\t"+stu.getAge()+"\t"+stu.getAddress());
    }

}

//判断id在集合中是否存在
public static boolean contain(ArrayList<Student> list , String id){
    /*循环遍历集合中的每一个元素
    下边的可以简写为return getIndex(list,id)=0;
     */
    for (int i = 0; i < list.size(); i++) {
        Student Stu = list.get(i);
        String Sid = Stu.getId();
        if(Sid.equals(id)){
            return true;
        }
    }
    return false;
}
//获取id的索引
public static int getIndex(ArrayList<Student> list,String id){
    for (int i = 0; i < list.size(); i++) {
        Student stu = list.get(i);
        String Sid = stu.getId();
        //集合中的学生id和要查询的id进行比较
        if(Sid.equals(id)){
            return i;
        }
    }
    return -1;
}

}

版权声明:本文为博主作者:涵语原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/tt_sunshine/article/details/135044738

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
社会演员多的头像社会演员多普通用户
上一篇 2024年1月11日
下一篇 2024年1月11日

相关推荐