public static CAUHOI KhoiTao(BIEUTHUC P, Random t) { CAUHOI kq; kq.NoiDung = XuLyBieuThuc.XuatChuoi(P); kq.TraLoi = new TRALOI[n_traloi]; for (int i = 0; i < n_traloi; i++) { kq.TraLoi[i] = XuLyTraLoi.KhoiTao(P, t); } kq.TraLoi[t.Next() % n_traloi].NoiDung = XuLyBieuThuc.TinhToan(P).ToString(); return(kq); }
public static String XuatChuoi(CAUHOI P) { String kq = P.NoiDung + " = \r\n"; for (int i = 0; i < n_traloi; i++) { kq = kq + "(" + (i + 1) + ") " + XuLyTraLoi.XuatChuoi(P.TraLoi[i]); if (i < n_traloi - 1) { kq = kq + "\t\t"; } } return(kq); }
public static Boolean KiemTra(String Chuoi) { Boolean flag = true; String[] M = Chuoi.Split(new String[] { ChuoiPhanCach }, StringSplitOptions.None); flag = (M.Length > 0) && (M.Length % 2 == 0); String S; for (int i = 0, j = 0; flag && i < M.Length; i += 2, j++) { flag = XuLyTraLoi.KiemTra(M[i + 1]); } return(flag); }
public static CAUHOI[] KhoiTao(String Chuoi) { CAUHOI[] kq; kq = null; if (KiemTra(Chuoi)) { String[] M = Chuoi.Split(new String[] { ChuoiPhanCach }, StringSplitOptions.None); kq = new CAUHOI[M.Length / 2]; String S; for (int i = 0, j = 0; i < M.Length; i += 2, j++) { S = M[i].Replace("=", ""); kq[j].NoiDung = S.Trim(); kq[j].TraLoi = XuLyTraLoi.KhoiTao(M[i + 1]); } } return(kq); }