Cài đặt chương trình

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 34 - 50)

3. Về năng lực chuyên môn

3.2 Cài đặt chương trình

•Cài đặt Client

Bước 1: Chạy file cài đặt

Bước 2: Nhấn “Next” để tiếp tục

Hình 3.2: Quá trình cài đặt

Bước 3: Chọn thư mục lưu trữ chương trình trên ỗ đĩa, nhấn “Next” để tiếp tục.

Bước 4: Nhấn “Next” để tiếp tục

Hình 3.4: Quá trình cài đặt(tt)

Bước 5: Nhấn “Close” để kết thúc quá trình cài đặt, người dùng vào thư mục chứa chương trình chạy file “XuLyTracNghiem.exe” để mở chương trình.

•Cài đặt Server: chạy file SettupServer.msi để thực hiện quá trình cài đặt, các bước cài đặc tương tự như cài đặt ở client.

Chương 4: KẾT LUẬN 4.1 Kết quả đạt được

- Vận dụng những kiến thức đã học vào thực tiễn.

- Cơ bản chúng em đã xây dựng được một hệ thống mà trong đó ta có thể lưu trữ được ngân hàng câu hỏi với định dạng: văn bản, công thức toán học, hình ảnh. Hệ thống có khả năng tạo đề thi và quản lý đề thi.

- Vì chưa khảo sát thực tế được nên hệ thống không thể tránh khỏi việc thiếu sót các chức năng khác của hệ thống.

4.2 Hạn chế

- Các chức năng còn thô sơ.

-Tốc độ sử lý tác vụ còn chậm, các dòng lệnh còn rờm rà và khó hiểu.

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 34 - 50)

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

(50 trang)
w