Professional Documents
Culture Documents
⸎⸎⸎⸎⸎
BÀI TẬP LỚN KẾT THÚC HỌC PHẦN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
Đề số: 03
Mã SV : 22010165
1
Mục lục
1. Sơ đồ ORD…..…………………………………………………………………………….3
2.Mục đích…………………………………………………………………………………….5
3.Các Chức năng chính của chương trình……………………………………….5
3.1 Đăng nhập………………………………………………………………………………………..5
3.2 Giao diện chính chương trình…………………………………………………………..6
3.3 Các chức năng chính…………………………………………………………………………8
3.3.1 Thêm sim…………………………………………………………………………………………………9
2
1. Sơ đồ ORD
Sim
- soDienThoai: String
- tenChuSoHuu: String
- Sotien : int
+ Sim()
+ Sim(soDienThoai:String,tenChuSoHuu:String,Sotien:int)
+ getSoDienThoai(): String
+ setSoDienThoai( soDienThoai:String ): void
+ getTenChuSoHuu(): String
+ setTenChuSoHuu(tenChuSoHuu: String): void
+ getSotien(): int
+ setSotien(Sotien: int): void
extends
Simmang Simgoidien
- data : int - phutGoi: int
+ Simmang(data: int) + Simgoidien(phutGoi: int)
+ Simmang(soDienThoai:String,tenChuSoHuu:String + Simgoidien(soDienThoai:String,tenChuSoHuu:String
,Sotien:int,data:int) ,Sotien:int, phutGoi :int)
+ getData(): int + getPhutGoi() : int
+ setData(data: int) : void + setPhutGoi(phutGoi: int): void
3
4
2. Mục đích:
- Chương trình được xây dựng bằng ngôn ngữ Java,với mục đích hỗ trợ công
tác quản lý sim trong một công ty,tiết kiệm thời gian tìm kiếm thông tin sim
cho những người quản lý
-Sim được quản lý thông qua các thông tin trong dữ liệu sim bao gồm: Số
sim, tên người dùng, số tiền còn trong sim
-Người quản lý sẽ quản lý với tư cách là admin khi đăng nhập vào chương
trình với các thông tin Username,Password.
Tại đây người quản lý đăng nhập vào chương trình với tư cách là admin,từ đó
cập nhật các thông tin liên quan đến Sim ở trong đó.
- khi đăng nhập thành công hiện thông báo:
5
Code button đăng nhập
3.2 Giao diện chính chương trình
- Đăng nhập thành công trang chủ sẽ xuất hiện.
- Để vào giao diện quản lý ta cần mở Menu. Menu gồm những chức năng sau:
+ Chuyển qua bảng sim mạng hoặc gọi
+ Đăng xuất
Menu
Trang Chủ
6
Giao diện menu
- Giao diện chính gồm 2 bảng là bảng sim mạng và sim gọi điện. Trong đó:
+ Bảng sim mạng gồm các trường thông tin: Số sim,Tên người dùng, Số tiền,
Data
+ Bảng sim gọi gồm các trường thông tin: Số sim,Tên người dùng, Số tiền, Phút
gọi
7
Bảng sim gọi
3.3 Các chức năng của chương trình
Vì bảng sim mạng và bảng sim gọi tương tự nhau nên em xin phép demo 1 bảng
sim mạng:
- Ở trong 1 bảng có những chức năng như sau:
1.Thêm sim
2. Xóa sim
3. Sửa sim
4.Thống kê
5.Sắp xếp
6.Tìm kiếm
7.Lưu file nhị phân
8.Đăng xuất
8
3.3.1: Thêm sim
- Khi ấn vào thêm sim các trường thông tin sẽ trống và chúng ta sẽ điền thông
tin vào những trường đó:
- Khi ta ấn “Lưu”, thông tin sẽ được điền lên table. Nếu ấn “Hủy” thì sẽ trở về
ban đầu.
9
- Lưu ý: Nếu các trường để trống hoặc số điện thoại trùng với các số trong table
chương trình sẽ thông báo lỗi .
10
Báo lỗi khi trùng số sim
3.3.2: Xóa Sim
- Chức năng xóa cho phép nhân viên quản lý xóa toàn bộ thông tin Số sim ra
khỏi hệ thống thông qua nhập Số sim.
-Khi ấn vào “Xóa” sẽ hiện lên thông báo nhập số sim cần xóa:
11
Ví dụ: Xóa số 023456789 với tên người dùng là Lê Văn B:
12
Báo lỗi khi không tìm thấy sim cần xóa
+ Bước 2: chúng ta ấn vào “ Sửa Sim” màn hình sẽ hiện lên như sau:
13
+Bước 3 Chúng ta sửa thông tin của các trường muốn sửa:
Để hoàn thành thao tác sửa chúng ta ấn “Lưu” , nếu không muốn sửa nữa
chúng ta ấn “Hủy”
14
Hình ảnh khi sửa thành công
3.3.4: Thống kê
Chương trình sẽ giúp nhân viên quản lý thống kê những thông tin sau : Tổng số
sim, Tổng số tiền, Tổng lượng dữ liệu, Tổng số Sim hết Data.
- Khi ấn vào nút “Thống kê”, chương trình sẽ hiện lên thông báo dưới đây:
15
3.3.5: Sắp xếp
- Chức năng sắp xếp trong chương trình cho phép nhân viên quản lý sắp xếp
thông tin sim theo Tên người dùng theo thứ tự từ A -> Z,nhằm tạo ra sự thuận
tiện và dễ dàng trong quá trình tìm kiếm và xem thông tin của người dùng.
- Khi ấn vào nút “Sắp xếp” table sẽ sắp xếp theo tên theo thứ tự lớn dần. Dưới
đây là hình ảnh sau khi sắp xếp:
16
3.3.6: Tìm kiếm
- Giao diện chính cung cấp chức năng tìm kiếm giúp nhân viên quản lý có thể dễ
dàng tìm kiếm thông tin qua Số sim
Ví dụ bạn cần tìm kiếm thông tin của số sim “0123456789”
Bước 1: Điền thông tin vào ô dưới đây
17
3.3.7. Lưu vào file nhị phân
- Sau đó hiện lên thông báo chúng ta ấn “OK” là hoàn thành lưu file:
18
3.3.8. Đăng xuất
Để đăng xuất ta ấn vào icon Menu:
19
4.Một số Source code chính
private void btThemActionPerformed(java.awt.event.ActionEvent evt) {
this.txtSosim.setText("");
this.txtTen.setText("");
this.txtTien.setText("");
this.txtData.setText("");
OnOff(false,true);
check=0;
}
// bt Lưu có 2 chức năng nếu check =0 cho chức năng them sim, check =1 cho
chức năng sửa sim
private void btLuuActionPerformed(java.awt.event.ActionEvent evt) {
if (check == 0) {
String sim = this.txtSosim.getText();
String name = this.txtTen.getText();
String tienStr = this.txtTien.getText();
String dataStr = this.txtData.getText();
20
JOptionPane.ERROR_MESSAGE);
return;
}
21
// Check for duplicate user name
if (check == 1) {
if (showConfirmationDialog("modification")) {
// User confirmed modification
String sim = this.txtSosim.getText();
String name = this.txtTen.getText();
String tienStr = this.txtTien.getText();
String dataStr = this.txtData.getText();
22
JOptionPane.showMessageDialog(this,
"Invalid value for tien or data. Please enter valid integers.",
"Invalid Input",
JOptionPane.ERROR_MESSAGE);
return;
}
23
View();
ViewTable();
}
// Kiểm tra xem có SIM nào trong danh sách có số điện thoại trùng khớp
không
for (Simmang sim : list) {
if (sim.getSoDienThoai().equals(sdtToDelete)) {
found = true;
break;
}
}
if (!found) {
JOptionPane.showMessageDialog(this,
24
"No SIM found with the phone number entered.",
"Error",
JOptionPane.ERROR_MESSAGE);
return; // Dừng thực thi tiếp theo nếu không tìm thấy SIM
}
if (showConfirmationDialog("deletion")) {
// Lọc và xóa SIM có số điện thoại trùng khớp
list.removeIf(sim -> sim.getSoDienThoai().equals(sdtToDelete));
25
JOptionPane.showMessageDialog(this,
"Please enter a valid phone number.",
"Invalid Input",
JOptionPane.ERROR_MESSAGE);
}
26
String[] parts = tenChuSoHuu.split("\\s+");
// Trả về phần tên (phần cuối cùng của mảng parts)
return parts[parts.length - 1];
}));
27
}
if (data == 0) {
totalSimWithoutData++;
} else {
totalData += data;
// Perform additional actions if necessary
}
}
28
if (!phoneNumber.isEmpty()) {
searchSim(phoneNumber);
} else {
JOptionPane.showMessageDialog(this, "Please enter a phone number",
"Search Error", JOptionPane.ERROR_MESSAGE);
}
29
Lời kết
Bài tập lớn còn nhiều điểm thiếu xót, em mong thầy xem xét
và góp ý
Em xin chân thành cảm ơn!
30