- 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.. Phần mềm Quản lý Sinh viên gồm các chức năn
Trang 1TRƯỜNG ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN JAVA Quản lý Sinh Viên
Họ tên: Nguyễn Bích Ngọc
MSV: 2722212538 Lớp: TH27.06
Hà Nội, 2023
Trang 2MỤC LỤC
LỜI MỞ ĐẦU 3
CHƯƠNG 1: TỔNG QUAN VỀ JAVA 4
1 Java là gì? 4
2 Giới thiệu đề tài 4
3 Các kiến thức được sử dụng trong bài 4
3.1 Cơ sở dữ liệu: 4
3.2 Ngôn ngữ lập trình 5
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ 6
1 Phân tích và thiết kế hệ thống 6
1.1 Phân tích và thiết kế chương trình 6
1.2 Thiết kế cơ sở dữ liệu 6
2 Thiết kế các chức năng 9
CHƯƠNG 3: CHƯƠNG TRÌNH PHẦN MỀM 10
1 Giao diện: 10
2 Một số đoạn code chính trong bài 13
KẾT LUẬN 20
Trang 3LỜI MỞ ĐẦU
Công nghệ thông tin là ngành học đào tạo để sử dụng phần mềm máy tính và các phần mềm máy tính phân phối và xử lý các dữ liệu thông tin, đồng thời để trao đổi, lưu trữ và chuyển đổi dữ liệu thông tin dưới nhiều hình thức Ngày nay, công nghệ thông tin ngày càng được chú trọng Sự phát triển của nó ngày càng một đa dạng, nó được ứng dụng trong nhiều lĩnh vực như kinh tế, giáo dục, góp phần vào sự phát triển của một
xã hội tiên tiến Với sự phát triển không ngừng ấy, việc áp dụng công nghệ thông tin vào việc quản lý tổ chức, công ty cũng trở nên rộng rãi tạo nên những bước đột phá mạnh mẽ
Là một ngành kĩ thuật, việc làm đồ án giúp cho sinh viên hiểu biết rõ hơn, sâu hơn về lĩnh vực mà mình đang học Để từ đó làm nền tảng cho việc phát triển sau này Vì vậy, khi được giao yêu cầu, em đã lựa chọn đề tài “Quản lý sinh viên” để giúp em cũng như các bạn sinh viên hiểu rõ hơn về các form đăng nhập, danh sách liên kết Nó được xây dựng một cách rất khoa học và được ứng dụng rất nhiều trong thực tế hiện nay
Trang 4CHƯƠNG 1:
TỔNG QUAN VỀ JAVA
1 Java là gì?
Java là một ngôn ngữ lập trình hướng đối tượng dựa trên lớp, được thiết kế để có càng
ít phụ thuộc thực thi càng tốt Nó là ngôn ngữ lập trình có mục đích chung cho phép các nhà phát triển ứng dụng viết một lần, chạy ở mọi nơi, nghĩa là mã Java đã biên dịch có thể chạy trên tất cả các nền tảng hỗ trợ Java mà không cần biên dịch lại
2 Giới thiệu đề tài.
Phần mềm “Quản lí Sinh viên” là 1 phần mềm đăng nhập, vừa giúp sinh viên đăng nhập để kiểm tra được thông tin cá nhân, điểm và tín chỉ môn học, vừa giúp Khoa và nhà trường quản lý hàng nghìn sinh viên dễ dàng hơn
3 Các kiến thức được sử dụng trong bài.
3.1 Cơ sở dữ liệu:
- Đã biết cách cài đặt và cấu hình MySQL
- Biết cách tạo bảng và liên kết giữa các bảng trong MySQL
- 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
Trang 53.2 Ngôn ngữ lập trình.
- Biết cách sử dụng thư viện để kết nối với MySQL
- 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 6CHƯƠNG 2:
PHÂN TÍCH VÀ THIẾT KẾ
1 Phân tích và thiết kế hệ thống.
1.1 Phân tích và thiết kế chương trình.
Phần mềm Quản lý Sinh viên gồm các chức năng: Quản lý sinh viên: Quản lý thông tin sinh viên theo lớp và khoa
- Quản lý môn học: Quản lý các môn học mà Sinh viên đó đang 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
1.2 Thiết kế cơ sở dữ liệu.
- Diagram cơ sở dữ liệu:
Trang 7- Thiết kế chi tiết cơ sở dữ liệu:
create table Khoa (
)
go
create table KhoaHoc (
)
go
create table ChuongTrinh (
)
go
create table Lop (
foreign key ( MaKhoa ) references Khoa ( MaKhoa ),
foreign key ( MaKhoaHoc ) references KhoaHoc ( MaKhoaHoc ),
foreign key ( MaCT ) references ChuongTrinh ( MaCT ) )
go
create table SinhVien (
foreign key ( MaLop ) references Lop ( MaLop )
)
go
Trang 8MaMH varchar ( 10 ) primary key ,
foreign key ( MaKhoa ) references Khoa ( MaKhoa ) )
go
create table KetQua (
primary key ( MaSV , MaMH , LanThi ),
foreign key ( MaSV ) references SinhVien ( MaSV ),
foreign key ( MaMH ) references MonHoc ( MaMH ) )
go
create table GiangKhoa (
primary key ( MaCT , MaKhoa MaMH NamHoc , , ),
foreign key ( MaCT ) references ChuongTrinh ( MaCT ),
foreign key ( MaKhoa ) references Khoa ( MaKhoa ),
foreign key ( MaMH ) references MonHoc ( MaMH ) )
Trang 92 Thiết kế các chức năng.
Mô tả chi tiết xây dựng các chức năng trong phần mềm Quản lý Sinh viên (Do thời hạn gian có hạn nên em tập trung thiết kế 3 chức năng chính cho phần mềm)
- Quản lí thông tin Sinh viên:
o Liệt kê danh sách sinh viên và hiển thị dữ liệu lên table
o Thêm mới một sinh viên bao gồm các thông tin: Mã sinh viên, Họ đệm, tên, ngày sinh, giới tính, địa chỉ
o Cập nhật thông tin của một sinh viên đã có trong cơ sở dữ liệu
o Xóa một sinh viên: Xóa thông tin về sinh viên(ví dụ: Xóa thông tin của 1 sinh viên đã nghỉ học)
- Quản lí người dùng:
o Liệt kê danh sách người dùng và hiển thị dữ liệu lên table
o Thêm mới một người dùng bao gồm các thông tin: tên đăng nhập, mật khẩu, tên người dùng
o Cập nhật thông tin một người dùng đã có trong cơ sở dữ liệu
o Xóa một người dùng: Xóa thông tin về người dùng
- Quản lí Khoa:
o Liệt kê danh sách Khoa và hiển thị dữ liệu lên table
o Tìm kiếm một sinh viên bao gồm các thông tin: Mã khoa, tên khoa,
mã lớp của sinh viên
o Xóa một sinh viên: Xóa thông tin của sinh viên
CHƯƠNG 3:
Trang 10CHƯƠNG TRÌNH PHẦN MỀM
1 Giao diện:
- Giao diện hệ thống đăng nhập:
Trang 11- Giao diện quản lí thông tin Sinh viên:
Trang 12- Giao diện quản lý Khoa:
Trang 132 Một số đoạn code chính trong bài.
- Code kết nối CSDL với Java:
package qlsinhvien;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Qlsinhvien {
public static Connection getConnection(){
Connection connection = null;
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String url =
"jdbc:sqlserver://localhost:1433;databaseName=qlsinhvien;encrypt=false"; String user = "sa";
String pass = "123456789";
connection = DriverManager.getConnection(url, user, pass); System.out.println("Kết nối thành công");
}catch(ClassNotFoundException | SQLException ex){
}
return connection;
Trang 14}
public static void main(String[] args) {
System.out.println(getConnection());
}
}
- Load dữ liệu lên Table:
public class danhsachsinhvien extends javax.swing.JFrame { final String header[] =
{"MaSV","Hodem","Ten","MaLop","Ngaysinh","Gioitinh","Diachi"}; final DefaultTableModel tb = new DefaultTableModel(header,0); Qlsinhvien cn = new Qlsinhvien();
Connection conn;
public danhsachsinhvien() {
initComponents();
loadbang();
}
Trang 15Vector row = null;
String sql = "select *from sinhvien";
java.sql.Statement st = conn.createStatement(); ResultSet rs = st.executeQuery(sql);
ResultSetMetaData metadata = rs.getMetaData(); number = metadata.getColumnCount(); tb.setRowCount(0);
while (rs.next()){
row = new Vector();
for (int i=1;i<= number;i++)
row.addElement(rs.getString(i));
tb.addRow(row);
dgvsinhvien.setModel(tb);
}
st.close();
rs.close();
conn.close();
}catch (Exception e){
}
}
Trang 16- Code Thêm, Sửa, Xóa:
o Thêm:
private void btnthemActionPerformed(java.awt.event.ActionEvent evt) { conn = cn.getConnection();
try{
if(txtmasv.getText().equals("")||txthodem.getText().equals("")||
txtten.getText().equals("")||txtmalop.getText().equals("")||
txtngaysinh.getText().equals("")||txtgioitinh.getText().equals("")||
txtdiachi.getText().equals("")){
JOptionPane.showMessageDialog(this,"Cần nhập đủ dữ liệu");
}else{
StringBuffer sv = new StringBuffer();
String sql_check_pk = "select MaSV from sinhvien where MaSV
='"+txtmasv.getText()+"'";
java.sql.Statement st = conn.createStatement();
ResultSet rs = st.executeQuery(sql_check_pk);
if(rs.next()){
Trang 17JOptionPane.showMessageDialog(this,sv.toString());
}else{
String sql = "Insert into sinhvien values('"+txtmasv.getText()
+"','"+txthodem.getText()+"','"+txtten.getText()+"','"+txtmalop.getText()
+"','"+txtngaysinh.getText()+"','"+txtgioitinh.getText()+"','"+txtdiachi.getText()+"')";
st = conn.createStatement();
int kq = st.executeUpdate(sql);
if (kq>0){
JOptionPane.showMessageDialog(this,"thêm mới thành công"); xoatrang();
}
}
}
}catch (Exception e){
}
}
o Sửa: private void btnsuaActionPerformed(java.awt.event.ActionEvent evt) {
conn = cn.getConnection(); try{
Trang 18java.sql.PreparedStatement comm = conn.prepareStatement("update sinhvien set Hodem=?,Ten=?,MaLop=?,Ngaysinh=?,Gioitinh=?,Diachi=? where MaSV=?"); comm.setString(7,txtmasv.getText());
comm.setString(1,txthodem.getText());
comm.setString(2,txtten.getText());
comm.setString(3,txtmalop.getText());
comm.setString(4,txtngaysinh.getText());
comm.setString(5,txtgioitinh.getText());
comm.setString(6,txtdiachi.getText());
comm.executeUpdate();
tb.setRowCount(0);
loadbang();
xoatrang();
}catch(Exception e){
}
}
o Xóa:
private void btnxoaActionPerformed(java.awt.event.ActionEvent evt) {
Trang 19
comm.setString(1,dgvsinhvien.getValueAt(dgvsinhvien.getSelectedRow(),0).toString());
if (JOptionPane.showConfirmDialog(this,"Xóa sinh vien này ","đồng
ý",JOptionPane.YES_NO_OPTION )== JOptionPane.YES_OPTION){
comm.executeUpdate();
tb.setRowCount(0);
loadbang();
xoatrang();
}
}catch (Exception e){
}
}
Trang 20KẾT LUẬN
Sau thời gian nghiên cứu và tìm hiểu đề tài, cùng với sự hướng dẫn nhiệt tình của thầy cô và bạn bè Hôm nay, báo cáo cơ bản đã được hoàn thành và đạt được một số kết quả như sau: em đã có thể tạo cho riêng mình một sản phẩm thực
sự thông qua lập trình, qua đó em cũng có thể dễ dàng hiểu được mối quan hệ giữa các cấu trúc, câu lệnh lập trình và hành vi của các đối tượng thông qua các hình ảnh giao diện Bằng cách này, em đã hiểu rõ và rút ra được nhiều kinh nghiệm với các câu lệnh, cấu trúc, chương trình (liên quan đến lập trình Java) mà em sẽ được giảng dạy sau này
Mặc dù đã cố gắng để hoàn thiện nhưng đây là lần đầu tiên viết một chương trình hoàn chỉnh nên không thể tránh được những thiết sót về mặt kỹ thuật lập trình cũng như khâu tổ chức dữ liệu Mặt khác, do thời gian hạn chế nên chương trình còn tồn đọng một số lỗi nhỏ, kính mong quý thầy cô và các bạn đóng góp ý kiến để chương trình của em ngày một hoàn thiện và được sử dụng rộng rãi hơn
Em xin chân thành cảm ơn!