package com.imooc;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/**
* 学生类
*
* @author jiuhu
*
*/
public class Student {
private String id; // 学号
private String name;// 姓名
private Set<Course> studentSelectCourses; // 学生选的课程 SET类里的元素是无序不可重复的对象;
// 构造方法
public Student(String id, String name) {
super();
this.id = id;
this.name = name;
this.studentSelectCourses = new HashSet<Course>();
}
// getter,setter
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set<Course> getStudentSelectCourses() {
return studentSelectCourses;
}
public void setStudentSelectCourses(Set<Course> studentSelectCourses) {
this.studentSelectCourses = studentSelectCourses;
}
@Override // 覆写toString方法
public String toString() {
return "学号:" + id + ",姓名:" + name;
}
// 学生选课
public void addCourses(Course course) {
this.studentSelectCourses.add(course);
}
// 学生取消选课
public void removeCourses(Course course) {
this.studentSelectCourses.remove(course);
}
// 显示学生选课信息
public void printCourses() {
Iterator<Course> it = this.studentSelectCourses.iterator();
System.out.println(this.name + "同学所选的课程如下:");
while (it.hasNext()) {
System.out.println(it.next().toString());
}
}
}
package com.imooc;
/**
* 课程类
*
* @author jiuhu
*
*/
public class Course {
private String id; // 课程编号
private String name;// 课程名称
// 构造方法
public Course(String id, String name) {
super();
this.id = id;
this.name = name;
}
// getter,setter
public String getId() {
return id;
}
// 课程名称
public String getName(String id) {
return this.name;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override // 覆写toString方法
public String toString() {
return id + "." + name;
}
}
package com.imooc;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
/*
* 备选课程类
*/
public class SelectToCourses {
private List<Course> coursesList; // 课程列表 -- List对象里的元素有序可重复;
// 注意:实际生活中,这个备选课程应该是没有重复的,所以建议使用Set创建对象
public SelectToCourses() {
super();
this.coursesList = new ArrayList<Course>(); // 创建备选课程对象
}
public List<Course> getCoursesList() {
return coursesList;
}
public void setCoursesList(List<Course> coursesList) {
this.coursesList = coursesList;
}
// 增加备选课程
public void addCourses() {
Course[] courses = { new Course("1", "数据结构"), new Course("2", "C语言"), new Course("3", "大学英语"),
new Course("4", "高等数学"), new Course("5", "微机原理") };
this.coursesList.addAll(Arrays.asList(courses));
// 显示备选课程
this.printCourses();
}
// 显示备选课程
public void printCourses() {
Iterator<Course> it = this.coursesList.iterator();
System.out.println("**可选课程如下:**");
while (it.hasNext()) {
System.out.println(it.next().toString());
}
}
// 删除备选课程
public void removeCourses() {
Course[] courses = { new Course("1", "数据结构"), new Course("2", "C语言") };
this.coursesList.removeAll(Arrays.asList(courses));
// 显示课程
this.printCourses();
}
// 修改备选课程
public void modifyCourses() {
// 把4.高等数学改为4.离散数学
this.coursesList.set(0, new Course("1", "JAVA编程"));
this.printCourses();
}
}
package com.imooc;
import java.util.Scanner;
/**
* 测试类
*
* @author jiuhu
*
*/
public class Test {
public static void main(String[] args) {
String courseId; // 课程ID
int continueSelectCourse; // 继续选课标识 1是 0否
boolean flag; // 成功选课标识
Course course = null; // 课程 保存删除前的课程信息
// 创建备选课程对象
SelectToCourses selectTocourses = new SelectToCourses();
selectTocourses.addCourses();
// 创建学生对象
Student student = new Student("1", "小明");
System.out.println("欢迎学生:" + student.getName() + "选课!");
// 创建输入流对象
Scanner input = new Scanner(System.in);