Thiết kế chương trìn h

Một phần của tài liệu luận văn công nghệ thông tin xây dựng chương trình thi trắc nghiệm bằng visual basic.net (Trang 88 - 112)

SQL Server 2000 thích hợp để làm DBMS cho chương trình này vì : + Cơ sở dữ liệu ở đây trung bình .

+ SQL Server 2000 cĩ thể chạy trong các hệ điều hành Windows NT 4.0 (từ Srevice Pack 5 trở đi) , Windows 2000 , Windows 98 hoặc Windows Me và cĩ thể sử dụng với hệ điều hành Windows CE .

+ SQL Server của Microsoft là một phương tiện cơ sở dữ liệu Client/Server .

1. Từ điển dữ liệu :

SINHVIENID Mã Sinh Viên MASINHVIEN Mã số Sinh Viên LOPID Mã Lớp

HO Họ

TEN Tên

PHAI Phái NGAYSINH Ngày Sinh DIACHI Địa Chỉ MALOP Mã Số Lớp TENLOP Tên Lớp MONID Mã Mơn MAMON Mã số mơn TENMON Tên mơn

SODVHT Số đơn vị học tập KYTHIID Mã kỳ thi

MAKYTHI Mã số kỳ thi TENKYTHI Tên kỳ thi GIAOVIÊNID Mã Giáo Viên MAGIAOVIEN Mã số GV DIENTHOAI Điện Thọai CHUCDANH Chức Danh

CAUHOIID Mã câu hỏi NOIDUNG Nội dung MUCDO Mức độ DETHIID Mã đề thi

THOIGIANLAMBAI Thời gian làm bài SOCH Số Câu Hỏi CAUTRALOIID Mã Câu Trả Lời NOIDUNG Nội Dung

STT Số thứ tự câu hỏi CAUTRALOIIDCHON Mã câu trả lời BAILAMID Mã bài làm DIEM Điểm Thi NGAYTHI Ngày Thi GROUPID Mã nhĩm TENGROUP Tên Nhĩm USERID Mã User

USERNAME Tên Đăng Nhập PASSWORDS Mật Khẩu

CAUTRALOIDUNG Câu Trả Lời Đúng

2. Mơ tả các Table :

SINHVIEN ( SINHVIENID , MASINHVIEN , LOPID , HO , TEN , PHAI , NGAYSINH , DIACHI , USERID)

FieldName Keys Data Type Size Allow Nulls SINHVIENID Khĩa Numeric 9

MASINHVIEN Varchar 15 Not null LOPID Numeric 9 Not null HO Varchar 50 Not null TEN Varchar 50 Not null PHAI Bit 1 Not null NGAYSINH Date/Time 8 Not null

DIACHI Varchar 50 Null USERID Numeric 9 Not null LOP ( LOPID , MALOP , TENLOP )

Field Name Keys Data Type Size Allow Nulls LOPID Khĩa Numeric 9

MALOP Varchar 15 Not null TENLOP Varchar 50 Not null MON (MONID, MAMON , TENMON , SDVHT )

Field Name Keys Data Type Size Allow Nulls MONID Khĩa Numeric 9

MAMON Varchar 15 Not null Ten MON Varchar 50 Not null SODVHT Integer 4 Not null KYTHI ( KYTHIID , MAKYTHI , TENKYTHI)

Field Name Keys Data Type Size Allow Nulls KYTHIID Khĩa Numeric 9

MAKYTHI Varchar 15 Not null TENKYTHI Varchar 50 Not null GIAOVIEN (MAGV ID, MAGIAOVIEN, HO , TEN , PHAI , DIA CHI ,

DIENTHOAI , CHỨC DANH , ACTIVE , UERID ) Field Name Keys Data Type Size Allow Nulls GIAOVIÊNID Khĩa Numeric 9

