Hướng phát triển

Một phần của tài liệu ĐỒ ÁN TỐT NGHIỆP " XÂY DỰNG CHƯƠNG TRÌNH TẠO NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM" potx (Trang 37 - 50)

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.

Một phần của tài liệu ĐỒ ÁN TỐT NGHIỆP " XÂY DỰNG CHƯƠNG TRÌNH TẠO NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM" potx (Trang 37 - 50)

Tải bản đầy đủ (DOC)

(50 trang)
w