A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 习惯就好 中级黑马   /  2015-3-5 14:54  /  732 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 习惯就好 于 2015-3-6 17:07 编辑

问题:有一个训练营,训练营有三个训练班,每个班限定20个学员。要求:1、从键盘输入数据,创建集合将这些数据进行存储,然后输出展示。

           2、要能实现增删改查功能。

3 个回复

倒序浏览
  方法很多啊  最简单的 properties 储存键值对  要么 就是将数据封装成 javabean  对属性进行增删改查 可以用数据库 也可以用 xml文件 最简单的用 map或者properties文件
回复 使用道具 举报
用map集合和数据库可以
回复 使用道具 举报
本帖最后由 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);
        }


               


捕获.JPG (74.14 KB, 下载次数: 6)

捕获.JPG

捕获1.JPG (76.2 KB, 下载次数: 6)

捕获1.JPG

完整代码.rar

82 Bytes, 下载次数: 18

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马