需求如下
代码
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<student> list = new ArrayList<>();
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("请输入您的选择:");
int choose = sc.nextInt();
switch (choose) {
case 1:
add(list);
break;
case 2:
remove(list);
break;
case 3:
set(list);
break;
case 4:
search(list);
break;
case 5:
return;
default:
System.out.println("没有这个选项");
break;
}
}
}
public static void add(ArrayList<student> list) {
Scanner sc = new Scanner(System.in);
student s1 = new student();
int id;
while (true) {
System.out.println("请输入要添加的学生id");
id = sc.nextInt();
if (contain(list, id)) {
s1.setId(id);
break;
} else {
System.out.println("输入id已存在,重新输入");
}
}
System.out.println("请输入姓名");
String str = sc.next();
s1.setName(str);
System.out.println("请输入年龄");
int age = sc.nextInt();
s1.setAge(age);
System.out.println("请输入家庭住址");
String address = sc.next();
s1.setAddress(address);
list.add(s1);
}
public static void remove(ArrayList<student> list) {
Scanner sc = new Scanner(System.in);
int id;
System.out.println("请输入需要删除的学生id");
id = sc.nextInt();
if (!contain(list, id)) {
list.remove(list.get(getIndex(list, id)));
System.out.println("删除成功");
} else {
System.out.println("id不存在");
}
}
public static void set(ArrayList<student> list) {
Scanner sc = new Scanner(System.in);
student s1 = new student();
System.out.println("请输入需要修改的学生id");
int id = sc.nextInt();
if (contain(list, id)) {
System.out.println("id不存在");
} else {
System.out.println("请输入想要修改的信息");
while (true) {
System.out.println("请输入id:");
int id1 = sc.nextInt();
if (contain(list, id1) || id1 == id)//比较复杂的判断条件,是为了实现可以不改变id的情况
{
s1.setId(id1);
break;
} else {
System.out.println("输入id已存在,重新输入");
}
}
System.out.println("姓名:");
String name = sc.next();
s1.setName(name);
System.out.println("年龄:");
int age = sc.nextInt();
s1.setAge(age);
System.out.println("地址:");
String address = sc.next();
s1.setAddress(address);
list.set(getIndex(list, id), s1);
}
}
public static void search(ArrayList<student> list){
student s1 = new student();
if(list.size()==0){
System.out.println("当前无学生信息,请添加后查看");
}else {
System.out.println("id\t姓名\t年龄\t家庭住址");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getId()+"\t"+list.get(i).getName()+"\t"
+list.get(i).getAge()+"\t"+list.get(i).getAddress());
}
}
}
//判断id值是否存在,如果存在则返回false
public static boolean contain(ArrayList<student> list, int id) {
return getIndex(list,id)<0;
}
//找到id对应的下标
public static int getIndex(ArrayList<student> list, int id) {
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getId() == id) {
return i;
}
}
return -1;
}
}
javabean类
public class student {
private int id;
private String name;
private int age;
private String address;
public student() {
}
public student(int id, String name, int age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
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 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;
}
}