MAGIAOVIEN Varchar 15 Not null HO Varchar 50 Not null TEN Varchar 20 Not null PHAI Bit 1 Not null DIACHI Varchar 50 Not null DIENTHOAI Varchar 20 null CHUCDANH Varchar 50 Not null

ACTIVE Bit 1 Not null USERID Numeric 9 Not null

Field Name Keys Data Type Size Allow Nulls GIAOVIENID Khĩa Numeric 9 Not null

MONID Khĩa Numeric 9 Not null (adsbygoogle = window.adsbygoogle || []).push({});

CAUHOI ( CAUHOIID , MONID , GIAOVIENID, NOIDUNG , MUCDO , CAUTRALOIDUNGID )

Field Name Keys Data Type Size Allow Nulls CAUHOIID Khĩa Numeric 9

MONID Numeric 9 Not null GIAOVIENID Numeric 9 Not null NOIDUNG Varchar 200 Not null MUCDO Integer 4 Not null CAUTRALOIDUNGID Numeric 9 Null CAUTRALOI ( CAUTRALOIID , CAUHOIID , NOIDUNG )

Field Name Keys DataType Size Allow Nulls CAUTRALOIID Khĩa Numeric 9 Not null CAUHOIID Numeric 9 Not null NOIDUNG Varchar 60 Not null

DETHI ( DETHIID , MONID, GIAOVIENID , THOIGIANLAMBAI , SOCH ) Field Name Keys DataType Size Allow Nulls DETHIID Khĩa Numeric 9

MONID Numeric 9 Not null GIAOVIENID Numeric 9 Not null THOIGIANLAMBAI Integer 4 Not null SOCH Integer 4 Not null

CAUHOIDETHI ( CAUHOIID , DETHIID , NOIDUNG , MUCDO , CAUTRALOIDUNGID )

Field Name Keys Data Type Size Allow Nulls CAUHOIID Khĩa Numeric 9 Not null DETHIID Numeric 9 Not null NOIDUNG Varchar 200 Not null MUCDO Integer 4 Not null CAUTRALOIDUNGID Numeric 9 Null BODERATHI ( DETHIID ,KYTHIID )

Field Name Keys Data Type Size Allow Nulls DETHIID Khĩa Numeric 9 Not null KYTHIID Khĩa Numeric 9 Not null CAUTRALOIDETHI (CAUTRALOIID , CAUHOIID , NOIDUNG )

Field Name Keys Data Type Size Allow Nulls CAUTRALOIID Khĩa Numeric 9 Not null CAUHOIID Numeric 9 Not null NOIDUNG Varchar 60 Not null

CAUHOIBAILAM (BAILAMID , CAUHOIID, STT, CAUTRALOIIDCHON) Field Name Keys Data Type Size Allow Nulls

STT Numeric 9 Not null CAUHOIID Khĩ

a

Numeric 9 Not null CAUTRALOIIDCHON Numeric 9 Null BAILAMID Khĩ

a

Numeric 9 Not null

CAUTRALOIBAILAM (STT, CAUTRALOIID, BAILAMID)

CAUTRALOIID Khĩ a

Numeric 9 Not null BAILAMID Khĩ

a

Numeric 9 Not null

DSSVDUTHI ( MONID , SINHVIENID , KYTHIID , BAILAMID , DETHIID , DIEM , NGAYTHI )

Field Name Keys Data Type Size Allow Nulls MONID Khĩa Numeric 9 Not null SINHVIENID Khĩa Numeric 9 Not null KYTHIID Khĩa Numeric 9 Not null BAILAMID Numeric 9 Not null DETHIID Numeric 9 Not null DIEM Integer 4 Not null NGAYTHI Date / time 8 Not null GROUPS (GROUPID , TENGROUP)

Field Name Keys Data Type Size Allow Nulls GROUPID Khĩa Numeric 9

TENGROUP Varchar 50 Not null USERS ( USERID , USERNAME , PASSWORDS , GROUPID )

