创建Student类(标准的JavaBean)
package com.jike.demo02;
public class Student {
private String id;
private String name;
private int age;
private String address;
public Student(){
}
public Student(String id,String name,int age,String address){
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
创建测试类StudentTest:
package com.jike.demo02;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentTest {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
// 将while循环定义成loop,用于跳出循环
loop: while (true) {
System.out.println("----------欢迎来到学生管理系统----------");
System.out.println("1:添加学生");
System.out.println("2:删除学生");
System.out.println("3:修改学生");
System.out.println("4:查询学生");
System.out.println("5:退出");
System.out.println("请输入您的选择:");
Scanner sc = new Scanner(System.in);
String choose = sc.next();
switch (choose){
case "1": addStudent(list);
break;
case "2": deleteStudent(list);
break;
case "3": updateStudent(list);
break;
case "4": queryStudent(list);
break;
case "5": System.out.println("退出");
break loop;
// System.exit(0); //停止虚拟机运行
default:
System.out.println("没有这个选项!");
break;
}
}
}
// 添加学生
public static void addStudent(ArrayList<Student> list){
Student s = new Student();
Scanner sc = new Scanner(System.in);
String id = null;
while (true) {
System.out.println("请输入学生id");
id = sc.next();
boolean flag = contains(list,id);
if (flag){
//如果存在,则重新录入id
System.out.println("id存在,则重新录入!");
}else {
//id不存在,可以直接录入
s.setId(id);
break;
}
}
System.out.println("请输入学生姓名");
String name = sc.next();
s.setName(name);
System.out.println("请输入学生年龄");
int age = sc.nextInt();
s.setAge(age);
System.out.println("请输入学生住址");
String address = sc.next();
s.setAddress(address);
//添加到集合中
list.add(s);
//提示用户
System.out.println("添加成功");
}
// 删除学生
public static void deleteStudent(ArrayList<Student> list){
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要删除的学生id:");
String id = sc.next();
//查询id在集合中的索引
int index = getIndex(list, id);
// 对id进行判断
// 如果大于等于0直接删除,如果是-1则直接结束,返回到开始菜单
if (index >= 0){
list.remove(index);
System.out.println("id为"+id+"的学生已被删除");
}else {
System.out.println("id不存在,删除失败");
}
}
// 修改学生
public static void updateStudent(ArrayList<Student> list){
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要修改的学生id:");
String id = sc.next();
//查询id在集合中的索引
int index = getIndex(list, id);
// 对id进行判断
if (index == -1) {
System.out.println("id不存在无法修改");
return;
}
//当代码运行到这则表示id存在
Student stu = list.get(index);
//输入要修改的信息
System.out.println("请输入要修改的学生姓名");
String newName = sc.next();
stu.setName(newName);
System.out.println("请输入要修改的学生年龄");
int newAge = sc.nextInt();
stu.setAge(newAge);
System.out.println("请输入要修改的学生住址");
String newAddress = sc.next();
stu.setAddress(newAddress);
System.out.println("学生修改信息成功!");
}
// 查询学生
public static void queryStudent(ArrayList<Student> list){
//System.out.println("查询学生");
if (list.size() == 0){
System.out.println("无学生信息,请在添加后查询!");
return;
}
//当代码执行到这里就说明有学生对象
for (int i = 0; i < list.size(); i++) {
Student st = list.get(i);
System.out.println(st.getId()+"\t"+st.getName()+"\t"+st.getAge()+"\t"+st.getAddress());
}
}
//id唯一的判断
public static boolean contains(ArrayList<Student> list, String id){
// //循环遍历集合
// for (int i = 0; i < list.size(); i++) {
// Student stu = list.get(i);
// String sid = stu.getId();
// if (sid.equals(id)){
// return true;
// }
// }
// return false;
return getIndex(list,id) >= 0;
}
//查找学生的id
public static int getIndex(ArrayList<Student> list, String id){
//遍历集合,得到每个学生对象
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
//得到每个学生id
String sid = stu.getId();
// 用集合中的id与要删除的id比较
if (sid.equals(id)){
// 如果id存在则返回索引
return i;
}
}
// 不存在返回-1
return -1;
}
}
在学生管理系统中添加登录界面,请见《登录界面》
欢迎小伙伴发表自己的意见,听说点赞加关注的人最帅。