Java入门项目:实现简单学生管理系统(逐个功能详解版)

文章目录

  • 前言
  • 一、学生管理系统实现思路
  • 二、定义学生类
  • 三、主界面的代码编写
  • 四、添加学生的代码编写
  • 五、查看所有学生的代码编写
  • 六、删除学生的代码编写
  • 七、修改学生的代码编写
  • 八、项目结构和源码
  • 总结


前言

经过对上篇文章有关知识的理解,写出一个简单的学生管理系统应该就不问题了。下面正式开始写学生管理系统!
上篇文章以及相关PPT链接:https://blog.csdn.net/weixin_51753483/article/details/119681547


一、学生管理系统实现思路

  1. 定义学生类
  2. 主界面的代码编写
  3. 添加学生的代码编写
  4. 查看学生的代码编写
  5. 删除学生的代码编写
  6. 修改学生的代码编写

二、定义学生类

学生类:
Student
成员变量:
学号:sid
姓名:name
年龄:age
居住地:address
构造方法:
无参构造
带四个参数的构造
成员方法:
每个成员变量对应给出get/set方法
代码示例:

package itheima_02;
/*
    学生类
    Alt+Insert 根据自己的需求进行选择
 */

public class Student {
    //学号
    private String sid;
    //姓名
    private String name;
    //年龄
    private String age;
    //居住地
    private String address;
    //构造方法
    public Student() {//快捷键:Alt+Insert 一个参数都不选,选择包就是无参构造
    }
    //带四个参数构造
    public Student(String sid, String name, String age, String address) {//按住Shift全选构造带四个参数的方法
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.address = address;
    }
    //相应get/set方法,快捷键全选
    public String getSid() {
        return sid;
    }

    public String getName() {
        return name;
    }

    public String getAge() {
        return age;
    }

    public String getAddress() {
        return address;
    }

    public void setSid(String sid) {
        this.sid = sid;
    }

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

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

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

三、主界面的代码编写

界面展示:Java入门项目:实现简单学生管理系统(逐个功能详解版)_第1张图片

思路:

  1. 用输出语句完成主界面的编写
  2. 用Scanner实现键盘录入数据
  3. 用switch语句完成操作的选择
  4. 用循环完成再次回到主界面
    代码示例:
package StudentManage;
/*
    学生管理系统
 */

import java.util.Scanner;

public class StudentManage {
    /*
        1. 用输出语句完成主界面的编写
        2. 用Scanner实现键盘录入数据
        3. 用switch语句完成操作的选择
        4. 用循环完成再次回到主界面
     */
    public static void main(String[] args) {
        //用循环完成再次回到主界面,重复整个操作,但无法退出,需要强制退出
        while (true) {
            //用输出语句完成主界面的编写
            System.out.println("--------欢迎来到学生管理系统--------");
            System.out.println("1.添加学生");
            System.out.println("2.删除学生");
            System.out.println("3.修改学生");
            System.out.println("4.查看所有学生");
            System.out.println("5.退出");
            System.out.println("请输入你的选择:");

            //用Scanner实现键盘录入
            Scanner in = new Scanner(System.in);//标准式输入
            String line = in.nextLine();//获取一行字符串

            //用switch语句完成操作的选择
            switch (line) {
                case "1":
                    System.out.println("添加学生");
                    break;
                case "2":
                    System.out.println("删除学生");
                    break;
                case "3":
                    System.out.println("修改学生");
                    break;
                case "4":
                    System.out.println("查看所有学生");
                    break;
                case "5":
                    System.out.println("谢谢使用!");
                    System.exit(0);//虚拟机退出(整个程序退出)
            }
        }
    }
}

四、添加学生的代码编写

思路:

  1. 用键盘录入选择添加学生
  2. 定义一个方法,用于添加学生
    显示提示信息,提示要输入何种信息
    键盘录入学生对象所需要的数据
    创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
    将学生对象添加到集合中(保存数据)
    给出添加成功提示
    3.调用方法
    图形示意:Java入门项目:实现简单学生管理系统(逐个功能详解版)_第2张图片
    代码示例:在main方法后面创建一个添加学生的方法
//自定义一个方法,用于添加学生信息
    public static void addStudent(ArrayList<Student>array){
        //键盘录入学生对象所需要的数据,显示提示信息,提示要输入何种信息
        Scanner in = new Scanner(System.in);
        System.out.println("请输入学生学号:");
        String sid = in.nextLine();
        System.out.println("请输入学生姓名:");
        String name = in.nextLine();
        System.out.println("请输入学生年龄:");
        String age = in.nextLine();
        System.out.println("请输入学生居住地:");
        String address = in.nextLine();

        //创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
        Student s = new Student();
        s.setSid(sid);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);

        //将学生添加到集合中
        array.add(s);

        //给出提示添加成功
        System.out.println("添加学生成功!");

    }

在main方法中添加功能里加一个调用addstudent的方法

switch (line) {
                case "1":
                    System.out.println("添加学生");
                    addstudent(array);//调用添加学生方法,储存数据
                    break;

五、查看所有学生的代码编写

就是按照对应格式遍历集合

1.用键盘录入选择查看所有学生信息
2 .定义一个方法,用于查看学生信息
判断集合中是否有数据,如果没有显示相关信息
显示表头信息
将集合中数据取出按照对应格式显示学生信息,年龄显示补充“岁”
3.在相关功能键调用方法
代码示例:

//自定义一个方法,查看学生信息
    public static void findAllStudent(ArrayList<Student>array){
        if(array.size()==0){//如果数组长度为零,说明数组无数据
            System.out.println("无信息,请添加信息后查询!");
            return;//为了不再让程序往下执行
        }
        //显示表头信息
        System.out.println("学号\t姓名\t年龄\t居住地");//为了美观隔一个字符表
        //将集合中数据取出按照格式显示学生信息,年龄显示补充”岁“
        for(int i=0;i< array.size();i++){
            Student s = array.get(i);//由于数据都存进去了,学生对象里是没有数据的,所以用数组进行赋值
            System.out.println(s.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"岁"+"\t"+s.getAddress());//再用student里面数据方法调用出来
        }

    }

在功能键里调用

case "4":
                    System.out.println("查看所有学生");
                    findAllStudent(array);
                    break;

六、删除学生的代码编写

思路:

  1. 用键盘录入选择删除学生信息
  2. 定义一个方法,用于删除学生信息
    提示信息
    键盘录入要删除的学生学号
    遍历集合将对应学生对象从集合里删除
    给出删除成功提示
    代码示例:
 //自定义一个方法,删除学生
    public static void deleteStudent(ArrayList<Student>array){
        //用键盘录入删除的学生学号,提示信息
        Scanner in = new Scanner(System.in);
        System.out.println("请输入要删除的学生学号:");
        String sid = in.nextLine();//接受键盘录入的数据

        //遍历集合循环匹配学生学号将对应学生从集合里删除
        for(int i=0;i<array.size();i++){
            Student s = array.get(i);//循环会一个一个数据匹配直到与我们输入的学号相同然后删除,相当于扫描
            if(s.getSid().equals(sid)){
                array.remove(i);
                break;//找到后就停止匹配
            }
        }
        //给出删除成功提示信息
        System.out.println("删除成功!");


    }

在功能键调用

case "2":
                    System.out.println("删除学生");
                    deleteStudent(array);
                    break;

七、修改学生的代码编写

思路:

  1. 键盘录入选择修改学生
  2. 自定义一个方法,用于修改学生信息
    提示信息
    键盘录入要修改的学生学号
    键盘录入要修改的学生信息
    遍历集合修改对应学生信息
    给出成功提示
    调用方法
    代码示例:
//自定义一个方法,修改学生
    public static void updateStudent(ArrayList<Student>array){
        //用键盘录入修改的学生学号,提示信息
        Scanner in = new Scanner(System.in);
        System.out.println("请输入要修改的学生学号:");
        String sid = in.nextLine();//接受键盘录入的数据

        //键盘录入要修改的学生信息
        System.out.println("请输入学生新姓名:");
        String name = in.nextLine();//输入待修改的新数据
        System.out.println("请输入学生新年龄:");
        String age = in.nextLine();
        System.out.println("请输入学生新居住地:");
        String address = in.nextLine();

        //创建学生对象
        Student s = new Student();//赋值给学生对象,匹配后与对应数据进行替换
        s.setSid(sid);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);

        //遍历集合循环匹配学生学号将对应学生从集合里修改
        for(int i=0;i<array.size();i++){
            Student student = array.get(i);//循环会一个一个数据匹配直到与我们输入的学号相同然后修改,相当于扫描
            if(student.getSid().equals(sid)){
                array.set(i,s);//删除指定位置插入指定元素
                break;//找到后就停止匹配
            }
        }
        //给出删除成功提示信息
        System.out.println("修改成功!");

    }

功能键里调用:

case "3":
                    System.out.println("修改学生");
                    updateStudent(array);
                    break;

八、项目结构和源码

1.一个学生类,一个学生管理类
在这里插入图片描述
2.全部代码

  1. 学生类
package StudentManage;
/*
    学生类
    Alt+Insert 根据自己的需求进行选择
 */

public class Student {
    //学号
    private String sid;
    //姓名
    private String name;
    //年龄
    private String age;
    //居住地
    private String address;
    //构造方法
    public Student() {//快捷键:Alt+Insert 一个参数都不选,选择包就是无参构造
    }
    //带四个参数构造
    public Student(String sid, String name, String age, String address) {//按住Shift全选构造带四个参数的方法
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.address = address;
    }
    //相应get/set方法,快捷键全选
    public String getSid() {
        return sid;
    }

    public String getName() {
        return name;
    }

    public String getAge() {
        return age;
    }

    public String getAddress() {
        return address;
    }

    public void setSid(String sid) {
        this.sid = sid;
    }

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

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

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

2.学生管理类

package StudentManage;
/*
    学生管理系统
 */

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

public class StudentManage {

    //定义主界面
    public static void main(String[] args) {
        //创建集合对象,用于储存学生数据
        ArrayList<Student> array = new ArrayList<Student>();
        //用循环完成再次回到主界面,重复整个操作,但无法退出
        while (true) {
            //用输出语句完成主界面的编写
            System.out.println("--------欢迎来到学生管理系统--------");
            System.out.println("1.添加学生");
            System.out.println("2.删除学生");
            System.out.println("3.修改学生");
            System.out.println("4.查看所有学生");
            System.out.println("5.退出");
            System.out.println("请输入你的选择:");

            //用Scanner实现键盘录入
            Scanner in = new Scanner(System.in);//标准式输入
            String line = in.nextLine();//获取一行字符串

            //用switch语句完成操作的选择
            switch (line) {
                case "1":
                    System.out.println("添加学生");
                    addStudent(array);//调用添加学生方法,储存数据
                    break;
                case "2":
                    System.out.println("删除学生");
                    deleteStudent(array);
                    break;
                case "3":
                    System.out.println("修改学生");
                    updateStudent(array);
                    break;
                case "4":
                    System.out.println("查看所有学生");
                    findAllStudent(array);
                    break;
                case "5":
                    System.out.println("谢谢使用!");
                    System.exit(0);//虚拟机退出(整个程序退出)
            }
        }
    }

    //自定义一个方法,用于添加学生信息
    public static void addStudent(ArrayList<Student> array) {
        //键盘录入学生对象所需要的数据,显示提示信息,提示要输入何种信息
        Scanner in = new Scanner(System.in);
        System.out.println("请输入学生学号:");
        String sid = in.nextLine();
        System.out.println("请输入学生姓名:");
        String name = in.nextLine();
        System.out.println("请输入学生年龄:");
        String age = in.nextLine();
        System.out.println("请输入学生居住地:");
        String address = in.nextLine();

        //创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
        Student s = new Student();
        s.setSid(sid);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);

        //将学生添加到集合中
        array.add(s);

        //给出提示添加成功
        System.out.println("添加学生成功!");

    }

    //自定义一个方法,查看学生信息
    public static void findAllStudent(ArrayList<Student> array) {
        if (array.size() == 0) {//如果数组长度为零,说明数组无数据
            System.out.println("无信息,请添加信息后查询!");
            return;//为了让程序不再往下执行
        }
        //显示表头信息
        System.out.println("学号\t\t姓名\t\t\t年龄\t\t居住地");//为了美观隔一个字符表,但不够要多几个
        //将集合中数据取出按照格式显示学生信息,年龄显示补充”岁“
        for (int i = 0; i < array.size(); i++) {
            Student s = array.get(i);//由于数据都存进去了,学生对象里是没有数据的,所以用数组进行赋值
            System.out.println(s.getSid() + "\t\t" + s.getName() + "\t\t" + s.getAge() + "岁\t" + s.getAddress());//再用student里面数据方法调用出来
        }

    }

    //自定义一个方法,删除学生
     public static void deleteStudent(ArrayList<Student>array){
        //用键盘录入删除的学生学号,提示信息
        Scanner in = new Scanner(System.in);
        System.out.println("请输入要删除的学生学号:");
        String sid = in.nextLine();//接受键盘录入的数据

        //遍历集合循环匹配学生学号将对应学生从集合里删除
        for(int i=0;i<array.size();i++){
            Student s = array.get(i);//循环会一个一个数据匹配直到与我们输入的学号相同然后删除,相当于扫描
            if(s.getSid().equals(sid)){
                array.remove(i);
                break;//找到后就停止匹配
            }
        }
        //给出删除成功提示信息
        System.out.println("删除成功!");


    }

    //自定义一个方法,修改学生
    public static void updateStudent(ArrayList<Student>array){
        //用键盘录入修改的学生学号,提示信息
        Scanner in = new Scanner(System.in);
        System.out.println("请输入要修改的学生学号:");
        String sid = in.nextLine();//接受键盘录入的数据

        //键盘录入要修改的学生信息
        System.out.println("请输入学生新姓名:");
        String name = in.nextLine();//输入待修改的新数据
        System.out.println("请输入学生新年龄:");
        String age = in.nextLine();
        System.out.println("请输入学生新居住地:");
        String address = in.nextLine();

        //创建学生对象
        Student s = new Student();//赋值给学生对象,匹配后与对应数据进行替换
        s.setSid(sid);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);

        //遍历集合循环匹配学生学号将对应学生从集合里修改
        for(int i=0;i<array.size();i++){
            Student student = array.get(i);//循环会一个一个数据匹配直到与我们输入的学号相同然后修改,相当于扫描
            if(student.getSid().equals(sid)){
                array.set(i,s);//删除指定位置插入指定元素
                break;//找到后就停止匹配
            }
        }
        //给出删除成功提示信息
        System.out.println("修改成功!");

    }


}

总结

  1. 在b站黑马程序员那看的,从类与对象开始讲的知识点就是在为做简单学生管理系统做准备,还不错,讲的很细通俗易懂。
  2. 不理解也不着急,初学不可能看点视频看点书一点就通的,建议先学完一个体系,多跟着视频老师敲敲代码,照着书敲。不必在某一个点钻牛角尖,所谓船到桥头自然直,不断实践,就能理解了。听某个鹅厂大佬说的…
  3. 主要利用创建的学生类用学生对象不断进行相关操作
    掌握相关方法调用学习文档和PPT:https://blog.csdn.net/weixin_51753483/article/details/119681547
    4.经过调试,上面解释代码运行有点异常,学习理解直接使用第八部分的整段代码
    5.录入两个字的名字和三个字以上的名字使用查看所有学生功能时不对称,不知道如何调试。
    Java入门项目:实现简单学生管理系统(逐个功能详解版)_第3张图片

你可能感兴趣的:(java)