前言:最近练习了用Java语言实现简单的学生管理系统小项目,分享一下。
摘要分析如下:
实现的主要功能:
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 如果都不相同,返回false
boolean 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();
}
}
}
项目演示: