1.步骤:
A:定义一个学生类:
public class Student {
//学生类属性
private String id;
private String name;
private String age;
private String address;
//学生类方法
public Student() {
}
public Student(String id, String name, String age, String address) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
}
//getXxx(),setXxx()方法
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 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;
}
}
B:学生类的test:
public class StudentTest {
public static void main(String[] args) {
//创建一个学生集合用来管理学生信息
ArrayList<Student> arrst=new ArrayList<Student>();
//学生管理系统主界面
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 number = sc.nextLine();
//通过switch循环来实现选择的具体操作
switch(number) {
case "1":
findStudent(arrst) ;
break;
case "2":
addStudent(arrst);
break;
case "3":
remoteStudent(arrst);
break;
case "4":
updateStudent(arrst);
break;
case "5":
//退出
default:
System.out.println("退出成功,谢谢使用!");
//jvm非异常退出
System.exit(0);
break;
}
}
}
//查看学生信息方法
public static void findStudent(ArrayList<Student> arrst) {
if(arrst.size()==0) {
System.out.println("对不起,没有学生信息可以访问");
return;
}
System.out.println("学号\t姓名\t年龄\t住址");
for(int x=0;x<arrst.size();x++) {
Student s=arrst.get(x);
System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddress());
}
}
//添加学生信息
public static void addStudent(ArrayList<Student> arrst) {
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
String id;
while(true) {
System.out.println("请输入学生id:");
id=sc.nextLine();
//判断输入的id是否已存在
boolean flag=false;//定义一个标记
for(int x=0;x<arrst.size();x++) {
Student s=arrst.get(x);
//将输入的学号与存储的学号进行验证
if(s.getId().equals(id)) {
//学号被占用
flag=true;
break;
}
}
if(flag) {
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 s=new Student();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setAddress(address);
arrst.add(s);
System.out.println("添加成功!");
}
//删除学生信息
public static void remoteStudent(ArrayList<Student> arrst) {
//键盘出入要删除的学号
Scanner sc=new Scanner(System.in);
System.out.println("请输入要删除的学号:");
String id = sc.nextLine();
int i=-1;
//用循环来遍历集合,找到该学号
for(int x=0;x<arrst.size();x++) {
Student s = arrst.get(x);
if(s.getId().equals(id)) {
i=x;
break;
}
}
if(i==-1) {
System.out.println("找不到该学号,请重新输入:");
}else {
arrst.remove(i);
System.out.println("删除成功!");
}
}
//修改学生信息
public static void updateStudent(ArrayList<Student> arrst) {
//键盘出入要修改的学号
Scanner sc=new Scanner(System.in);
System.out.println("请输入要修改的学号:");
String id = sc.nextLine();
//定义一个变量
int i=-1;
//遍历学生集合,找到该学号
for(int x=0;x<arrst.size();x++) {
Student s = arrst.get(x);
if(s.getId().equals(id)) {
i=x;
break;
}
}
if(i==-1) {
System.out.println("找不到该学号,请重新输入:");
}else {
//System.out.println("请输入新的学号");
//String id=sc.nextLine();
System.out.println("请输入新的姓名:");
String name=sc.nextLine();
System.out.println("请输入新的年龄:");
String age=sc.nextLine();
System.out.println("请输入新的住址:");
String address=sc.nextLine();
//将输入的数据赋值给新的学生对象
Student st=new Student();
st.setId(id);
st.setName(name);
st.setAge(age);
st.setAddress(address);
//根据id替换学生集合中的原有数据
arrst.set(i, st);
System.out.println("修改成功!");
}
}
}