把困難踩在腳下

          迎難而上

           

          學生選課模擬程序

          學生選課程序:一個學生可以選多個課程,同樣一門課程不只是一個同學在選,有好多同

          學選這門課程,這樣學生和課程之間就是一個多對多的關系。為此我們封裝一個學生類,

          一個課程類。學生類里包括學生最基本的信息:姓名和年齡還有一個盛放課程的List集合

          ;在學生類里還有一個添加課程的方法addClasse;課程類里包括課程的基本信息:課程名

          稱和學分,還有一個盛放學生的List集合;在課程類里還有一個添加學生的方法

          addStudent。本程序還有一個測試類,在測試類里定義了一個List集合cseList,

          用來盛放課程,然后定義了三門課程和四個學生。一個學

          生選擇一門課程(使用Student類里的添加方法將這門課程添加到Student類定義的盛放課

          程的集合里),那么這門課程必須添加這個學生(使用Course類里的添加方法將這個學生

          添加到Course類定義的盛放學生的集合里)。

          程序代碼如下:

          //學生類
          package com.dr.xuanke;

          import java.util.ArrayList;
          import java.util.List;

          public class Student {
           private String name;
           private int age;
           private List<Course> cseList;
           public String getName() {
            return name;
           }
           public void setName(String name) {
            this.name = name;
           }
           public int getAge() {
            return age;
           }
           public void setAge(int age) {
            this.age = age;
           }
           public List<Course> getCseList() {
            return cseList;
           }
           public void setCseList(List<Course> cseList) {
            this.cseList = cseList;
           }
           public Student(String name,int age)
           {
            this.setName(name);
            this.setAge(age);
            this.setCseList(new ArrayList<Course>());
           }
           public void addCourse(Course cse)
           {
            this.cseList.add(cse);
           }
           public String toString()
           {
            return "\t\t\t|-"+"姓名:"+" "+this.name+"  "+",年

          齡:"+this.age;
           }

          }
          //課程類
          package com.dr.xuanke;

          import java.util.ArrayList;
          import java.util.List;

          public class Course {
           private String name;
           private float score;
           private List<Student> stuList;
           public String getName() {
            return name;
           }
           public void setName(String name) {
            this.name = name;
           }
           public float getScore() {
            return score;
           }
           public void setScore(float score) {
            this.score = score;
           }
           public List<Student> getStuList() {
            return stuList;
           }
           public void setStuList(List<Student> stuList) {
            this.stuList = stuList;
           }
           public Course(String name,float score)
           {
            this.setName(name);
            this.setScore(score);
            this.setStuList(new ArrayList<Student>());
           }
           public void addStu(Student stu)
           {
            this.stuList.add(stu);
           }
           public String toString()
           {
               return "課程名稱|-"+this.getName()+" "+",學分:"+this.getScore(); 
           }

          }
          //測試類
          package com.dr.xuanke;

          import java.util.ArrayList;
          import java.util.Iterator;
          import java.util.List;

          public class Test {
                  public static void main(String args[])
                  {
                   List<Course> cseList=new ArrayList<Course>();
                   Course cse1=new Course("高數",2.0f);
                   Course cse2=new Course("英語",3.0f);
                   Course cse3=new Course("語文",5.0f);
                   Student stu1=new Student("張三",20);
                   Student stu2=new Student("李四",21);
                   Student stu3=new Student("王五",30);
                   Student stu4=new Student("李明",35);
                   cseList.add(cse1);
                   cseList.add(cse2);
                   cseList.add(cse3);
                   
                   
                   
                   
                   //張三選擇高數、英語
                   stu1.addCourse(cse1);
                   cse1.addStu(stu1);
                   stu1.addCourse(cse2);
                   cse2.addStu(stu1);
                   
                   //李四選擇語文、英語
                   stu2.addCourse(cse3);
                   cse3.addStu(stu2);
                   stu2.addCourse(cse2);
                   cse2.addStu(stu2);
                   
                   
                   //王五選擇高數、語文
                   stu3.addCourse(cse1);
                   cse1.addStu(stu3);
                   stu3.addCourse(cse3);
                   cse3.addStu(stu3);
                   
                   
                   //輸出結果
                   Iterator<Course> iter1=cseList.iterator();
                   while(iter1.hasNext())
                   {
                                  Course cse=iter1.next();
                    System.out.println(cse);
                    Iterator<Student> iter2=cse.getStuList().iterator();
                    while(iter2.hasNext())
                    {
                     System.out.println(iter2.next());
                    }
                   }
                   
                   
                  }
          }
          程序的輸出結果如圖所示:



          此程序需要注意兩點:1.了解課程與學生之間是多對多的關系,這就要考慮在課程和學生

          類里定義兩個盛放對方的集合。2.在新建課程對象和新建學生對象時一定要對類中定義的

          集合初始化(在Course類的構造函數Course中的代碼:this.setStuList(new

          ArrayList<Student>());和在Student類的構造函數Student中的代碼:this.setCseList

          (new ArrayList<Course>());)。

          posted on 2010-10-28 09:59 馮魁 閱讀(625) 評論(2)  編輯  收藏

          評論

          # re: 學生選課模擬程序 2010-10-28 10:32 勇澤

          這不會是你的課程設計吧?  回復  更多評論   

          # re: 學生選課模擬程序[未登錄] 2010-10-28 20:26 馮魁

          @勇澤
          不是,這如果是課程設計就太簡單了!  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          公告

          快樂每一天!

          Everything is an object!

          常用鏈接

          留言簿(2)

          隨筆檔案

          學習網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 乾安县| 襄垣县| 宁城县| 穆棱市| 临汾市| 荣成市| 镇平县| 宁陵县| 法库县| 清苑县| 彩票| 聂拉木县| 贡觉县| 驻马店市| 启东市| 平定县| 阳山县| 南汇区| 平利县| 舒城县| 文化| 吉首市| 乐亭县| 榆树市| 开平市| 靖西县| 靖州| 晋州市| 南通市| 涡阳县| 东兴市| 米泉市| 潞城市| 介休市| 海城市| 玉田县| 双辽市| 泽库县| 盐边县| 栖霞市| 三门县|