Field Name Keys Data Type Size Allow Nulls USERID Khĩa Numeric 9 Not null USERNAME Varchar 50 Not null PASSWORDS Varchar 50 Not null GROUPID Numeric 9 Not null GIAOVIENCOITHI (GIAOVIENID , KYTHIID , MONID)

Field Name Keys Data Type Size Allow Nulls GIAOVIENID Khĩa Numeric 9 Not null

KYTHIID Khĩa Numeric 9 Not null MONID Khĩa Numeric 9 Not null

3. Ràng buột tồn vẹn :

3.1 RBTV cĩ bối cảnh trên một lược đồ quan hệ a. RBTV về miền giá trị : (adsbygoogle = window.adsbygoogle || []).push({});

R1 :  m  MON m.DVHT > 0 Tầm ảnh hưởng :

R1 Thêm Xĩa Sửa

MON +  +

R2 :  sv  SINHVIEN

sv.NGAYSINH < GETDATE ( ) Tầm ảnh hưởng :

R2 Thêm Xĩa Sửa SINHVIEN +  + R3 :  dt  DETHI dt.THOIGIANLAMBAI >0 R4 :  dt  DETHI dt.SOCAUHOI >0 Tầm ảnh hưởng :

R3,4 Thêm Xĩa Sửa

DETHI +  +

R 5 :  d  DSSVDUTHI

d.DIEM BETWEEN 0 AND 10 R 6 :  d  DSSVDUTHI

d.NGAYTHI > = GETDATE ( ) Tầm ảnh hưởng :

DSSVDUTHI +  +

R 7 :  ch  CAUHOI

ch.MUCDO BETWEEN 1 AND 3

( MUCDO = 1 : Khĩ , 2: Trung Bình , 3: Dễ ) Tầm ảnh hưởng :

R7 Thêm Xĩa Sửa

CAUHOI +  +

R 8 :  chdt  CAUHOIDETHI

chdt.MUCDO BETWEEN 1 AND 3

( MUCDO = 1 : Khĩ , 2: Trung Bình , 3: Dễ ) Tầm ảnh hưởng :

R8 Thêm Xĩa Sửa CAUHOIDETHI +  + b. RBTV liên bộ (khĩa nội ) :

R9 :  sv1  sv2  SINHVIEN sv1.SINHVIENID  sv2.SINHVIENID R10 :  sv1  sv2  SINHVIEN sv1.MASINHVIEN  sv2.MASINHVIEN R11 :  sv1  sv2  SINHVIEN sv1.USERID  sv2.USERID R12 :  lop1  lop2  LOP

lop1.LOPID  lop2.LOPID R13 :  lop1  lop2  LOP

lop1.MALOP  lop2.MALOP R14 :  m1  m2  MON m1.MONID  m2.MONID R15 :  m1  m2  MON m1.MAMON  m2.MAMON R16 :  k1  k2  KYTHI k1.KYTHIID  m2.KYTHIID R17 :  k1  k2  KYTHI

