5. Mục tiêu cần đạt được
1.7.4 Ví dụ về Ajax
Dưới đây là ví dụ áp dụng kỹ thuật Ajax vào bài toán tìm ước chung lớn nhất của hai số.
- Tại máy khách sẽ hiển thị hai textbox để nhập vào hai số tự nhiên, với file view.php có nội dung như sau:
<!DOCTYPE html> <html>
<head>
<script>
SoA = document.getElementById('SoA').value; SoB = document.getElementById('SoB').value; Check = true; if(check==true){ SoA = encodeURIComponent(SoA); SoB = encodeURIComponent(SoB); pos = "ketqua-div"; xmlHttp = GetXmlHttpObject(); if (xmlHttp == null) {
alert("Your browser does not support AJAX!"); return; } var url = controller.php?action=tinh&SoA="+SoA+"&SoB="+SoB; xmlHttp.onreadystatechange = function () { if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") { document.getElementById(pos).innerHTML = xmlHttp.responseText; } };
xmlHttp.open("GET", url, true); xmlHttp.send(null); } } //--- function GetXmlHttpObject() { var xmlHttp = null; try {
xmlHttp = new XMLHttpRequest(); } catch (e) { // IE5, 6 try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } } return xmlHttp; } </script> </head> <body> <div id="center"> <!-- end top-menu--> <div id="content"> <form> <fieldset>
<legend>Ước chung lớn nhất</legend> <table class="padding-table">
<tr>
<td>Số A:</td>
<td><input type="text" id="SoA" name="SoA" /></td>
</tr> <tr>
<td><input type="text" id="SoB" name="SoB" /></td>
</tr> <tr>
<td></td>
<td><input type="button" value="Tìm" onclick="UCLN();"/></td> </tr> </table> </fieldset> </form> </div> <div class="clear-both"></div> <div class="view-content"> <div class="loading-container"> Kết quả: <span id="submit-loading"></span> </div>
<div class="ajax-content" style = "margin-left: 20px;" id="ketqua-div"> </div><br/> </div> </div> </body> </html> Hình ảnh minh họa:
Hình 1.7: Giao diện nhập hai số
- Máy chủ xử lý thông qua file controller.php với nội dung như sau: <?php function UCLN($a,$b){ $a=abs($a); $b=abs($b); if ($a==0 ||$b==0) return $a+$b; while ($a !=$b){ if($a>$b) $a=$a-$b; else $b=$b-$a; } return $a; } $action = $_REQUEST['action']; if ($action == "tinh"){ $SoA = $_REQUEST['SoA']; $SoB = $_REQUEST['SoB']; echo UCLN($SoA,$SoB);
} ?>
Hình minh họa:
CHƯƠNG 2
PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 GIỚI THIỆU CHUNG
2.1.1 Ý tưởng
Ý nghĩa của việc đăng ký tín chỉ là được chọn thầy, chọn bạn và chọn thời gian học phù hợp với mỗi sinh viên. Ý tưởng của em là xây dựng một Website đăng ký tín chỉ giúp sinh viên dễ dàng, thuận lợi thao tác trong việc đăng ký tín chỉ nhằm phát huy hết được ý nghĩa đó.
Để đáp ứng điều này, ý tưởng của em là thiết kế Website đăng ký tín chỉ sử dụng kỹ thuật Ajax. 2.1.2 Khảo sát hiện trạng 2.1.2.1 Các phương pháp khảo sát - Quan sát thực tế - Phỏng vấn 2.1.2.2 Khảo sát sơ bộ
- Xây dựng Website đăng ký tín chỉ sử dụng kỹ thuật Ajax.
- Sử dụng ngôn ngữ PHP gần gũi với ngôn ngữ C nên chương trình trở nên gần gũi hơn.
2.1.2.3 Khảo sát chi tiết
Qua quá trình khảo sát thực tế người dùng ở trường, có các yêu cầu cơ bản:
- Với người sử dụng là sinh viên:
o Yêu cầu về tên các môn học mà sinh viên sẽ đăng ký.
o Yêu cầu về tổng số tín chỉ tối thiểu sinh viên phải đăng ký đối với từng hạng học lực khác nhau.
o Yêu cầu về thời khóa biểu đã đăng ký trong học kỳ.
o Yêu cầu về xem bảng điểm của sinh viên. - Với người sử dụng Website là phòng đào tạo:
o Yêu cầu cập nhật khung chương trình của từng ngành.
o Yêu cầu thêm, cập nhât môn học trong từng kỳ với giảng viên, thời gian, địa điểm và số lượng sinh viên cụ thể.
o Yêu cầu thêm, cập nhật điểm cho sinh viên.
2.1.2.4 Mục tiêu chính của hệ thống
- Vận dụng được kiến thức đã học vào xây dựng một sản phẩm cụ thể. - Tạo thuận lợi tối đa cho việc đăng ký tín chỉ của sinh viên.
- Rèn luyện khả năng làm việc, tích lũy được nhiều kinh nghiệm và kiến thức cho sinh viên thực hiện.
2.1.2.5 Điểm mới và nhân tố quyết định thành công
- Ngôn ngữ lập trình PHP với cấu trúc dễ hiểu, trong sáng, khả năng xử lý linh hoạt có thể giải quyết được nhiều yêu cầu của bài toán đặt ra.
- Kỹ thuật Ajax được áp dụng góp phần cải thiện tốc độ truy cập và hạn chế được các rủi ro về đường truyền như tắc nghẽn, quá tải.
2.1.3 Phác thảo chức năng
STT Tên chức năng Mô tả chi tiết
1.
Chức năng đăng nhập
Được xây dựng không phải để bảo vệ mà chủ yếu là quản lý người dùng và dữ liệu người dùng.
viên 3. Quản lý kế hoạch
đào tạo Quản lý loại hình và ngành đào tạo
4.
Quản lý phân công giảng dạy, thời khóa biểu
Sắp xếp lịch giảng dạy của giáo viên đối với từng môn học và thời khóa biểu của sinh viên.
5. Quản lý kết quả học tập
Nhập và quản lý điểm của sinh viên theo từng môn, từng sinh viên. Tổng kết theo từng kỳ
6. Đăng ký tín chỉ
Sinh viên sau khi đăng nhập vào hệ thống sẽ được đăng ký học phần có trong kỳ tới. Thời gian đăng ký do phòng đào tạo quy định.
Bảng 2.1: Phác thảo chức năng cơ bản của hệ thống 2.1.4 Yêu cầu hệ thống
- Yêu cầu phi chức năng:
o Giao diện thân thiện, đơn giản, dễ sử dụng để những sinh viên chưa quen với việc sử dụng máy tính có thể sử dụng được.
o Hỗ trợ tối đa cho sinh viên trong việc đăng ký học phần, xem điểm và xem thời khóa biểu.
- Yêu cầu hệ thống:
o Trình chủ (server program): Apache.
o Hệ quản trị cơ sở dữ liệu: MySql.
o Trình duyệt Web: hỗ trợ nhiều loại trình duyệt Web, chạy tốt trên Google Chrome, Firefox, IE.
2.2 PHÂN TÍCH VÀ THIẾT KẾ 2.2.1 Các tác nhân
Hệ thống có 3 tác nhân chính là khách vãng lai, người dùng là sinh viên, người dùng là phòng đào tạo:
- Khách vãng lai: truy cập vào Website để xem Quy chế, khung chương trình, những thông báo, Quy định và hướng dẫn sử dụng Website.
- Sinh viên: người dùng chính của Website, thông qua giao diện sinh viên có thể đăng ký học phần (nếu trong thời gian đăng ký), xem thời khóa biểu, điểm thi, Quy chế, Quy định, thông báo…
- Phòng đào tạo: đóng vai trò là quản trị viên (admin), là tác nhân quản lý Website, thực hiện việc quản lý người dùng, các học phần, thời khóa biểu, điểm thi của sinh viên.
2.2.2 Sơ đồ Use-Case
2.2.2.1 Use-Case quản trị viên
2.2.2.2 Use-Case sinh viên
Hình 2.2: Sơ đồ Use-Case sinh viên
Hình 2.3: Sơ đồ Use-Case khách vãng lai 2.2.3 Đặc tả Use-Case
- Use-Case quản lý sinh viên:
o Mục đích: quản lý tài khoản sinh viên của lớp.
o Tác nhân: quản trị viên.
o Điều kiện trước: phải là sinh viên của lớp có đầy đủ thông tin cần thiết.
o Input: mã sinh viên, tên sinh viên, lớp, mã ngành, mật khẩu.
o Output: thêm, sửa, xóa thành công. - Use-Case quản lý kế hoạch đào tạo:
o Tác nhân: quản trị viên.
o Input: loại hình đào tạo, ngành đào tạo.
o Output: in ra màn hình kết quả.
- Use-Case phân công giảng dạy, thời khóa biểu:
o Tác nhân: quản trị viên.
o Điều kiện trước: những học phần phải đáp ứng đúng theo khung chương trình của từng ngành học, sắp xếp các môn học có cùng giảng viên không được trùng ngày giờ với nhau.
o Input: tên học phần, tên giảng viên, phòng học, thời gian học.
o Output: in ra màn hình kết quả. - Use-Case quản lý đăng ký tín chỉ:
o Tác nhân: quản trị viên.
o Điều kiện trước: những học phần phải đáp ứng đúng theo khung chương trình của từng ngành học, sắp xếp các môn học có cùng giảng viên không được trùng ngày giờ với nhau. Tùy vào từng loại học lực
mà cho phép sinh viên đăng ký số lượng tín chỉ phù hợp, đúng theo yêu cầu trong Quy chế 43 của Bộ Giáo Dục.
o Input: tên học phần, mã học phần, giảng viên dạy, thời gian, phòng học.
o Output: đưa ra bảng chọn cho sinh viên đăng ký học phần. - Use-Case quản lý kết quả học tập:
o Tác nhân: quản trị viên.
o Input: mã môn học, mã sinh viên, điểm.
o Output: in ra màn hình kết quả. - Use-Case đăng nhập:
o Tác nhân: sinh viên.
o Điều kiện trước: đã có tài khoản đăng nhập.
o Input: thông tin đăng nhập gồm có mã sinh viên, mật khẩu.
o Output: nếu đúng mã sinh viên và mật khẩu, chuyển đến trang chính. Nếu không đúng, yêu cầu nhập lại.
- Use-Case xem thông báo:
o Tác nhân: sinh viên, khách vãng lai.
o Input: click chuột vào “Quy chế”.
o Output: hệ thống chuyển đến trang chủ của phòng đào tạo. - Use-Case xem thời khóa biểu:
o Tác nhân: sinh viên.
o Điều kiện trước: sinh viên đã đăng ký học phần thành công.
o Input: chuột vào “xem thời khóa biểu”.
o Output: in ra màn hình thời khóa biểu của sinh viên đã đăng ký trước đó.
- Use-Case xem kết quả học tập:
o Tác nhân: sinh viên.
o Điều kiện trước: kết quả học tập đã được nhập vào.
o Input: click chuột vào “bảng điểm”.
o Output: in ra màn hình bảng điểm của sinh viên.
2.2.4 Biểu đồ lớp
2.2.5 Biểu đồ tuần tự
- Biểu đồ tuần tự đăng nhập:
Hình 2.5: Biểu đồ tuần tự đăng nhập
- Biểu đồ tuần tự thêm học phần:
Hình 2.6: Biểu đồ tuần tự thêm học phần
Hình 2.7: Biểu đồ tuần tự đăng ký học phần
- Biểu đồ tuần tự quản lý kết quả học tập:
- Biểu đồ tuần tự xem điểm:
Hình 2.9: Biểu đồ tuần tự xem điểm 2.2.6 Cơ sở dữ liệu
- Bảng sv: lưu trữ thông tin của sinh viên
STT Tên trường Kiểu Khóa Null Mô tả
1 masv Char(14) Khóa chính Not null Mã sinh viên
2 hoten Varchar(25) Not null Họ và tên sinh viên
3 lop Char(10) Not null Lớp học phần
4 matkhau Char(12) Not null Mật khẩu
5 mang Char(10) Not null Mã ngành
Bảng 2.2: Bảng sv
- Bảng gv: lưu trữ thông tin của giảng viên
STT Tên trường Kiểu Khóa Null Mô tả
1 magv Char(14) Khóa chính Not null Mã giảngviên
2 hoten Varchar(25) Not null Họ và tên giảng
viên
Bảng 2.3: Bảng gv
- Bảng ng: lưu trữ ngành đào tạo
STT Tên trường Kiểu Khóa Null Mô tả
1 mang Char(2) Khóa chính Not null Mã ngành
2 tennganh Varchar(40) Not null Tên ngành
3 makhoa Char(2) Khóa ngoại Not null Mã khoa
Bảng 2.4: Bảng ng
- Bảng kh: lưu trữ dữ liệu của khoa
STT Tên trường Kiểu Khóa Null Mô tả
1 makh Char(2) Khóa chính Not null Mã khoa
2 tenkhoa Varchar(30) Not null Tên khoa
Bảng 2.5: Bảng kh
- Bảng hp: gồm 2 bảng có cấu trúc tương tự nhau là bảng hp để lưu học phần của khối cử nhân và bảng sp để lưu học phần của khối sư phạm.
STT Tên trường Kiểu Khóa Null Mô tả
1 mahp Char(14) Khóa chính Not null Mã học phần 2 tenhocphan Varchar(50) Not null Tên học phần
3 hocky Int(1) Not null Học kỳ
4 tinchi Int(1) Not null Số tín chỉ
5 tienquyet Char(14) Not null Điều kiện tiên quyết
6 nganh Char(20) Not null Ngành
7 tuchon Char(1) Not null Học phần tự chọn
Bảng 2.6: Bảng hp
- Bảng tk: lưu trữ dữ liệu các học phần đăng ký
STT Tên trường Kiểu Khóa Null Mô tả
1 masv Char(14) Khóa ngoại Not null Mã sinh viên 2 mahp Char(14) Khóa ngoại Not null Mã học phần
3 mahocky Char(3) Not null Mã học kỳ
5 tiet Char(4) Not null Tiết học phần
6 thu Char(1) Not null Ngày học
7 phong Char(10) Not null Phòng học
8 socho Int(2) Not null Số chỗ
Bảng 2.7: Bảng tk
- Bảng kq: lưu trữ điểm thi của sinh viên
STT Tên trường Kiểu Khóa Null Mô tả
1 masv Char(14) Khóa ngoại Not null Mã sinh viên 2 mahp Char(14) Khóa ngoại Not null Mã học phần
3 mahocky Char(3) Not null Mã học kỳ
4 diem Decimal(5,2) Not null Điểm
Bảng 2.8: Bảng kq
- Bảng dk: lưu trữ thông tin đăng ký học phần của sinh viên
STT Tên trường Kiểu Khóa Null Mô tả
1 masv Char(14) Khóa ngoại Not null Mã sinh viên
2 mahp Char(14) Not null Mã học phần
3 ip Char(20) Not null Địa chỉ IP
4 tg Char(20) Not null Thời gian đăng ký
Bảng 2.9: Bảng dk
- Bảng tmp: lưu trữ dữ liệu tạm thời của sinh viên
STT Tên trường Kiểu Khóa Null Mô tả
1 masv Char(14) Khóa ngoại Not null Mã sinh viên 2 mahp Char(14) Khóa ngoại Not null Mã học phần
3 diem Decimal(5,2) Not null Điểm
Bảng 2.10: Bảng tmp
CHƯƠNG 3
SẢN PHẨM THỰC HIỆN
3.1TRANG CHỦ
Hình 3.1: Giao diện trang chủ 3.2TRANG ĐĂNG NHẬP
3.3TRANG ĐĂNG KÝ TÍN CHỈ 3.3.1 Quy định đăng ký
Theo Quy chế 43 của Bộ Giáo Dục Đào Tạo, sinh viên đăng ký học phần phải thỏa mãn những điều kiện sau:
- Việc đăng ký các học phần sẽ học cho từng học kỳ phải đảm bảo điều kiện tiên quyết, học trước của từng học phần và trình tự học tập của mỗi chương trình cụ thể. Trong trường hợp sinh viên vi phạm thứ tự học tập không thể xem xét được, sẽ bị hủy kết quả học tập của học phần đã vi phạm.Ngoài thời hạn đăng ký khối lượng học tập của học kỳ đã quy định, sinh viên không hoàn thành việc đăng ký thì coi như đã tự ý bỏ học và bị xoá tên khỏi danh sách sinh viên.
- Việc đăng ký học thêm, thay đổi sang học phần khác khi không có lớp, rút bớt tín chỉ chỉ được chấp thuận trong hai tuần đầu của học kỳ chính. Việc rút bớt tín chỉ của các sinh viên học lực yếu được thực hiện ngay trong tuần công bố kết quả xét học vụ của học kỳ trước. Khi rút bớt tín chỉ, tổng số tín chỉ còn lại đối với sinh viên xếp loại học lực bình thường trong học kỳ trước liền kề không được dưới 14 tín chỉ; đối với sinh viên xếp loại học lực yếu trong học kỳ trước liền kề không được dưới 10 tín chỉ và không được vượt mức tối đa 14 tín chỉ.Ngoài thời hạn trên, học phần đã đăng ký vẫn được giữ trong phiếu đăng ký học, nếu sinh viên không theo học sẽ được xem như tự ý bỏ học và phải nhận điểm F.
- Những sinh viên có học phần bắt buộc bị điểm F phải đăng ký học lại học phần đó ở một trong các học kỳ tiếp theo cho đến khi đạt điểm A, B, C hoặc D.
- Sinh viên có học phần tự chọn bị điểm kém (D, C) được đăng ký học lại để cải thiện điểm trung bình chung tích lũy. Điểm tích lũy cuối cùng của các học phần này sẽ là điểm cao nhất trong các lần học.
3.3.2 Cơ chế hoạt động
Khi sinh viên đăng nhập thành công và chọn “Đăng ký học phần”, bảng chọn các học phần sẽ hiện ra. Hệ thông tiến hành kiểm tra sinh viên đã đăng ký hay chưa:
- Nếu đã đăng ký: hiển thị thông báo đã đăng ký và bảng những học phần đã đăng ký.
- Nếu chưa: Sinh viên tiến hành đăng ký bằng cách check vào textbox những học phần muốn đăng ký. Hệ thống gửi yêu cầu đến server để kiểm tra hợp lệ của việc đăng ký như điều kiện tiên quyết, trùng thời khóa biểu,