Java基础00-学生管理系统16
1. 学生管理系统
1.1 项目演示
1.2 实现思路
1.3 定义学生类
public class Student { private String sid; private String name; private String age; private String address; public Student() { } public Student(String sid, String name, String age, String address){ this.sid = sid; this.name = name; this.age = age; this.address = address; } 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(String age){ this.age = age; } public String getAddress(){ return address; } public void setAddress(String address){ this.address = address; } }
1.4 主界面的代码编写
import java.util.ArrayList; import java.util.Scanner; public class StudentManager { public static void main(String[] args) { 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 line = sc.nextLine(); switch (line) { case "1": System.out.println("添加学生"); break; case "2": System.out.println("删除学生"); break; case "3": System.out.println("修改学生"); break; case "4": System.out.println("查看所有学生"); break; case "5": System.out.println("谢谢使用"); System.exit(0);//JVM退出 } } } }
运行结果:
………………欢迎来到学生管理系统……………… 1 添加学生 2 删除学生 3 修改学生 4 查看所有学生 5 退出 请输入你的选择: 4 查看所有学生 ………………欢迎来到学生管理系统……………… 1 添加学生 2 删除学生 3 修改学生 4 查看所有学生 5 退出 请输入你的选择: 5 谢谢使用
1.5 添加学生的代码编写
import java.util.ArrayList; import java.util.Scanner; public class StudentManager { public static void main(String[] args) { ArrayList<Student> array = 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 sc = new Scanner(System.in); String line = sc.nextLine(); switch (line) { case "1": //System.out.println("添加学生"); addStudent(array); break; case "2": System.out.println("删除学生"); break; case "3": System.out.println("修改学生"); break; case "4": System.out.println("查看所有学生"); break; case "5": System.out.println("谢谢使用"); System.exit(0);//JVM退出 } } } public static void addStudent(ArrayList<Student> array){ //录入学生数据 Scanner sc = new Scanner(System.in); System.out.println("请输入学生学号:"); String sid = sc.nextLine(); 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.setSid(sid); s.setName(name); s.setAge(age); s.setAddress(address); //添加到集合中 array.add(s); System.out.println("添加学生成功"); } }
运行结果:
………………欢迎来到学生管理系统……………… 1 添加学生 2 删除学生 3 修改学生 4 查看所有学生 5 退出 请输入你的选择: 1 请输入学生学号: 1 请输入学生姓名: Tom 请输入学生年龄: 9 请输入学生居住地: 888 添加学生成功
1.6 查看学生的代码编写
public static void findAllStudent(ArrayList<Student> array){ //显示表头信息 System.out.println("学号\t姓名\t年龄\t居住地"); //将集合中数据取出按照对应格式显示学生信息 for (int i=0; i<array.size(); i++){ Student s = array.get(i); System.out.println(s.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddress()); } }
public static void main(String[] args) { ArrayList<Student> array = 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 sc = new Scanner(System.in); String line = sc.nextLine(); switch (line) { case "1": //System.out.println("添加学生"); addStudent(array); break; case "2": System.out.println("删除学生"); break; case "3": System.out.println("修改学生"); break; case "4": //System.out.println("查看所有学生"); findAllStudent(array); break; case "5": System.out.println("谢谢使用"); System.exit(0);//JVM退出 } }
}
运行结果:
………………欢迎来到学生管理系统……………… 1 添加学生 2 删除学生 3 修改学生 4 查看所有学生 5 退出 请输入你的选择: 1 请输入学生学号: 1 请输入学生姓名: tom 请输入学生年龄: 3 请输入学生居住地: 789 添加学生成功 ………………欢迎来到学生管理系统……………… 1 添加学生 2 删除学生 3 修改学生 4 查看所有学生 5 退出 请输入你的选择: 4 学号 姓名 年龄 居住地 1 tom 3 789 ………………欢迎来到学生管理系统……………… 1 添加学生 2 删除学生 3 修改学生 4 查看所有学生 5 退出 请输入你的选择: 5 谢谢使用
1.7 查看学生的代码编写升级版
public static void findAllStudent(ArrayList<Student> array){ //判断数据 if (array.size() == 0){ System.out.println("无信息,请先输入信息"); //为了让程序不再往下执行,给出return; return; } //显示表头信息 System.out.println("学号\t姓名\t年龄\t居住地"); //将集合中数据取出按照对应格式显示学生信息 for (int i=0; i<array.size(); i++){ Student s = array.get(i); System.out.println(s.getSid()+"\t"+s.getName()+"\t"+s.getAge()+"\t"+s.getAddress()); } }
运行结果:
………………欢迎来到学生管理系统……………… 1 添加学生 2 删除学生 3 修改学生 4 查看所有学生 5 退出 请输入你的选择: 4 无信息,请先输入信息 ………………欢迎来到学生管理系统……………… 1 添加学生 2 删除学生 3 修改学生 4 查看所有学生 5 退出 请输入你的选择:
1.8 删除学生的代码编写
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 s = array.get(i); if (s.getSid().equals(sid)){ array.remove(i); break; } } System.out.println("删除成功"); }
public static void main(String[] args) { ArrayList<Student> array = 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 sc = new Scanner(System.in); String line = sc.nextLine(); switch (line) { case "1": //System.out.println("添加学生"); addStudent(array); break; case "2": //System.out.println("删除学生"); deleteStudent(array); break; case "3": System.out.println("修改学生"); break; case "4": //System.out.println("查看所有学生"); findAllStudent(array); break; case "5": System.out.println("谢谢使用"); System.exit(0);//JVM退出 } } }
运行结果:
………………欢迎来到学生管理系统……………… 1 添加学生 2 删除学生 3 修改学生 4 查看所有学生 5 退出 请输入你的选择: 1 请输入学生学号: 1234 请输入学生姓名: tom 请输入学生年龄: 99 请输入学生居住地: 7899888 添加学生成功 ………………欢迎来到学生管理系统……………… 1 添加学生 2 删除学生 3 修改学生 4 查看所有学生 5 退出 请输入你的选择: 2 请输入要删除学生的学号: 1234 删除成功
1.9 修改学生的代码编写
public static void updateStudent(ArrayList<Student> array){ Scanner sc = new Scanner(System.in); System.out.println("请输入要修改的学生学号:"); String sid = sc.nextLine(); System.out.println("请输入修改后的姓名:"); String name = sc.nextLine(); System.out.println("请输入修改后的年龄:"); String ang = sc.nextLine(); System.out.println("请输入修改后的居住地:"); String address = sc.nextLine(); Student s = new Student(); s.setSid(sid); s.setName(name); s.getAge(); s.setAddress(address); for (int i=0; i<array.size(); i++){ Student s1 = array.get(i); if (s1.getSid().equals(sid)){ array.set(i,s); break; } } }
public static void main(String[] args) { ArrayList<Student> array = 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 sc = new Scanner(System.in); String line = sc.nextLine(); switch (line) { case "1": //System.out.println("添加学生"); addStudent(array); break; case "2": //System.out.println("删除学生"); deleteStudent(array); break; case "3": //System.out.println("修改学生"); updateStudent(array); break; case "4": //System.out.println("查看所有学生"); findAllStudent(array); break; case "5": System.out.println("谢谢使用"); System.exit(0);//JVM退出 } } }
运行结果:
………………欢迎来到学生管理系统……………… 1 添加学生 2 删除学生 3 修改学生 4 查看所有学生 5 退出 请输入你的选择: 1 请输入学生学号: 1234 请输入学生姓名: tom 请输入学生年龄: 9 请输入学生居住地: 9874 添加学生成功 ………………欢迎来到学生管理系统……………… 1 添加学生 2 删除学生 3 修改学生 4 查看所有学生 5 退出 请输入你的选择: 3 请输入要修改的学生学号: 1234 请输入修改后的姓名: bob 请输入修改后的年龄: 874 请输入修改后的居住地: 54648
1.10 解决删除/修改学生学号不存在问题
public static void deleteStudent(ArrayList<Student> array){ //录入删除学生学号 Scanner sc = new Scanner(System.in); System.out.println("请输入要删除学生的学号:"); String sid = sc.nextLine(); //判断是否存在,遍历集合删除对应学号学生 int index = -1; for (int i=0; i<array.size(); i++){ Student s = array.get(i); if (s.getSid().equals(sid)){ index=i; break; } } if (index == -1){ System.out.println("该信息不存在,请重新输入"); }else{ array.remove(index); System.out.println("删除学生成功"); } }
1.11 解决添加学生学号重复问题
public static boolean isUsed(ArrayList<Student> array,String sid){ boolean flag = false; for (int i=0; i<array.size(); i++){ Student s = array.get(i); if (s.getSid().equals(sid)){ flag = true; break; } } return flag; }
public static void addStudent(ArrayList<Student> array){ //录入学生数据 Scanner sc = new Scanner(System.in); //为了让sid在while循环外被使用,把其定义在循环外 String sid; //为了让程序能够回到这里,使用循环实现 while(true){ System.out.println("请输入学生学号:"); sid = sc.nextLine(); boolean flag = isUsed(array, sid); 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.setSid(sid); s.setName(name); s.setAge(age); s.setAddress(address); //添加到集合中 array.add(s); System.out.println("添加学生成功"); }
运行结果:
………………欢迎来到学生管理系统……………… 1 添加学生 2 删除学生 3 修改学生 4 查看所有学生 5 退出 请输入你的选择: 1 请输入学生学号: 1 请输入学生姓名: 45 请输入学生年龄: 45 请输入学生居住地: 45 添加学生成功 ………………欢迎来到学生管理系统……………… 1 添加学生 2 删除学生 3 修改学生 4 查看所有学生 5 退出 请输入你的选择: 1 请输入学生学号: 1 你输入的学号已被使用,请重新输入 请输入学生学号: