StudentManager.java
package com.arraylist;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManager {
public static void main(String[] args) {
//简单的学生管理系统
//创建集合对象
ArrayList<Student> array = new ArrayList<>();
//查看界面:
while (true) {
show(array);
}
}
//添加学生信息
public static void addStudent(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入添加的学生学号");
String sid = sc.nextLine();
//判断sid是否存在
while (isUsed(array, sid)) {
System.out.println("该学号已存在,请重新输入学生学号:");
sid = sc.nextLine();
}
System.out.println("请输入添加的学生姓名");
String name = sc.nextLine();
System.out.println("请输入添加的学生年龄");
String age = sc.nextLine();
System.out.println("请输入添加的学生住址");
String address = sc.nextLine();
System.out.println("添加成功与否:" + array.add(new Student(sid, name, age, address)));
}
//查看学生信息
public static void findAllStudent(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你想要查看的学生学号:");
String sid = sc.nextLine();
for (int i = 0; i < array.size(); i++) {
Student sd = array.get(i);
if (sd.getSid().equals(sid)) {
System.out.println("学号:" + sd.getSid() + "\t姓名:" + sd.getName() + "\t年龄:" + sd.getAge() + "\t地址:" + sd.getAddress());
System.out.println("---请问你还想继续查找吗?---");
System.out.println("1.Yes\t2.No");
while (true) {
int n = sc.nextInt();
if (n == 1) {
findAllStudent(array);
break;
} else if (n == 2) {
System.out.println("已停止查找操作");
break;
} else {
System.out.println("输入有误,请重新输入!");
}
}
break;
} else if (i == array.size() - 1) {//查到最后一个仍不匹配
System.out.println("未查找到该学生!");
}
}
}
//删除学生信息
public static void deleteStudent(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你想要删除的学生学号:");
String sid = sc.nextLine();
for (int i = 0; i < array.size(); i++) {
Student sd = array.get(i);
if (sd.getSid().equals(sid)) {
System.out.println("---你确认删除吗?---");
System.out.println("1.Yes\t2.No");
while (true) {
int n = sc.nextInt();
if (n == 1) {
Student sd2 = array.remove(i);
System.out.println("已移除学号为" + sd2.getSid() + "的学生");
System.out.println("请问你还要继续删除学生吗?");
System.out.println("1.Yes\t2.No");
while (true) {
int n2 = sc.nextInt();
if (n2 == 1) {
deleteStudent(array);
break;
} else if (n2 == 2) {
break;
} else {
System.out.println("输入有误,请重新输入!");
}
}
break;
} else if (n == 2) {
System.out.println("已停止删除操作");
break;
} else {
System.out.println("输入有误,请重新输入!");
}
}
break;
} else if (i == array.size() - 1) {//查到最后一个仍不匹配
System.out.println("未查找到该学生!");
}
}
}
//修改学生信息
public static void updateStudent(ArrayList<Student> array) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入你想要修改的学生学号:");
String sid = sc.nextLine();
for (int i = 0; i < array.size(); i++) {
Student sd = array.get(i);
if (sd.getSid().equals(sid)) {
System.out.println("---你确认修改吗?---");
System.out.println("1.Yes\t2.No");
while (true) {
int n = sc.nextInt();
if (n == 1) {
Scanner s = new Scanner(System.in);//不知道为啥这里必须创建一个新的Scanner对象,不然接收不到输入学生学号
System.out.println("请输入添加的学生学号");
String id = s.nextLine();
System.out.println("请输入添加的学生姓名");
String name = s.nextLine();
System.out.println("请输入添加的学生年龄");
String age = s.nextLine();
System.out.println("请输入添加的学生住址");
String address = s.nextLine();
array.set(i, new Student(id, name, age, address));
System.out.println("修改学号为:" + sid + " 的学生为:" + id + " 的学生成功与否:" + array.get(i).getSid().equals(id));
System.out.println("请问你还要继续修改学生吗?");
System.out.println("1.Yes\t2.No");
while (true) {
int n2 = sc.nextInt();
if (n2 == 1) {
updateStudent(array);
break;
} else if (n2 == 2) {
break;
} else {
System.out.println("输入有误,请重新输入!");
}
}
} else if (n == 2) {
System.out.println("已停止修改操作");
break;
} else {
System.out.println("输入有误,请重新输入!");
}
break;
}
break;
} else if (i == array.size() - 1) {//查到最后一个仍不匹配
System.out.println("未查找到该学生!");
}
}
}
//展示界面
public static void show(ArrayList<Student> array) {
System.out.println("|------欢迎来到学生管理系统------|");
System.out.println("|请输入你要进行的操作:");
System.out.println("|1.添加学生\t2.查看学生\t3.删除学生\t4.修改学生\t");
System.out.println("|5.退出系统");
System.out.println("|--------------------------------|");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
switch (n) {
case 1:
System.out.println("添加学生");
addStudent(array);
break;
case 2:
System.out.println("查看学生");
findAllStudent(array);
break;
case 3:
System.out.println("删除学生");
deleteStudent(array);
break;
case 4:
System.out.println("修改学生");
updateStudent(array);
break;
case 5:
System.out.println("谢谢使用!");
// break;
System.exit(0);//退出JVM
default:
System.out.println("输入有误,请重新输入!");
}
}
//解决学号重复问题
public static boolean isUsed(ArrayList<Student> array, String sid) {
if (array.size() == 0) {
return false;//集合内没有任何内容
} else {
for (int i = 0; i < array.size(); i++) {
Student sd = array.get(i);
if (sd.getSid().equals(sid)) {
return true;
} else if (i == array.size() - 1) {
return false;
}
}
}
return true;
}
}
Student.java
package com.arraylist;
public class Student {
private String sid;
private String name;
private String age;
private String address;
public Student(){};
//Alt + insert + Constructor
public Student(String name,String age){
this.name = name;
this.age = age;
}
//Alt + insert + Constructor + Shift全选
public Student(String sid,String name,String age,String address){
this.sid = sid;
this.name = name;
this.age = age;
this.address = address;
}
//Alt + insert + Getter and Setter + Shift全选
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(){
this.age = age;
}
public String getAddress(){
return address;
}
public void setAddress(String address){
this.address = address;
}
}