Advertisement
thieumao

Quản lý lớp học

Jun 20th, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 12.01 KB | None | 0 0
  1. package quanlylophoc;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Random;
  5.  
  6. /**
  7.  *
  8.  * @author thieumao
  9.  */
  10. public class QuanLyLopHoc {
  11.  
  12.     final int SO_HOC_SINH = 25; // phai <= listTen.size()
  13.     final int MAX_8_10 = 3;
  14.     final int MAX_5_7 = 13;
  15.     final int MAX_3_4 = 6;
  16.     final int MAX_1_2 = 2;
  17.     final int MAX_0 = 1;
  18.     private ArrayList listTen;
  19.     private ArrayList listDem;
  20.     private ArrayList listHo;
  21.     private ArrayList listFullName;
  22.     private ArrayList listID;
  23.     private ArrayList listDate;
  24.     private ArrayList listRA;
  25.     private ArrayList listSD;
  26.     private ArrayList listCP;
  27.     private ArrayList listCUT;
  28.     private ArrayList listFMT;
  29.     private ArrayList listAvg;
  30.     private ArrayList listRank;
  31.    
  32.     public static void main(String[] args) {
  33.         QuanLyLopHoc qllh = new QuanLyLopHoc();
  34.         qllh.init();
  35.         qllh.cal();
  36.         qllh.view();
  37.     }
  38.    
  39.     private void init() {
  40.         initFullName();
  41.         initID();
  42.         initDate();
  43.         initScore();
  44.     }
  45.    
  46.     private void cal() {
  47.         listAvg = new ArrayList<>();
  48.         listRank = new ArrayList<>();
  49.         for (int i = 0; i < SO_HOC_SINH; i++) {
  50.             int ra = (int) listRA.get(i);
  51.             int sd = (int) listSD.get(i);
  52.             int cp = (int) listCP.get(i);
  53.             int cut = (int) listCUT.get(i);
  54.             int fmt = (int) listFMT.get(i);
  55.             float avg = (float) (ra + sd + cp + cut + fmt) / 5;
  56.             String rank = "Kem";
  57.             if (avg >= 8) {
  58.                 rank = "Gioi";
  59.             } else {
  60.                 if (avg >= 6.5) {
  61.                     rank = "Kha";
  62.                 } else {
  63.                     if (avg >= 5) {
  64.                         rank = "TrungBinh";
  65.                     } else {
  66.                         if (avg >= 3.1) {
  67.                             rank = "Yeu";
  68.                         }
  69.                     }
  70.                 }
  71.             }
  72.             listAvg.add(avg);
  73.             listRank.add(rank);
  74.         }
  75.     }
  76.  
  77.     private void view() {      
  78.         for (int i = 0; i < SO_HOC_SINH; i++) {
  79.             int stt = i + 1;
  80.             String id = (String) listID.get(i);
  81.             String fullname = (String) listFullName.get(i);
  82.             String date = (String) listDate.get(i);
  83.             int ra = (int) listRA.get(i);
  84.             int sd = (int) listSD.get(i);
  85.             int cp = (int) listCP.get(i);
  86.             int cut = (int) listCUT.get(i);
  87.             int fmt = (int) listFMT.get(i);
  88.             float avg = (float) listAvg.get(i);
  89.             String rank = (String) listRank.get(i);
  90.             System.out.println(stt + " " + id + " " + fullname + " " + date + " " + ra + " " + sd + " " + cp + " " + cut + " " + fmt + " " + avg + " " + rank);
  91.         }
  92.     }
  93.    
  94.     // tao 25 Ho Ten voi ten khac nhau
  95.     private void initFullName(){
  96.         initTen();
  97.         initDem();
  98.         initHo();
  99.         listFullName = new ArrayList<>();
  100.         ArrayList<Integer> listTemp = new ArrayList<>();
  101.         Random ran = new Random();
  102.         // Tao ra 25 HOC SINH tu listHo, listDem, listTen voi Ten khac nhau
  103.         for (int i = 0; i < SO_HOC_SINH; i++) {
  104.             int iHo = ran.nextInt(listHo.size());
  105.             int iDem = ran.nextInt(listDem.size());
  106.             // random iTen sau cho khac nhau
  107.             int iTen = 0;
  108.             Boolean check = false;
  109.             while (check == false) {
  110.                 iTen = ran.nextInt(listTen.size());
  111.                 Boolean checkAdd = true;
  112.                 // check iTen ton tai trong listTemp chua
  113.                 for (int j = 0; j < listTemp.size(); j++) {
  114.                     if (iTen == listTemp.get(j)) {
  115.                         checkAdd = false;
  116.                     }
  117.                 }
  118.                 if (checkAdd == true) {
  119.                     listTemp.add(iTen);
  120.                     check = true;
  121.                 }
  122.             }
  123.             String hoten = listHo.get(iHo) + " " + listDem.get(iDem) + " " + listTen.get(iTen);
  124.             listFullName.add(hoten);
  125.         }
  126.     }
  127.    
  128.     // them 50 listTen tieng viet khong dau
  129.     private void initTen() {
  130.         listTen = new ArrayList<>();
  131.         listTen.add("Thieu");
  132.         listTen.add("Linh");
  133.         listTen.add("Tuan");
  134.         listTen.add("Huyen");
  135.         listTen.add("Tuyen");
  136.         listTen.add("Thuy");
  137.         listTen.add("Truc");
  138.         listTen.add("Triet");
  139.         listTen.add("Manh");
  140.         listTen.add("Nam");
  141.         listTen.add("Khanh");
  142.         listTen.add("Tien");
  143.         listTen.add("Thao");
  144.         listTen.add("Duong");
  145.         listTen.add("Dung");
  146.         listTen.add("Cam");
  147.         listTen.add("Trung");
  148.         listTen.add("Yen");
  149.         listTen.add("Hoai");
  150.         listTen.add("Diep");
  151.         listTen.add("Duc");
  152.         listTen.add("Tram");
  153.         listTen.add("Doan");
  154.         listTen.add("Minh");
  155.         listTen.add("Hau");
  156.         listTen.add("Hiep");
  157.         listTen.add("Kien");
  158.         listTen.add("Phuong");
  159.         listTen.add("Phuc");
  160.         listTen.add("Hien");
  161.         listTen.add("Hung");
  162.         listTen.add("Huong");
  163.         listTen.add("Lam");
  164.         listTen.add("Lan");
  165.         listTen.add("Ly");
  166.         listTen.add("Tu");
  167.         listTen.add("Quang");
  168.         listTen.add("Thanh");
  169.         listTen.add("Thin");
  170.         listTen.add("Thinh");
  171.         listTen.add("Kha");
  172.         listTen.add("Yen");
  173.         listTen.add("Toan");
  174.         listTen.add("Hanh");
  175.         listTen.add("Thu");
  176.         listTen.add("Truong");
  177.         listTen.add("Vinh");
  178.         listTen.add("Vu");
  179.         listTen.add("Tuong");
  180.         listTen.add("Xuan");
  181.     }
  182.    
  183.     // them 30 listTen dem khong dau
  184.     private void initDem() {
  185.         listDem = new ArrayList<>();
  186.         listDem.add("Van");
  187.         listDem.add("Thi");
  188.         listDem.add("Thuy");
  189.         listDem.add("Xuan");
  190.         listDem.add("Thanh");
  191.         listDem.add("Duc");
  192.         listDem.add("Tiet");
  193.         listDem.add("Khanh");
  194.         listDem.add("Luong");
  195.         listDem.add("Phuong");
  196.         listDem.add("Tram");
  197.         listDem.add("Nhu");
  198.         listDem.add("Tien");
  199.         listDem.add("Hoang");
  200.         listDem.add("Trung");
  201.         listDem.add("Minh");
  202.         listDem.add("Tri");
  203.         listDem.add("Chi");
  204.         listDem.add("Quang");
  205.         listDem.add("Manh");
  206.         listDem.add("The");
  207.         listDem.add("Dieu");
  208.         listDem.add("Khanh");
  209.         listDem.add("Hong");
  210.         listDem.add("Nha");
  211.         listDem.add("Truong");
  212.         listDem.add("Tran");
  213.         listDem.add("Viet");
  214.         listDem.add("Bich");
  215.         listDem.add("Ba");
  216.     }
  217.    
  218.     // them 15 ho khong dau
  219.     private void initHo() {
  220.         listHo = new ArrayList<>();
  221.         listHo.add("Nguyen");
  222.         listHo.add("Tran");
  223.         listHo.add("Le");
  224.         listHo.add("Trinh");
  225.         listHo.add("Mai");
  226.         listHo.add("Man");
  227.         listHo.add("Pham");
  228.         listHo.add("Do");
  229.         listHo.add("Vi");
  230.         listHo.add("Bui");
  231.         listHo.add("Ta");
  232.         listHo.add("Hoang");
  233.         listHo.add("Khong");
  234.         listHo.add("Ngo");
  235.         listHo.add("Dao");
  236.     }
  237.  
  238.     // tao 25 ID bat dau HV
  239.     private void initID() {
  240.         listID = new ArrayList<>();
  241.         ArrayList<Integer> listTemp = new ArrayList<>();
  242.         Random ran = new Random();
  243.         for (int i = 0; i < SO_HOC_SINH; i++) {
  244.             int id = 0;
  245.             Boolean check = false;
  246.             while (check == false) {
  247.                 id = ran.nextInt(10000000);
  248.                 Boolean checkAdd = true;
  249.                 for (int j = 0; j < listTemp.size(); j++) {
  250.                     if (id == listTemp.get(j)) {
  251.                         checkAdd = false;
  252.                     }
  253.                 }
  254.                 if (checkAdd == true) {
  255.                     listTemp.add(id);
  256.                     check = true;
  257.                 }
  258.             }
  259.             String strID = "" + id;
  260.             int so0Them = 7 - strID.length();
  261.             for (int j = 0; j < so0Them; j++) {
  262.                 strID = "0" + strID;
  263.             }
  264.             strID = "HV" + strID;
  265.             listID.add(strID);
  266.         }
  267.     }
  268.    
  269.     // tao 25 ngay random tu 01/02/1991 den 31/12/1991
  270.     private void initDate() {
  271.         listDate = new ArrayList<>();
  272.         // tao Thang roi tao Ngay
  273.         Random ran = new Random();
  274.         for (int i = 0; i < SO_HOC_SINH; i++) {
  275.             Boolean check = false;
  276.             while (check == false) {
  277.                 int thang = ran.nextInt(13);
  278.                 while (thang < 2 || thang > 12) {
  279.                     thang = ran.nextInt(13);
  280.                 }
  281.                 int ngay = 0;
  282.                 while (ngay == 0) {
  283.                     switch (thang) {
  284.                         case 2:
  285.                             ngay = ran.nextInt(29);
  286.                             break;
  287.                         case 4:
  288.                         case 6:
  289.                         case 9:
  290.                         case 11:
  291.                             ngay = ran.nextInt(31);
  292.                             break;
  293.                         default:
  294.                             ngay = ran.nextInt(32);
  295.                             break;
  296.                     }    
  297.                 }
  298.                 String strNgay = "" + ngay;
  299.                 if (ngay < 10) {
  300.                     strNgay = "0" + strNgay;
  301.                 }
  302.                 String strThang = "" + thang;
  303.                 if (thang < 10) {
  304.                     strThang = "0" + strThang;
  305.                 }
  306.                 String strDate = strNgay + "/" + strThang + "/1991";
  307.                 Boolean checkAdd = true;
  308.                 for (int j = 0; j < listDate.size(); j++) {
  309.                     if (strDate == listDate.get(j)) {
  310.                         checkAdd = false;
  311.                     }
  312.                 }
  313.                 if (checkAdd == true) {
  314.                     check = true;
  315.                     listDate.add(strDate);
  316.                 }
  317.             }
  318.         }
  319.     }
  320.    
  321.     private ArrayList initListScore() {
  322.         ArrayList listScore = new ArrayList<>();
  323.         // 3 hv 8-10
  324.         // 13 hv 5-7
  325.         // 6 hv 3-4
  326.         // 2 hv 1-2
  327.         // 1 hv bo kiem tra
  328.         Random ran = new Random();
  329.         int i810 = 0; // max = 3
  330.         int i57 = 0; // max = 13
  331.         int i34 = 0; // max = 6
  332.         int i12 = 0; // max = 2
  333.         int i0 = 0; // max = 1
  334.         for (int i = 0; i < SO_HOC_SINH; i++) {
  335.             int score = 0;
  336.             Boolean check = false;
  337.             while (check == false) {
  338.                 score = ran.nextInt(11);
  339.                 if (score >= 8) {
  340.                     i810++;
  341.                 }
  342.                 if (score >= 5 && score <= 7) {
  343.                     i57++;
  344.                 }
  345.                 if (score >= 3 && score <= 4) {
  346.                     i34++;
  347.                 }
  348.                 if (score >= 1 && score <= 2) {
  349.                     i12++;
  350.                 }
  351.                 if (score == 0) {
  352.                     i0++;
  353.                 }
  354.                 check = true;
  355.                 if (i810 > MAX_8_10) {
  356.                     i810--;
  357.                     check = false;
  358.                 }
  359.                 if (i57 > MAX_5_7) {
  360.                     i57--;
  361.                     check = false;
  362.                 }
  363.                 if (i34 > MAX_3_4) {
  364.                     i34--;
  365.                     check = false;
  366.                 }
  367.                 if (i12 > MAX_1_2) {
  368.                     i12--;
  369.                     check = false;
  370.                 }
  371.                 if (i0 > MAX_0) {
  372.                     i0--;
  373.                     check = false;
  374.                 }
  375.             }
  376.             listScore.add(score);
  377.         }
  378.         return listScore;
  379.     }
  380.  
  381.     private void initScore() {
  382.         listRA = initListScore();
  383.         listSD = initListScore();
  384.         listCP = initListScore();
  385.         listCUT = initListScore();
  386.         listFMT = initListScore();
  387.     }
  388.    
  389. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement