Giới thiệu bài toánNghành công an cần quản lý các phương tiện giao thông gồm: ô tô, xe máy, xe tải.. Mỗi loại gồm các thông tin: ID, Hãng sản xuất, năm sản xuất, giá bán và màu xe.Các ô
Trang 1ĐẠI HỌC DUY TÂNTRƯỜNG KHOA HỌC MÁY TÍNH
KHOA KỸ THUẬT MẠNG MÁY TÍNH & TRUYỀN THÔNG
🕮🕮
✍
ĐỒ ÁN CÁ NHÂN
MÔN HỌC:
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
GIẢNG VIÊN HƯỚNG DẪN : NGUYỄN MINH NHẬT
Trang 2CHƯƠNG I GIỚI THIỆU BÀI TOÁN
1.1 Giới thiệu bài toán
Nghành công an cần quản lý các phương tiện giao thông gồm: ô tô, xe máy, xe tải Mỗiloại gồm các thông tin: ID, Hãng sản xuất, năm sản xuất, giá bán và màu xe
Các ô tô có các thuộc tính riêng: số chỗ ngồi, kiểu động cơ
Các xe máy có các thuộc tính riêng: công xuất
Xe tải cần quản lý thêm: Trọng tải
Yêu cầu 1: Xây dựng các lớp để quản lý các phương tiện trên sao cho hiệu quả.Yêu cầu 2: Xây dựng lớp QLPTGT có các chức năng:
Thêm, xoá (theo ID) các phương tiện thuộc các loại trên
Tìm phương tiện theo hãng sản xuất, màu
Thoát chương trình
Hãy thực hiện:
✔ Thiết kế giao diện GUI để thực hiện được tất cả các chức năng nêu trên
✔ Thiết kế cơ sở dữ liệu phù hợp cho project Dữ liệu đọc và lưu từ file hoặc từ HệQuản Trị CSDL như: MS Access, SQL Server, MySQL v.v
1.2 Yêu cầu
Yêu cầu 1: Xây dựng các lớp để quản lý các phương tiện trên sao cho hiệu quả
Yêu cầu 2: Xây dựng lớp QLPTGT có các chức năng:
Thêm, xoá (theo ID) các phương tiện thuộc các loại trên
Tìm phương tiện theo hãng sản xuất, màu
Thoát chương trình
1.2.1 Đầu vào
2 | 36
Trang 3+XeTai kế thừa lớp BienLai class
+Otokế thừa lớp BienLai class
+XeMay kế thừa lớp BienLai class
✔Xây dựng lớp QLPTGT(quản lý phương tiện giao thông) với các phươngthức:
+ Thêm mới thông tin
+ Xóa thông tin (theo ID)
+ Tìm phương tiện theo hãng sản xuất, màu
+ Thoát khỏi chương trình
3 | 36
Trang 4CHƯƠNG II PHÂN TÍCH VÀ THIẾT KẾ2.1 Phân tích
2.1.1 Lựa chọn ngôn ngữ lập trình
✔ Ngôn ngữ lập trình: Java
✔ Công cụ phát triển: NetBean
✔ Môi trường vận hành: Thực hiện PC, Desktop với hệ điều hành macOS Monterey
2.2.Thiết kế
2.2.1.Thiết kế cơ sở dữ liệu
✔ Hệ thống lưu trữ: Hệ thống File văn bản (dạng *.txt)
✔ Gồm file có cấu trúc như sau:
DanhSachXe.txt: Lưu trữ về thông tin xe
loại xe ID Hãng xe Màu Năm sản xuất
2.2.2.Thiết kế giao diện
2.2.2.1 Giao diện Command Line
4 | 36 DANH SÁCH QUẢN LÝ PHƯƠNG TIỆN GIAO THÔNG
Thêm mới Xe.
Xóa theo ID.
Trang 5Hình 1 Giao diện chinh dạng Command Line2.2.2.2 Giao diện GUI
Hình 2 Giao diện chinh dạng đồ hoạ2.2.3 Thiết kế lớp
2.2.3.1 Thiết kế lớp
a Lớp BienLai
5 | 36
Trang 6✔ Tên lớp: Xe.java
✔ Thuộc tính: <
private int namSanXuat;
private String mau,ID,hangSanXuat,loai;
✔ Phương thức: <
@Override
public String toString() {
return loai+","+ID+","+hangSanXuat+","+mau+","+namSanXuat; }
public String getLoai() {
Trang 7final Xe other = (Xe) obj;
return Objects.equals(this.ID, other.ID);
public String xuatThongTin() {
return " ID : " + ID + ", Hãng sản xuất: " + hangSanXuat+ ", Màu của
xe : " + mau+", Năm sản xuất: " + namSanXuat;
}
Scanner sc = new Scanner(System.in);
public int getnamSanXuat() {
return namSanXuat;
}
7 | 36
Trang 8public void setnamSanXuat(int intSanXuat) {
Trang 9public Xe(int namSanXuat, String mau, String ID, String
Trang 10public int compareTo(Xe o) {
public String xuatThongTin() {
return "Loại xe: Xe máy : "+super.xuatThongTin();
Trang 11public String xuatThongTin() {
return "Loại xe : Xe tải : "+super.xuatThongTin();
private int soChoNgoi;
private String kieuDongCo;
>
11 | 36
Trang 12public String xuatThongTin() {
return "loai xe: Oto : "+super.xuatThongTin();
Trang 13ArrayList<Xe> dsXe=new ArrayList<>();
Scanner sc=new Scanner(System.in);
System.out.println("Nhập vào số xe: ");
Trang 14for (Xe xenew : dsXe) {
System.out.println("Thông tin xe : "+xenew.xuatThongTin());
Trang 15for (Xe xe : dsXe) {
if(xe.getHangSanXuat().equalsIgnoreCase(hangSanXuat) && xe.getMau().equalsIgnoreCase(mau)){
System.out.println("Thông tin xe : "+xe.xuatThongTin());
FileWriter fw=new FileWriter("DanhSachXe.txt");
BufferedWriter bw=new BufferedWriter(fw);
for (Xe xe : dsXe) {
FileReader fr=new FileReader("DanhSachXe.txt");
BufferedReader br=new BufferedReader(fr);
String line="";
15 | 36
Trang 16public Xe findXe(String hang,String mau){
for (Xe xe : dsXe) {
Trang 17CHƯƠNG III CÀI ĐẶT VÀ KIỂM THỬ3.1 GIAO DIỆN CHÍNH
3.1.1 Giao diện Comman Line
17 | 36
Trang 183.1.1 Giao diện GUI
18 | 36
Trang 193.2 Một số kết quả
19 | 36
Trang 203.2.1 Thêm mới Xe
20 | 36
Trang 213.2.1.1 Giao diện Comman Line
Nhập vào số 2 để thêm Xe
3.2.1.2 Giao diện đồ hoạ
21 | 36
Trang 22Trước khi thêm:
Nhấn vào nút thêm(nếu để trống thông tin) => hiện ra thông báo
22 | 36
Trang 23Sau khi thêm:
23 | 36
Trang 24Sau khi thêm kết quả được in lên Danh sách
3.2.2 Xóa Xe ra khỏi danh sách( dựa vào ID Xe)
24 | 36
Trang 253.2.2.1 Giao diện Comman Line
Nhập vào số 4 để xóa (dựa vào ID của Xe)
Xe có ID X06 đã được xóa
và in danh sách
nếu nhập ID không có trong danh Sách => danh sách không thay đổi
3.2.2.2 Giao diện đồ hoạ
nhập ID để xóa thông tin có trùng thông tin đã nhập
25 | 36
Trang 26click vào nút xóa
nếu ID để trống => hiện thông báo
26 | 36
Trang 27Sau khi nhập ID cần xóa bấm xóa sẽ hiện ra thông báo
clíck yes để tiếp tục xóa (nếu click No => hủy thao tác xóa)
27 | 36
Trang 28Sau khi xóa
3.2.3 Tìm kiếm xe (dựa vào hãng xe và màu xe)
28 | 36
Trang 293.2.3.1 Giao diện Command line
Nhập vào hãng xe và màu xe muốn tìm
nếu nhập thông tin xe không có trong danh sách => không có thông tin nào in ra
29 | 36
Trang 303.2.3.2 Giao diện đồ họa
Nhập vào hãng xe và màu xe muốn tìm
nếu thông tin trùng với danh sách=> hiện thông báo
30 | 36
Trang 31Nếu thông tin để trống => hiện thông báo
31 | 36
Trang 32Nếu nhập thông tin không trùng với danh sách=> hiện thông báo
32 | 36
Trang 333.2.4 Thoát khỏi chương trình
3.2.4.1 Giao diện Command Line
Nhập vào số 7 để thoát chương trình
33 | 36
Trang 343.2.4.2 Giao diện đồ họa
Nhấn vào nút thoát (Hoặc ICON X màu đỏ trên cùng) để thoát
34 | 36
Trang 35Chương trình đã bị hủy và thoát ra
35 | 36
Trang 36KẾT LUẬN
1 Các vấn đề đạt được
- Hiểu biết về các hệ thống Java
- Các kỹ năng Java Core
- Các công cụ dựng của Java
- Làm việc nhóm
- Khả năng sáng tạo
- Để ý các chi tiết
2 Các vấn đề chưa đạt được
- Liên kết chức năng chưa bắt lỗi đầy đủ
- Cơ sở dữ liệu còn sơ sài
- Giao diện đồ họa chưa hoàn thiện
3 Hướng phát triển
- Tiếp tục hoàn thiện các chức năng còn hạn chế
TÀI LIỆU THAM KHẢO[1] https://meta.stackoverflow.com/questions/302471/how-to-put-tables-in-stack-overflow