package trungtamngoaingu;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
public class TrungTam {
Map<String, LopHoc> mapLopHoc;
public TrungTam(Map<String, LopHoc> mapLopHoc) {
super();
this.mapLopHoc = mapLopHoc;
}
public Map<String, LopHoc> getMapLopHoc() {
return mapLopHoc;
}
public void setMapLopHoc(Map<String, LopHoc> mapLopHoc) {
this.mapLopHoc = mapLopHoc;
}
//cau 2:Tìm kiếm lớp của học viên bất kì khi biết mã số học viên
public LopHoc searchLopHoc(String maHocVien){
LopHoc lopHoc=null;
Iterator<LopHoc> iterator=mapLopHoc.values().iterator();
while(iterator.hasNext()){
LopHoc l=iterator.next();
if(l.getMapHocVien().containsKey(maHocVien))
lopHoc=l;
}
return lopHoc;
}
//cau 3:Tìm tổng số học viên còn thiếu trong toàn trung tâm.
// Biết rằng số học viên còn thiếu được tính bằng hiệu của tổng số học viên tối đa
// mà các lớp trong trung tâm chứa được so với số học viên đăng kí thực tế.
public int soHocVienThieu(){
int result=0;
Iterator<LopHoc> iterator=mapLopHoc.values().iterator();
while(iterator.hasNext()){
LopHoc lopHoc=iterator.next();
int i=lopHoc.getSoHocVienToiDa()-lopHoc.getMapHocVien().values().size();
result+=i;
}
return result;
}
//cau 4:Nhập điểm của tất cả các học viên khi biết bảng điểm.
// Bảng điểm là 1 danh sách chứa các cặp mã học viên và điểm tương ứng của
người đó.
public Map<String , Double> nhapDiem(){
Map<String, Double> mapDanhSachDiem=new TreeMap<String, Double>();
Iterator<LopHoc> iterator=mapLopHoc.values().iterator();
while(iterator.hasNext()){
LopHoc lopHoc=iterator.next();
Iterator<HocVien> iterator2=lopHoc.getMapHocVien().values().iterator ();
while(iterator2.hasNext()){
HocVien hocVien=iterator2.next();
mapDanhSachDiem.put(hocVien.getMaHocVien(), hocVien.getDiem());
}
}
return mapDanhSachDiem;
}
//cau 5:Tính tỉ lệ học viên hoàn thành khóa học.
// Biết học viên đạt từ 5 điểm trở lên mới được gọi là hoàn thành khóa học.
// ở dưới là lớp test đề số 2.
public double tiLeHocVienHoanThanhKhoaHoc(){
double result=0;
double a=tongSoHocVien();
double b=soHocVienHoanThanh();
result=b/a;
return result*100;
}
private int tongSoHocVien(){
int i=0;
Iterator<LopHoc> iterator=mapLopHoc.values().iterator();
while(iterator.hasNext()){
LopHoc lopHoc=iterator.next();
i+=lopHoc.getMapHocVien().values().size();
}
return i;
}
private int soHocVienHoanThanh(){
int i=0;
Iterator<LopHoc> iterator=mapLopHoc.values().iterator();
while(iterator.hasNext()){
LopHoc lopHoc=iterator.next();
Iterator<HocVien> iterator2=lopHoc.getMapHocVien().values().iterator ();
while(iterator2.hasNext()){
HocVien hocVien=iterator2.next();
if(hocVien.getDiem()>=5) i++;
}
}
return i;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////
package trungtamngoaingu;
import java.util.Map;
public class LopHoc {
String maLopHoc;
String tenLopHoc;
int soHocVienToiDa;
Map<String , HocVien> mapHocVien;
public LopHoc(String maLopHoc, String tenLopHoc, int
soHocVienToiDa,Map<String , HocVien> mapHocVien) {
super();
this.maLopHoc = maLopHoc;
this.tenLopHoc = tenLopHoc;
this.soHocVienToiDa = soHocVienToiDa;
this.mapHocVien=mapHocVien;
}
public String getMaLopHoc() {
return maLopHoc;
}
public void setMaLopHoc(String maLopHoc) {
this.maLopHoc = maLopHoc;
}
public String getTenLopHoc() {
return tenLopHoc;
}
public void setTenLopHoc(String tenLopHoc) {
this.tenLopHoc = tenLopHoc;
}
public int getSoHocVienToiDa() {
return soHocVienToiDa;
}
public void setSoHocVienToiDa(int soHocVienToiDa) {
this.soHocVienToiDa = soHocVienToiDa;
}
public Map<String, HocVien> getMapHocVien() {
return mapHocVien;
}
public void setMapHocVien(Map<String, HocVien> mapHocVien) {
this.mapHocVien = mapHocVien;
}
public String toString(){
return maLopHoc+"\t"+tenLopHoc;
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////
package trungtamngoaingu;
public class HocVien {
String maHocVien;
String tenHocVien;
String diaChi;
double diem;
public HocVien(String maHocVien, String tenHocVien, String diaChi,
double diem) {
super();
this.maHocVien = maHocVien;
this.tenHocVien = tenHocVien;
this.diaChi = diaChi;
this.diem=diem;
}
public String getMaHocVien() {
return maHocVien;
}
public void setMaHocVien(String maHocVien) {
this.maHocVien = maHocVien;
}
public String getTenHocVien() {
return tenHocVien;
}
public void setTenHocVien(String tenHocVien) {
this.tenHocVien = tenHocVien;
}
public String getDiaChi() {
return diaChi;
}
public void setDiaChi(String diaChi) {
this.diaChi = diaChi;
}
public double getDiem() {
return diem;
}
public void setDiem(double diem) {
this.diem = diem;
}
public String toString(){
return maHocVien+"\t"+tenHocVien+"\t"+diem;
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///////////
package trungtamngoaingu;
import java.util.Map;
import java.util.TreeMap;
import junit.framework.TestCase;
public class Test extends TestCase {
public void test(){
HocVien h1=new HocVien("hv1","henxui1","hcm1",1.0);
HocVien h2=new HocVien("hv2","henxui2","hcm2",2.0);
HocVien h3=new HocVien("hv3","henxui3","hcm3",3.0);
HocVien h4=new HocVien("hv4","henxui4","hcm4",4.0);
HocVien h5=new HocVien("hv5","henxui5","hcm5",5.0);
HocVien h6=new HocVien("hv6","henxui6","hcm6",6.0);
HocVien h7=new HocVien("hv7","henxui7","hcm7",7.0);
HocVien h8=new HocVien("hv8","henxui8","hcm8",8.0);
HocVien h9=new HocVien("hv9","henxui9","hcm9",9.0);
Map<String , HocVien> map1=new TreeMap<String, HocVien>();
map1.put("hv1", h1);
map1.put("hv2", h2);
map1.put("hv3", h3);
LopHoc l1=new LopHoc("l1","lop1",10,map1);
Map<String , HocVien> map2=new TreeMap<String, HocVien>();
map2.put("hv4", h4);
map2.put("hv5", h5);
LopHoc l2=new LopHoc("l2","lop2",5,map2);
Map<String , HocVien> map3=new TreeMap<String, HocVien>();
map3.put("hv6", h6);
map3.put("hv7", h7);
map3.put("hv8", h8);
map3.put("hv9", h9);
LopHoc l3=new LopHoc("l2","lop2",15,map3);
Map<String, LopHoc> mapLopHoc=new TreeMap<String, LopHoc>();
mapLopHoc.put("l1", l1);
mapLopHoc.put("l2", l2);
mapLopHoc.put("l3", l3);
TrungTam trungTam=new TrungTam(mapLopHoc);
//cau 2
assertEquals(l1, trungTam.searchLopHoc("hv1"));
assertEquals(l2, trungTam.searchLopHoc("hv5"));
assertEquals(l3, trungTam.searchLopHoc("hv7"));
//cau 3
assertEquals(21, trungTam.soHocVienThieu());
//cau 4
Map<String , Double> map=new TreeMap<String, Double>();
map.put("hv1", 1.0);
map.put("hv2", 2.0);
map.put("hv3", 3.0);
map.put("hv4", 4.0);
map.put("hv5", 5.0);
map.put("hv6", 6.0);
map.put("hv7", 7.0);
map.put("hv8", 8.0);
map.put("hv9", 9.0);
assertEquals(map, trungTam.nhapDiem());
//cau 5
assertEquals(55.56, trungTam.tiLeHocVienHoanThanhKhoaHoc(),0.01);
}
}