-
Notifications
You must be signed in to change notification settings - Fork 0
/
StudentSystem.java
182 lines (155 loc) · 5.98 KB
/
StudentSystem.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
import java.util.ArrayList;
import java.util.Scanner;
public class StudentSystem {
static ArrayList<Student> list = new ArrayList<>();
//静态代码块的应用
static {
//添加一些用户信息
list.add(new Student("001","zs",23,"hhhh"));
}
//final 的应用
private static final String ADD_STUDENT = "1";
private static final String DEL_INFOR = "2";
private static final String EDIT_ARR = "3";
private static final String QUERY = "4";
public static void main(String[] args) {
//创建集合存储学生信息
while(true){
//调用主界面方法,并接收用户的选择
String input = intface();
// 根据输入值调用不同的方法:添加学生,删除学生,修改学生信息,查询学生信息,退出
switch(input){
case ADD_STUDENT -> addStudent(list);
case DEL_INFOR -> delInfor(list);
case EDIT_ARR -> editArr(list);
case QUERY -> query(list);
default -> {
System.out.println("退出");
System.exit(0);
}
}
}
}
//定义方法显示主菜单
public static String intface(){
System.out.println("-------------------欢迎登陆学生管理系统-------------------");
System.out.println("1.添加学生");
System.out.println("2.删除学生");
System.out.println("3.修改学生");
System.out.println("4.查询学生");
System.out.println("请输入您的选择:");
Scanner sc = new Scanner(System.in);
String input1 = sc.next();
return input1;
}
//定义添加学生方法
public static void addStudent(ArrayList<Student> list){
Scanner sc = new Scanner(System.in);
//创建学生对象
Student s = new Student();
while(true){
System.out.println("请输入学生id:");
String id = sc.next();
//调用方法判断id是否已存在
boolean flag = idInArr(list,id);
if(flag){
System.out.println("id已存在,请重新输入:");
}else{
s.setId(id);
break;
}
}
System.out.println("请输入学生姓名:");
String name = sc.next();
s.setName(name);
System.out.println("请输入学生年龄:");
int age = sc.nextInt();
s.setAge(age);
System.out.println("请输入学生地址:");
String address = sc.next();
s.setAddress(address);
list.add(s);
System.out.println("学生信息添加成功");
//intface();
}
//定义方法判断id 是否已经存在,返回true/false
public static boolean idInArr(ArrayList<Student> list,String id){
int index = idInArrIndex(list,id);
if(index >= 0){
return true;
}else{
return false;
}
}
//定义方法判断id 是否已经存在,返回索引
public static int idInArrIndex(ArrayList<Student> list,String id){
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getId().equals(id)){
return i;
}
}
return -1;
}
//定义方法删除学生信息,键盘录入要删除的学生的id,如存在则删除,如不存在则提示不存在,并返回初始菜单
public static void delInfor(ArrayList<Student> list){
System.out.println("请输入要删除的学生的id:");
Scanner sc = new Scanner(System.in);
String id = sc.next();
// 调用方法判断id是否在集合中,并返回索引
int index1= idInArrIndex(list,id);
if(index1 >=0){
list.remove(index1);
System.out.println("id是" + id + "的学生信息已删除");
}else{
System.out.println("此id不存在");
//返回主页
intface();
}
}
/* 定义修改方法,键盘录入要修改的学生id,
id存在,继续录入其他信息
id不存在,提示不存在,返回主菜单
*/
public static void editArr(ArrayList<Student> list){
//键盘录入要修改的学生id
System.out.println("请输入要修改的学生的id:");
Scanner sc = new Scanner(System.in);
String id = sc.next();
//调用方法判断id是否存在,返回索引
int index = idInArrIndex( list,id);
if(index >=0){
//存在,继续录入其他信息
System.out.println("请输入学生姓名:");
String newName = sc.next();
list.get(index).setName(newName);
System.out.println("请输入学生年龄:");
int newAge = sc.nextInt();
list.get(index).setAge(newAge);
System.out.println("请输入学生地址:");
String newAddress = sc.next();
list.get(index).setAddress(newAddress);
System.out.println("学生信息修改成功");
}else{
//不存在,提示不存在
System.out.println("此id不存在");
//返回主菜单
intface();
}
}
/* 定义方法查询学生信息
打印所有学生信息:
如果没有学生信息,提示:当前无学生信息,请添加后再查询
如有学生信息则输出
*/
public static void query(ArrayList<Student> list){
int length = list.size();
if(length == 0){
System.out.println("当前无学生信息,请添加后再查询");
}else{
System.out.println("id 姓名 年龄 家庭住址");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i).getId()+" " +list.get(i).getName() + " " +list.get(i).getAge() + " " +list.get(i).getAddress());
}
}
}
}