前言:最近练习了用Java语言实现简单的学生管理系统小项目,分享一下。
Ps:原创不易,请多多支持!
摘要分析如下:
实现的主要功能:
1,添加学生信息。
2,查询学生信息(实现了单个学生信息查询 & 所有学生信息查询)。
3,修改学生信息。
4,删除学生信息(实现了单个学生信息删除 & 所有学生信息删除)。
5,退出管理系统。
项目说明:
cn.yunhe.bean包:
Student:代表“学生实体类”。
cn.yunhe.utils包:
StudentTools:代表“工具类”。Scanner键盘录入工具类。
cn.yunhe.view包:
StudentFunction:代表“增、删、改、查功能”。
StudentView:代表“项目视图功能”。
源代码如下:
cn.yunhe.bean包:
package cn.yunhe.bean;/*** @Auther: xydsr* @Date: 2023/4/3 16:58* @Desc: 学生管理系统* 创建学生类,定义私有成员变量,* 并定义构造方法和get、set方法**/public class Student {//定义私有成员属性private int id;private String name;private double score;//创建构造方法(无参和有参构造)public Student() {}public Student(int id, String name, double score) {this.id = id;this.name = name;this.score = score;}//创建set、get方法public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getScore() {return score;}public void setScore(double score) {this.score = score;}
}
cn.yunhe.utils包:
package cn.yunhe.utils;import java.util.Scanner;/*** @Auther: xydsr* @Date: 2023/4/4 17:26* @Desc:**/public class StudentTools {public static int ScannerId() {// System.out.println("请输入学生的学号:");Scanner sc = new Scanner(System.in);return sc.nextInt();}public static String ScannerName() {// System.out.println("请输入学生的姓名:");Scanner sc = new Scanner(System.in);return sc.nextLine();}public static double ScannerScore() {// System.out.println("请输入学生的成绩:");Scanner sc = new Scanner(System.in);return sc.nextDouble();}
}
cn.yunhe.view包:
package cn.yunhe.view;import cn.yunhe.bean.Student;
import cn.yunhe.utils.StudentTools;import java.util.ArrayList;/*** @Auther: xydsr* @Date: 2023/4/4 16:06* @Desc: 学生管理系统功能模块**/public class StudentFunction {//创建集合对象,用于存储学生信息private static ArrayList<Student> arrayList = new ArrayList<>();/*** 1、添加学生信息模块功能实现*/public static void addStudent() {System.out.println();System.out.println("------------1、添加学生信息------------");int id;// 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量Student stu = new Student();// 添加学生学号,并判断是否已存在while (true) {System.out.print("请输入需要添加的学生学号:");id = StudentTools.ScannerId();boolean flag = isUsed(id);if (flag) {System.out.println("对不起,你输入的学号已存在,请重新输入:");} else {break;}}stu.setId(id);// 添加学生姓名System.out.print("请输入需要添加的学生姓名:");String name = StudentTools.ScannerName();stu.setName(name);// 添加学生成绩while (true) {System.out.print("请输入需要添加的学生成绩:");double score = StudentTools.ScannerScore();// 判断输入的成绩是否符合规范if (score <= 100 && score >= 0) {stu.setScore(score);break;} else {System.out.println("你输入的成绩不符合规范,请重新输入:");}}System.out.println();// 将学生对象添加到集合中(保存)arrayList.add(stu);// 添加成功提示System.out.println("添加成功!");}// 定义判断学号是否被占用的方法public static boolean isUsed(int id) {// 如果与集合中的某一个学生学号相同,返回true 如果都不相同,返回falseboolean flag = false;for (int i = 0; i < arrayList.size(); i++) {Student s = arrayList.get(i);if (s.getId() == id) {flag = true;break;}}return flag;}/*** 2、查询学生信息模块功能实现*/public static void searchStudent() {System.out.println();System.out.println("------------2、查询学生信息------------");System.out.println("请输入序号选择查询的方式(1,按照学号查询;2,查询所有信息):");// 调用键盘录入对象方法,输入序号选择查询的方式int fun = StudentTools.ScannerId();while (true) {// 调用查询学生信息的方法if (fun == 1) {searchSingle(); // 调用查询单个学生信息的方法} else if (fun == 2) {searchAll(); // 调用查询所有学生信息的方法} else {System.out.println("你输入的序号功能暂未开发,请重新输入:");}return;}}// 定义查询单个学生信息的方法public static void searchSingle() {// 输入学生学号System.out.print("请输入需要查询的学生学号:");// 调用键盘录入对象方法int stuId = StudentTools.ScannerId();System.out.println();System.out.println("------------学生信息查询结果------------");for (Student student : arrayList) {if (student.getId() == (stuId)) {System.out.println("学号" + " " + "姓名" + " " + "成绩");System.out.println(student.getId() + " " + student.getName() + " " + student.getScore());return;}}System.out.println();System.out.println("对不起,你输入的学号不存在,请重新输入:");System.out.println();}// 定义查询所有学生信息的方法public static void searchAll() {System.out.println();System.out.println("------------学生信息查询结果------------");System.out.println("学号" + " " + "姓名" + " " + "成绩");for (int i = 0; i < arrayList.size(); i++) {Student s = arrayList.get(i);System.out.println(s.getId() + " " +s.getName() + " " + s.getScore());}}/*** 3、修改学生信息模块功能实现*/public static void updateStudent() {System.out.println();System.out.println("------------3、修改学生信息------------");int id;System.out.println("请输入你想修改的学生的学号:");id = StudentTools.ScannerId();// 输入学生学号,判断学号是否存在boolean upId = isExited(id);if (upId) {for (int i = 0; i < arrayList.size(); i++) {Student student = arrayList.get(i);if (student.getId() == (id)) {// 创建学生对象,把键盘录入的数据赋值给学生对象的成员变量Student stu = new Student();// 键盘录入要修改的学生信息System.out.println("请输入修改后的学生的学号:");int updateId = StudentTools.ScannerId();stu.setId(updateId);System.out.println("请输入修改后的学生的姓名:");String updateName = StudentTools.ScannerName();stu.setName(updateName);System.out.println("请输入修改后的学生的成绩:");double updateScore = StudentTools.ScannerScore();// 判断输入的成绩是否符合规范if (updateScore <= 100 && updateScore >= 0) {student.setScore(updateScore);} else {System.out.println("你输入需要修改的成绩不符合规范,请重新输入:");}stu.setScore(updateScore);// 将修改的学生成绩到集合中(修改)arrayList.set(i, stu);// 给出修改成功提示System.out.println("修改成功!");System.out.println();break;}}} else {System.out.println("对不起,你输入的学号不存在,请重新输入:");}}// 定义判断需要修改的学生学号是否存在public static boolean isExited(int id) {boolean updateId = false;for (int i = 0; i < arrayList.size(); i++) {Student s = arrayList.get(i);if (s.getId() == (id)) {updateId = true;break;}}return updateId;}/*** 4、删除学生信息模块功能实现*/public static void deleteStudent() {System.out.println();System.out.println("------------4、删除学生信息------------");System.out.println("请输入序号选择删除的方式(1,按照学号删除;2,删除所有信息):");int delete = StudentTools.ScannerId();while (true) {if (delete == 1) {deleteSingle(); // 1,按照学号删除} else if (delete == 2) {deleteAll(); // 2,删除所有信息} else {System.out.println("你输入的序号功能暂未开发,请重新选择输入:");}break;}return;}// 定义单个删除的方法public static void deleteSingle() {// 判断需要删除的学生信息是否存在System.out.println("请输入需要删除的学生学号:");int id = StudentTools.ScannerId();int index = -1;// 遍历集合将对应学生对象从集合中删除for (int i = 0; i < arrayList.size(); i++) {Student s = arrayList.get(i);if (s.getId() == (id)) {index = i;break;}}while (true) {if (index == -1) {System.out.println("对不起,你输入的学号不存在,请重新输入:");} else {arrayList.remove(index);System.out.println("删除学生信息成功!");}break;}}// 定义全部删除的方法public static void deleteAll() {arrayList.clear();System.out.println("删除所有信息成功!");}/*** 5、退出系统模块功能实现*/public static void exitSystem() {System.out.println();System.err.println("退出成功,欢迎再次访问!");System.exit(0);}
}
package cn.yunhe.view;import cn.yunhe.utils.StudentTools;/*** @Auther: xydsr* @Date: 2023/4/3 16:58* @Desc: 学生管理系统实现需求:* 1、添加学生信息* 2、查询学生信息* 3、修改学生信息* 4、删除学生信息* 5、退出管理系统**/public class StudentView {public static void main(String[] args) {//用循环完成回到系统主界面功能while (true) {//系统主界面菜单模块System.out.println("------欢迎来到-xydsr-学生管理系统------");System.out.println("|-----------1、添加学生信息-----------|");System.out.println("|-----------2、查询学生信息-----------|");System.out.println("|-----------3、修改学生信息-----------|");System.out.println("|-----------4、删除学生信息-----------|");System.out.println("|-----------5、退出管理系统-----------|");//添加一个空格行,为了输出控制台布局美观、不拥挤(下同)。System.out.println();System.out.println("请选择功能序号:");int str = StudentTools.ScannerId();// 用switch循环完成系统主界面功能模块的切换操作switch (str) {case 1:// System.out.println("1、添加学生信息");StudentFunction.addStudent();break;case 2:// System.out.println("2、查询学生信息");StudentFunction.searchStudent();break;case 3:// System.out.println("3、修改学生信息");StudentFunction.updateStudent();break;case 4:// System.out.println("4、删除学生信息");StudentFunction.deleteStudent();break;case 5:// System.out.println("5、退出系统");StudentFunction.exitSystem();break;default:System.out.println("对不起,你选择的功能序号有误,请重新输入:");}//添加一个空格行,为了输出控制台布局美观、不拥挤。System.out.println();}}}
项目演示: