1. Trang chủ
  2. » Công Nghệ Thông Tin

quản lý sinh viên

18 599 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 18
Dung lượng 111,25 KB

Nội dung

Quản lý sinh viên Nhóm PTV LỜI MỞ ĐẦU ☼☼☼☼☼☼☼☼ Sau một thời gian học tập nghiên cứu và được sự hướng dẫn tận tình của giảng viên hướng dẫn thầy Hồ Diên Lợi nhóm PTV đã hoàn thành Đề tài 01: Xây dựng trang thông tin ứng dụng quản lý sinh viên. (dữ liệu lưu dang XML, có các chức năng thêm, bớt, sửa, tìm kiếm, trình bày chi tiết). Khi nói về XML thì đó là một ngôn ngữ siêu đánh dấu cho việc trình bày chuyên ngành. Mỗi ngôn ngữ đánh dấu dựa trên XML được gọi là ứng dụng XML. VD:Trình duyệt Moliza, bảng tính Gnumeric, trình biên dịch XML, một ứng dụng XML có thể đặc tả chuyên ngành như là Ngôn ngữ đánh dấu hóa học cho hóa học, hoặc GML cho cây phả hệ Mỗi ứng dụng XML gồm có những cú pháp và vốn từ riêng của nó, những vốn từ và cú pháp này tuân theo những qui tắc của XML XML là một định dạng rất mềm dẻo cho dữ liệu. XML được chọn là cở sở cho những ngôn ngữ khác vì XML cung cấp một sự định dạng tài liệu rất tốt , làm cho việc truy xuất tài liệu đó dễ dàng. XML rất lí tưởng cho những tài liệu đồ sộ và phức tạp ,nó không chỉ cho phép bạn chỉ rõ từ vựng định nghĩa các phần tử trong tài liệu, mà còn chó phép chỉ ra mối quan hệ giữa các phần tử này. XML cũng cung cấp phía client bao gồm kĩ thuật tích hợp dữ liệu từ nhiều nguồn và trình bày nó chỉ trong một tài liệu duy nhất . Đề tài nhóm PTV cũng sử dụng ngôn ngữ XML.Nội dung tài liệu XMl mà nhóm PTV đang thực hiện được viết bằng ngôn ngữ PHP với cơ sở dữ liệu bằng XML Trong quá trình thực hiện đồ án nhóm PTV cũng gặp nhiều khó khăn về kiến thức rất rộng của ngôn ngữ PHP,nhưng dưới sự hướng dẫn của thầy Hồ Diên Lợi và sự hỗ của mọi người trong nhóm cuối cùng nhóm PTV đã hoàn thành đề tài. Nhóm PTV xin chân thành cảm ơn sự giúp đỡ tận tình của thầy Hồ Diên Lợi đã giúp em hoàn thành đề tài một cách tốt nhất.Kính mong thầy đóng góp ý kiến để nhưng lần sau nhóm em sẽ hoàn thành tốt hơn. 1 | P a g e Quản lý sinh viên Nhóm PTV NỘI DUNG CHI TIẾT: I.ĐỊNH DẠNG TÀI LIỆU XML(DTD): <!ELEMENT qlsinhvien (sinhvien)*> <!ELEMENT sinhvien (tensv, ngaysinh, gioitinh, diachi, lop, khoa, khoahoc, diemtb)> <!ATTLIST sinhvien masv ID #REQUIRED> <!ELEMENT tensv (ho, ten)> <!ELEMENT ho (#PCDATA)> <!ELEMENT ten (#PCDATA)> <!ELEMENT ngaysinh (#PCDATA)> <!ELEMENT gioitinh (#PCDATA)> <!ELEMENT diachi (#PCDATA)> <!ELEMENT lop (#PCDATA)> <!ATTLIST lop malop CDATA #REQUIRED> <!ELEMENT khoa (#PCDATA)> <!ATTLIST khoa makhoa CDATA #REQUIRED> <!ELEMENT khoahoc (#PCDATA)> <!ELEMENT ketqua (monhoc)+> <!ELEMENT monhoc (tenmh, diem)> <!ELEMENT tenmh (#PCDATA)> <!ELEMENT diem (#PCDATA)> II.TÀI LIỆU XML: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE qlsinhvien PUBLIC "XMLHOCSINH" "sinhvien.dtd"> <qlsinhvien> <sinhvien masv="H3211111125"> <tensv> <ho>Nguyễn Hồng</ho> <ten>Phú</ten> </tensv> <ngaysinh>08/07/1990</ngaysinh> <gioitinh>Nam</gioitinh> <diachi>Q9 - TP.HCM</diachi> <lop malop="32">Tin32B</lop> <khoa makhoa="CNTT">Công Nghệ Thông Tin</khoa> <khoahoc>Khóa 32</khoahoc> <ketqua> <monhoc> <tenmh>Toán RR</tenmh> <diem>8</diem> 2 | P a g e Quản lý sinh viên Nhóm PTV </monhoc> <monhoc> <tenmh>LT for win</tenmh> <diem>9</diem> </monhoc> <monhoc> <tenmh>LT web</tenmh> <diem>10</diem> </monhoc> </ketqua> </sinhvien> <sinhvien masv="H3211111208"> <tensv> <ho>Nguyễn Quang</ho> <ten>Vinh</ten> </tensv> <ngaysinh>15/03/1990</ngaysinh> <gioitinh>Nam</gioitinh> <diachi>Q9 - TP.HCM</diachi> <lop malop="32">Tin32B</lop> <khoa makhoa="CNTT">Khoa CNTT</khoa> <khoahoc>Khoa 32</khoahoc> <ketqua> <monhoc> <tenmh>Toán RR</tenmh> <diem>8</diem> </monhoc> <monhoc> <tenmh>LT for win</tenmh> <diem>9</diem> </monhoc> <monhoc> <tenmh>LT web</tenmh> <diem>10</diem> </monhoc> </ketqua> </sinhvien> <sinhvien masv="H3211111182"> <tensv> <ho>Le Thi</ho> <ten>Trang</ten> </tensv> <ngaysinh>08/07/1990</ngaysinh> <gioitinh>Nam</gioitinh> <diachi>Q9 - TP.HCM</diachi> <lop malop="32">Tin32B</lop> 3 | P a g e Quản lý sinh viên Nhóm PTV <khoa makhoa="CNTT">Khoa CNTT</khoa> <khoahoc>Khoa 32</khoahoc> <ketqua> <monhoc> <tenmh>Toán RR</tenmh> <diem>8</diem> </monhoc> <monhoc> <tenmh>LT for win</tenmh> <diem>9</diem> </monhoc> <monhoc> <tenmh>LT web</tenmh> <diem>10</diem> </monhoc> </ketqua> </sinhvien> </qlsinhvien> Trong quá trình hiển thị và thao tác ta cần viết 1 số function để thực hiện việc truy cập DOM trên tài liệu XML DOMDocument php là 1 lớp được định nghĩa sẵn cho phép ta truy cập các tài liệu XML, HTML, XHTML, <?php $xmldoc = new DOMDocument('1.0', 'UTF-8'); $xmldoc->preserveWhiteSpace = false; $xmldoc->load("xml/sinhvien.xml"); $xmldoc->formatOutput = true; // Hàm trả về giá trị của node đầu tiên với tên tag của node đó truyền vào function getFirstValue($node,$tag){ return $node->getElementsByTagName($tag)->item(0)->nodeValue; } // Hàm trả về node đầu tiên với tên tag của node đó truyền vào function getFirstNode($node,$tag){ return $node->getElementsByTagName($tag)->item(0); } // Hàm gán giá trị cho 1 node $node có tag $tag với giá trị $value function setNodeValue($node,$tag,$value){ getFirstNode($node,$tag)->nodeValue = $value; } // Hàm trả về node sinhvien tìm được từ tag masv function getSinhVien($xmldoc,$masv){ // Lấy tất cả các node sinh viên 4 | P a g e Quản lý sinh viên Nhóm PTV $allSinhVien = $xmldoc->getElementsByTagName("sinhvien"); // Duyệt từng node sinh viên foreach($allSinhVien as $sinhvien) { // Tìm được masv với masv là 1 attribute if(trim(getValueAttribute($sinhvien,"masv")) == trim($masv)) return $sinhvien; // Trả về node sinh viên tìm được } } // function tìm 1 từ của tên function TrimName($name) { $name = @explode(" ",trim($name)); return $name[0]; } // Hàm trả về mảng các node sinhvien tìm được từ 1 thẻ bất kỳ trong node sinhvien // Ví dụ sinh viên có tag ngaysinh function searchSinhVien($xmldoc,$tag,$value){ // Nếu tìm theo mã, vì mã mà 1 attribute định danh nên ta sử dụng lại hàm getSinhVien if($tag == "masv") return array(getSinhVien($xmldoc,$value)); // Tìm tất cả sinhvien $allSinhVien = $xmldoc->getElementsByTagName("sinhvien"); // Duyệt từng sinhvien foreach($allSinhVien as $sinhvien) { // Nếu tìm theo họ hoặc tên (vì họ tên là 2 tag con của tag tensv trong node sinhvien) if($tag == "ho" || $tag == "ten") { $nodeTensv=$sinhvien->getElementsByTagName("tensv")->item(0); // Nếu tìm được giá trị if(TrimName(getFirstValue($nodeTensv,$tag)) == TrimName($value)) $arraySinhVien[] = $sinhvien; // gán vào mảng } // Tìm những tag không có children node còn lại else if(getFirstValue($sinhvien,$tag) == $value) { $arraySinhVien[] = $sinhvien; } } return $arraySinhVien; 5 | P a g e Quản lý sinh viên Nhóm PTV } // Hàm tìm giá trị thuộc tính atribute, đối tượng $node phải chứa $value tìm kiếm // Ví dụ node sinhvien có masv là attribute function getValueAttribute($node,$value) { return @$node->getAttribute($value); } // Hàm gán giá trị cho 1 attribute tìm được, $node phải tồn tại attribute $nameAttribute function setNodeAttribute($node,$nameAttribute,$value) { $node->setAttribute($nameAttribute,$value); } ?> III.TRANG HIỆN THỊ NỘI DUNG TÀI LIỆU XML: III.1.Hình ảnh trang hiện thị nội dung: 6 | P a g e Quản lý sinh viên Nhóm PTV III.2.Phần code trang hiện thị nội dung: <?php require_once("function.php"); $select = @$_GET["select"]; ?> <h2 align="center"><a href="index.php" class="style5">Danh sách sinh viên</a></h2> <table align="center" width="1000px" border="1" bordercolor="#0033FF" cellpadding="0" cellspacing="0"> <tr> <td colspan="9"> <form method="get" action=""> <label> <span class="style6">Tìm kiếm theo:</span> </label> <select name="select" id="select"> <option <?php echo ($select == "masv") ? "selected" : ""; ?> value="masv">Mã sinh viên</option> <option <?php echo ($select == "ho") ? "selected" : ""; ?> value="ho">Họ sinh viên</option> <option <?php echo ($select == "ten") ? "selected" : ""; ?> value="ten">Tên sinh viên</option> <option <?php echo ($select == "ngaysinh") ? "selected" : ""; ?> value="ngaysinh">Ngày sinh</option> <option <?php echo ($select == "gioitinh") ? "selected" : ""; ?> value="gioitinh">Giới tính</option> <option <?php echo ($select == "lop") ? "selected" : ""; ?> value="lop">Lớp</option> 7 | P a g e Quản lý sinh viên Nhóm PTV <option <?php echo ($select == "khoa") ? "selected" : ""; ?> value="khoa">Tên khoa</option> </select> <input name="noidung" type="text" id="noidung" value="<?php echo $_GET["noidung"]; ?>" size="30" /> <input name="timkiem" type="submit" value="Tìm kiếm" /> </form> </td> </tr> <tr> <td><span class="style10">Mã sinh viên</span></td> <td><span class="style10">Tên sinh viên</span></td> <td><span class="style10">Ngày sinh</span></td> <td><span class="style10">Giới tính</span></td> <td><span class="style10">Địa chỉ</span></td> <td><span class="style10">Lớp</span></td> <td><span class="style10">Khoa</span></td> <td><span class="style10">Sửa</span></td> <td><span class="style10">Xóa</span></td> </tr> <?php if($_GET["timkiem"]) // nếu tìm kiếm { $noidung = $_GET["noidung"]; // Danh sách sinh viên tìm được $arraysv = searchSinhVien($xmldoc,$select, $noidung); // Đếm nếu danh sách rỗng if(count($arraysv) == 0) die("<p align=\"center\">Không tìm thấy sinh viên!</p>"); // Duyệt từng sinhvien foreach($arraysv as $sinhvien) { // Gán kết quả $masv = getValueAttribute($sinhvien,"masv"); $tensv = getFirstValue($sinhvien,"ho")." ".getFirstValue($sinhvien,"ten"); $ngaysinh = getFirstValue($sinhvien,"ngaysinh"); $gioitinh = getFirstValue($sinhvien,"gioitinh"); $diachi = getFirstValue($sinhvien,"diachi"); $lop = getFirstValue($sinhvien,"lop"); $khoa= getValueAttribute(getFirstNode($sinhvien,"khoa"),"makhoa"); ?> <tr> <td><?php echo $masv; ?></td> <td><?php echo $tensv; ?></td> <td><?php echo $ngaysinh; ?></td> 8 | P a g e Quản lý sinh viên Nhóm PTV <td><?php echo $gioitinh; ?></td> <td><?php echo $diachi; ?></td> <td><?php echo $lop; ?></td> <td><?php echo $khoa; ?></td> <td><a href="editXml.php?masv=<?php echo $masv; ?>">Sửa</a></td> <td><a href="saveXml.php?masv=<?php echo $masv; ?>">Xóa</a></td> </tr> <?php } // end foreach } Else // Hiển thị thông thường { $qlsinhvien = $xmldoc->getElementsByTagName("sinhvien"); foreach($qlsinhvien as $sinhvien) { $masv = getValueAttribute($sinhvien,"masv"); $tensv = getFirstValue($sinhvien,"ho")." ".getFirstValue($sinhvien,"ten"); $ngaysinh = getFirstValue($sinhvien,"ngaysinh"); $gioitinh = getFirstValue($sinhvien,"gioitinh"); $diachi = getFirstValue($sinhvien,"diachi"); $lop = getFirstValue($sinhvien,"lop"); $khoa = getValueAttribute(getFirstNode($sinhvien,"khoa"),"makhoa"); ?> <tr> <td><?php echo $masv; ?></td> <td><?php echo $tensv; ?></td> <td><?php echo $ngaysinh; ?></td> <td><?php echo $gioitinh; ?></td> <td><?php echo $diachi; ?></td> <td><?php echo $lop; ?></td> <td><?php echo $khoa; ?></td> <td><a href="editXml.php?masv=<?php echo $masv; ?>">Sửa</a></td> <td><a href="saveXml.php?masv=<?php echo $masv; ? >">Xóa</a></td> </tr> <?php } // end foreach } // else 9 | P a g e Quản lý sinh viên Nhóm PTV ?> </table> <p align="center"><a target="_blank" href="xml/sinhvien.xml"><b>Danh sách sinh viên XML</b></a><a href="addXml.php"><b>Thêm Sinh viên</b></a></p> <p align="center" class="style1" style="padding:5px;"><span class="style3">GVHD: Thầy Hồ Diên Lợi</span><br /> <span class="style4">Nhóm thực hiện: PTV - Nguyễn Hồng Phú - Lê Thị Trang - Nguyễn Quang Vinh</span></p> </body> </html> IV.TRANG CẬP NHẬT NỘI DUNG TÀI LIỆU XML: IV.1.Hình ảnh trang cập nhật nội dung: Thông tin muốn sửa sẽ được hiện thị lên trang. Khi hoàn thành xong thông tin sửa thì nhấn Sửa sinh viên để lưu lại thông tin đã được sửa. Nhấp Quay lại để trở lại trang hiện thị. IV.2.Phần code trang cập nhật nội dung: <?php 10 | P a g e [...].. .Quản lý sinh viên Nhóm PTV require_once("function.php"); $masv = $_GET["masv"]; // Node sinh viên tìm được $sinhvien = getSinhVien($xmldoc,$masv) or die("Không tìm thấy sinh viên" ); // Tên SV $hosv = getFirstValue($sinhvien,"ho"); $tensv = getFirstValue($sinhvien,"ten"); // Ngày sinh $ngaysinh = getFirstValue($sinhvien,"ngaysinh"); // Giới tính $gioitinh = getFirstValue($sinhvien,"gioitinh");... $nodeTensv->appendChild($nodeTen); // Gắn node tensv vào node sinhvien $nodeSinhvien->appendChild($nodeTensv); // Tạo node ngaysinh $nodeNgaysinh = $xmldoc->createElement("ngaysinh",$ngaysinh); // Gắn node ngaysinh vào sinhvien $nodeSinhvien->appendChild($nodeNgaysinh); // Tạo node gioitinh $nodeGioitinh = $xmldoc->createElement("gioitinh",$gioitinh); // Gắn node gioitinh vào sinhvien $nodeSinhvien->appendChild($nodeGioitinh);... type="submit" value="Sửa sinh viên" name="edit" /> CODE SỬA : if(isset($_POST["edit"]))// Sửa 12 | P a g e Quản lý sinh viên { // Tìm node sinhvien cần sửa $nodeSinhVien = getSinhVien($xmldoc,$masv); // Tìm node tensv trong node sinhvien $nodeTenSV = getFirstNode($nodeSinhVien,"tensv"); // Sửa... $xmldoc->save("xml/sinhvien.xml"); header("Refresh:0; url=editXml.php?masv=$masv"); V.TRANG THÊM MẪU TIN VÀO NỘI DUNG TÀI LIỆU XML: V.1.Hình ảnh trang thêm mẫu tin : 13 | P a g e Nhóm PTV Quản lý sinh viên V.2.Phần code trang thêm mẫu tin: Thêm Sinh Viên Mã sinh viên: ... node ngày sinh setNodeValue($nodeSinhVien,"ngaysinh",$ngaysinh); // Sửa node giới tính setNodeValue($nodeSinhVien,"gioitinh",$gioitinh); // Sửa node Địa chỉ setNodeValue($nodeSinhVien,"diachi", $diachi); // Sửa node Lớp $nodeLop = getFirstNode($nodeSinhVien,"lop"); setNodeAttribute($nodeLop,"malop",$malop); setNodeValue($nodeSinhVien,"lop",$tenlop); // Sửa node Khoa $nodeKhoa = getFirstNode($nodeSinhVien,"khoa");... Tên sinh viên: Giới tính: Ngày sinh: Địa chỉ: 14 | P a g e Nhóm PTV Quản lý sinh viên. .. makhoa cho node khoa $nodeKhoa->appendChild($attrMakhoa); // Gắn node khoa cho node sinhvien $nodeSinhvien->appendChild($nodeKhoa); // Tạo node Khoahoc $nodeKhoahoc = $xmldoc->createElement("khoahoc",$khoahoc); // Gắn node Khoahoc cho node sinhvien $nodeSinhvien->appendChild($nodeKhoahoc); 16 | P a g e Nhóm PTV Quản lý sinh viên Nhóm PTV // Tạo node KetQua $nodeKetQua = $xmldoc->createElement("ketqua");... if(isset($_GET["masv"])) // Xóa { // lấy masv xóa từ querystring $masv = $_GET["masv"]; // tìm node sinhvien cần xóa $nodeSinhVien = getSinhVien($xmldoc,$masv); // đứng ở node qlsinhvien xóa node sinhvien getFirstNode($xmldoc,"qlsinhvien")->removeChild($nodeSinhVien); // Lưu tài liệu XML $xmldoc->save("xml/sinhvien.xml"); header("Refresh:0; url=index.php"); } ?> KẾT LUẬN: Xây dựng một trang xml không phải... cùng gắn từng monhoc và ketqua $nodeKetQua->appendChild($nodeMonHoc); } // Gắn ketqua cho sinhvien $nodeSinhvien->appendChild($nodeKetQua); // Gắn node sinhvien cho node qlsinhvien getFirstNode($xmldoc,"qlsinhvien")->appendChild($nodeSinhvien); // Lưu tài liệu XML và chuyển đến sv vừa thêm $xmldoc->save("xml/sinhvien.xml"); header("Refresh:0; url=editXml.php?masv=$masv"); VI.XÓA MẪU TIN: if(isset($_GET["masv"]))... name="tensv" type="text" value="" size="5" /> 11 | P a g e Quản lý sinh viên Nhóm PTV Giới tính: . $value; } // Hàm trả về node sinhvien tìm được từ tag masv function getSinhVien($xmldoc,$masv){ // Lấy tất cả các node sinh viên 4 | P a g e Quản lý sinh viên Nhóm PTV $allSinhVien = $xmldoc->getElementsByTagName("sinhvien"); //. | P a g e Quản lý sinh viên Nhóm PTV { // Tìm node sinhvien cần sửa $nodeSinhVien = getSinhVien($xmldoc,$masv); // Tìm node tensv trong node sinhvien $nodeTenSV = getFirstNode($nodeSinhVien,"tensv"); //. node sinhvien $nodeSinhvien->appendChild($nodeTensv); // Tạo node ngaysinh $nodeNgaysinh = $xmldoc->createElement("ngaysinh",$ngaysinh); // Gắn node ngaysinh vào sinhvien $nodeSinhvien->appendChild($nodeNgaysinh); //

Ngày đăng: 05/07/2014, 18:11

TỪ KHÓA LIÊN QUAN

w