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 }