GIỚI THIỆU ĐỀ TÀI
Lý do chọn đề tài
Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ, việc ứng dụng các sản phẩm công nghệ vào quản lý đã trở nên phổ biến, đặc biệt trong lĩnh vực giáo dục.
Trước đây, việc quản lý học sinh và điểm số chủ yếu dựa vào sổ sách và tài liệu thực tế, gây tốn nhiều thời gian và công sức cho cán bộ quản lý Để khắc phục vấn đề này, tôi đã quyết định chọn đề tài nghiên cứu.
Hệ thống quản lý điểm cho học sinh giúp đơn giản hóa quy trình quản lý điểm số và thông tin học sinh, mang lại sự nhanh chóng và tiết kiệm công sức cho giáo viên và nhà trường.
Mục đích đề tài
- Tìm hiểu về các công nghệ: Java, phpMyAdmin (XAMPP)
Hệ thống quản lý điểm cho học sinh được thiết kế nhằm nâng cao hiệu quả và đơn giản hóa quy trình quản lý điểm tại các trường trung học phổ thông.
Đối tượng và phạm vi nghiên cứu
Quản lý điểm cho học sinh trường trung học phổ thông
Trong bài viết này, chúng tôi sử dụng hệ quản trị cơ sở dữ liệu phpMyAdmin của XAMPP để quản lý thông tin liên quan đến người dùng, học sinh, lớp, khối, môn học và điểm số.
Về người sử dụng: Phần mềm được sử dụng bởi nhân viên giáo vụ, hiệu trường, hiệu phó, giáo viên, học sinh.
Phương pháp nghiên cứu
- Thu thập và nghiên cứu các tài liệu có liên quan đến đề tài
- Tìm hiểu về ngôn ngữ lập trình Java để lập trình cho phần mềm
SVTH: Hoàng Thị Thu Ngọc – Lớp: 10CNTT4 Trang 2
Tìm hiểu về phpMyAdmin trong XAMPP giúp bạn nắm vững các câu lệnh truy xuất dữ liệu, từ đó thực hiện các nhiệm vụ quan trọng như tạo, cập nhật, xóa và sửa thông tin trong cơ sở dữ liệu.
- Phân tích các yêu cầu, chức năng của hệ thống quản lý điểm
- Thiết kế và cài đặt, kiểm thử hệ thống.
Ý nghĩa khoa học và thực tiễn của đề tài
Đồng bộ hóa dữ liệu giữa người dùng và sever không chỉ mang lại ý nghĩa khoa học quan trọng mà còn mở ra hướng phát triển mới trong quản lý dữ liệu Trong thực tiễn, điều này giúp việc quản lý học sinh và quản lý điểm tại các trường trung học phổ thông trở nên dễ dàng và hiệu quả hơn.
Cấu trúc bài khóa luận
Bài khóa luận được tổ chức thành các chương cụ thể như sau:
Chương 1: Cơ sở lý thuyết Ở chương này sẽ nêu lên một số lý thuyết cơ bản về ngôn ngữ lập trình Java, mô hình lập trình hướng đối tượng MVC và cách kết nối cơ sở dữ liệu JDBC
Chương 2: Phân tích thiết kế hệ thống Ở chương này sẽ xác định:
- Các yêu cầu về chức năng cơ bản mà hệ thống cần có và cách thức tính điểm, xếp loại học lực cho học sinh
Hệ thống quản lý điểm cần có các chức năng chính như nhập điểm, chỉnh sửa điểm, xóa điểm, tra cứu điểm, thống kê điểm và báo cáo điểm Đối tượng được phép sử dụng các chức năng này bao gồm giáo viên, quản trị viên và học sinh Giáo viên có thể nhập, chỉnh sửa và xóa điểm của học sinh, trong khi quản trị viên có thể quản lý và giám sát toàn bộ hệ thống Học sinh có thể tra cứu điểm của mình và xem thống kê điểm của lớp hoặc trường.
- Tổng hợp các bảng dữ liệu được sử dụng trong hệ thống quản lý điểm, nêu được mối quan hệ giữa các bảng dữ liệu
Chương 3: Giao diện của hệ thống
Hình ảnh giao diện của hệ thống quản lý điểm
SVTH: Hoàng Thị Thu Ngọc – Lớp: 10CNTT4 Trang 3
CƠ SỞ LÝ THUYẾT
Giới thiệu về ngôn ngữ lập trình Java
Java là ngôn ngữ lập trình hướng đối tượng (tựa C++) do Sun Microsystem đưa ra vào giữa thập niên 90
Chương trình viết bằng ngôn ngữ lập trình Java có thể chạy được trên bất kỳ hệ thống nào có cài máy ảo Java (Java Virtual Machine)
1.1.2 Các đặc điểm nổi bật của ngôn ngữ lập trình Java:
Máy áo Java (JVM – Java Virtual Machine):
Tất cả các chương trình cần được biên dịch thành mã máy để thực thi, nhưng mã máy khác nhau giữa các kiến trúc CPU, khiến cho một chương trình chỉ có thể chạy trên một kiến trúc cụ thể Ví dụ, chương trình trên Microsoft Windows được biên dịch thành file EXE, trong khi trên Linux là file ELF, do đó cần chỉnh sửa và biên dịch lại để chạy trên hệ điều hành khác Tuy nhiên, sự ra đời của ngôn ngữ lập trình Java và máy ảo Java đã khắc phục những khó khăn này Chương trình viết bằng Java được biên dịch thành mã Java bytecode, và máy ảo Java sẽ chuyển đổi mã này thành mã máy tương ứng để thực thi.
Java là ngôn ngữ lập trình kết hợp giữa biên dịch và thông dịch Các chương trình nguồn viết bằng Java có đuôi *.java, sau đó được biên dịch thành tệp có đuôi *.class, và cuối cùng được trình thông dịch chuyển đổi thành mã máy.
SVTH: Hoàng Thị Thu Ngọc – Lớp: 10CNTT4 Trang 4 Độc lập nền:
Chương trình viết bằng ngôn ngữ lập trình Java có khả năng chạy trên nhiều hệ điều hành khác nhau như Windows, Unix, và Linux, miễn là có cài đặt máy ảo Java (Java Virtual Machine) Điều này cho phép lập trình viên áp dụng nguyên tắc "viết một lần, chạy mọi nơi" (write once, run anywhere).
Java là ngôn ngữ lập trình hướng đối tượng hoàn toàn, tương tự như C++, với tất cả các thành phần đều liên quan đến các đối tượng đã được định nghĩa Hàm main trong Java cũng nằm trong một lớp, thể hiện tính chất hướng đối tượng của ngôn ngữ này Java không hỗ trợ tính đa kế thừa như C++, nhưng thay vào đó, nó sử dụng khái niệm "interface" để cung cấp tính năng này Ngoài ra, Java còn hỗ trợ đa nhiệm và đa luồng, giúp tối ưu hóa hiệu suất khi thực thi các tác vụ song song.
Java hỗ trợ lập trình đa nhiệm cho phép nhiều tiến trình, tiểu trình có thể chạy song song cùng một thời điểm và tương tác với nhau
Chương trình ứng dụng viết bằng ngôn ngữ Java có thể chạy trên bất kỳ máy tính hay hệ điều hành nào, miễn là có cài đặt máy ảo Java Điều này giúp tăng tính linh hoạt và khả năng tương thích của ứng dụng Java trên nhiều nền tảng khác nhau.
Hỗ trợ mạnh cho việc phát triển ứng dụng:
Công nghệ Java đã phát triển mạnh mẽ nhờ sự hỗ trợ từ Sun Microsystem, cung cấp nhiều công cụ và thư viện lập trình phong phú Các phiên bản của Java như J2SE (Java 2 Standard Edition) cho phép phát triển ứng dụng đơn và ứng dụng client-server, trong khi J2EE (Java 2 Enterprise Edition) hỗ trợ xây dựng các ứng dụng thương mại Ngoài ra, J2ME (Java 2 Micro Edition) giúp phát triển ứng dụng cho các thiết bị di động và không dây, mở rộng khả năng ứng dụng của Java trong nhiều lĩnh vực khác nhau.
SVTH: Hoàng Thị Thu Ngọc – Lớp: 10CNTT4 Trang 5
1.1.3 Các ứng dụng của Java:
Java và ứng dụng Console: Ứng dụng Console là một chương trình nhập xuất văn bản tương tự như giao diện Console của hệ điều hành MS-DOS Loại ứng dụng này rất phù hợp cho những người mới bắt đầu học ngôn ngữ lập trình Java.
Các ứng dụng Console thường được sử dụng để minh họa cú pháp ngôn ngữ, các thuật toán và chương trình ứng dụng mà không cần giao diện người dùng đồ họa.
Java và ứng dụng Applet:
Java Applet là ứng dụng có thể nhúng và chạy trong trình duyệt web, từng cung cấp khả năng lập trình mạnh mẽ cho các trang web từ những ngày đầu của internet Tuy nhiên, sự phát triển của các trình duyệt với VB Script, Java Script, HTML, XML và sự cạnh tranh khốc liệt giữa Microsoft và Sun đã khiến Java Applet dần bị lãng quên Hiện nay, hầu hết các lập trình viên không còn mặn mà với Java Applet nữa.
Java và phát triển ứng dụng Desktop dùng AWT và JFC:
Việc phát triển ứng dụng với giao diện người dùng đồ họa đã được Java giải quyết thông qua thư viện AWT và JFC Trong đó, JFC nổi bật với sự phong phú và hỗ trợ mạnh mẽ hơn so với AWT, cho phép lập trình viên tạo ra giao diện trực quan cho bất kỳ ứng dụng nào Điều này giúp nâng cao trải nghiệm người dùng và tối ưu hóa quy trình phát triển ứng dụng.
Java và phát triển ứng dụng Web:
Java cung cấp hỗ trợ mạnh mẽ cho việc phát triển ứng dụng web thông qua công nghệ J2EE (Java 2 Enterprise Edition) J2EE cho phép tạo ra các ứng dụng web hiệu quả, cạnh tranh ngang tầm với công nghệ NET của Microsoft.
SVTH: Hoàng Thị Thu Ngọc – Lớp: 10CNTT4 Trang 6
Hiện nay có rất nhiều trang web nổi tiếng ở Việt Nam cũng như khắp nơi trên thế giới được xây dựng và phát triển trên công nghệ Java
Java và phát triển các ứng dụng nhúng:
Java Sun đã phát triển công nghệ J2ME (Java 2 Platform, Micro Edition) nhằm hỗ trợ việc phát triển phần mềm nhúng J2ME cung cấp môi trường cho các ứng dụng có thể hoạt động trên nhiều thiết bị cá nhân, bao gồm điện thoại di động, máy tính bỏ túi PDA, Palm và các thiết bị nhúng khác.
JDBC và kết nối cơ sở dữ liệu
JDBC là một API Java cơ bản, cung cấp các lớp và giao diện viết bằng Java để truy xuất và thao tác với nhiều loại hệ cơ sở dữ liệu khác nhau.
Kết hợp JDBC API với nền tảng Java mang lại nhiều lợi ích cho việc truy xuất dữ liệu từ các nguồn khác nhau, đồng thời cung cấp tính linh hoạt trong môi trường hỗ trợ máy ảo Java (JVM) Điều này giúp các nhà phát triển không cần viết chương trình riêng biệt để truy cập vào các hệ cơ sở dữ liệu như SQL Server, Oracle hay IBM DB2 Thay vào đó, chỉ với một chương trình duy nhất sử dụng JDBC, họ có thể gửi các câu lệnh SQL hoặc lệnh khác tới các nguồn dữ liệu và hệ cơ sở dữ liệu tương ứng.
JDBC API hỗ trợ trợ mô hình hai tầng cũng như mô hình ba tầng xử lý dữ liệu cho các mô hình truy xuất cơ sở dữ liệu
Trong mô hình hai tầng của hệ thống máy khách/máy chủ, máy khách có khả năng truy cập trực tiếp vào cơ sở dữ liệu của máy chủ mà không cần sử dụng công nghệ trung gian Trong môi trường JDBC, các ứng dụng Java đóng vai trò là máy khách, trong khi DBMS hoạt động như cơ sở dữ liệu máy chủ.
Mô hình hai tầng nổi bật với việc sử dụng JDBC API để truyền tải và gửi yêu cầu từ khách hàng đến cơ sở dữ liệu Cơ sở dữ liệu sẽ xử lý các yêu cầu này và trả về kết quả cho người dùng.
SVTH: Hoàng Thị Thu Ngọc – Lớp: 10CNTT4 Trang 7 cho biết rằng các hệ thống có thể hoạt động trên cùng một mạng hoặc trên các mạng khác nhau Kết quả được gửi trả lại cho khách hàng thông qua JDBC API.
Trong mô hình ba tầng, tầng giữa đóng vai trò quan trọng trong việc cung cấp dịch vụ, với một máy chủ thứ ba chịu trách nhiệm chuyển tiếp yêu cầu từ khách hàng tới máy chủ cơ sở dữ liệu Tầng giữa này giúp tách biệt các cơ sở dữ liệu máy chủ khỏi máy chủ WEB, nâng cao hiệu quả và bảo mật trong quá trình xử lý thông tin.
Máy chủ Proxy đóng vai trò quan trọng trong việc tăng cường an ninh bằng cách xử lý tất cả các yêu cầu đến máy chủ cơ sở dữ liệu Khi nhận được yêu cầu, máy chủ cơ sở dữ liệu sẽ xử lý và gửi kết quả trở lại máy chủ Proxy, từ đó kết quả được chuyển tiếp đến máy khách.
Mô hình ba tầng vượt trội hơn mô hình hai tầng nhờ vào việc đơn giản hóa quy trình và giảm chi phí triển khai ứng dụng Bên cạnh đó, nó còn cho phép quản lý và điều chỉnh quyền truy cập vào cơ sở dữ liệu một cách hiệu quả.
JDBC API là bộ sưu tập của các cách định nghĩa cơ sở dữ liệu theo nhiều cách khác nhau và các ứng dụng giao tiếp với nhau
JDBC API, được xây dựng trên nền tảng Java, đóng vai trò là tầng giữa trong ba tầng kiến trúc của ứng dụng Nó định nghĩa cách mở kết nối giữa ứng dụng và cơ sở dữ liệu, gửi yêu cầu tới cơ sở dữ liệu, thực thi các câu lệnh truy vấn SQL, và lấy kết quả truy vấn Mục tiêu của JDBC được thực hiện thông qua một tập hợp các giao diện Java, với mỗi lớp thực hiện riêng biệt cho từng cơ sở dữ liệu, được gọi là trình điều khiển JDBC (JDBC Driver).
1.2.3 Các bước kết nối JDBC API [6] :
Để nạp trình điều khiển kết nối trong JDBC, cần sử dụng phương thức forName của lớp Class để tạo ra một thể hiện của lớp kết nối dựa trên giao thức mà JDBC cung cấp.
SVTH: Hoàng Thị Thu Ngọc – Lớp: 10CNTT4 Trang 8 protected void driverTest () throws Exception{ try {
Class.forName("org.gjt.mm.mysql.Driver");
} catch (java.lang.ClassNotFoundException e) { throw new Exception("MySQL JDBC Driver not found ");
Để thiết lập kết nối đến cơ sở dữ liệu thông qua chuỗi kết nối, cần tạo một đối tượng của lớp Connection để nhận kết quả từ phương thức tĩnh getConnection của lớp DriverManager Phương thức này kiểm tra xem có trình điều khiển kết nối phù hợp với chuỗi kết nối mà lập trình viên đã cung cấp hay không Nếu có, một đối tượng thuộc lớp Connection sẽ được trả về, cho phép chương trình thực hiện các thao tác cần thiết với cơ sở dữ liệu.
String url = "jdbc:mysql://" + this.Host + ":3306/" + this.DataBase; try { this.connect =
DriverManager.getConnection(url, this.UserName, this.Password);
} catch (java.sql.SQLException e) { throw new Exception("Khong tim thay co so du lieu:
SVTH: Hoàng Thị Thu Ngọc – Lớp: 10CNTT4 Trang 9
- Tạo và thực thi một câu lệnh truy vấn đến cơ sở d liệu:
Khi 1 kết nối đã được thiết lập đến Database thành công, để có thể tác động lên cơ sở dữ liệu thông qua connection đó phải tạo ra 1 đối tượng để có thể thực thi các tác động lên cơ sở dữ liệu của chương trình thông qua các câu lệnh dạng SQL, đối tượng đó có thể là object của 1 trong 3 lớp sau :
+ CallableStatement protected Statement getStatement() throws Exception { if(this.statement==null? true: this.statement.isClosed()){ this.statement = this.ketnoiCSDL().createStatement();
- X lý ết uả nh n về s u hi thi hành lệnh truy vấn thành c ng trên cơ sở d liệu:
Lớp Statement cho phép thực thi lệnh SQL để tương tác với cơ sở dữ liệu thông qua phương thức executeQuery() Phương thức này thường được sử dụng cho các câu lệnh SQL thuộc dạng DDL (Data Definition Language) Kết quả trả về từ executeQuery() là một đối tượng ResultSet, chứa thông tin về kết quả truy vấn từ cơ sở dữ liệu Ví dụ, phương thức public ResultSet truyvanDL1(String sql) throws Exception sẽ thực hiện truy vấn SQL và trả về kết quả.
} catch(Exception e){ throw new Exception("Erro: " +e.getMessage() +" -
SVTH: Hoàng Thị Thu Ngọc – Lớp: 10CNTT4 Trang 10
Để đảm bảo kết nối và giải phóng tài nguyên hiệu quả, việc đóng kết nối là rất quan trọng Bước này giúp tránh tình trạng cơ sở dữ liệu không đủ bộ nhớ để cấp phát Đoạn mã public void Dongketnoi() sẽ kiểm tra nếu kết quả không null và chưa đóng, sau đó sẽ thực hiện đóng kết nối và gán kết quả thành null.
!this.statement.isClosed()){ this.statement.close(); this.statement = null;
} if(this.connect!=null && !this.connect.isClosed()){ this.connect.close(); this.connect =null;
Mô hình MVC trong lập trình hướng đối tượng
MVC là viết tắt các chữ cái đầu của 3 từ Model, View, Controller MVC tổng quát chia giao diện người dùng của dự án ra thành 3 phần:
Model là một thành phần quan trọng trong ứng dụng, chịu trách nhiệm định nghĩa hàm, truy xuất dữ liệu và thực hiện các tính toán logic Trong kiến trúc MVC, Model lưu trữ thông tin và trạng thái của các đối tượng, thường được ánh xạ từ bảng trong cơ sở dữ liệu.
View là phần đảm nhận việc hiển thị thông tin chính xác cho người dùng thông qua giao diện Các thành phần này chịu trách nhiệm trình bày dữ liệu, thường được lấy từ các thành phần Models.
Controller là thành phần chịu trách nhiệm xử lý và phản hồi các dữ liệu đầu vào từ người dùng, bao gồm sự kiện chuột, bàn phím và các tương tác với các điều khiển Trong kiến trúc MVC, Controller đảm nhận việc quản lý các tác động liên quan đến giao diện, thực hiện các thao tác với models và lựa chọn view phù hợp để hiển thị.
Trong kiến trúc MVC, View chỉ đảm nhận việc hiển thị giao diện, trong khi Controller quản lý dòng nhập xuất từ người dùng Mô hình MVC hiện đại loại bỏ hoàn toàn các xử lý logic trong View, chuyển giao nhiệm vụ này cho Controller Controller không chỉ tương tác với Model mà còn cập nhật View khi có thay đổi từ Model, đóng vai trò là cầu nối giữa người dùng và ứng dụng.
Trong mô hình MVC cổ điển, View đầu tiên bắt lấy các sự kiện và sau đó chuyển giao cho Controller xử lý, cập nhật thay đổi từ Model
So với mô hình MVC cổ điển, mô hình MVC hiện đại tách biệt hoàn toàn View khỏi các xử lý, bao gồm cả các xử lý cơ bản ở mức giao diện, mà giao cho Controller Sự tách biệt này giúp việc kiểm tra hệ thống trở nên thuận lợi hơn, vì Model và Controller có thể được kiểm tra độc lập mà không phụ thuộc vào View.
SVTH: Hoàng Thị Thu Ngọc – Lớp: 10CNTT4 Trang 12
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Thực trạng quản lý điểm cho học sinh và các yêu cầu chức năng
Quản lý điểm là một nhiệm vụ quan trọng trong các trường học, nhưng nhiều nơi vẫn thực hiện theo cách thủ công, dẫn đến hiệu quả chưa cao Ở các trường trung học phổ thông hiện nay, công việc quản lý điểm bao gồm nhiều nhiệm vụ khác nhau.
- Nhập điểm cho học sinh, sửa chữa điểm nếu có sai sót xảy ra
- Tính điểm trung bình môn học
- Xếp loại học sinh sau mỗi kì học, năm học thông qua điểm trung bình tất cả các môn học
- Xem bảng điểm của từng lớp sau khi tổng kết kết quả của các học kỳ và cả năm
Công việc quản lý điểm này đòi hỏi nhiều kĩ năng từ người quản lý, tốn nhiều thời gian và việc nhầm lẫn là không thể tránh khỏi.
Các quy định chung trong việc tính điểm cho học sinh
2.2.1 Các hình thức kiểm tra, loại bài và hệ số điểm bài kiểm tra:
Các hình thức kiểm tra: Có 3 hình thức kiểm tra đối với học sinh trung học phổ thông: Kiểm tra miệng, kiểm tra viết và kiểm tra thực hành
Các loại bài kiểm tra: Có 2 loại bài kiểm tra:
- Kiểm tra thường xuyên : Kiểm tra miệng, kiểm tra 15 phút
- Kiểm tra định kỳ: Kiểm tra một tiết, kiểm tra cuối kỳ
Hệ số điểm với các loại bài kiểm tra:
- Điểm kiểm tra thường xuyên gồm kiểm tra miệng và kiểm tra 15 phút tính hệ số 1
- Điểm kiểm tra 1 tiết, kiểm tra thực hành tính hệ số 2
- Điểm kiểm tra cuối kỳ tính hệ số 3
SVTH: Hoàng Thị Thu Ngọc – Lớp: 10CNTT4 Trang 13
2.2.2 Cách tính điểm của mỗi môn học, mỗi học kỳ, cả năm học: Điểm các bài kiểm tra của học sinh phải nằm trong khoảng 0