k1.MAKYTHI  m2.MAKYTHI R18 :  gv1  gv2  GIAOVIEN gv1. GIAOVIENID  gv2. GIAOVIENID R19 :  gv1  gv2  GIAOVIEN gv1.MAGIAOVIEN  gv2.MAGIAOVIEN R20 :  gv1  gv2  GIAOVIEN gv1.USERID  gv2.USERID R21 :  gvd1  gvd2  GIAOVIENDAY gvd1.GIAOVIENID  gvd2.GIAOVIENID OR gvd1.MONID  gvd2.MONID R22 :  ch1  ch2  CAUHOI ch1.CAUHOIID  ch2.CAUHOIID R23 :  ctl1  ctl2  CAUTRALOI ctl1. CAUTRALOIID  ctl2.CAUTRALOIID R24 :  dt1  dt2  DETHI dt1. DETHIID  dt2.DETHIID R25 :  chdt1  chdt2  CAUHOIDETHI chdt1.CAUHOIID  ch2dt.CAUHOIID R26 :  bd1  bd2  BODERATHI bd1.DETHIID  bd2.DETHIID OR bd1.KYTHIID  bd2.KYTHIID R27 :  ctldt1  ctldt2  CAUTRALOIDETHI ctldt1. CAUTRALOIID  ctldt2.CAUTRALOIID R28 :  chbl1  chbl2  CAUHOIBAILAM chbd1.CAUHOIID  chbd2.CAUHOIID OR chbd1.BAILAMID  chbd2.BAILAMID R29 :  chbl1  chbl2  CAUHOIBAILAM chbd1.STT  chbd2.STT OR chbd1.BAILAMID  bd2.BAILAMID R30 :  ctlbl1  ctlbl2 CAUTRALOIBAILAM chtld1.CAUTRALOIID  chbd2. CAUTRALOIID OR ctlbd1.BAILAMID  ctlbd2.BAILAMID R31 :  dssvdt1  dssvdt2  DSSVDUTHI dssvdt1.MONID  dssvdt2. MONID OR dssvdt1.SINHVIENID  dssvdt2.SINHVIENID OR dssvdt1.KYTHIID  dssvdt2. KYTHIID R32 :  dssvdt1  dssvdt2  DSSVDUTHI

R33 :  gvct1  gvct2  GIAOVIENCOITHI gvct1.GIAOVIENID  gvct2. GIAOVIENID OR gvct1.KYTHIID  gvct2. KYTHIID OR gvct1.MONID  gvct2. MONID R34 :  u1  u2  USERS u1.USERID  u2.USERID R35 :  u1  u2  USERS u1.USERNAME  u2.USERNAME R36 :  g1  g2  GROUPS g1. GROUPID  g2. GROUPID

3.2 RBTV cĩ bối cảnh trên nhiều lược đồ quan hệ a. RBTV phụ thuộc tồn tại (khĩa ngoại ) :

R37 :  sv  SINHVIEN

 lop  LOP : sv.LOPID = lop.LOPID Tầm ảnh hưởng :

R37 Thêm Xĩa Sửa SINHVIEN +  + (adsbygoogle = window.adsbygoogle || []).push({});

LOP  + +

R38 :  sv  SINHVIEN

 u  USERS : sv.USERID = u.USERID Tầm ảnh hưởng :

R38 Thêm Xĩa Sửa SINHVIEN +  +

USERS  + +

R39 :  gv  GIAOVIEN

 u  USERS : gv.USERID = u.USERID Tầm ảnh hưởng :

R39 Thêm Xĩa Sửa GIAOVIEN +  +

USERS  + +

R40 :  gvd  GIAOVIENDAY

Tầm ảnh hưởng :

R40 Thêm Xĩa Sửa GIAOVIENDAY +  +

GIAOVIEN  + + R41 :  gvd  GIAOVIENDAY

 m  MON : gvd.MONID = m.MONID Tầm ảnh hưởng :

R41 Thêm Xĩa Sửa GIAOVIENDAY +  +

MON  + +

R42 :  ch  CAUHOI

 gv  GIAOVIEN : ch.GIAOVIENID = gv.GIAOVIENID Tầm ảnh hưởng :

R42 Thêm Xĩa Sửa

CAUHOI +  +

GIAOVIEN  + + R43 :  ch  CAUHOI

 m  MON : ch.MONID = m.MONID Tầm ảnh hưởng :

R43 Thêm Xĩa Sửa

CAUHOI +  +

MON  + +

R44 :  ctl  CAUTRALOI

 ch  CAUHOI : ctl.CAUHOIID = ch.CAUHOIID Tầm ảnh hưởng :

CAUTRALOI +  +

CAUHOI  + +

R45 :  dt  DETHI (adsbygoogle = window.adsbygoogle || []).push({});

 gv  GIAOVIEN : dt.GIAOVIENID = gv.GIAOVIENID Tầm ảnh hưởng :

