目录:

前言

1.输入与输出

2.if分支和while循环

3.数组

4.面向对象

5.集合

一、学生成绩管理系统

1.创建学生对象

1.在模块下新建一个包定义Student类:

2.私有化学生数据

3.随后重写tostring方法,和导入lombok包,进行有参无参get,set方法的调用

2.创建StudentScoreManager类,

1.创建集合用于存储学生信息

3.创建输入语句

4.用while死循环写学生系统操作页面

5.用switch语句,把创建方法然后alt回车,把操作逻辑写在方法里面

下面是四种方法的具体实现:

1.增加学生

2.打印学生列表

3.修改学生信息

4.删除学生

该类完整代码如下:

3.创建主函数类

最终呈现:

总结


前言

今天我们根据之前的内容开发一个简单的学生管理系统

在这篇文章学习实现"学生管理系统"之前,需要我们了解并学习过以下知识点(知识点不熟悉的同志可以点下面链接,里面有我对于该知识点的详细讲解):

1.输入与输出

https://blog.csdn.net/2502_94242477/article/details/158893531?fromshare=blogdetail&sharetype=blogdetail&sharerId=158893531&sharerefer=PC&sharesource=2502_94242477&sharefrom=from_linkhttps://blog.csdn.net/2502_94242477/article/details/158893531?fromshare=blogdetail&sharetype=blogdetail&sharerId=158893531&sharerefer=PC&sharesource=2502_94242477&sharefrom=from_link

2.if分支和while循环

https://blog.csdn.net/2502_94242477/article/details/159085629?fromshare=blogdetail&sharetype=blogdetail&sharerId=159085629&sharerefer=PC&sharesource=2502_94242477&sharefrom=from_linkhttps://blog.csdn.net/2502_94242477/article/details/159085629?fromshare=blogdetail&sharetype=blogdetail&sharerId=159085629&sharerefer=PC&sharesource=2502_94242477&sharefrom=from_link

3.数组

https://blog.csdn.net/2502_94242477/article/details/159085629?fromshare=blogdetail&sharetype=blogdetail&sharerId=159085629&sharerefer=PC&sharesource=2502_94242477&sharefrom=from_linkhttps://blog.csdn.net/2502_94242477/article/details/159085629?fromshare=blogdetail&sharetype=blogdetail&sharerId=159085629&sharerefer=PC&sharesource=2502_94242477&sharefrom=from_link

4.面向对象

https://blog.csdn.net/2502_94242477/article/details/159283721?fromshare=blogdetail&sharetype=blogdetail&sharerId=159283721&sharerefer=PC&sharesource=2502_94242477&sharefrom=from_linkhttps://blog.csdn.net/2502_94242477/article/details/159283721?fromshare=blogdetail&sharetype=blogdetail&sharerId=159283721&sharerefer=PC&sharesource=2502_94242477&sharefrom=from_link

5.集合

https://blog.csdn.net/2502_94242477/article/details/159893567?fromshare=blogdetail&sharetype=blogdetail&sharerId=159893567&sharerefer=PC&sharesource=2502_94242477&sharefrom=from_linkhttps://blog.csdn.net/2502_94242477/article/details/159893567?fromshare=blogdetail&sharetype=blogdetail&sharerId=159893567&sharerefer=PC&sharesource=2502_94242477&sharefrom=from_link


一、学生成绩管理系统

首先我们要知道学生管理系统有以下功能:

1.添加学生

2.查看学生列表

3.修改学生成绩

4.删除学生

5.退出

1.创建学生对象

1.在模块下新建一个包定义Student类:

2.私有化学生数据

这里我们仅存储学生名字数据和分数数据

private String name;
private double score;

3.随后重写tostring方法,和导入lombok包,进行有参无参get,set方法的调用

Student类代码完整如下

这样Student类就写完了


2.创建StudentScoreManager类,

这个类用于我们系统的操作页面,和逻辑,所以最为复杂

1.创建集合用于存储学生信息

 ArrayList<Student> students = new ArrayList<>();

3.创建输入语句

 Scanner scanner = new Scanner(System.in);

4.用while死循环写学生系统操作页面

  while (true) {
                System.out.println("\n=== 学生成绩管理系统 ===");
                System.out.println("1. 添加学生");
                System.out.println("2. 查看学生列表");
                System.out.println("3. 修改成绩");
                System.out.println("4. 删除学生");
                System.out.println("5. 退出");
                System.out.print("请选择操作: ");
}

5.用switch语句,把创建方法然后alt回车,把操作逻辑写在方法里面

  switch (choice) {
                    case 1:
                        addStudent();
                        break;
                    case 2:
                        listStudents();
                        break;
                    case 3:
                        updateScore();
                        break;
                    case 4:
                        deleteStudent();
                        break;
                    case 5:
                        return;
                    default:
                        System.out.println("无效的选择,请重新输入");
}

完整代码如下

下面是四种方法的具体实现:

1.增加学生
 public void addStudent() {
            System.out.print("请输入学生姓名: ");
            String name = scanner.nextLine();
            System.out.print("请输入学生成绩: ");
            double score = scanner.nextDouble();
            scanner.nextLine(); // 清除缓冲区(\n)

            students.add(new Student(name, score));
            System.out.println("学生信息添加成功!");
        }

思路实现:

1.我们先用输出System提示用户输出内容,而后用Scanner输入把数据用一个变量存储

注意:第二个输入后我们用Scanner.nextLine();

