DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
LỜI MỞ ĐẦU
Hiện nay,Thi cử không còn quá xa lạ gì với các em học sinh,sinh viên.
Chương trình đào tạo thay dổi theo từng thời kỳ,quy chế thi cử cũng theo đó mà
thay đổi. Các dạng bài tập luyện thi trắc nghiệm là cách đánh giá trực quan nhất về
khả năng của từng người. Các đề Toán,Lý,Hóa…các đề luyện thi đại học đa số đều
là trắc nghiệm. Để giúp các e học sinh có 1 phương pháp học tập hiểu quả các môn
cơ bản,giúp các em luyện thi tốt hơn,học tập tốt hơn thì đồ án lần này, nhóm em
thiết kế 1 website chuyên để các bạn học sinh có thể ôn luyện thi trắc nghiệm,rèn
luyện tư duy nhanh để đạt kết quả tốt nhất. Do điều kiện làm việc chưa được
tốt,kiến thức có hạn nên nhóm em làm với quy mô nhỏ,vẫn còn thiếu sót, nhóm em
mong thầy góp ý ,chỉ dạy để nhóm em làm tốt hơn nữa!
Nhóm em xin chân thành cảm ơn!
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
Chương I. Giới Thiệu Chung
Nhu cầu học tập của sinh viên,hoc sinh ngày càng tăng vào mua thi cử. Lượng truy
cập vào các website luyện thi vào giờ cao điểm rất đông đúc. Số lượng cũng như
chất lượng của các website hiện nay không thế đáp ứng nhu cầu của số lượng đông
các bạn học sinh.Vậy để đáp ứng nhu cầu đó,bài toán đặt ra là làm thế nào để có 1
website luyện thi trắc nghiệm với số lượng lớn người dung truy cập cùng lúc. Qua
tìm hiểu thực tế . Bài toán bọn em đặt ra cần giải quyết các vấn đề sau
- Số lượng câu hỏi,kiến thức rộng để các bạn học sinh thoải mái khi chọn đề
- Có kèm lời giải,hướng dẫn sau mỗi câu trả lời để giúp học sinh có kiến thức
vững hơn
- Xử lý bài toán sao cho có thể truy cập số lượng lớn người dùng
- Admin có thể xử lý các câu hỏi sao cho phù hợp với người dùng
- Cho phép chọn ngẫu nhiên khi thực hiện đưa ra các câu hỏi trong bài toán
Chương II. Phát Biểu Bài Toán
a. Mục đích và yêu cầu
Website thi trắc nghiệm nhằm mục đích đáp ứng nhu cầu luyện thi của các bạn
học sinh mùa thi cử. Đảm bảo chất lượng ,đảm bảo kiến thức tốt khi làm bài cho
các bạn học sinh. Xây dựng 1 website thi trắc nghiệm vừa giúp các bạn học sinh
phải tìm tòi sách vở, vừa giúp các bạn tốn ít chi phí khi mua tài liệu ôn, nhưng vẫn
đảm bảo đủ lượng kiến thức trong sách vở, rút ngắn thời gian tìm tài liệu. Kiến
thức đủ rộng, các câu hỏi sát với đề thi qua các năm, giúp các bạn hoàn thành tốt
khi bước vào kỳ thi sát hạch
b. Phạm vi Bài toán
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
Hiện tại, Website nhóm em làm vẫn còn nhiều thiếu sót,lượng câu hỏi vẫn còn hạn
chế,nên Website chỉ đang phục vụ các bạn học sinh cấp 3 ôn luyện thi cuối cấp,thi
đại học.
Website sẽ tiếp tục phát triển để có thể có thêm nhiều người dùng trong mọi độ tuổi
có thể luyện thi 1 cách tốt nhất
Vì bải toán đòi hỏi 1 lượng câu hỏi, đề thi rất lớn nên với kiến thức hạn hẹp hiện
có, phạm vi bài toán nhóm em làm vẫn còn nhiều hạn chế
Chương III. Ý Tưởng Cho Bài Toán
a. Công nghệ sử dụng
Website sử dụng ngôn ngữ php để thiết kế,kết hợp với CSS, AJAX,
JQUERY, HTML
Sử dụng hệ quản trị cơ sở dữ liệu MySQL để thiết kế database
Ý tưởng trang index cho website
Người dùng sau khi đăng nhập vào hệ thống thì có thể chọn luyện thi qua các môn
học có sẵn, hệ thống sẽ hiện danh sách các câu hỏi, Sauk hi trả lời , hiện đáp án,
cùng hướng dẫn làm bài. Để làm đề thi thì yêu cầu người dùng phải đăng nhập mới
có thể làm bài. Luyện thi câu hỏi thì người dùng không cần đăng nhập
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
Quản trị hệ thống sau khi đăng nhập có thế thêm, sửa , xóa câu hỏi, người dùng
nếu người dùng này vi phạm quy định của website
Chương IV. Cây Phân Cấp Chức Năng
Cây chức năng của hệ thống
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
Luyện thi
theo từng đề
thi sẵn có
Thêm, xóa
đề thi
Thêm sửa
xóa chuyên
đề
Luyện thi
câu hỏi ngẫu
nhiên
Thêm sửa
xóa câu hỏi
Cấp loại người
dùng
Thêm,sửa
người dùng
Quản lý đề thiQuản lý chuyên đềQuản lý câu hỏiQuản lý người dùng
Quản Lý Thi Trắc Ngiệm
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
Qua cây chức năng ta có thể tóm lược như sau:
- Website cho phép người dùng ( không cần đăng nhâp ) có thể luyện thi trắc
nghiệm qua từng môn đã chon lựa
- Danh sách các câu hỏi sẽ hiện ngẫu nhiên qua từng chuyên đề, các câu hỏi
không phân biệt mức khó hay dễ, người dùng làm bài theo khoảng thời gian
xác định. Website sẽ tính điểm , đưa ra kết quả xếp hạng của người đó
- Cho phép người dùng (đã đăng nhập) luyện thi đề thi , các đề thi này được
lấy qua các thời kỳ khác nhau
- Các chức năng thêm, sửa , xóa trong quản lý người dùng, câu hỏi, chuyên đề
do admin xử lý ở trang quản trị dữ liệu
Chương V. Phân Tích Thiết Kế
a. Biểu đồ Usacase
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
Biểu đồ Use Case thể hiện mức tổng quát cho các chức năng. Admin có quyền
quản lý người dùng, được quyền cấp level cho Quản lý khu vực. Mỗi quản lý khu
vực được phép thêm, sửa, xóa…câu hỏi, chuyên đề, đề thi
b. Biểu đồ Sequence Diagram
- Đăng nhập
- Đăng ký
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
- Xem và làm câu hỏi
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
- Xem và làm đề thi
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
- Quản lý câu hỏi
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
- Quản lý đề thi
c. Biểu đồ Activity Diagram
- Đăng nhập
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
- Đăng ký
- Luyện thi theo câu hỏi
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
- Luyện thi theo đề thi
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
Chương VI. Thiết kế CSDL
Hình ảnh tổng quát về cơ sở dữ liệu
Cơ Sở Dữ liệu gồm 7 bảng : Đề thi, Danh sách đề thi, kết quả, Câu hỏi, Chuyên đề,
Môn, User
Chi tiết các bảng như sau:
a. Bảng Đề thi
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
Bảng đề thi chưa iddethi và idcauhoi, để tạo 1 đề thi trong web, hệ thống sẽ tự tạo
đề thi lấy ngẫu nhiên idcauhoi từ bảng Câu hỏi
b. Bảng Danh sách Đề thi
Bảng dsdethi chứa iddethi, tên đề thi, loại đề thi (thuộc loại 10 câu, hay 30 câu),
idchuyende (đề thi thuộc chuyên đề nào), soluotthi ( số lần thi của user)
c. Bảng Câu hỏi
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
Trong Bảng Câu hỏi có chứa nôi dung câu hỏi (contentcauhoi) , các phương án trả
lời (pa1, pa2, pa3, pa4), đáp án câu hỏi (da) , loại (khó,dễ hay trung bình), ngoài ra
còn có hướng dẫn (huongdan) để giải thích đáp án câu hỏi đó
d. Bảng Chuyên đề
Bảng này chứa thông tin về chuyên đề của từng môn
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
e. Bảng Môn Học
Bảng môn học chứa danh sách các môn học có câu hỏi , đề thi cần làm
f. Bảng Kết quả
Bảng kết quả cho thấy,người dùng nào đã làm đề thi nào,số điểm người đó đạt
được sau khi làm đề thi. Người được điểm cao nhất sẽ được xếp hạng đầu tiên
g. Bảng User
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
Bảng User chứa thông tin chi tiết người dùng đã đăng ký vào hệ thống
Mối quan hệ giữa các bảng trong CSDL
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
Chương VII. Thiết Kế Webpage
a. Chức năng Luyện thi theo Câu hỏi
Khi người dùng kích vào môn học đk chọn, Hệ thống sẽ lấy hết ra những chuyên
đề của Môn học đó
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
Sau khi kích vào từng chuyên đề, hệ thống sẽ load lên các câu hỏi (được lấy ngẫu
nhiên) để người dùng có thể làm bài. Đáp án có nền xanh là đáp án đúng, đáp án
có nền đỏ là đáp án sai
b. Chức năng Luyện thi theo Đề thi
Khi người dùng kích chọn đề thi, và chọn môn cần thi,hệ thống sẽ load lên thông
tin đề thi hiện có. Người dùng nếu đã đăng nhập thì có thể bắt đầu làm bài
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
Hệ thống cho phép người dùng có thể làm trực tiếp bên câu hỏi,hoặc có thể điền
ngay bên ô danh sách các đáp án. Khi thời gian làm bài dừng, thì hệ thống sẽ tự
động gửi bài và chấm điểm
Sau khi làm xong hệ thống sẽ show cho người dùng biết số điểm mà họ đạt
được.Bảng đáp án của đề thi
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
Chương VIII. Các Chức Năng Chính Trong Chương Trình
Hệ thống Luyện thi Trắc Nghiệm gồm có 2 chức năng cơ bản:
- Luyện thi theo Câu hỏi ngẫu nhiên
- Luyện thi theo đề thi
Chi tiết từng bước tạo ra 2 webpage trên :
a) Chức năng luyện thi theo câu hỏi
- Đoạn code lấy ra câu hỏi
<ul class="list_cauhoi">
<script type="text/javascript"src=" />MathJax.Hub.Config({
extensions: ["tex2jax.js","TeX/AMSmath.js","TeX/AMSsymbols.js"],
jax: ["input/TeX", "output/HTML-CSS"],
tex2jax: {
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
inlineMath: [ ['$','$'], ["\\[","\\]"] ],
displayMath: [ ['$$','$$'], ["\\(","\\)"] ],
},
"HTML-CSS": { availableFonts: ["TeX"] }
});
</script>
<?php
//xac dinh bao nhieu dong
$display = 10;
// tinh tong so trang can hien thi
if(isset($_GET['page']) && (int)$_GET['page']) {
$page = $_GET['page'];
}
else{ //neu chua xac dinh, thi tim so trang
$record=$count_cauhoi_chuyende_one;
if($record > $display) {
$page = ceil($record/$display);
}
else{
$page = 1;
}
}
$start = (isset($_GET['start']) && (int)$_GET['start']>=0) ? $_GET['start'] : 0;
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
$rows=get_cauhoi_all($_SESSION['index_idchuyende'],$start,$display);
if(count($rows)>0){
$int=1;
foreach ($rows as $cauhoi){
?>
<li>
<p>Câu <?php echo $int+$start; ?></p>
<p class="content_cauhoi"><?php echo
$cauhoi['contentcauhoi']; ?></p>
<ul>
<li><input class="check" type="button"
id="1" value="A" name="<?php echo $cauhoi['da']; ?>"><label for=""><?php echo
$cauhoi['pa1']; ?></label></li>
<li><input class="check" type="button"
id="2" value="B" name="<?php echo $cauhoi['da']; ?>"><label for=""><?php echo
$cauhoi['pa2']; ?></label></li>
<li><input class="check" type="button"
id="3" value="C" name="<?php echo $cauhoi['da']; ?>"><label for=""><?php echo
$cauhoi['pa3']; ?></label></li>
<li><input class="check" type="button"
id="4" value="D" name="<?php echo $cauhoi['da']; ?>"><label for=""><?php echo
$cauhoi['pa4']; ?></label></li>
</ul>
<input type="submit" value="Xem hướng dẫn"
class="hd">
<p class="huongdan"><?php echo
$cauhoi['huongdan']; ?></p>
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
</li>
<?php
$int++;
}
}
?>
</ul>
- Đoạn code phân trang
<ul class="navi">
<?php
if($page > 1) { //neu can hien thi so trang
$next = $start + $display;
$prev = $start - $display;
$current = ($start/$display)+1;
//Hien thi trang Previous
if($current !=1) {
echo "<li><a href='single.php?idchuyende=".
$_SESSION['index_idchuyende']."&start=$prev&page=$page'>Previous</a></li>";
}
//Hien thi so link
for($i=1;$i<=$page;$i++) {
if($current != $i) {
echo "<li><a href='single.php?idchuyende=".
$_SESSION['index_idchuyende']."&start=".($display*($i-1))."&page=$page'>$i</a></li>";
} else {
echo "<li class='current'>$i</li>";
}
} //End: FOR
//Hien thi trang Next
if($current != $page) {
echo "<li><a href='single.php?idchuyende=".
$_SESSION['index_idchuyende']."&start=$next&page=$page'>Next</a></li>";
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755
DỒ ÁN TỔNG HỢP
Thầy Nguyễn Hải Dương
}
}//End: $page > 1 IF
?>
</ul>
b) Chức năng thi theo đề thi
- Đoạn code tính giờ
function time()
{
if(i>=0)
{
var s=i%60;
var m=(i-i%60)/60;
document.getElementById("time").innerHTML=""+m+" phút "+s+"
giây";
document.getElementById("time_1").innerHTML=""+m+" phút
"+s+" giây";
i ;
setTimeout("time()",1000);
}
else
{
document.getElementById("time").innerHTML="Hết giờ";
$('#submit_test').trigger('click');
}
}
- Đoạn code tính kết quả và show kết quả
$kq=get_finish($_GET['iddethi']);
$count=count($kq);
$int=1;
$p=0;
foreach ($kq as $key) {
$cau='cau'.$int;
$ct[]=$_POST[$cau];
if($_POST[$cau]==$key[0]){
$p++;
}
$int++;
}
$chitiet=implode('.', $ct);
$point=round($p/$count*10,1);
$point_old=check_ketqua($_SESSION['iduser'],$_GET['iddethi']);
Nhóm 13
Lê Hoàng Anh Msv 166753
Lê Đình Xoan Msv 1269755