R45 Thêm Xĩa Sửa

DETHI +  +

GIAOVIEN  + + R46 :  dt  DETHI

 m  MON : dt.MONID = m.MONID Tầm ảnh hưởng :

R46 Thêm Xĩa Sửa

DETHI +  +

MON  + +

R47 :  chdt  CAUHOIDETHI

 dt  DETHI : chdt.DETHIID = dt.DETHIID Tầm ảnh hưởng :

R47 Thêm Xĩa Sửa CAUHOIDETHI +  +

DETHI  + +

R48 :  bd  BODERATHI

 dt  DETHI : bd.DETHIID = dt.DETHIID Tầm ảnh hưởng :

R48 Thêm Xĩa Sửa BODERATHI +  +

DETHI  + +

R49 :  bd  BODERATHI

Tầm ảnh hưởng :

R49 Thêm Xĩa Sửa BODERATHI +  +

KYTHI  + +

R50 :  ctldt  CAUTRALOIDETHI

 chdt  CAUHOIDETHI : ctldt.CAUHOIID = chdt.CAUHOIID Tầm ảnh hưởng :

R50 Thêm Xĩa Sửa CAUTRALOIDETHI +  +

CAUHOIDETHI  + + R51 :  dssv  DSSVDUTHI

 m  MON : dssv.MONID = m.MONID Tầm ảnh hưởng :

R51 Thêm Xĩa Sửa DSSVDUTHI +  +

MON  + +

R52 :  dssv  DSSVDUTHI

 sv  SINHVIEN : dssv.SINHVIENID = sv.SINHVIENID Tầm ảnh hưởng :

R52 Thêm Xĩa Sửa DSSVDUTHI +  + (adsbygoogle = window.adsbygoogle || []).push({});

SINHVIEN  + + R53 :  dssv  DSSVDUTHI

 kt  KYTHI : dssv.KYTHIID = kt.KYTHIID Tầm ảnh hưởng :

R53 Thêm Xĩa Sửa DSSVDUTHI +  +

KYTHI  + +

R54 :  dssv  DSSVDUTHI

IF dssv.DETHIID  NULL THEN

 dt  DETHI : dssv.DETHIID = dt.DETHIID END IF

Tầm ảnh hưởng :

R54 Thêm Xĩa Sửa DSSVDUTHI +  +

DETHIID  + +

R55 :  gvct  GIAOVIENCOITHI

 kt  KYTHI : gvct.KYTHIID = kt.KYTHIID Tầm ảnh hưởng :

R55 Thêm Xĩa Sửa GIAOVIENCOITHI +  +

KYTHI  + +

R56 :  gvct  GIAOVIENCOITHI

 gv  GIAOVIEN : gvct.GIAOVIENID = gv.GIAOVIENID Tầm ảnh hưởng :

R56 Thêm Xĩa Sửa GIAOVIENCOITHI +  +

GIAOVIEN  + +

R65 :  gvct  GIAOVIENCOITHI

 m  MON : gvct.MONID = m.MONID Tầm ảnh hưởng :

R65 Thêm Xĩa Sửa GIAOVIENCOITHI +  +

R57 :  chbl  CAUHOIBAILAM

 chdt  CAUHOIDETHI : chbl.CAUHOIID = chdt.CAUHOIID

Tầm ảnh hưởng :

R57 Thêm Xĩa Sửa CAUHOIBAILAM +  +

CAUHOIDETHI  + + R58 :  chbl  CAUHOIBAILAM

 dssv  DSSVDUTHI : chbl.BAILAMID = dssv.BAILAMID Tầm ảnh hưởng :

R58 Thêm Xĩa Sửa CAUHOIBAILAM +  +

DSSVDUTHI  + + R59 :  ctlbl  CAUTRALOIBAILAM

 ctldtCAUTRALOIDETHI :ctlbl.CAUTRALOIID = ctldt.CAUTRALOIID Tầm ảnh hưởng : (adsbygoogle = window.adsbygoogle || []).push({});

