问答详情
源自:4-11 学生选课---通过 Set 集合管理课程

这一章节还是有点绕的!

    这一章节还是有点绕的!

提问者:Java程序猿进化中___ 2015-12-26 22:12

个回答

  • gao634209276
    2016-02-11 15:56:27

    赞一个,能自己改编挺好的。我有几个疑问啊

    1、选课时候第二个for循环用foreach简单点吧

    2、你的CourseSelistGeneric类是什么集合类型,CourseAdd(),getCourse(),两个方法的实现部分是什么,是增加课程和显示课程吗?

    3、我个人的看法啊:

    其实你的和老师的差不多,省去了SetDemo实例化对象,并省去以此对象来调用执行主函数的各个功能。主函数里没有通过SetDemo调方法。我觉得这样像流水账一样。。。主函数的操作性、灵活的减少了

    就是在面向对象上来说。。个人的感觉,我也是初学者,说的可能也有不对的,就是交流一下,谢谢啦

  • 梁XX
    2016-01-24 22:26:38

    以下是我整个SetTest的代码,直接调用Course类,跟老师的写法有点不用,但可能会比较直观,因为都在main方法里实现。可以参考参考,可能会对你有点灵感的作用,如果有什么可以互相交流一下。

    import java.util.List;
    import java.util.Scanner;
     
    /*
     * SetDemo是测试set接口类的一个demo
     * ①显示可选课程--借用CurseSelectGeneric
     * ②学生实例
     * ③学生选择课程
     * ④显示学生选择的课程
     * 最佳的方法是main中运行的步骤提取出来,只在 main中调用
     */
    public class SetDemo { 
         
    public static void main(String[] args){
            CourseSelectGeneric courseList =new CourseSelectGeneric();
            courseList.CourseAdd();
            courseList.getCourse(); //①显示可选课程
             
            Student student001 =new Student("0203", "Happy"); 
            //②实例化一个学生Happy ,并具有studentCourse实例容器set
             
            Scanner input =new Scanner(System.in);
            System.out.println("欢迎"+student001.studentName+"选课");
            System.out.println("请按照列表输入三门课程");
            System.out.println("================");
                 
             
            for(int i=0;i<3;i++){
                System.out.println("请输入第"+(i+1)+"门课程");
                String scr=input.next();  //保存键盘输入的字符串内容
                for(int y=0;y<courseList.courseSelect_v1.size();y++){  
                //遍历List容器的课程
                    Course tmpCr = courseList.courseSelect_v1.get(y);  
                    //获取每一个课程的ID 号
                    if(scr.equals(tmpCr.courseID)){ 
                    student001.studentCourse.add(tmpCr);   
                    }
                }
            }
             
            System.out.println("================");
            System.out.println("你选择了如下课程:");
            for(Course scr :student001.studentCourse){  
            //HashSet类没有get(i)method,因为set是无序排列的,只能用foreach遍历
                System.out.println(scr.courseID+":"+scr.course);
            }
             
        }
         
     
    }


  • ctyzzz
    2015-12-27 05:09:07

    理清楚思路之后发现,其实集合类基本是相同的,包括方法之类的。