把困難踩在腳下

          迎難而上

           

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

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

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

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

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

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

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

          用來(lái)盛放課程,然后定義了三門(mén)課程和四個(gè)學(xué)生。一個(gè)學(xué)

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

          程的集合里),那么這門(mén)課程必須添加這個(gè)學(xué)生(使用Course類里的添加方法將這個(gè)學(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(); 
           }

          }
          //測(cè)試類
          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("英語(yǔ)",3.0f);
                   Course cse3=new Course("語(yǔ)文",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ù)、英語(yǔ)
                   stu1.addCourse(cse1);
                   cse1.addStu(stu1);
                   stu1.addCourse(cse2);
                   cse2.addStu(stu1);
                   
                   //李四選擇語(yǔ)文、英語(yǔ)
                   stu2.addCourse(cse3);
                   cse3.addStu(stu2);
                   stu2.addCourse(cse2);
                   cse2.addStu(stu2);
                   
                   
                   //王五選擇高數(shù)、語(yǔ)文
                   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é)果如圖所示:



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

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

          集合初始化(在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 馮魁 閱讀(627) 評(píng)論(2)  編輯  收藏

          評(píng)論

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

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

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

          @勇澤
          不是,這如果是課程設(shè)計(jì)就太簡(jiǎn)單了!  回復(fù)  更多評(píng)論   


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


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

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          快樂(lè)每一天!

          Everything is an object!

          常用鏈接

          留言簿(2)

          隨筆檔案

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

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 土默特左旗| 五峰| 抚州市| 大安市| 商河县| 门头沟区| 昭觉县| 绩溪县| 祁阳县| 丘北县| 太仆寺旗| 福安市| 晴隆县| 托克逊县| 朝阳县| 乐平市| 麻城市| 当涂县| 铁力市| 秦皇岛市| 吐鲁番市| 酒泉市| 沂南县| 海淀区| 高邑县| 清河县| 贡觉县| 遂昌县| 内丘县| 岳阳县| 乌兰察布市| 滦平县| 枣阳市| 疏附县| 新巴尔虎右旗| 土默特左旗| 壤塘县| 杭州市| 武宣县| 长白| 宁城县|