1. 程式人生 > >java--利用集合List和Set實現簡易版學生選課系統

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);
        }
 }

}

測試結果如下圖: