1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Phần mềm quản lý Điểm sinh viên Để quản lý thông tin sinh viên và Điểm của sinh viên các môn tương Ứng giúp cho người quản lý dễ dàng xem và cập nhật Điểm của sinh viên theo môn học

20 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Phần mềm quản lý điểm sinh viên để quản lý thông tin sinh viên và điểm của sinh viên các môn tương ứng giúp cho người quản lý dễ dàng xem và cập nhật điểm của sinh viên theo môn học
Định dạng
Số trang 20
Dung lượng 486,59 KB

Nội dung

Giới thiệu đề tài Phần mềm quản lý điểm sinh viên để quản lý thông tin sinh viên và điểm của sinh viên các môn tương ứng.. Cơ sở dữ liệu - Đã biết cách cài đặt và cấu hình SQL - Biết các

Trang 1

Mục lục

Chương 1 Tổng quan 2

1.1 Giới thiệu đề tài 2

1.2 Các kiến thức sử dụng trong bài 2

1.2.1 Cơ sở dữ liệu 2

1.2.2 Ngôn ngữ lập trình 2

Chương 2 Phân tích thiết kế 4

2.1 Phân tích và thiết kế hệ thống 4

2.1.1 Phân tích chương trình 4

2.1.2 Thiết kế cơ sở dữ liệu 5

2.2 Xây dựng các chức năng 8

Chương 3 Chương trình phần mềm 9

3.1 Giao diện 9

3.2 Một số đoạn code chính (copy một số đoạn code làm mẫu) 13

Kết luận 21

Trang 2

Chương 1 Tổng quan

1.1 Giới thiệu đề tài

Phần mềm quản lý điểm sinh viên để quản lý thông tin sinh viên và điểm của sinh viên các môn tương ứng Giúp cho người quản lý dễ dàng xem và cập nhật điểm của sinh viên theo môn học

1.2 Các kiến thức sử dụng trong bài

1.2.1 Cơ sở dữ liệu

- Đã biết cách cài đặt và cấu hình SQL

- Biết cách tạo bảng và liên kết giữa các bảng trong SQL

- Biết sử dụng các câu lệnh truy vấn căn bản như:

o Select : Để lấy dữ liệu từ cơ sở dữ liệu

o Insert: Để ghi dữ liệu vào cơ sở dữ liệu

o Update: Để cập nhật thông tin một bản ghi trong cơ sở dữ liệu

o Delete: Để xóa một bản ghi trong cơ sở dữ liệu

o Câu lệnh select sử dụng thêm các điều kiện where để lọc dữ liệu

1.2.2 Ngôn ngữ lập trình

- Biết cách sử dụng thư viện để kết nối với SQL Sever

- Biết cách thiết kế giao diện chương trình

- Biết cách khai báo biến, sử dụng các biến và thực hiện được các chức năng như:

o Hiển thị dữ liệu trong cơ sở dữ liệu lên table trong Java

o Thêm dữ liệu từ giao diện vào cơ sở dữ liệu từ code Java

o Cập nhật thông tin của bản ghi trong cơ sở dữ liệu từ code Java

o Xóa một bản ghi trong cơ sở dữ liệu từ code Java

Trang 3

Chương 2 Phân tích thiết kế

2.1 Phân tích và thiết kế hệ thống

2.1.1 Phân tích chương trình

Phần mềm quản lý điểm sinh viên gồm các chức năng: (Liệt kê các chức năng trong phần mềm của các em ra nhé)

- Quản lý sinh viên: Quản lý thông tin sinh viên theo lớp và khoa

- Quản lý điểm: Quản lý điểm của các sinh viên theo môn học

- Quản lý lớp học: Quản lý lớp sinh viên

- Quản lý khoa: Quản lý các khoa của trường

- Quản lý người dùng: Quản lý thông tin người dùng hệ thống

Trang 4

2.1.2 Thiết kế cơ sở dữ liệu

Trang 5

2.2 Xây dựng các chức năng

 dbo.Students: Đại diện cho sinh viên, với các thuộc tính:

StudentID (Khóa chính): Mã định danh duy nhất cho mỗi sinh viên.

FirstName: Tên của sinh viên.

LastName: Họ của sinh viên.

DateOfBirth: Ngày sinh của sinh viên.

Email: Địa chỉ email của sinh viên.

 dbo.Courses: Đại diện cho các khóa học, với các thuộc tính:

CourseID (Khóa chính): Mã định danh duy nhất cho mỗi khóa học.

CourseName: Tên của khóa học.

 dbo.Enrollments: Đại diện cho việc ghi danh của sinh viên vào các khóa học, với các thuộc tính:

EnrollmentID (Khóa chính): Mã định danh duy nhất cho mỗi lần ghi danh.

StudentID (Khóa ngoại): Liên kết đến dbo.Students để chỉ ra sinh viên trong lần ghi danh.

CourseID (Khóa ngoại): Liên kết đến dbo.Courses để chỉ ra khóa học mà sinh viên ghi danh vào.

EnrollmentDate: Ngày sinh viên ghi danh vào khóa học.

Chương 3 Chương trình phần mềm

3Giao diện chương trình

Trang 7

- Giao diện quản lý sinh viên

Trang 8

- Giao diện khoá học

Trang 9

3.2Một số đoạn code chính (copy một số đoạn code làm mẫu)

private void connectToDatabase() {

try {

String url =

"jdbc:sqlserver://localhost:1433;databaseName=quanlysinhvien;user=sa;passwo rd=@Ducquyenbg123;encrypt=true;trustServerCertificate=true;";

connection = DriverManager.getConnection(url);

System.out.println("Kết nối thành công đến cơ sở dữ liệu.");

} catch (SQLException e) {

e.printStackTrace();

JOptionPane.showMessageDialog(this, "Không thể kết nối đến cơ sở dữ liệu.");

}

}

private void loadStudents() {

try {

Statement stmt = connection.createStatement();

ResultSet rs = stmt.executeQuery("SELECT * FROM Students");

tableModel.setRowCount(0); // Xóa các hàng cũ trong bảng

while (rs.next()) {

int id = rs.getInt("StudentID");

Trang 10

String firstName = rs.getString("FirstName");

String lastName = rs.getString("LastName");

Date dateOfBirth = rs.getDate("DateOfBirth");

String email = rs.getString("Email");

tableModel.addRow(new Object[]{id, firstName, lastName, dateOfBirth, email});

}

} catch (SQLException e) {

e.printStackTrace();

}

}

private void loadCourses() {

try {

Statement stmt = connection.createStatement();

ResultSet rs = stmt.executeQuery("SELECT * FROM Courses");

courseTableModel.setRowCount(0); // Xóa các hàng cũ trong bảng

while (rs.next()) {

int id = rs.getInt("CourseID");

String courseName = rs.getString("CourseName");

Trang 11

courseTableModel.addRow(new Object[]{id, courseName});

}

} catch (SQLException e) {

e.printStackTrace();

}

}

private void loadEnrolledStudents(int courseId) {

try {

enrolledStudentsModel.setRowCount(0); // Xóa các hàng cũ trong bảng String query = "SELECT s.StudentID, s.FirstName, s.LastName, s.Email

" +

"FROM Students s " +

"JOIN Enrollments e ON s.StudentID = e.StudentID " +

"WHERE e.CourseID = ?";

PreparedStatement pstmt = connection.prepareStatement(query);

pstmt.setInt(1, courseId);

ResultSet rs = pstmt.executeQuery();

while (rs.next()) {

int id = rs.getInt("StudentID");

String firstName = rs.getString("FirstName");

String lastName = rs.getString("LastName");

Trang 12

String email = rs.getString("Email");

enrolledStudentsModel.addRow(new Object[]{id, firstName, lastName, email});

}

} catch (SQLException e) {

e.printStackTrace();

}

}

private class AddStudentListener implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

String firstName = txtFirstName.getText();

String lastName = txtLastName.getText();

String dateOfBirth = txtDateOfBirth.getText();

String email = txtEmail.getText();

try {

String query = "INSERT INTO Students (FirstName, LastName, DateOfBirth, Email) VALUES (?, ?, ?, ?)";

PreparedStatement pstmt = connection.prepareStatement(query);

pstmt.setString(1, firstName);

Trang 13

pstmt.setString(2, lastName);

pstmt.setDate(3, Date.valueOf(dateOfBirth)); // Đảm bảo định dạng YYYY-MM-DD

pstmt.setString(4, email);

pstmt.executeUpdate();

JOptionPane.showMessageDialog(StudentManagementApp.this,

"Sinh viên đã được thêm thành công.");

loadStudents(); // Tải lại danh sách sinh viên

clearStudentInputFields();

} catch (SQLException ex) {

ex.printStackTrace();

JOptionPane.showMessageDialog(StudentManagementApp.this, "Lỗi khi thêm sinh viên.");

} catch (IllegalArgumentException ex) {

ex.printStackTrace();

JOptionPane.showMessageDialog(StudentManagementApp.this,

"Ngày sinh không hợp lệ.");

}

}

}

private class UpdateStudentListener implements ActionListener {

Trang 14

@Override

public void actionPerformed(ActionEvent e) {

if (selectedStudentId == -1) {

JOptionPane.showMessageDialog(StudentManagementApp.this, "Vui lòng chọn một sinh viên để sửa.");

return;

}

String firstName = txtFirstName.getText();

String lastName = txtLastName.getText();

String dateOfBirth = txtDateOfBirth.getText();

String email = txtEmail.getText();

try {

String query = "UPDATE Students SET FirstName = ?, LastName

= ?, DateOfBirth = ?, Email = ? WHERE StudentID = ?";

PreparedStatement pstmt = connection.prepareStatement(query);

pstmt.setString(1, firstName);

pstmt.setString(2, lastName);

pstmt.setDate(3, Date.valueOf(dateOfBirth)); // Đảm bảo định dạng YYYY-MM-DD

pstmt.setString(4, email);

pstmt.setInt(5, selectedStudentId);

Trang 15

pstmt.executeUpdate();

JOptionPane.showMessageDialog(StudentManagementApp.this,

"Sinh viên đã được sửa thành công.");

loadStudents(); // Tải lại danh sách sinh viên

clearStudentInputFields();

} catch (SQLException ex) {

ex.printStackTrace();

JOptionPane.showMessageDialog(StudentManagementApp.this, "Lỗi khi sửa sinh viên.");

} catch (IllegalArgumentException ex) {

ex.printStackTrace();

JOptionPane.showMessageDialog(StudentManagementApp.this,

"Ngày sinh không hợp lệ.");

}

}

}

private class DeleteStudentListener implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

if (selectedStudentId == -1) {

Trang 16

JOptionPane.showMessageDialog(StudentManagementApp.this, "Vui lòng chọn một sinh viên để xóa.");

return;

}

try {

String query = "DELETE FROM Students WHERE StudentID = ?"; PreparedStatement pstmt = connection.prepareStatement(query);

pstmt.setInt(1, selectedStudentId);

pstmt.executeUpdate();

JOptionPane.showMessageDialog(StudentManagementApp.this,

"Sinh viên đã được xóa thành công.");

loadStudents(); // Tải lại danh sách sinh viên

clearStudentInputFields();

} catch (SQLException ex) {

ex.printStackTrace();

JOptionPane.showMessageDialog(StudentManagementApp.this, "Lỗi khi xóa sinh viên.");

}

}

}

Trang 17

private class AddCourseListener implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

String courseName = txtCourseName.getText();

try {

String query = "INSERT INTO Courses (CourseName) VALUES (?)"; PreparedStatement pstmt = connection.prepareStatement(query);

pstmt.setString(1, courseName);

pstmt.executeUpdate();

JOptionPane.showMessageDialog(StudentManagementApp.this,

"Khóa học đã được thêm thành công.");

loadCourses(); // Tải lại danh sách khóa học

clearCourseInputFields();

} catch (SQLException ex) {

ex.printStackTrace();

JOptionPane.showMessageDialog(StudentManagementApp.this, "Lỗi khi thêm khóa học.");

}

}

}

Trang 18

private class DeleteCourseListener implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

if (selectedCourseId == -1) {

JOptionPane.showMessageDialog(StudentManagementApp.this, "Vui lòng chọn một khóa học để xóa.");

return;

}

try {

String query = "DELETE FROM Courses WHERE CourseID = ?";

PreparedStatement pstmt = connection.prepareStatement(query);

pstmt.setInt(1, selectedCourseId);

pstmt.executeUpdate();

JOptionPane.showMessageDialog(StudentManagementApp.this,

"Khóa học đã được xóa thành công.");

loadCourses(); // Tải lại danh sách khóa học

clearCourseInputFields();

} catch (SQLException ex) {

ex.printStackTrace();

JOptionPane.showMessageDialog(StudentManagementApp.this, "Lỗi khi xóa khóa học.");

Trang 19

}

}

}

Trang 20

Kết luận

Trên đây là nội dung đồ án lập trình java với đề tài quản lý điểm sinh viên của

em Do thời gian và trình độ còn hạn chế nên chương trình còn chưa được hoàn thiện Em rất mong nhận được ý kiến đóng góp của thầy cô để em có thể hiểu hơn

và hoàn thiện hơn cho các đồ án sau

Em xin trân thành cảm ơn thầy cô !

Ngày đăng: 24/12/2024, 22:29

w