3. Về năng lực chuyên môn
4.3 Hướng phát triển
- Hoàn thiện hồ sơ, chuyển hệ thống lên Internet. - Phát triển thêm chức năng thi trắc nghiệm online
-Tăng tính hiệu quả, tăng tốc độ tìm kiếm, tăng tính ổn định và tính bảo mật của chương trình.
PHỤ LỤC Một số code tiêu biểu của chương trình (1)Thêm câu hỏi
private void ReadWord(TextControl _tbNoidung) {
OpenFileDialog opd = new OpenFileDialog();
opd.Filter = "Word 2007-2010(*.docx)|*.docx|Word
2003(*.doc)|*.doc|Text(*.txt)|*.txt|RTF File(*.rtf)|*.rtf|All files(*.*)|*.*"; opd.FilterIndex = 1;
if (opd.ShowDialog() == DialogResult.OK && opd.FileName.Length > 0) {
_tbNoidung.Text = null;
Microsoft.Office.Interop.Word.Application wordApp = new
Microsoft.Office.Interop.Word.Application(); Microsoft.Office.Interop.Word.Document doc = null;
object missing = System.Reflection.Missing.Value; object FileName = opd.FileName;
try
{
object nullobj = System.Reflection.Missing.Value; doc = wordApp.Documents.Open(
ref FileName, ref missing, ref missing, ref missing, ref nullobj, ref missing, ref missing, ref nullobj, ref missing, ref missing, ref missing, ref missing );
doc.ActiveWindow.Selection.WholeStory(); doc.ActiveWindow.Selection.Copy();
_tbNoidung.Focus(); _tbNoidung.Paste();
doc.Close(ref missing, ref missing, ref missing); } catch { } finally { if (doc != null) { doc = null; } if (wordApp != null) {
wordApp.Quit(ref missing, ref missing, ref missing); wordApp = null;
} } } }
public string xuly(string _noiDungCauHoi, string _maChuong) {
string cau = @"\'e2u"; string ketqua = "";
_noiDungCauHoi = _noiDungCauHoi.Substring(0, _noiDungCauHoi.Length - 2) + " " + cau + " 2:}";
string cauhoi = "",dapanA = "",dapanB = "",dapanC = "",dapanD = ""; int dauA = -1,dauB = -1,dauC = -1,dauD = -1,cuoiA = -1,cuoiB = -1,
cuoiC = -1,cuoiD = -1; int kitubatdaucau = -1; int kituketthuccau = -1; string dapanDung = ""; int demcauhoi = -1; int socauxuly = 0;
for (int i = 0; i < _noiDungCauHoi.Length - 5; i++) {
if (_noiDungCauHoi.Substring(i, 5).ToString() == cau)//tim thay cau hoi
{ try { if (_noiDungCauHoi.Substring(i + 5, 1).ToString() == ":") { kitubatdaucau = i + 6; demcauhoi++; } else if (_noiDungCauHoi.Substring(i + 6, 1).ToString() == ":") { kitubatdaucau = i + 7; demcauhoi++; } else if (_noiDungCauHoi.Substring(i + 7, 1).ToString() ==":") { kitubatdaucau = i + 8; demcauhoi++; } else
if (_noiDungCauHoi.Substring(i + 8, 1).ToString() =":") { kitubatdaucau = i + 9; demcauhoi++; } else if (_noiDungCauHoi.Substring(i + 9,1).ToString() == ":") { kitubatdaucau = i + 10; demcauhoi++; } } catch { } if (demcauhoi > 0) { cuoiD = i - 1; try {
dapanD = _noiDungCauHoi.Substring(dauD, cuoiD - dauD).ToString(); for (int t = dapanD.Length; t > 0; t--)
{ if (dapanD.Substring(t - 3, 3) == "par") { dapanD = dapanD.Substring(0, t + 3); break; } } } catch { } if (dapanD != "")
{
if (kiemtradapan(dapanD, "D") == "D") dapanDung = "D";
importDatabase(cauhoi, dapanA, dapanB, dapanC, dapanD, dapanDung,
int.Parse(_maChuong)); socauxuly++;
cauhoi = ""; dapanA = ""; dapanB = ""; dapanC = ""; dapanD = ""; dauA = -1; dauB = -1; dauC = -1; dauD = -1; cuoiA = -1; cuoiB = -1; cuoiC = -1; cuoiD = -1; kituketthuccau = -1; } } }
if (_noiDungCauHoi.Substring(i, 2).ToString() == "A." && kitubatdaucau != -1)
{
kituketthuccau = i - 1;
cauhoi = _noiDungCauHoi.Substring(kitubatdaucau, kituketthuccau - kitubatdaucau).ToString(); dauA = i + 2;
}
if (_noiDungCauHoi.Substring(i, 2).ToString() == "B." && dauA != -1) {
cuoiA = i - 1;
dapanA = _noiDungCauHoi.Substring(dauA, cuoiA - dauA).ToString(); dauB = i + 2;
if (kiemtradapan(dapanA, "A") == "A") dapanDung = "A";
}
if (_noiDungCauHoi.Substring(i, 2).ToString() == "C." && dauB != -1) {
cuoiB = i - 1;
dapanB = _noiDungCauHoi.Substring(dauB, cuoiB - dauB).ToString(); dauC = i + 2;
if (kiemtradapan(dapanB, "B") == "B") dapanDung = "B";
}
if (_noiDungCauHoi.Substring(i, 2).ToString() == "D." && dauC != -1) {
cuoiC = i - 1;
dapanC = _noiDungCauHoi.Substring(dauC, cuoiC - dauC).ToString(); dauD = i + 2; if (kiemtradapan(dapanC, "C") == "C") dapanDung = "C"; } } _noiDungCauHoi = "";
return ketqua = demcauhoi.ToString() + "," + socauxuly.ToString(); }
private string kiemtradapan(string caudapan, string dapan) {
string giatri = "";
for (int i = 0; i < caudapan.Length - 4; i++) { if (caudapan.Substring(i, 4).ToString() == "(**)") giatri = dapan; } return giatri; }
public void importDatabase(string cauhoi, string dapanA,
string dapanB, string dapanC, string dapanD, string
dapanDung, int _maChuong )
{ try
{
DataTable datatable = GetData("select * from Cauhoi"); DataRow dr = datatable.NewRow(); dr["noidung"] = cauhoi; dr["dapana"] = dapanA; dr["dapanb"] = dapanB; dr["dapanc"] = dapanC; dr["dapand"] = dapanD; dr["dapandung"] = dapanDung; dr["machuong"] = _maChuong.ToString(); datatable.Rows.Add(dr); Update(datatable); }
catch (Exception err) {
_error = err.Message.ToString(); }
(2) Hàm xuất đề thi
public string XuatDeThi(int[] _mangIDcauHoiXuat, string _maMonHoc, string[] _thongTinDeThi, int [] _coSo)
{
int ID = 0;//giá trị id trong bảng dethi
ID = getID("select * from Dethi");
luuDeThi(ID, _thongTinDeThi);//tiến hành lưu thông tin đề thi
for (int j = 0; j < _mangIDcauHoiXuat.Length; j++) {
luuChiTiet(ID, _mangIDcauHoiXuat[j], _coSo); }
string sql = "select macauhoi, noidung, dapana,
dapanb,dapanc,dapand,dapandung, cauhoi.machuong "; sql += "from monhoc,chuong,Cauhoi ";
sql += "where monhoc.mamh='" + _maMonHoc + "' and (monhoc.mamh=chuong.mamh and chuong.machuong=cauhoi.machuong)";
dtb = GetData(sql); int cauThu = 0;
string noidungFull = ""; string noiDungAllCauHoi = "";
for (int j = 0; j < _mangIDcauHoiXuat.Length; j++) {
foreach (DataRow i in dtb.Rows) {
if (int.Parse(i["macauhoi"].ToString()) == _mangIDcauHoiXuat[j]) {
cauThu++;
string noiDung1Cau = "";
string dapAnC = i[4].ToString() ;
bool dang1 = false;
for (int n = 1; n <=dapAnA.Length - 4; n++) { if (dapAnA.Substring(n,4) == @"\par") { dang1 = true; } } if (dang1 == true) {
noiDung1Cau = cauMH + cauThu.ToString() + ": "
+ i["noidung"].ToString() + @"\plain\f1\fs26 "; noiDung1Cau += "A. " + locdauhieunhanbiet(i[_coSo[0] + 1].ToString()) + @"\par "; noiDung1Cau += "B. " + locdauhieunhanbiet(i[_coSo[1] + 1].ToString()) + @"\par "; noiDung1Cau += "C. " + locdauhieunhanbiet(i[_coSo[2] + 1].ToString()) + @"\par "; noiDung1Cau += "D. " + locdauhieunhanbiet(i[_coSo[3] + 1].ToString()) + @"\par\par" + dauTAB;
} else
{
noiDung1Cau = cauMH + cauThu.ToString() + ": "
+ i["noidung"].ToString().Trim() + @"\plain\f1\fs26 "; noiDung1Cau += "A. " + locdauhieunhanbiet(i[_coSo[0] + 1].ToString()) + @"\tab\tab "; noiDung1Cau += "B. " + locdauhieunhanbiet(i[_coSo[1] + 1].ToString()) + @"\par ";
noiDung1Cau += "C. " + locdauhieunhanbiet(i[_coSo[2] + 1].ToString()) + @"\tab\tab "; noiDung1Cau += "D. " + locdauhieunhanbiet(i[_coSo[3] + 1].ToString()) + @"\par\par " + dauTAB;
}
noiDungAllCauHoi += noiDung1Cau; noiDung1Cau = null; } } } noidungFull = noiDungAllCauHoi + "}"; return noidungFull; }
private string locdauhieunhanbiet(string _caudapan) {
_caudapan = _caudapan.Trim(); string giatri = "";
bool dapandung = false; //lọc dấu hiệu nhận biết
for (int i = _caudapan.Length - 1; i >= 3; i--) {
if (_caudapan.Substring(i - 3, 4).ToString() == "(**)") {
giatri = _caudapan.Substring(0, i - 3).ToString() + _caudapan.Substring(i + 1, _caudapan.Length - i - 1).ToString(); dapandung = true; } } if (dapandung == false) giatri = _caudapan; //lọc \par
for (int k = 1; k <= giatri.Length-4; k++) {
{
giatri = giatri.Substring(0, k).ToString(); }
}
//Lọc \tab
string ketqua = giatri;
for (int k = giatri.Length - 1; k >= 3; k--) {
if (giatri.Substring(k - 3, 4).ToString() == @"\tab" && (k - 3) == (ketqua.Length - 4))
{
ketqua = giatri.Substring(0, k - 3).ToString(); }
}
giatri = ketqua; return giatri; }
public void luuDeThi(int _ID, string[] _thongTinDeThi) {
DataTable dtbDT = GetData("select * from Dethi"); DataRow dr = dtbDT.NewRow();
dr["id"] = _ID;
dr["madethi"] = int.Parse(_thongTinDeThi[0]); dr["maloaithi"] =int.Parse(_thongTinDeThi[1]); dr["kithi"] = _thongTinDeThi[2].ToString();
dr["ngaythi"] =Convert.ToDateTime(_thongTinDeThi[3]); dr["namhoc"] = _thongTinDeThi[4].ToString(); dr["ghichu"] = _thongTinDeThi[5].ToString(); dr["manv"] = _thongTinDeThi[6].ToString(); dtbDT.Rows.Add(dr); Update(dtbDT); }
public void luuChiTiet(int _ID,int _maCauHoi, int [] _coSo) {
DataTable dtbCT = GetData("select * from Chitietdethi"); DataRow dr = dtbCT.NewRow(); dr["macauhoi"] = _maCauHoi; dr["id"] = _ID; dr["coso1"] = _coSo[0].ToString(); dr["coso2"] = _coSo[1].ToString(); dr["coso3"] = _coSo[2].ToString(); dr["coso4"] = _coSo[3].ToString(); dtbCT.Rows.Add(dr); Update(dtbCT); }
TÀI LIỆU THAM KHẢO
[1] Các giải pháp lập trình C# của Nguyễn Ngọc Bình Dương và Thái Thanh Phong- Đại Học Dân Lập Văn Lang.
[2] Giáo tình công nghệ phần mềm của Thầy Phan Huy Khánh – Khoa công nghệ thông tin - Đại học bách khoa Đà Nẵng.
[3] Giáo trình phân tích thiết kế hệ thống của Th.S Trần Đắc Phiến. Nguồn Trường Đại học công nghiệp TP.HCM.
[4] Tìm hiểu C# và các ứng dụng của Phạm Văn Việt và Trương Lập Vỹ-Trường Đại Học Khoa Học Tự Nhiên.