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ÂN TRƯỜ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ỗ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 ô 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ương thứ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 4✔ 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 Line 2.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;
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) {
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 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