private List <DBaiThi> LayDeThi(string maMH, char trinhDo, int socau) { List <DBaiThi> deThi = new List <DBaiThi>(); string[] name = { "@mamh", "@trinhdo", "@socau", "@malop", "@lan" }; object[] param = { maMH, trinhDo, socau, DBAccess.donVi, lan }; DataTable dt = DBAccess.ExecuteQuery("SP_LayDeThi", name, param, 5); foreach (DataRow dr in dt.Rows) { DBaiThi db = new DBaiThi { NoiDung = dr[0].ToString(), A = dr[1].ToString(), B = dr[2].ToString(), C = dr[3].ToString(), D = dr[4].ToString(), DapAn = dr[5].ToString()[0] }; deThi.Add(db); } return(deThi); }
private void LayDe() { List <DBaiThi> dt = LayDeThi(this.maMH, this.trinhDo, this.soCau); foreach (DBaiThi bt in dt) { List <char> dapAn = new List <char> { 'A', 'B', 'C', 'D' }; string[] dapAnTron = new string[4]; char da = 'A'; Random rnd = new Random(); for (int i = 0; i < 4; i++) { char d = dapAn[rnd.Next(dapAn.Count)]; dapAn.Remove(d); switch (d) { case 'A': dapAnTron[i] = bt.A; if (bt.DapAn == 'A') { da += (char)i; } break; case 'B': dapAnTron[i] = bt.B; if (bt.DapAn == 'B') { da += (char)i; } break; case 'C': dapAnTron[i] = bt.C; if (bt.DapAn == 'C') { da += (char)i; } break; case 'D': dapAnTron[i] = bt.D; if (bt.DapAn == 'D') { da += (char)i; } break; } } DBaiThi ndt = new DBaiThi { NoiDung = bt.NoiDung, DapAn = da, A = dapAnTron[0], B = dapAnTron[1], C = dapAnTron[2], D = dapAnTron[3], Chon = ' ', TrangThai = "sai" }; baiThi.Add(ndt); } }