本帖最后由 yangruijing 于 2015-3-6 15:48 编辑
思路:1、提取对象,训练营,班级,训练人员
2、训练营包含三个班级,每个班级中最多包含20名学生并有班级名称,学生应有学生号(在此只写了一个属性,应有多个)
3、在训练营类中,创建三个班级对象,在班级类中,应有学员的添加添加、删除、修改和查询的功能,学员类中,应有获取和设置学员属性的方法
在此只给出增删改查的功能,完整代码将会以文件的方式附上:
在班级类中的添加学员功能:
首先判断此学号是否已包含在集合中,不包含的再进行判断班级人员是否已满,代码如下:
public boolean addPerson(TrainPerson trainPerson) {
if (!trainPersonList.contains(trainPerson)) {
if (trainPersonList.size() < 20) {
return trainPersonList.add(trainPerson);
} else {
System.out.println(trainClassName + "学员已经满了");
return false;
}
} else {
System.out.println("已经学号学员已经在此班级");
return true;
}
}
在主测试类中:应有一个方法对班级进行判断的添加方法,调用班级类中的学员添加方法
首先,判断对象是否存在,输入的学员号是否正确,再判断班级号,调用addPerson方法
public static void addTrainPerson(String trainClassNumber,
TrainPerson trainPerson) {
if (null != trainPerson && null != trainPerson.getPersonNumber()
&& !"".equals(trainPerson.getPersonNumber())) {
boolean flag = true;
if ("1".equals(trainClassNumber)) {
flag = camp.getTrainClassNumber1().addPerson(trainPerson);
} else if ("2".equals(trainClassNumber)) {
flag = camp.getTrainClassNumber2().addPerson(trainPerson);
} else if ("3".equals(trainClassNumber)) {
flag = camp.getTrainClassNumber3().addPerson(trainPerson);
}
if (!flag) {
showClassMenu(trainClassNumber);
}
}
}
班级类中的删除方法:利用集合中的remove方法删除元素public boolean deletePerson(TrainPerson trainPerson) {
return trainPersonList.remove(trainPerson);
}
主测试类中删除方法:根据班级号,调用班级类中学员删除方法
public static boolean deleteTrainPerson(String trainClassNumber,
TrainPerson trainPerson) {
if (null != trainPerson && null != trainPerson.getPersonNumber()
&& !"".equals(trainPerson.getPersonNumber())) {
if ("1".equals(trainClassNumber)) {
return camp.getTrainClassNumber1().deletePerson(trainPerson);
} else if ("2".equals(trainClassNumber)) {
return camp.getTrainClassNumber2().deletePerson(trainPerson);
} else if ("3".equals(trainClassNumber)) {
return camp.getTrainClassNumber3().deletePerson(trainPerson);
}
}
return false;
}
班级类中修改方法:修改学员属性,应输入要修改的元素及修改后的新元素,所以此函数,应传递两个参数oldtrainPerson,newtrainPerson
public void update(TrainPerson oldtrainPerson,TrainPerson newtrainPerson){
//在这里做非空判断
if(trainPersonList.contains(oldtrainPerson)){
trainPersonList.remove(oldtrainPerson);
trainPersonList.add(newtrainPerson);
System.out.println("修改成功");
}else{
System.out.println("修改失败-不存在要修改的学员");
}
}
主测试类中的修改方法:具体设计思路与增删一致
public static void updateTrainPerson(String trainClassNumber,
TrainPerson oldP,TrainPerson newP) {
if (null != oldP && null != oldP.getPersonNumber()
&& !"".equals(oldP.getPersonNumber())) {
if(null != newP && null != newP.getPersonNumber()
&& !"".equals(newP.getPersonNumber())){
if ("1".equals(trainClassNumber)) {
camp.getTrainClassNumber1().update(oldP,newP);
} else if ("2".equals(trainClassNumber)) {
camp.getTrainClassNumber2().update(oldP,newP);
} else if ("3".equals(trainClassNumber)) {
camp.getTrainClassNumber3().update(oldP,newP);
}
}
}
}
班级类中的查询方法:首先判断输入的学号是否存在,存在则显示,不存在,提示查询失败
public void select(TrainPerson trainPerson){
if(null!=trainPerson && !"".equals(trainPerson.getPersonNumber()) && null!=trainPerson.getPersonNumber()){
if(trainPersonList.contains(trainPerson)){
System.out.println(trainPerson.toString());
}else{
System.out.println("不存在学号为:"+trainPerson.getPersonNumber()+"学员");
}
}else{
System.out.println("输入的学号为空");
}
}
主测试类中查询方法:具体设计思路与增删一致
private static void selectTrainPerson(String trainClassNumber, TrainPerson trainPerson) {
if (null != trainPerson && null != trainPerson.getPersonNumber()
&& !"".equals(trainPerson.getPersonNumber())) {
if ("1".equals(trainClassNumber)) {
camp.getTrainClassNumber1().select(trainPerson);
} else if ("2".equals(trainClassNumber)) {
camp.getTrainClassNumber2().select(trainPerson);
} else if ("3".equals(trainClassNumber)) {
camp.getTrainClassNumber3().select(trainPerson);
}
}
showClassMenu(trainClassNumber);
}
|
|