R59 Thêm Xĩa Sửa CAUHOIBAILAM +  + CAUTRALOIDETHI  + + R60 :  ctlbl  CAUTRALOIBAILAM

 dssv  DSSVDUTHI : ctlbl.BAILAMID = dssv.BAILAMID Tầm ảnh hưởng :

R60 Thêm Xĩa Sửa CAUTRALOIBAILAM +  +

DSSVDUTHI  + +

R61 :  u  USERS

 g  GROUPS : u.GROUPID = g.GROUPID

R61 Thêm Xĩa Sửa

USERS +  +

GROUPS  + +

b. RBTV liên thuộc tính liên quan hệ : R62 :  ch  CAUHOI

 ctl  CAUTRALOI :

ch.CAUTRALOIDUNGID = ctl.CAUTRALOIID AND ctl.CAUHOIID = ch.CAUHOIID

R63 :  chdt  CAUHOIDETHI

 ctldt  CAUTRALOIDETHI :

chdt.CAUTRALOIDUNGID = ctldt.CAUTRALOIID AND ctldt.CAUHOIID = chdt.CAUHOIID

R64 :  chbl  CAUHOIBAILAM

IF chbl.CAUTRALOIIDCHON  NULL THEN  ctldt  CAUTRALOIDETHI :

chbl.CAUTRALOIIDCHON = ctldt.CAUTRALOIID AND ctldt.CAUHOIID = chbl.CAUHOIID END IF

III. CAØI ĐẶT CHƯƠNG TRÌNH

 Các giao diện chính :

2. Giao diện Quản Lý Mơn :

4. Giao diện Quản Lý DSSV Dự Thi

6. Giao diện Tạo Đề Thi :

8. Giao diện MainMenu Sinh Viên :

PHẦN III. TỔNG KẾT I. NHẬN XÉT CHUNG :

1. Đánh giá kết quả của chương trình

Qua quá trình nghiên cứu , học hỏi và xây dựng chương trình Thi Trắc Nghiệm , chương trình đã đạt được một số kết quả là :

+ Hổ trợ Giáo Viên soạn Câu Hỏi và tạo Đề Thi theo yêu cầu .

+ Hổ trợ Sinh Viên thi trên máy Client được dễ dàng hơn và được xem lịch thi , xem kết quả thi .

+ Trong quá trình Sinh Viên thi trên máy , Giám Thị Coi Thi cĩ thể can thiệp trực tiếp vào bài làm của Sinh Viên ( cấm thi , hủy bài thi , tạm ngưng thời gian thi của Sinh viên , cho Sinh Viên tiếp tục thời gian thi của mình ) nếu Sinh Viên hoặc bài làm của Sinh Viên đĩ cĩ vấn đề . (adsbygoogle = window.adsbygoogle || []).push({});

+ Giáo Vụ được hổ trợ nhiều tác vụ về nghiệp vụ như quản lý Giáo Viên , Sinh Viên , Mơn Học , Lớp và tổ chức một Kỳ Thi bao gồm các cơng việc : lên danh sách Sinh Viên Dự Thi , quy định các Đề Ra Thi , lên danh sách Giáo Viên Coi Thi .

+ Và với chương trình Thi Trắc Nghiệm này Giáo Viên khơng cịn phải chấm từng bài thi của SV bằng tay nữa , mà hệ thống sẽ tự chấm điểm và in bảng điểm ra theo yêu cầu .

+ Để phân biệt được người sử dụng hệ thống , người sử dụng đăng nhập vào hệ thống bằng tên đăng nhập và mật khẩu riêng của mình , và để bảo mật các mật khẩu của người sử dụng đựơc an tồn , hệ thống sẽ mã hĩa mật khẩu trước khi lưu vào cơ sở dữ liệu.

2. Hạn chế của chương trình :

