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 }