java--利用集合List和Set實現簡易版學生選課系統
//建立學生類
import java.util.HashSet;
import java.util.Set;
public class student {
String id; //學號
String sname; //學生姓名
public Set<course> courses; //學生備選課程屬性(新增泛型)
public student(String id,String sname){
this.id=id;
this.sname=sname;
this.courses=new HashSet<course>(); //初始化courses屬性,將其構造為HashSet型別(例項化);
}
}
//建立課程類
public class course {
String id; //課程號
String cname; //課程名
public course(String id,String cname){
this.id=id;
this.cname=cname;
//重寫course類的構造方法,並且傳入引數
}
}
//實現待選課程的Set集合類
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class SetTest {
public List<course> coursesToSelect;
private static Scanner scanner;
//初始化coursesToselect屬性
public SetTest(){
coursesToSelect=new ArrayList<course>();
}
//實現新增課程方法
public void add(){
course c1=new course("1","資料結構");
coursesToSelect.add(c1);
course c2=new course("2","c語言");
coursesToSelect.add(c2);;
course []c3 ={new course("3","大學英語"),new course("4","高等數學")};
coursesToSelect.addAll(Arrays.asList(c3));
course []c4 ={new course("5","離散學"),new course("6","大學物理")};
coursesToSelect.addAll(Arrays.asList(c4));
}
//列印待選課程
public void testForeachForSet(){
System.out.println("有如下課程待選:"+"(通過foreach訪問)");
for(course obj:coursesToSelect)
System.out.println("課程:"+obj.id+" "+obj.cname);
}
//例項化
public static void main(String[] args) {
SetTest st=new SetTest();
st.add();
st.testForeachForSet();
student s1=new student("1","xhg");
System.out.println("歡迎學生"+s1.sname+"選課!");
scanner = new Scanner(System.in);
for(int i=0;i<3;i++){
System.out.print("請輸入課程號:");
String courseid=scanner.next();
for(course cr:st.coursesToSelect){
if(cr.id.equals(courseid))
s1.courses.add(cr);
}
}
for(course cr:s1.courses){
System.out.println("選擇了課程:"+cr.id+" "+cr.cname);
}
}
}
測試結果如下圖: