選課系統(tǒng)很有意思,學(xué)生選擇一門課程以后,這門課程就會添加到這個學(xué)生的選課列表里面,同時這名學(xué)生也添加到了選擇這門課程的學(xué)生列表里面,也就是學(xué)生和課程是雙向選擇的。
創(chuàng)建課程類Course,設(shè)置三個屬性分別為名稱、學(xué)分、學(xué)生名單。

Course
import java.util.ArrayList;
import java.util.List;
public class Course {
private String name;
private float grade;
private List<Student> allStudents;
public Course(String name,float grade){
this.setAllStudents(new ArrayList<Student>());
this.setGrade(grade);
this.setName(name);
}
public void addStu(Student student){
this.allStudents.add(student);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getGrade() {
return grade;
}
public void setGrade(float grade) {
this.grade = grade;
}
public List<Student> getAllStudents() {
return allStudents;
}
public void setAllStudents(List<Student> allStudents) {
this.allStudents = allStudents;
}
}
創(chuàng)建學(xué)生類Student,設(shè)置三個屬性姓名、年齡、選課列表。

Student
import java.util.ArrayList;
import java.util.List;
public class Student {
private String name;
private int age;
private List<Course> allCourse;//一個學(xué)生可以選多門課
public Student(String name,int age){
this.setAge(age);
this.setAllCourse(new ArrayList<Course>());
this.setName(name);
}
public void addCourse(Course course){
this.allCourse.add(course);
}
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> getAllCourse() {
return allCourse;
}
public void setAllCourse(List<Course> allCourse) {
this.allCourse = allCourse;
}
}
創(chuàng)建測試類TestCourse,在里面創(chuàng)建五個學(xué)生三門課程,并對他們互相選擇,并把每個學(xué)生選得課程添加到各自的選課列表,把選擇每門課程的學(xué)生添加到各科的學(xué)生列表,然后進(jìn)行遍歷,學(xué)生的課程列表和課程的學(xué)生列表。

TestCourse
import java.util.Iterator;
public class TestCourse {
public static void main(String[] args) {
Student stu1 = new Student("張三",20);
Student stu2 = new Student("李四",21);
Student stu3 = new Student("王五",22);
Student stu4 = new Student("趙柳",23);
Student stu5 = new Student("孫琦",24);
Course c1 = new Course("Java se 基礎(chǔ)",2.0f);
Course c2 = new Course("Java se web",3.0f);
Course c3 = new Course("分布式開發(fā)",5.0f);
// 設(shè)置關(guān)系
stu1.addCourse(c1);
c1.addStu(stu1);
stu1.addCourse(c2);
c2.addStu(stu1);
stu2.addCourse(c2);
c2.addStu(stu2);
stu3.addCourse(c1);
c1.addStu(stu3);
stu3.addCourse(c2);
c2.addStu(stu3);
stu3.addCourse(c3);
c3.addStu(stu3);
stu4.addCourse(c3);
c3.addStu(stu4);
stu5.addCourse(c3);
c3.addStu(stu5);
System.out.println("學(xué)生姓名:"+stu1.getName());
Iterator<Course> it1 = stu1.getAllCourse().iterator();
while(it1.hasNext()){
Course c = it1.next();
System.out.println("\t|-課程名稱:"+c.getName()+",學(xué)分:"+c.getGrade());
}
System.out.println("課程名稱:"+c3.getName());
Iterator<Student> it2 = c3.getAllStudents().iterator();
while(it2.hasNext()){
Student s = it2.next();
System.out.println("\t|-學(xué)生姓名:"+s.getName()+",年齡:"+s.getAge());
}
}
}
結(jié)果顯示(只打印stu1和c1的列表)

posted on 2010-10-30 00:40
Mineralwasser 閱讀(155)
評論(0) 編輯 收藏