-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSysManage.java
More file actions
145 lines (127 loc) · 3.49 KB
/
SysManage.java
File metadata and controls
145 lines (127 loc) · 3.49 KB
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
package com.qf.sysmanage;
import java.util.ArrayList;
import java.util.List;
import com.qf.db.DBCenter;
import com.qf.entity.Student;
import com.qf.istutinterface.IStudentInterface;
import com.qf.stutype.StuType;
/**
* SysManage : 在系统管理类中去操作增、删、改、查
*
*/
public final class SysManage implements IStudentInterface {
/**
* 添加过程中,要确保学号唯一
* 1.合理学生信息
* 2.学生对象中带有null信息
* 3.其他判读-- 学号重复
*/
@Override
public boolean add(Student st) {
//判断传入的学生对象的正确性
int ret = checkStudent(st);
if(ret == StuType.ST_SUCCESS){ //学生信息正确且没重复---添加
DBCenter.list.add(st);
return true;
}else if(ret == StuType.ST_NULL){ //为空值
System.out.println("学生信息中有null值");
}else{
System.out.println("学员信息不合适"); //其他信息错误
}
return false;
}
private int checkStudent(Student st) {
//判断是否为null
if(st.getAge()==null||st.getClassNum()==null||st.getName()==null||st.getNum()==null){
return StuType.ST_NULL;
}
//判断学生信息合理性
if(Integer.parseInt(st.getAge())>60 || Integer.parseInt(st.getAge())<3){
return StuType.ST_OTHER;
}
//判断学号是否在集合中是否存在
return isExistNum(st.getNum());
}
private int isExistNum(String num) {
for(Student st : DBCenter.list){
if(num.equals(st.getNum())){
return StuType.ST_OTHER;
}
}
return StuType.ST_SUCCESS;
}
@Override //查找所有
public List<Student> queryAll() {
return DBCenter.list;
}
@Override //查找匹配类型的学生
public List<Student> queryForType(int type, String string) {
//用于返回满足条件的集合
List<Student> list = new ArrayList<>();
for(Student st: DBCenter.list){ //循环遍历存储数据的元素
switch (type) {
case StuType.ST_NAME:
if(string.equals(st.getName())){ //如果判断姓名相等,则添加到新集合中
list.add(st);
}
break;
case StuType.ST_AGE:
if(string.equals(st.getAge())){ //如果判断年龄相等,则添加到新集合中
list.add(st);
}
break;
case StuType.ST_NUM:
if(string.equals(st.getNum())){ //如果判断学号相等,则添加到新集合中
list.add(st);
}
break;
case StuType.ST_CLASS_NUM:
if(string.equals(st.getClassNum())){ //如果判断班号相等,则添加到新集合中
list.add(st);
}
break;
default:
break;
}
}
return list;
}
@Override //移除指定班号与学号的学员
public boolean deleteStudent(String classNum, String num) {
Student st;
for(int i = 0 ; i <DBCenter.list.size();i++){
st = DBCenter.list.get(i);
if(classNum.equals(st.getClassNum()) && num.equals(st.getNum())){
DBCenter.list.remove(st);
return true;
}
}
return false;
}
@Override //修改匹配班号和学号的指定学生属性
public boolean updateStudent(String classNum, String num, int type, String string) {
//判断集合中是否有等于classNum和num的属性信息
for(Student st : DBCenter.list){
if(classNum.equals(st.getClassNum()) && num.equals(st.getNum())){
switch(type){
case StuType.ST_NAME:
st.setName(string);
return true;
case StuType.ST_AGE:
st.setAge(string);
return true;
case StuType.ST_NUM: //学号要唯一
if(StuType.ST_SUCCESS == isExistNum(string)){
st.setNum(string);
return true;
}
break;
case StuType.ST_CLASS_NUM:
st.setClassNum(string);
return true;
}
}
}
return false;
}
}