java-从零打造学生管理系统
目录前言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?fromshareblogdetailsharetypeblogdetailsharerId158893531sharereferPCsharesource2502_94242477sharefromfrom_linkhttps://blog.csdn.net/2502_94242477/article/details/158893531?fromshareblogdetailsharetypeblogdetailsharerId158893531sharereferPCsharesource2502_94242477sharefromfrom_link2.if分支和while循环https://blog.csdn.net/2502_94242477/article/details/159085629?fromshareblogdetailsharetypeblogdetailsharerId159085629sharereferPCsharesource2502_94242477sharefromfrom_linkhttps://blog.csdn.net/2502_94242477/article/details/159085629?fromshareblogdetailsharetypeblogdetailsharerId159085629sharereferPCsharesource2502_94242477sharefromfrom_link3.数组https://blog.csdn.net/2502_94242477/article/details/159085629?fromshareblogdetailsharetypeblogdetailsharerId159085629sharereferPCsharesource2502_94242477sharefromfrom_linkhttps://blog.csdn.net/2502_94242477/article/details/159085629?fromshareblogdetailsharetypeblogdetailsharerId159085629sharereferPCsharesource2502_94242477sharefromfrom_link4.面向对象https://blog.csdn.net/2502_94242477/article/details/159283721?fromshareblogdetailsharetypeblogdetailsharerId159283721sharereferPCsharesource2502_94242477sharefromfrom_linkhttps://blog.csdn.net/2502_94242477/article/details/159283721?fromshareblogdetailsharetypeblogdetailsharerId159283721sharereferPCsharesource2502_94242477sharefromfrom_link5.集合https://blog.csdn.net/2502_94242477/article/details/159893567?fromshareblogdetailsharetypeblogdetailsharerId159893567sharereferPCsharesource2502_94242477sharefromfrom_linkhttps://blog.csdn.net/2502_94242477/article/details/159893567?fromshareblogdetailsharetypeblogdetailsharerId159893567sharereferPCsharesource2502_94242477sharefromfrom_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.创建集合用于存储学生信息ArrayListStudent 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 { ArrayListStudent 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(); } }最终呈现:添加学生和打印学生:修改学生成绩删除学生退出总结今天我们写了一个学生成绩管理系统的小项目把前面的知识串了一下。本次分享到此结束感谢大家的观看与支持如果本内容对您有帮助欢迎点赞、收藏您的支持将是我持续创作的最大动力谢谢