把困難踩在腳下

          迎難而上

           

          學(xué)生選課模擬程序

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

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

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

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

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

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

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

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

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

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

          程序代碼如下:

          //學(xué)生類
          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()+" "+",學(xué)分:"+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("高數(shù)",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);
                   
                   
                   
                   
                   //張三選擇高數(shù)、英語
                   stu1.addCourse(cse1);
                   cse1.addStu(stu1);
                   stu1.addCourse(cse2);
                   cse2.addStu(stu1);
                   
                   //李四選擇語文、英語
                   stu2.addCourse(cse3);
                   cse3.addStu(stu2);
                   stu2.addCourse(cse2);
                   cse2.addStu(stu2);
                   
                   
                   //王五選擇高數(shù)、語文
                   stu3.addCourse(cse1);
                   cse1.addStu(stu3);
                   stu3.addCourse(cse3);
                   cse3.addStu(stu3);
                   
                   
                   //輸出結(jié)果
                   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());
                    }
                   }
                   
                   
                  }
          }
          程序的輸出結(jié)果如圖所示:



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

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

          集合初始化(在Course類的構(gòu)造函數(shù)Course中的代碼:this.setStuList(new

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

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

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

          評論

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

          這不會是你的課程設(shè)計吧?  回復(fù)  更多評論   

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

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


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


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計

          公告

          快樂每一天!

          Everything is an object!

          常用鏈接

          留言簿(2)

          隨筆檔案

          學(xué)習(xí)網(wǎng)站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 靖安县| 金乡县| 华宁县| 霍州市| 依安县| 称多县| 盘锦市| 驻马店市| 宜阳县| 清新县| 金川县| 中方县| 余姚市| 高淳县| 稻城县| 孝昌县| 尚志市| 托克逊县| 化州市| 康保县| 渝中区| 克山县| 兴宁市| 渝北区| 黄大仙区| 京山县| 民勤县| 瑞昌市| 南江县| 邵阳县| 丹凤县| 和平区| 清苑县| 延庆县| 时尚| 银川市| 丹凤县| 衡阳市| 穆棱市| 昌黎县| 崇文区|