148_学生管理系统
1 package studentManageDemo; 2 /* 3 学生类 4 Alt+Ins 根据自己的需要进行选择 5 */ 6 public class Student { 7 //学号 8 private String sid; 9 //姓名 10 private String name; 11 //年龄 12 private String age; 13 //居住地 14 private String address; 15 16 public Student() { 17 } 18 19 public Student(String sid, String name, String age, String address) { 20 this.sid = sid; 21 this.name = name; 22 this.age = age; 23 this.address = address; 24 } 25 26 public String getSid() { 27 return sid; 28 } 29 30 public void setSid(String sid) { 31 this.sid = sid; 32 } 33 34 public String getName() { 35 return name; 36 } 37 38 public void setName(String name) { 39 this.name = name; 40 } 41 42 public String getAge() { 43 return age; 44 } 45 46 public void setAge(String age) { 47 this.age = age; 48 } 49 50 public String getAddress() { 51 return address; 52 } 53 54 public void setAddress(String address) { 55 this.address = address; 56 } 57 }
1 package studentManageDemo; 2 3 import java.util.ArrayList; 4 import java.util.Scanner; 5 6 /* 7 学生管理系统 8 */ 9 public class StudentManager { 10 /* 11 1.用输出语句完成主界面的编写 12 2.用Scanner实现键盘录入数据 13 3.用switch语句完成操作的选择 14 4.用循环完成再次回到主界面 15 */ 16 public static void main(String[] args) { 17 //创建集合对象,用于存储学生数据 18 ArrayList<Student> array = new ArrayList<Student>(); 19 while (true) { 20 //用输出语句完成主界面的编写 21 System.out.println("--------欢迎来到学生管理系统-------"); 22 System.out.println("1 添加学生"); 23 System.out.println("2 删除学生"); 24 System.out.println("3 修改学生"); 25 System.out.println("4 查看所有学生"); 26 System.out.println("5 退出"); 27 System.out.println("请输入你的选择"); 28 29 //用Scanner实现键盘录入数据 30 Scanner sc = new Scanner(System.in); 31 String line = sc.nextLine(); 32 33 //用switch语句完成操作的选择 34 switch (line) { 35 case "1": 36 addStudent(array); 37 //System.out.println("添加学生"); 38 break; 39 case "2": 40 //System.out.println("删除学生"); 41 deleteStudent(array); 42 break; 43 case "3": 44 updateStudent(array); 45 //System.out.println("修改学生"); 46 break; 47 case "4": 48 findAllStudent(array); 49 // System.out.println("查看所有学生"); 50 break; 51 case "5": 52 System.out.println("谢谢使用"); 53 //break; 54 System.exit(0); //JVM退出 55 } 56 } 57 } 58 59 //定义一个方法,用于添加学生信息 60 public static void addStudent(ArrayList<Student> array) { 61 //键盘录入学生对象所需要的数据,显示提示信息,提示要输入何种信息 62 Scanner sc = new Scanner(System.in); 63 64 //为了sid在while循环外面被访问到,我们就把它定义在了循环外 65 String sid; 66 //为了让程序能够回到这里,我们使用循环实现 67 while (true) { 68 System.out.println("请输入学生学号:"); 69 sid = sc.nextLine(); 70 71 boolean flag = isUsed(array, sid); 72 if (flag) { 73 System.out.println("你输入的学号已经被使用,请重新输入"); 74 } else { 75 break; 76 } 77 78 } 79 80 81 System.out.println("请输入学生姓名:"); 82 String name = sc.nextLine(); 83 System.out.println("请输入学生年龄:"); 84 String age = sc.nextLine(); 85 System.out.println("请输入学生居住地:"); 86 String address = sc.nextLine(); 87 88 //创建学生对象,把键盘录入的数据赋值给学生对象的成员变量 89 Student s = new Student(); 90 s.setSid(sid); 91 s.setName(name); 92 s.setAge(age); 93 s.setAddress(address); 94 //将学生对象添加到集合中 95 array.add(s); 96 //给出添加成功提示 97 System.out.println("添加学生成功"); 98 } 99 100 //定义一个方法,判断学号是否被使用 101 public static boolean isUsed(ArrayList<Student> array, String sid) { 102 //如果与集合中的某一个学生的学号相同,返回true;如果都不相同,返回false 103 boolean flag = false; 104 105 for (int i = 0; i < array.size(); i++) { 106 Student s = array.get(i); 107 if (s.getSid().equals(sid)) { 108 flag = true; 109 break; 110 } 111 } 112 return flag; 113 } 114 115 //定义一个方法,用于查看学生信息 116 /*public static void findAllStudent(ArrayList<Student> array) { 117 //显示表头信息 118 //\t tab键的位置 119 System.out.println("学号\t\t姓名\t\t年龄\t\t居住地"); 120 121 //将集合中数据提取出来按照对应格式显示学生信息,年龄显示补充“岁" 122 for (int i = 0; i < array.size(); i++) { 123 Student s = array.get(i); 124 System.out.println(s.getSid() + "\t" + s.getName() + "\t" + s.getAge() + "岁\t" + s.getAddress()); 125 } 126 } 127 */ 128 129 public static void findAllStudent(ArrayList<Student> array) { 130 if (array.size() == 0) { 131 System.out.println("无信息,请先添加信息再查询"); 132 //为了让程序不在往下执行,给出return 133 return; 134 } 135 136 //显示表头信息 137 //\t tab键的位置 138 System.out.println("学号\t\t姓名\t\t年龄\t\t居住地"); 139 140 //将集合中数据提取出来按照对应格式显示学生信息,年龄显示补充“岁" 141 for (int i = 0; i < array.size(); i++) { 142 Student s = array.get(i); 143 System.out.println(s.getSid() + "\t" + s.getName() + "\t" + s.getAge() + "岁\t" + s.getAddress()); 144 } 145 } 146 147 //定义一个方法,用于删除学生信息 148 /* public static void deleteStudent(ArrayList<Student> array) { 149 //键盘录入要删除的学生学号,显示提示信息 150 Scanner sc = new Scanner(System.in); 151 152 System.out.println("请输入你要删除的学生的学号"); 153 String sid = sc.nextLine(); 154 155 //遍历集合将对应学生对象从集合中删除 156 for (int i = 0; i < array.size(); i++) { 157 Student s = array.get(i); 158 if (s.getSid().equals(sid)) { 159 array.remove(i); 160 break; 161 } 162 } 163 164 //给出删除成功的提示 165 System.out.println("删除学生成功"); 166 } 167 */ 168 //定义一个方法,用于删除学生信息(改进) 169 public static void deleteStudent(ArrayList<Student> array) { 170 //键盘录入要删除的学生学号,显示提示信息 171 Scanner sc = new Scanner(System.in); 172 173 System.out.println("请输入你要删除的学生的学号"); 174 String sid = sc.nextLine(); 175 176 //在删除/修改学生操作前,对学号是否存在进行判断 177 //如果不存在,显示提示信息 178 //如果存在,执行删除/修改操作 179 180 int index = -1; 181 182 for (int i = 0; i < array.size(); i++) { 183 Student s = array.get(i); 184 if (s.getSid().equals(sid)) { 185 index = i; 186 break; 187 } 188 } 189 if (index == -1) { 190 System.out.println("该信息不存在,请重新输入"); 191 } else { 192 array.remove(index); 193 //给出删除成功提示 194 System.out.println("删除学生成功"); 195 } 196 } 197 198 //定义一个方法,用于修改学生方法 199 /* public static void updateStudent(ArrayList<Student> array) { 200 //键盘录入要修改的学生学号,显示提示信息 201 Scanner sc = new Scanner(System.in); 202 203 System.out.println("请输入你要修改的学生学号:"); 204 String sid = sc.nextLine(); 205 206 //键盘录入要修改的学生信息 207 System.out.println("请输入学生新姓名:"); 208 String name = sc.nextLine(); 209 System.out.println("请输入学生新年龄:"); 210 String age = sc.nextLine(); 211 System.out.println("请输入学生新居住地:"); 212 String address = sc.nextLine(); 213 214 //创建学生对象 215 Student s = new Student(); 216 s.setSid(sid); 217 s.setName(name); 218 s.setAge(age); 219 s.setAddress(address); 220 221 //遍历集合修改对应的学生信息 222 for (int i = 0; i < array.size(); i++) { 223 Student student = array.get(i); 224 if (student.getSid().equals(sid)) { 225 array.set(i, s); 226 break; 227 } 228 } 229 230 //给出修改成功提示 231 System.out.println("修改学生成功"); 232 } */ 233 234 public static void updateStudent(ArrayList<Student> array) { 235 //键盘录入要修改的学生学号,显示提示信息 236 Scanner sc = new Scanner(System.in); 237 238 System.out.println("请输入你要修改的学生学号:"); 239 String sid = sc.nextLine(); 240 241 242 //在删除/修改学生操作前,对学号是否存在进行判断 243 //如果不存在,显示提示信息 244 //如果存在,执行删除/修改操作 245 246 int index = -1; 247 248 for (int i = 0; i < array.size(); i++) { 249 Student s = array.get(i); 250 if (s.getSid().equals(sid)) { 251 index = i; 252 break; 253 } 254 } 255 256 if (index == -1) { 257 System.out.println("该信息不存在,请重新输入"); 258 } else { 259 //键盘录入要修改的学生信息 260 System.out.println("请输入学生新姓名:"); 261 String name = sc.nextLine(); 262 System.out.println("请输入学生新年龄:"); 263 String age = sc.nextLine(); 264 System.out.println("请输入学生新居住地:"); 265 String address = sc.nextLine(); 266 267 //创建学生对象 268 Student s = new Student(); 269 s.setSid(sid); 270 s.setName(name); 271 s.setAge(age); 272 s.setAddress(address); 273 274 //集合修改对应的学生信息 275 array.set(index, s); 276 277 //给出修改成功提示 278 System.out.println("修改学生成功"); 279 } 280 281 282 } 283 }