java基础实训:利用ArrayList制作一个学生管理系统
利用ArrayList制作一个学生管理系统
学生实体类代码:
package train.base.studentManagerSystem;
// Student实体类
public class Student {
private int uid;
private String name;
private int age;
// 无参构造
public Student() {
}
// 有参构造
public Student(int uid, String name, int age) {
this.uid = uid;
this.name = name;
this.age = age;
}
// setter和getter
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
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;
}
}
主程序代码:
package train.base.studentManagerSystem;
import java.util.ArrayList;
import java.util.Scanner;
public class Application {
public static void main(String[] args) {
// 实例化一个数组列表
ArrayList<Student> arrayList = 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("请选择您需要的功能:");
// 实例化一个扫描器接收选择
Scanner scanner = new Scanner(System.in);
int input = scanner.nextInt();
switch (input) {
case 1:
addStudent(arrayList);
break;
case 2:
deleteStudent(arrayList);
break;
case 3:
updateStudent(arrayList);
break;
case 4:
lookOver(arrayList);
break;
case 5:
// 关闭JVM
System.exit(0);
}
}
}
// 添加学生方法
public static void addStudent(ArrayList<Student> arrayList) {
// 利用自定义的工具方法input()获取输入的对象
Student student = input();
arrayList.add(student);
}
// 删除学生方法
public static void deleteStudent(ArrayList<Student> arrayList) {
// 利用自定义的工具方法findIndex()找到输入学号对应的索引
int index = findIndex(arrayList);
// 如果找到就删
if (index != -1) {
// 删除学生
arrayList.remove(index);
System.out.println("删除成功");
}else {
System.out.println("没找到该学号,可以查看后在使用该功能");
}
}
// 修改学生方法
public static void updateStudent(ArrayList<Student> arrayList) {
// 利用findIndex()找到输入学号对应的索引
int index = findIndex(arrayList);
// 如果找到就修改
if (index != -1) {
// 提示
System.out.println("输入修改后的数据:");
// 利用自定义的工具方法input()获取输入的对象
Student student = input();
// 修改
arrayList.set(index,student);
System.out.println("修改成功");
}else {
System.out.println("没找到该学号,可以查看后在使用该功能");
}
}
// 查看所有学生
public static void lookOver(ArrayList<Student> arrayList) {
System.out.println("学号\t\t姓名\t\t年龄");
// 通过遍历打印所有元素
for (int i = 0; i < arrayList.size(); i++) {
Student student = arrayList.get(i);
int uid = student.getUid();
String name = student.getName();
int age = student.getAge();
System.out.println(uid + "\t\t" + name + "\t\t" + age);
}
}
/*
* 下面为工具方法,解耦
* */
// 接收输入方法
public static Student input() {
// 实例化一个扫描器
Scanner scanner = new Scanner(System.in);
// 接收输入
System.out.println("请输入学号");
int uid = scanner.nextInt();
System.out.println("请输入姓名");
String name = scanner.next();
System.out.println("请输入年龄");
int age = scanner.nextInt();
// 利用有参构造器实例化student
Student student = new Student(uid, name, age);
return student;
}
// 通过学号查找索引
public static int findIndex(ArrayList<Student> arrayList) {
System.out.println("请输入学号:");
// 实例化扫描器接收输入
int inputUid = new Scanner(System.in).nextInt();
// 定义一个index用于返回,默认为-1
int index = -1;
for (int i = 0; i < arrayList.size(); i++) {
int uid = arrayList.get(i).getUid();
if (uid == inputUid) {
index = i;
}
}
// 未找到index为-1
return index;
}
}