学生管理系统
该系统主要功能如下:
- 定义一个 集合 容器用于存储全部学生 对象 的信息操作。
- 添加学生:通过键盘录入学生信息,添加到集合中。
- 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除。
- 修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改。
- 查看学生:将集合中的学生对象信息进行展示。
- 退出系统:结束程序。
首先创建实体类Student表
package com.yk.sanuan;
/**
* @author txg
* @date 2022/7/15 20:27
* 学生表
*/
public class Student {
private String sid;
private String name;
private String age;
private String address;
public Student() {
}
public Student(String sid, String name, String age, String address) {
this.sid = sid;
this.name = name;
this.age = age;
this.address = address;
}
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
然后创建一个功能实现TestStudent.java
package com.yk.sanuan;
import java.util.ArrayList;
import java.util.Scanner;
/**
* @author txg
* @date 2022/7/15 20:39
* 学生管理系统
* 该系统主要功能如下:
* 定义一个 集合 容器用于存储全部学生 对象 的信息操作。
* 添加学生:通过键盘录入学生信息,添加到集合中。
* 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除。
* 修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改。
* 查看学生:将集合中的学生对象信息进行展示。
* 退出系统:结束程序。
*/
public class TestStudent {
public static void main(String[] args) {
ArrayList<Student> students = new ArrayList<>();
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("------------欢迎进入学生管理系统--------------");
System.out.println("以下为操作步骤命令");
System.out.println("1.添加学生信息:add");
System.out.println("2.删除学生信息:delete");
System.out.println("3.修改学生信息:update");
System.out.println("4.查询学生信息:select");
System.out.println("5.退出信息:exit");
System.out.println("请输入您需要的操作命令:");
String command = sc.nextLine();
switch (command) {
case "1":
addStudent(students);
System.out.println("添加信息成功");
break;
case "2":
deleteStudent(students);
// System.out.println("删除信息成功");
break;
case "3":
updateStudent(students);
// System.out.println("更新学生信息成功");
break;
case "4":
selectStudent(students);
// System.out.println("查询学生信息成功");
break;
case "5":
System.out.println("退出系统");
System.exit(0);
break;
default:
System.out.println("输入有误,请重新输入命令!");
}
System.out.println("");
}
}
/**
* 添加学生信息
*
* @param students
*/
public static void addStudent(ArrayList<Student> students) {
System.out.println("=================添加学生信息============");
// 直接定义扫描器,录入学生信息
Scanner sc = new Scanner(System.in);
String sid;
// 接收学生信息
while (true) {
System.out.println("请您输入学号:");
sid = sc.nextLine();
// 判断学号是否重复
boolean bool = isSIdRepeat(sid, students);
if (bool) {
System.out.println("您输入的学号重复!");
} else {
break;
}
}
System.out.println("请您输入姓名:");
String name = sc.nextLine();
System.out.println("请您输入年龄:");
String age = sc.nextLine();
System.out.println("请您输入地址:");
String address = sc.nextLine();
// 封装学生信息
Student student = new Student(sid, name, age, address);
// 添加学生对象到集合容器
students.add(student);
}
/**
* 删除某个学生的信息
*
* @param students
*/
public static void deleteStudent(ArrayList<Student> students) {
System.out.println("=================删除学生信息============");
if (students.size() > 0) {
while (true) {
System.out.println("请您删除要删除的学号:");
Scanner sc = new Scanner(System.in);
String sid = sc.nextLine();
// 判断学号是否存在
Boolean bool = isSIdRepeat(sid, students);
if (bool) {
int i = getIndex(sid, students);
students.remove(i);
break;
} else {
System.out.println("您删除的学生不存在");
System.out.println("请问您要继续吗? Y/N");
String rs = sc.nextLine();
if ("N".equals(rs)) {
break;
}
}
}
} else {
System.out.println("学生信息为空,请先添加学生信息!");
}
}
/**
* 修改某个学生的信息
*
* @param students
*/
public static void updateStudent(ArrayList<Student> students) {
System.out.println("=================修改学生信息============");
Scanner sc = new Scanner(System.in);
if (students.size() > 0) {
while (true) {
System.out.println("请输入要修改的学生的学号:");
String sid = sc.nextLine();
// 判断学号是否存在
Boolean bool = isSIdRepeat(sid, students);
if (bool) {
// 获取到对象集合中的角标
int index = getIndex(sid, students);
// 用户输入新的学生信息
System.out.println("请您输入姓名:");
String name = sc.nextLine();
System.out.println("请您输入年龄:");
String age = sc.nextLine();
System.out.println("请您输入地址:");
String address = sc.nextLine();
Student newStu = new Student(sid, name, age, address);
students.set(index, newStu);
System.out.println("修改学生信息成功");
break;
} else {
System.out.println("您需要修改的学生不存在!");
System.out.println("请问您要继续吗? Y/N");
String rs = sc.nextLine();
if ("N".equals(rs)) {
break;
}
}
}
} else {
System.out.println("学生信息为空,请先添加学生信息!");
}
}
/**
* 查询全部学生信息
*
* @param students
*/
private static void selectStudent(ArrayList<Student> students) {
System.out.println("学生信息为:");
if (students.size() > 0) {
System.out.println("学号\t\t姓名\t\t年龄\t\t住址");
for (int i = 0; i < students.size(); i++) {
Student s = students.get(i);
StringBuilder sb = new StringBuilder();
System.out.println(sb.append(s.getSid()).append("\t\t").append(s.getName()).append("\t\t").append(s.getAge()).append("\t\t").append(s.getAddress()));
}
} else {
System.out.println("学生信息为空,请先添加学生信息!");
}
}
/**
* 判断学生的学号是否重复
*
* @param sid
* @param students
* @return true 代表重复 false 代表没有重复
*/
public static boolean isSIdRepeat(String sid, ArrayList<Student> students) {
// 遍历集合获取到所有学生对象,并判断学号是否重复
for (int i = 0; i < students.size(); i++) {
Student s = students.get(i);
if (sid.equals(s.getSid())) {
return true;
}
}
return false;
}
/**
* 获取对象在集合中的索引
*
* @param sid
* @param students
* @return
*/
public static int getIndex(String sid, ArrayList<Student> students) {
for (int i = 0; i < students.size(); i++) {
Student s = students.get(i);
if (sid.equals(s.getSid())) {
return i;
}
}
return -1;
}
}
运行结果:添加信息
运行结果:修改信息
运行结果:查询信息
运行结果:删除信息
运行结果:输入错误命令,退出系统
如果您感觉这篇文章,对您有所收获,希望您积极评论转发,传送给合适的人,让我们一起学习进步。