10_Java学生管理系统(未使用文件和清屏)
Java的学生管理系统
希望通过前面所学的类的封装知识和String类与ArrayList集合来实现一个简单的学生管理系统
功能要求:添加、删除、修改、查看所有、退出
注意:为了保证学号是唯一键值,一定要在学号添加和修改时进行判断。同时对输入异常的数据进行处理。
注:代码并不完善,还有问题需要测试,尽量自己编写内容。
package studentmanager; /* 定义一个学生类 */ 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; } //set/get/show方法 public void setSid(String sid){ this.sid = sid; } public String getSid(){ return this.sid; } public void setName(String name){ this.name = name; } public String getName(){ return this.name; } public void setAge(String age){ this.age = age; } public String getAge(){ return this.age; } public void setAddress(String address){ this.address = address; } public String getAddress(){ return this.address; } public void show(){ System.out.println( "学生学号:" + sid + "\t" + "姓名:" + name + "\t" + "年龄:" + age + "\t" + "居住地址:" + address ); } }
package studentmanager; /* 定义一个学生管理类 */ //导包 import java.util.Scanner; import java.util.ArrayList; public class StudentManager { public static void main(String[] args){ //1、显示菜单 menu(); //2、创建对象用于存储学生数据 ArrayList<Student> array = new ArrayList<Student>(); //3、开始 boolean flag = true; //定义一个boolean变量用于控制循环 while(flag){ Scanner sc = new Scanner(System.in); int key = sc.nextInt(); if(key < 1 || key > 5){ System.out.println("对不起,你输入的数字系统无法识别!请重新输入:"); } else{ switch(key){ case 1: addStudent(array); break; case 2: if(array.size() == 0){ System.out.println("当前没有数据,请重选菜单栏"); } else{ findAllStudent(array); } break; case 3: if(array.size() == 0){ System.out.println("当前没有数据,请重选菜单栏"); } else{ deleteStudent(array); } break; case 4: if(array.size() == 0){ System.out.println("当前没有数据,请重选菜单栏"); } else{ updateStudent(array); } break; default: System.out.println("退出"); flag = false; //控制循环结束 break; } } } } //定义一个方法查看学号是否重复 public static boolean sidDuplicateChecking(ArrayList<Student> array, String sid){ for(int i = 0; i < array.size(); i++){ if(array.get(i).getSid().equals(sid)){ //处理相同学号问题 System.out.println("此学号已经存在!请用户再次确定,返回菜单栏"); return true; } } return false; } //定义一个方法用于修改时的单项信息处理 public static boolean singleInformation(ArrayList<Student> array, int i){ Scanner sc = new Scanner(System.in); System.out.println("请输入你需要修改的*具体*信息(学号、姓名、年龄、地址):"); //接收需要修改的具体值 遍历元素时进行比对修改 String line = sc.nextLine(); if(line.equals(array.get(i).getSid())){ System.out.println("请输入修改后的数据:"); String sid = sc.nextLine(); array.get(i).setSid(sid); if(sidDuplicateChecking(array, sid)){ return true; } } else if(line.equals(array.get(i).getName())){ System.out.println("请输入修改后的数据:"); array.get(i).setName(sc.nextLine()); } else if(line.equals(array.get(i).getAge())){ System.out.println("请输入修改后的数据:"); array.get(i).setAge(sc.nextLine()); } else if(line.equals(array.get(i).getAddress())){ System.out.println("请输入修改后的数据:"); array.get(i).setAddress(sc.nextLine()); } else{ System.out.println("输入的数据不符合要求!"); } return false; } //定义一个方法用于修改时的单项信息处理 public static boolean moreInformation(ArrayList<Student> array, int i){ Scanner sc = new Scanner(System.in); System.out.println("请依次输入修改后的学生的信息:"); System.out.println("学号:"); String sid = sc.nextLine(); //判断学号是否重复 if(sidDuplicateChecking(array, sid)){ return true; } System.out.println("姓名:"); String name = sc.nextLine(); System.out.println("年龄:"); String age = sc.nextLine(); System.out.println("住址:"); String address = sc.nextLine(); //此处使用了修改方法 set array.set(i, new Student(sid, name, age, address)); return false; } //定义一个方法用于显示菜单 public static void menu(){ 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("-------请输入你的选择:------"); } //定义一个方法,用于添加学生信息 public static void addStudent(ArrayList<Student> array){ Scanner sc = new Scanner(System.in); System.out.println("请输入你要添加学生的信息:"); System.out.println("学号:"); String sid = sc.nextLine(); //判断输入的学号是否重复 if(sidDuplicateChecking(array, sid)){ return; } System.out.println("姓名:"); String name = sc.nextLine(); System.out.println("年龄:"); String age = sc.nextLine(); System.out.println("住址:"); String address = sc.nextLine(); array.add(new Student(sid, name, age, address)); System.out.println("添加成功,返回菜单栏"); } //定义一个方法,用于查看学生信息 public static void findAllStudent(ArrayList<Student> array){ for(int i = 0; i < array.size(); i++){ System.out.println( "学号:" + array.get(i).getSid() + "\t" + "姓名:" + array.get(i).getName() + "\t" + "年龄:" + array.get(i).getAge() + "\t" + "住址:" + array.get(i).getAddress() ); } System.out.println("显示结束请继续选择菜单栏:"); } //定义一个方法,用于删除学生信息 public static void deleteStudent(ArrayList<Student> array){ //创建Scanner对像接收数据 Scanner sc = new Scanner(System.in); System.out.println("请输入你需要删除学生的学号:"); String sid = sc.nextLine(); //创建Student对象用于接收删除对象 Student element = new Student(); //查找对应学号第一次出现的索引 for(int i = 0; i < array.size(); i++){ //通过判断 Student对象中的学号是否相等获取 要删除元素的下标索引并进行删除 if(array.get(i).getSid().equals(sid)){ element = array.remove(i); //显示删除对象进行确定 System.out.println("删除学生信息为:"); System.out.println( "学号:" + element.getSid() + "\t" + "姓名:" + element.getName() + "\t" + "年龄:" + element.getAge() + "\t" + "住址:" + element.getAddress() ); System.out.println("删除成功,请继续选择菜单栏:"); return; } } System.out.println("输入的学号信息不存在,返回菜单栏"); } //定义一个方法,用于修改学生信息 public static void updateStudent(ArrayList<Student> array){ //创建Scanner对像接收数据 Scanner sc = new Scanner(System.in); System.out.println("请输入你需要修改学生的学号:"); String sid = sc.nextLine(); //创建一个Student变量用于接收修改前的变量 Student element = new Student(); for(int i = 0; i < array.size(); i++){ if(array.get(i).getSid().equals(sid)){ System.out.println("请选择修改信息的方式:(1:单项 或者 2:所有):"); String str = sc.nextLine(); //处理单项信息 if(str.equals("1")){ //调用单项处理方法 返回值为真则表示 修改后的学号已经有存在的或者学号无变动 if(singleInformation(array, i)){ return; } } //处理多项信息 else if(str.equals("2")){ //调用多项处理方法 返回值为真则表示 修改后的学号已经有存在的或者学号无变动 if(moreInformation(array, i)){ return; } } //处理异常输入 else{ System.out.println("输入数据不符合要求!"); return; } } else{ System.out.println("对不起,你输入的学号不存在!返回菜单栏"); return; } System.out.println("修改成功,请继续选择菜单栏:"); } } }
本文作者:如此而已~~~
本文链接:https://www.cnblogs.com/fragmentary/p/16747990.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步