Trong thời gian ngắn , với tất cả sự nổ lực của chúng em để hồn thành đề tài này .Tuy đạt được những kết quả cụ thể nhưng vẫn khơng tránh khỏi những thiếu sĩt , hạn chế , và cịn tồn tại vấn đề chưa giải quyết tốt cần được gĩp ý bổ sung thêm .

Ngồi ra do kiến thức và kinh nghiệm hạn hẹp nên đề tài muốn phát triển thêm thì cần cĩ thời gian để tiếp tục nghiên cứu , tiếp thu ý kiến đĩng gĩp và hồn thiện về mặt kỹ thuật để chương trình cĩ thể trở thành một ứng dụng tốt và đạt hiệu quả cao.

II.HƯỚNG PHÁT TRIỂN CHƯƠNG TRÌNH :

Với đề tài này chúng ta cĩ thể phát triển thêm :

+ Mở rộng phạm vi soạn thảo đề thi của Giáo Viên bằng một trình soạn thảo nào đĩ và lưu vào file , chương trình sẽ tự động kết nối file đĩ vào cơ sở dữ

+ Câu Hỏi bổ sung thêm hình ảnh minh họa . + In đề thi và cho Sinh Viên thi trên giấy .

+ Thay đổi quyền sử dụng hệ thống một cách linh động

III. KẾT LUẬN

Sự phát triển mạnh mẻ của Cơng Nghệ Thơng Tin cùng với sự địi hỏi ngày càng cao sự tự động hĩa , tin học hĩa của con người vào tất cả các lỉnh vực khiến cho xã hội luơn đổi mới . Qua quá trình tìm hiểu , nghiên cứu và áp dụng những cơng nghệ mới của lĩnh vực Tin Học trong cơng cuộc cải cách của Bộ Giáo Dục , chúng em xây dựng đề tài này với mong muốn được gĩp một phần cơng sức vào cơng cuộc đổi mới này .

Dựa trên những mặt đạt được và chưa đạt được của đề tài , chúng em hy vọng sẽ nhận được nhiều ý kiến đĩng gĩp , nhận xét để cĩ điều kiện phát triển ứng dụng này lên cao hơn nữa .

TAØI LIỆU THAM KHẢO

[1] TEACH YOURSELF OBJECT- ORIENTED PROGRAMMING WITH VISUAL BASIC.NET IN 21 DAYS

Tác giả : Richard J.Simon NXB : Sam

[2] KỸ NĂNG LẬP TRÌNH VISUAL BASIC.NET Tác giả : Nguyễn Tiến Dũng

NXB : Nhà Xuất Bản Thống Kê

[3] LẬP TRÌNH CHUYÊN SÂU VISUAL BASIC.NET Tác giả : Phương Lan

NXB : Nhà Xuất Bản Lao Động - Xã Hội [4] ADO.NET LẬP TRÌNH VAØ ỨNG DỤNG

Tác giả : Nguyễn Tiến _Nguyễn Vũ Thịnh

NXB : Nhà Xuất Bản Thống Kê Lao Động – Xã Hội [5] SQL SERVER 2000 DATABASE DESIGN

Tác giả : Louis Davidson NXB : Wrox

[6] MICROSOFT SQL SERVER 2000

Tác giả : Nguyễn Ngọc Minh_Hồng Đức Hải NXB : Nhà Xuất Bản Lao Động – Xã Hội

[7] VISUAL MODELING WITH RATIONAL ROSE 2000 AND UML Tác giả : Terry Quatrani

NXB : Grady Booch

[8] PHÂN TÍCH VAØ THIẾT KẾ HƯỚNG ĐỐI TƯỢNG BẰNG UML Tác giả : Dương Anh Đức

(adsbygoogle = window.adsbygoogle || []).push({});

Một phần của tài liệu luận văn công nghệ thông tin xây dựng chương trình thi trắc nghiệm bằng visual basic.net (Trang 88 - 112)