studentManager.java
1 package com.manager_01; 2 3 import java.util.ArrayList; 4 import java.util.Scanner; 5 6 /* 7 * 学生管理系统 8 * 需求: 实现学生信息的查询,添加,修改,删除,退出 9 * 10 * 界面设计: 11 * 12 * ************************** 13 * *****欢迎登录学生信息管理系统***** 14 * *********请选择功能********** 15 * ************************** 16 * 17 * 1.查看所有学生 18 * 2.添加学生信息 19 * 3.修改学生信息 20 * 4.删除学生信息 21 * 5.退出系统 22 * 23 * 请输入你的选择: 24 * ************************** 25 * ************************** 26 * ************************** 27 * ************************** 28 * 29 * 30 */ 31 public class studentManager { 32 public static void main(String[] args) { 33 34 // 创建集合数组,添加删除修改学生数据都在此存储 35 ArrayList<Student> array = new ArrayList<Student>(); 36 37 // 使用while循环来循环整个系统界面 38 while (true) { 39 40 // 这是学生管理系统的主界面 41 System.out.println("**************************"); 42 System.out.println("*****欢迎登录学生信息管理系统*****"); 43 System.out.println("*********请选择功能**********"); 44 System.out.println("**************************"); 45 System.out.println("1 查看所有学生"); 46 System.out.println("2 添加学生信息"); 47 System.out.println("3 删除学生信息"); 48 System.out.println("4 修改学生信息"); 49 System.out.println("5 退出系统"); 50 System.out.println("请输入你的选择:"); 51 System.out.println("**************************"); 52 System.out.println("**************************"); 53 System.out.println("**************************"); 54 System.out.println("**************************"); 55 56 // 创建键盘录入对象 57 Scanner sc = new Scanner(System.in); 58 59 // 接受输入数据 60 String choiceString = sc.nextLine(); 61 62 // 用switch语句来进行选择判断 63 switch (choiceString) { 64 // 查看所有学生 65 case "1": 66 findStudent(array); 67 break; 68 // 添加学生 69 case "2": 70 addStudent(array); 71 break; 72 // 删除学生 73 case "3": 74 delStudent(array); 75 break; 76 // 修改学生 77 case "4": 78 updateStudent(array); 79 break; 80 // 退出系统,利用case穿透来执行退出操作,这里不需要break 81 case "5": 82 System.out.println("谢谢您的使用!再见!"); 83 // JVM退出 84 System.exit(0); 85 default: 86 System.out.println("您的输入有误!请返回主界面重新选择!"); 87 break; 88 } 89 } 90 } 91 92 // 查看所有学生的方法 93 public static void findStudent(ArrayList<Student> array) { 94 if (array.size() == 0) { 95 System.out.println("对不起,当前学生信息为空,请返回首页添加学生信息!"); 96 } else { 97 System.out.println("学号\t" + "姓名\t" + "年龄\t" + "住址"); 98 } 99 100 for (int x = 0; x < array.size(); x++) { 101 Student s = array.get(x); 102 System.out.println(s.getId() + "\t" + s.getName() + "\t" + s.getAge() + "\t" + s.getAddress()); 103 104 } 105 106 } 107 108 // 添加学生信息的方法 109 public static void addStudent(ArrayList<Student> array) { 110 Scanner sc = new Scanner(System.in); 111 // System.out.println("请输入学生学号:"); 112 // String id = sc.nextLine(); 113 114 // 把String id定义在外面调用 115 String id; 116 117 // 利用while循环整个过程,方便程序回到这里 118 while (true) { 119 System.out.println("请输入学生学号:"); 120 id = sc.nextLine(); 121 122 // 设置一个参照物,初始为false 123 boolean flag = false; 124 125 // 利用for循环便利出所有元素 126 for (int x = 0; x < array.size(); x++) { 127 128 // 把获取到的元素赋值给学生对象 129 Student s = array.get(x); 130 131 // 把学生对象里面的id和键盘录入的id做比较 132 if (s.getId().equals(id)) { 133 134 // 如果相同,说明有重复 135 flag = true; 136 137 // 跳出循环 138 break; 139 } 140 } 141 142 // 如果flag还为true,则说明有重复,给出提示 143 if (flag == true) { 144 System.out.println("抱歉!您输入的学号存在重复!请重新输入!"); 145 } else { 146 147 // 反之,没有重复,跳出循环,继续执行下面的流程 148 break; 149 150 } 151 } 152 153 System.out.println("请输入学生姓名:"); 154 String name = sc.nextLine(); 155 System.out.println("请输入学生年龄:"); 156 String age = sc.nextLine(); 157 System.out.println("请输入学生住址:"); 158 String address = sc.nextLine(); 159 160 /* 161 * 键盘录入的数据,要先创建学生对象,然后把键盘录入的数据赋值给学生对象的成员变量!不是直接把键盘录入的数据 162 * 直接赋值给成员变量。要先把数据存储到学生对象,然后把学生对象作为元素存储到集合里 163 */ 164 Student s = new Student(); // 创建学生对象 165 166 // 把键盘录入的数据赋值给学生对象 167 s.setId(id); 168 s.setName(name); 169 s.setAge(age); 170 s.setAddress(address); 171 172 // 把学生对象作为元素存储到集合中 173 174 array.add(s); 175 System.out.println("添加学生信息成功!"); 176 177 } 178 179 // 删除学生的方法 180 public static void delStudent(ArrayList<Student> array) { 181 Scanner sc = new Scanner(System.in); 182 System.out.println("请输入要删除的学生学号:"); 183 String id = sc.nextLine(); 184 185 // 设置一个索引标准 186 int index = -1; 187 188 // for循环遍历出所有的元素 189 for (int x = 0; x < array.size(); x++) { 190 191 // 获取到集合中的元素赋值给学生对象s 192 Student s = array.get(x); 193 194 // 把学生对象的学号与键盘录入的学号做比较 195 if (s.getId().equals(id)) { 196 197 // 如果相同,则把此处相同的索引赋值给刚才的索引 198 index = x; 199 break; 200 } 201 } 202 203 // 判断index索引是否为-1,要是还为-1,说明输入不存在,给出提示 204 if (index == -1) { 205 System.out.println("您输入的学生学号不存在!请检查后重新输入!"); 206 } else { 207 208 // 如果index不为-1,则删除此处集合索引处的元素 209 array.remove(index); 210 System.out.println("删除学号为" + id + "的学生信息成功!"); 211 } 212 213 } 214 215 // 修改学生信息 216 public static void updateStudent(ArrayList<Student> array) { 217 Scanner sc = new Scanner(System.in); 218 System.out.println("请输入需要修改的学生学号:"); 219 String id = sc.nextLine(); 220 221 // 定义索引标准 222 int index = -1; 223 224 // 创建学生对象 225 Student s = new Student(); 226 227 // for循环获取集合中的每一个元素 228 for (int x = 0; x < array.size(); x++) { 229 230 // 把元素赋值给学生对象 231 s = array.get(x); 232 233 // 把学生对象里面的元素和键盘录入的元素做对比,如果相同,把索引位置赋值给index 234 if (s.getId().equals(id)) { 235 index = x; 236 break; 237 } 238 } 239 240 // 判断index是否为-1,如果还为-1,则给出提示 241 if (index == -1) { 242 System.out.println("抱歉!您输入的学号未找到,请检查重新输入!"); 243 } else { 244 245 // 如果不为-1走这里,添加新的学生信息 246 System.out.println("请输入新的学生姓名:"); 247 String name = sc.nextLine(); 248 System.out.println("请输入新的学生年龄:"); 249 String age = sc.nextLine(); 250 System.out.println("请输入新的学生住址:"); 251 String address = sc.nextLine(); 252 253 // 把新的学生信息赋值通过get,set方法赋值给学生对象 254 s.setName(name); 255 s.setAge(age); 256 s.setAddress(address); 257 258 // 把学生对象赋值给集合中的index位置,使用集合的set方法修改集合中指定位置的元素 259 array.set(index, s); 260 System.out.println("学生信息修改成功!"); 261 } 262 } 263 } 264 265 ****************************************************************************************************************** 266 267 Student.java 268 269 package com.manager_01; 270 271 public class Student { 272 private String id; 273 private String name; 274 private String age; 275 private String address; 276 public Student() { 277 278 } 279 public Student(String id, String name, String age, String address) { 280 this.id = id; 281 this.name = name; 282 this.age = age; 283 this.address = address; 284 } 285 public String getId() { 286 return id; 287 } 288 public void setId(String id) { 289 this.id = id; 290 } 291 public String getName() { 292 return name; 293 } 294 public void setName(String name) { 295 this.name = name; 296 } 297 public String getAge() { 298 return age; 299 } 300 public void setAge(String age) { 301 this.age = age; 302 } 303 public String getAddress() { 304 return address; 305 } 306 public void setAddress(String address) { 307 this.address = address; 308 } 309 }