因为这行代码用于清除Scanner输入缓冲区中残留的换行符。当之前调用nextDouble()、nextInt()等方法后,缓冲区会留下换行符,影响后续nextLine()的读取,因此需要此行代码来清理缓冲区,确保输入流正常。

2.把读取的两个数据存储到最开始创建的Student集合里面

2.打印学生列表
      public void listStudents() {
            if (students.isEmpty()) {
                System.out.println("当前没有学生信息");
                return;
            }

            System.out.println("\n=== 学生列表 ===");
            for (int i = 0; i < students.size(); i++) {
                System.out.println((i + 1) + ". " + students.get(i));
            }
        }

思路实现:

1.我们先判断当学生信息为空,也就是没有添加学生信息的情况,我们用到isEmpty方法

2.通过循环输出集合

3.修改学生信息
 public void updateScore() {
            listStudents();
            if (students.isEmpty()) return;

            System.out.print("请输入要修改成绩的学生编号: ");
            int index = scanner.nextInt() - 1;
            scanner.nextLine();

            if (index >= 0 && index < students.size()) {
                System.out.print("请输入新的成绩: ");
                double newScore = scanner.nextDouble();
                scanner.nextLine();

                Student student = students.get(index);
                students.set(index, new Student(student.getName(), newScore));
                System.out.println("成绩修改成功!");
            } else {
                System.out.println("无效的学生编号");
            }

思路实现:

1.先把学生列表打印

2.把需要被修改的学生编号用变量保持,这里要-1,因为索引从0开始.

3.用if条件语句判断索引是否正确,若正确,提示用户把要改的成绩输入

4.用set方法,修改要被修改的集合里面的内容

4.删除学生
     public void deleteStudent() {
            listStudents();
            if (students.isEmpty()) return;

            System.out.print("请输入要删除的学生编号: ");
            int index = scanner.nextInt() - 1;
            scanner.nextLine();

            if (index >= 0 && index < students.size()) {
                students.remove(index);
                System.out.println("学生信息删除成功!");
            } else {
                System.out.println("无效的学生编号");
            }
        }

思路实现:

1.前面内容跟修改学生内容一致

2.用if语句判断正确后,用remove方法,移除集合当中该学生的成绩

该类完整代码如下:

package itheima.arraylist;

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


    public class StudentScoreManager {
         ArrayList<Student> students = new ArrayList<>();
         Scanner scanner = new Scanner(System.in);

        public void addStudent() {
            System.out.print("请输入学生姓名: ");
            String name = scanner.nextLine();
            System.out.print("请输入学生成绩: ");
            double score = scanner.nextDouble();
            scanner.nextLine(); // 清除缓冲区(\n)

            students.add(new Student(name, score));
            System.out.println("学生信息添加成功!");
        }

        public void listStudents() {
            if (students.isEmpty()) {
                System.out.println("当前没有学生信息");
                return;
            }

            System.out.println("\n=== 学生列表 ===");
            for (int i = 0; i < students.size(); i++) {
                System.out.println((i + 1) + ". " + students.get(i));
            }
        }

        public void updateScore() {
            listStudents();
            if (students.isEmpty()) return;

            System.out.print("请输入要修改成绩的学生编号: ");
            int index = scanner.nextInt() - 1;
            scanner.nextLine();

            if (index >= 0 && index < students.size()) {
                System.out.print("请输入新的成绩: ");
                double newScore = scanner.nextDouble();
                scanner.nextLine();

                Student student = students.get(index);
                students.set(index, new Student(student.getName(), newScore));
                System.out.println("成绩修改成功!");
            } else {
                System.out.println("无效的学生编号");
            }
        }

        public void deleteStudent() {
            listStudents();
            if (students.isEmpty()) return;

            System.out.print("请输入要删除的学生编号: ");
            int index = scanner.nextInt() - 1;
            scanner.nextLine();

            if (index >= 0 && index < students.size()) {
                students.remove(index);
                System.out.println("学生信息删除成功!");
            } else {
                System.out.println("无效的学生编号");
            }
        }

        public void run() {

            while (true) {
                System.out.println("\n=== 学生成绩管理系统 ===");
                System.out.println("1. 添加学生");
                System.out.println("2. 查看学生列表");
                System.out.println("3. 修改成绩");
                System.out.println("4. 删除学生");
                System.out.println("5. 退出");
                System.out.print("请选择操作: ");

                int choice = scanner.nextInt();
                scanner.nextLine();

                switch (choice) {
                    case 1:
                        addStudent();
                        break;
                    case 2:
                        listStudents();
                        break;
                    case 3:
                        updateScore();
                        break;
                    case 4:
                        deleteStudent();
                        break;
                    case 5:
                        return;
                    default:
                        System.out.println("无效的选择,请重新输入");
                }
            }
        }
    }


3.创建主函数类

创建main类,在主函数里面创建StudentScoreManager对象,然后调用他的run方法

public class main {
    public static void main(String[] args) {
        StudentScoreManager manager = new StudentScoreManager();
        manager.run();
    }
}

最终呈现:

添加学生和打印学生:

修改学生成绩

删除学生

退出


总结

今天我们写了一个学生成绩管理系统的小项目,把前面的知识串了一下。

本次分享到此结束,感谢大家的观看与支持!如果本内容对您有帮助,欢迎点赞、收藏,您的支持将是我持续创作的最大动力,谢谢!

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