Không dừng lại ở phạm vi cuộc thi với số lượng có hạn các đội tham gia, một số trường Đại Học trên thế giới đã xây dựng một hệ thống bàitập trên mạng để sinh viên trường có thể luyện tập
Trang 1Lời mở đầu
Ngày nay,cùng với những bước đột phá mới của thời đại, đáp ứng cho những như cầuphát triển chung của thế giới đặc biệt là đối với Việt Nam Những ứng dụng mới của côngnghệ thông tin vào cuộc sống đã phần nào làm giảm đi những cực khổ trong công việc củacon người.Để tạo nên những sàn phẩm điện tử tốt thì đòi hỏi những lập trình viên phải luônnâng cao kỹ năng lập trình của mình Bên cạnh việc tự mình đi tìm cho mình những kiến thứcmới để bổ xung vào lượng kiến thức mình đang có thì việc học hỏi kinh nghiệm hay kiếnthức,cách suy nghĩ của những người có niềm say mê tin học khác, hay luyện tập với nguồnbài tập phong phú là một cách để phát huy hiệu quả nhất tính năng động và sáng tạo của mộtlập trình viên, của một người say mê tin học
Qua những cuộc thi lập trình sinh viên toàn cầu, kể từ khi bắt đầu đã trở thành một sânchơi bổ ích cho các sinh viên ngành tin học Ở đó các sinh viên có thể thư thách , cùng nhau
tư duy giải những bài toán kỹ năng lập trình Không dừng lại ở phạm vi cuộc thi với số lượng
có hạn các đội tham gia, một số trường Đại Học trên thế giới đã xây dựng một hệ thống bàitập trên mạng để sinh viên trường có thể luyện tập , thi đấu với nhau Rồi từ đó, nhờ sự pháttriển của Internet, việc giao lưu trở nên cần thiết …các hệ thống này trở thành một website đểcác sinh viên yêu thích tin học có thể truy cập và cùng luyện tập, thảo luận, thi đấu với nhauqua các cuộc thi của website tổ chức…Nhưng riêng đối với sinh viên Việt Nam thì chưa cómột hệ thống luyện tập tin học trực tuyến cho chính mình
Qua môn học Phân Tích Thiết Kế Hệ Thống Thông Tin của thầy Nguyễn Gia TuấnAnh , chúng em đã có một kiến thức nền tảng phân tích thiết kế một hệ thống.Trước như cầuthực tiễn trên đồng thời muốn tìm hiểu sâu sắc hơn về môn học này, chúng em đã thực hiện
đồ án “ Hệ thống luyện tập lập trình trực truyến “ những mong sẽ tạo nên một hệ thống luyệntập trực tuyến cho sinh viên Việt Nam
Để hoàn thành đồ án này , chúng em xin chân thành cảm ơn thầy Nguyễn Gia TuấnAnh , thầy đã truyền đạt cho chúng em các kiến thức cơ bản về Hệ Thống Thông Tin, cáchthiết kế một hệ thống, thầy đã hỗ trợ rất nhiêu cho chúng em Đồng thời nhóm xin cảm ơnkhoa Công Nghệ Thông Tin trường Đại Học Khoa Học Tự NHiên đã tạo điều kiện cho chúng
em học hỏi , tìm hiểu kỹ hơn về hệ thống này Hy vọng đồ án này sẽ được một số nhómnghiên cứu tiếp thu và hoàn thiện nó.Và trong giới hạn thời gian học môn chúng em tìm hiều
về vấn dề này sẽ có những thiếu sót trong đồ án.Nhóm chúng em rất mong nhận được sự đónggóp ý kiến để dố án được hoàn thành tốt hơn.Chúng em chân thành cảm ơn
Thành phố HCM, ngày 24 tháng 5 năm 2009Nhóm làm đồ án
Trần Thượng Khanh – Nguyễn Thị Hoài Vân
Trang 2Mục Lục
I.Khảo sát hệ thống và phân tích hiện trạng hệ thống 3
1 Khảo sát hệ thống 3
2 Phân tích hiện trạng hệ thống 5
II Phân tích yêu cầu 5
1 Yêu cầu chức năng 5
2 Yêu cầu phi chức năng 5
III Phân tích hệ thống 6
1 Mô hình thực thể ERD 6
a Các thực thể ERD 6
b Mô hình ERD 8
2 Chuyển mô hình ERD sang mô hình quan hệ 8
3 Mô tả chi tiết cho các quan hệ 9
4 Mô tả bảng tổng kết 18
a Tổng kết quan hệ 18
b Tổng kết thuộc tính 19
IV Thiết kế giao diện 21
1 Sơ đồ các trang 21
2 Thiết kế giao diện 24
3 Mô tả form 25
V Thiết kế các ô xử ký 40
VI Đánh giá ưu khuyết điểm 47
VII Phân công công việc 48
Trang 3I Khảo sát và phân tích hiện trạng hệ thống
1 Khảo sát :
Tình hình trên Internet hiện nay , các website lập trình trực tuyến hiện thu hútrất lớn một lượng sinh viên , người dùng tham gia Các website này có số lượng trên
1000 thành viên
Chúng ta có thể liệt kê một số hệ thống như vậy :
http://acm.uva.es : trang luyện tập của Đại Học Valladodid – Tây Ban Nha http://acm.timus.ru : trang luyện tập của Đại Học Liên Bang Nga
http://spoj.pl : trang luyện tập của Hội Đồng Tin Học Ba Lan
Trang timus
Tình hình tại Việt Nam ,trước 2002 các sinh viên Việt Nam đa phần giải bàitrên các website hệ thống nước ngoài như đã nói ở trên Hoặc một số sinh viên có tâmhuyết đã thành lập một website : Vietnamese Online Programming Contest tại địa chỉwebsite của thành viên mg9h , một thành viên của diễn đàn www.ddth.com :
http://www.mg9h.net/contest/index.php?more=amazing& Nhưng website này không
có chức năng chấm tự động như hệ thống nước ngoài nên việc tổ chức thi thường ítdiễn ra, dẫn đến việc luyện tập của các thành viên chỉ là làm và tự chấm với nhau
Năm 2003 : Ioicamp có địa chỉ là www.ioicamp.net của Khối Chuyên ToánTin Đại Học Khoa Học Tự Nhiên ĐHQG Hà Nội tạo ra một hệ thống luyện tập trênmạng do chính người Việt Nam tạo ra Và đây là hệ thống đầu tiên được ứng dụng chosinh viên học sinh Việt Nam trong việc luyện tập và thi tin học trực tuyến Hệ thốngnày có thể cho phép người dùng đăng bài, gửi bài và được chấm trực tiếp bằng máy,
do đó hệ thống này có thể được xem là tương đông với các hệ thống nước ngoài Hệthống được đặt tại khối chuyên ĐH Khoa Học Tự Nhiên ĐHQG Hà Nội, ký túc xá
Mễ Trì Trong quá trình hoạt động hệ thống Ioicamp đã là nơi giao lưu, luyện tập của
Trang 4các sinh viên học sinh chuyên tin Việt Nam trên Internet Hệ thống đã nhiều lần tổchức thi trực tuyến thành công với nhiều kết quả khả quan tạo ra một sân chơi hữu íchcho các sinh viên học sinh chuyên tin Tuy nhiên năm 2007, sau một thời gian thửnghiệm, hệ thống đã được các thầy Đại Học Khoa Tự Nhiên Hà Nội nghiệm thu thành
đề tài nghiên cứu khoa học dẫn đến hệ thống không còn tồn tạii chức năng chấm bàitrực tuyến và tù đó hệ thống không còn hoạt động trên Internet nữa
Trang chủ Ioicamp
Năm 2007 : Sau khi hệ thống Ioicamp không còn hoạt động , một số thành viên
kỳ cựu của website đã họp lại và tạo nên hệ thống VNSPOJ đặt tại địa chỉhttp://vn.spoj.pl Hệ thống này đã thực sự thay thế cho hệ thống Ioicamp Tuy nhiên
hệ thống VNSPOJ chỉ là một hệ thống con được phát triển dựa trên hệ thống SPOJ của
Ba Lan Vì vậy, dữ liệu, chương trình chấm trực tuyến vẫn đặt tại nước ngoài và hoàntoàn phụ thuộc vào website SPOJ
Trang 5Trang chủ VNSPOJ
Ngoài ra , chương trình PC^2 đã được một số trường Đại Học trên thế giới đưa
ra cho mọi người tải về sử dụng
Chính vì vậy, khi bắt đầu tham gia vào các kỳ thi lập trình mang tầm vóc thếgiới, trường Đại Học Khoa Học Tự Nhiên – ĐHQG TPHCM muốn tạo ra một hệthống luyện tập trực tuyến như vậy, để sinh viên có thể luyện tập, thi đấu ,giao lưu họchỏi với nhau
• Tên miền : www.acm.hcmuns.edu.vn đã được đặt
- Bên cạnh để luôn có bài cho thành viên luyện tập thì các thành viên như tácgiả có thể cung cấp bài cho hệ thống,các bài được cung cấp đó sẽ được quản trị đemkiểm tra lại về tính đúng đắng của bài toán và kết quả sau đó mới được đưa vào ứngdụng
II/ Phân tích yêu cầu
1.Yêu cầu chức năng
• Quản lý danh sách các bài tập( thêm, sửa, xóa các bài tập)
• Quản lý thành viên trong hệ thống
Trang 6• Quản lý các cuộc thi do hệ thống tổ chức( quản lý các thànhviên tham gia , tìm người đạt giải)
• Cho thành viên tìm kiếm các dạng bài theo ý muốn
• Tổ chức lưu trữ bài tập thành từng danh sách
2.Yêu cầu phi chức năng
Hệ thống có khả năng bảo mật và phân quyền
• Người dùng: đăng kí,được cấp quyền,phân quyền cho mỗinhóm người được truy cập và sử dụng những chứa năng nhấtđịnh của hệ thống
• Đổi mật khẩu: Người dùng có thể đổi mật khẩu để truy cậpvào trang dữ liệu và sử dụng thuộc phạm quy của ngườidùng đó được cho phép
Cách phân quyền cho người dùng rất cần thiết khi truy cập, để tiện cho việc kiểmsoát và theo dõi người dung và chương trình của người quản trị,đồng thời trách điviệc mất đi hay lộ dữ liệu trong cuộc thi
III/ Phân tích hệ thống
1 Mô hình thực thể ERD
a Các thực thể
1/ Thực thể : THANHVIENMiêu tả thành viên của hệ thống Các thuộc tính :
- Mã thành viên (MaTV) : đây là thuộc tính khóa, dùng để phân biệtvới các thành viên khác
- Tên đăng nhập ( TenDN )
- Mật khẩu (Matkhau )
- Tên thành viên ( TenTV)
- Địa chỉ thành viên (DiachiTV)
- Trường ( Truong)
- Emai thành viên (EmailTV)
- Năm sinh (namsinh)2/ Thực thể : BAITAPMiêu tả bài dùng cho thành viên luyện tập trực tuyến Các thuộc tính :
- Mã số bài tập (MasoBT): đây là thuộc tính khóa, phân biệt bài tậpnày với bài tập khác
- Mã bài tập (MaBT)
- Tên bài tập (TenBT)
Trang 7- Địa chỉ tải (Diachitai ): đây là đường dẫn đến địa chỉ chứa tập tin củabài dùng cho thành viên muốn lưu trữ
- Nội dung (Noidung ): nội dung của bài tập 3/ Thực thể : DANHSACH
Miêu tả danh sách 100 bài tập ra định kỳ Các thuộc tính :
- Mã danh sách (MaDS) : Đây là thuộc tính khóa,phân biệt các danhsách(100 bài) với nhau
- Tên danh sách (TenDS)4/ Thực thể DANGBAIMiêu tả các dạng bài tập như : Hình học , đồ thị , quy hoạch động Các thuộc tính :
- Mã dạng bài (Madang) : đây là thuộc tính khóa
- Tên dạng bài (Tendang)5/ Thực thể : TACGIAMiêu tả tác giả của các bài tập và bài thi Các thuộc tính :
- Mã cuộc thi ( MaCT) : đây là thuộc tính khóa
- Tên cuộc thi ( TenCT)
- Thời gian bắt đầu ( ThoigianBD)
- Thời gian kết thúc ( ThoigianKT)7/ Thực thể BAITHI
Miêu tả ngân hàng bài thi được dùng cho các cuộc thi Các thuộc tính :
- Mã bài thi (MaBThi ): đây là thuộc tính khóa,để phân biệt các bài thivới nhau
- Tên bài thi (TenBThi )
- Nội dung bài thi (NoidungThi)8/ Thực thể : QUANTRI
Miêu tả quản trị viên của hệ thống Các thuộc tính :
Trang 8- Mã quản trị (MaQT) : Đây là khóa chính
- Mật khẩu quản trị ( MatkhauQT)
- Tên quản trị ( TenQT)9/ Thực thể : TINTUCMiêu tả tin tức của hệ thốngCác thuộc tính
- Mã tin tức ( MaTT)
- Nội dung tin tức ( NoidungTT)
- Ngày đăng tin tức ( Ngaydang )
- Nguồn đăng tin tức ( Nguondang )
b.Mô hình ERD :
Trang 92 Chuyển mô hình ERD sang mô hình quan hệ
THANHVIEN(MaTV, TenDN, Matkhau, TenTV, DiachiTV, Truong EmailTV,Namsinh )
BAITAP( MasoBT, MaDS, Madang, MaBT, TenBT, Noidung, Diachitai, Gioihanthoigian, Gioihanbonho, Dulieunhap, Dulieura )
BANGGIAIBAITAP ( MasoBT, MaTV, Lan , Ketqua )
CUOCTHI ( MaCT , MaDT ,TenCT , ThoigianBD , ThoigianKT)
BANGTHAMGIATHI ( MaTV , MaCT )
QUANTRI ( MaQT, MatkhauQT,TenQT )
QUANHEHIEUCHINH ( MaQT ,MaBthi )
TACGIA ( MaTG , TenTG , EmailTG , Sobai)
QUANHERADE ( MasoBT , MaTG )
DANGBAI ( Madang , Tendang )
DANHSACH ( MaDS, TenDS)BAITHI ( MaBthi , MaCT, TenBthi,
NoidungBT, Ketquathi, Ghthoigian,Ghbonho,DLnhap, DLra )
QUANHERABAITHI (MaTG ,MaBthi )
TINTUC ( MaTT, NoidungTT, Ngaydang, Nguondang )
QUANHEHIEUCHINHTT( MaQT, MaTT )
3 Mô tả chi tiết các quan hệ
ngoại
2 TenDN Tên đăng
nhập của thành viên
3 Matkhau Mật khẩu của
thành viên
Trang 104 TenTV Tên thật của
ngoại
Madang Mã số của
dạng bài tập
ngoại
tập và chương trình
Trang 115 Noidung Nội dung
6 Gioihanthoigia
n
Giới hạn thời gian chạy của bài tập
7 Gioihanbonho Giới hạn
bộ nhớ củabài tập
8 Dulieunhap Dữ liệu
đưa vào của bài tập
3.3 Quan hệ Bảng giải bài tập
BANGGIAIBAITAP ( MasoBT, MaTV, Lan , Ketqua )
Tên quan hệ : BANGGIAIBAITAPSTT Tên thuộc
tính Diển giải Kiểu DL Chiều dài LoạiDL Ràng buộc
4 Ketqua Kết quả lần
giải bài tập này
5 Ngonngu Ngôn ngữ
của bài
Trang 126 Bonho Bộ nhớ của
7 Thoigian Kết quả thời
gian của bài
3.4 Quan hệ Bảng tham gia thi :
BANGTHAMGIATHI ( MaTV , MaCT )
Tên quan hệ : BANGTHAMGIATHISTT Tên thuộc
3.5 Quan hệ Danh sách :
DANHSACH ( MaDS, TenDS)
Tên quan hệ : DANHSACHSTT Tên thuộc
tính Diển giải Kiểu DL Chiềudài Loại DL Ràngbuộc
1 MaDS Mã số của
Trang 13mà bài tập thuộc
2 TênDS Tên của
danh sách bài tập
3.6 Quan hệ Dang Bài :
DANGBAI ( Madang , Tendang )
Tên quan hệ :DANGBAISTT Tên thuộc
3.7 Quan hệ Tác Giả :
TACGIA ( MaTG , TenTG , EmailTG , Sobai)
Tên quan hệ : TACGIASTT Tên thuộc
Trang 143 EmailTG Địa chỉ
email của tác giả
QUANHERADE ( MasoBT , MaTG )
Tên quan hệ : QUANHERADESTT Tên thuộc
tính Diển giải Kiểu DL Chiềudài Loại DL Ràngbuộc
QUANHERABAITHI (MaTG ,MaBthi )
Tên quan hệ : QUANHERABAITHISTT Tên thuộc
tính Diển giải Kiểu DL Chiềudài Loại DL Ràngbuộc
Trang 15• Khối lượng :
Số dòng tối thiểu :300
Số dòng tối đa : 10000Kích thước tối thiểu : 300 x 18 = 5.4 KBKích thước tối đa : 10000 x 18 = 180 KB
3.10 Quan hệ Cuộc Thi:
CUOCTHI ( MaCT , MaDT ,TenCT , ThoigianBD , ThoigianKT)
Tên quan hệ : CUOCTHISTT Tên thuộc
3 TenCT Tên của
cuộc thi
4 ThoigianBD Thời gian
bắt đầu của cuộc thi
5 ThoigianKT Thời gian
kết thúc của cuộc thi
3.11 Quan hệ Bài Thi :
BAITHI( MaBthi, MaCT, TenBthi, NoidungBT, Ketquathi, Gioihanthoigian,
Gioihanbonho, Dulieunhap, Dulieura )
Tên quan hệ : BAITHISTT Tên thuộc
tính Diển giải Kiểu DL Chiềudài Loại DL Ràngbuộc
Trang 16bài thi chínhMaCT Mã số của
2 TenBthi Tên của
3 NoidungBT Nội dung
của bài thi
4 Ketquathi Kết quả
của cuộc thi
5 Ghthoigian Giới hạn
của thời gian chạy của bài thi
6 Ghbonho Giới hạn
bộ nhớ củabài thi
7 DLnhap Dữ liệu
đưa vào của bài thi
3.12 Quan hệ Quản Trị
QUANTRI ( MaQT, MatkhauQT, TenQT )
Tên quan hệ : QUANTRISTT Tên thuộc
tính Diểngiải Kiểu DL Chiềudài Loại DL Ràngbuộc
của Quản trị
Trang 173.13.Quan hệ Hiệu Chỉnh Bài Tập
QUAHEHIEUCHINH (MaQT,MasoBT ) Tên quan hệ : QUANHEHIEUCHINHBT
STT Tên thuộc
tính Diển giải Kiểu DL Chiềudài Loại DL Ràngbuộc
của QuảnTri
chính
2 MasoBT Mã số
của Bài Tập
3.14.Quan hệ Hiệu Chỉnh Tin Tức
QUAHEHIEUCHINHTT (MaQT , MaTT) Tên quan hệ : QUANHEHIEUCHINH
Trang 183.15 Quan hệ Tin Tức
TINTUC (MaTT , NoidungTT,Ngaydang, Nguondang )
Ten quan hệ : TINTUCSTT Tên thuộc
4 Nguondang Nguồn đăng
của một tin tức
Trang 19BANGGIAIBAITAPBANGTHAMGIATHI
Trang 2011 Diachitai Địa chỉ tải bài
12 Noidung Nội dung của bài
13 Gioihanthoigian Giới hạn thời
gian chạy của bài tập
BAITAP
14 Gioihanbonho Giới hạn bộ nhớ
15 Dulieunhap Dữ liệu nhập vào
16 Dulieura Dữ liệu được trả
ra của bài tập
BAITAP
17 Madang Mã số của dạng
bài tập DANGBAIBAITAP
QUANHERADEQUANHERABAITHI
21 Sobai Số bài đăng của
tác giả
TACGIA
22 EmailTG Địa chỉ email của
thi BANGTHAMGIATHICUOCTHI
BAITAP
25 ThoigianBT Thời gian bắt
đầuủa cuộc thi
CUOCTHI
26 ThoigianKT Thờgian kết
thúcủa cuộc thi
CUOCTHI
Trang 2127 MaDT Mã số của đề thi DETHI
CUOCTHIBAITHI
QUANHECODTQUANHEHIEUCHINH
30 NoidungBthi Nội dung của bài
31 Ghthoigian Giới hạn thời
gian chạy của bài tập
BAITHI
32 Ghbonho Giới hạn bộ nhớ
33 DLnhap Dữ liệu nhập vào
34 DLra Dữ liệu được trả
ra của bài tập BAITHI
của quản trị
QUANTRIQUANHEHIEUCHINHQUANHEHIEUCHINHTT
37 MatkhauQT Mật khẩu của
43 Ketqua Kết quả bài làm BANGGIAIBAITAP
45 Thoigian Kết quả thời gian
Trang 2246 Thoigianlam Thờigian làm bài BANGGIAIBAITAP
IV/ Thiết kế giao diện :
1 Sơ đồ các trang
1.1 Sơ đồ trang của Quản Trị
Trang 231.2 Sơ đồ trang của Khách
Trang 241.3 Sơ đồ trang wcủa Thành viên
2.Thiết Kế Giao Diện
Trang 253 Mô Tả Form
3.1 Trang Đăng Ký Thành Viên
Trang 26Tên đối
tượng
Kiểu đốitượng
Ràngbuộc
Dữ liệu Mục
đích
Hàm liênquan
Giá trịdefaultTên
Khẩu
bàn phím
Gõ mậtkhẩuXác
Nhập từbàn phím Gõ lại từmật
Trang 282.2 Trang Bài Tập
Tên đối
tượng
Kiểu đốitượng
Ràngbuộc
Dữ liệu Mục đích Hàm
liênquan
Giá trịdefault
Trang 292.3 Trang các bài tập của một Danh Sách
hệ thống
chuột
Quay lại thệ thống bài tập
Trang 30Mở trang theo tên
CHẤM
BÀI
bằng chuột
Chấm bài
bằng chuột
Trở lại các bài tập
Trang 312.5 Trang Cuộc Thi
Tên đối
tượng
Kiểu đốitượng
Ràngbuộc
Dữ liệu Mục đích Hàm liên
quan
Giá trịdefault
Trang 322.6 Trang Một Cuộc Thi
Tên
đối
tượng
Kiểu đốitượng Ràngbuộc Dữ liệu Mục đích Hàm liênquan defaultGiá trị
Quay
lại Linkbutton Chọn từchuột Trở lạitrang
CUỘCTHICác