Cụ thể với các chức năng như sau: - Nhập thông tin xe - Hiển thị danh sách thông xe tin - Sửa, xóa thông tinxe - Sắp xếp thông tin xe theo hãng xe, tên xe - Cập nhật trạng thái thuê xe -
Trang 2Giảng viên hướng dẫn: NGUYỄN QUỐC ANH
Trang 3LỜI CẢM ƠN
- oOo -
Đồ án môn học là kết quả của một quá trình học tập và là một thành quả đáng ghi nhận Để có thể thực hiện và hoàn thành bài tập lớn này em xin gửi lời cảm ơn đến Thầy Nguyễn Quốc Anh – người trực tiếp hướng dẫn đã dành nhiều thời gian, công sức hướng dẫn em trong suốt quá trình thực hiện và hoàn thanhg bài tập lớn môn học.Trong bài báo cáo bài tập lớn em đã cố gắng hoàn thiện bài tập lớn trong phạm
vi và khả năng cho phép nhưng chắc chắn không tránh khỏi những sai sót Em kính mong nhận được sự cảm thông và góp ý của quý thầy cô và các bạn
Đồng Tháp, ngày 03 tháng 12 năm 2024
Trang 4LỜI DẪN
Hiện nay, công nghệ thông tin là một trong những ngành học ngày càng được quan tâm và được rất nhiều bạn theo học Ứng dụng rộng rãi trong mọi lĩnh vực của cuộc sống Với những ưu điểm mạnh có thể ứng dụng được nhiều trong cuộc sống thì Công nghệ thông tin đã giúp cho việc quản lý được dễ dàng hơn
Để quản lý một thông tin cụthể nào đó thì nguời quản lýcầnthực hiện rất nhiều thao tác Ví dụ như trong thời gian hiện nay, để quản lý được thông tin tiêm cho thuê
xe thì cần phải quản lý rất nhiều thông tin như: hãng xe, tên xe, màu xe… cần phải có rất nhiều sổ sách, dễ gây ra những sai sót Vì vậy việc thiết kế và phát triển một chương trình quản lý thông tin cho thuê xe là vô cùng thiết thực và cần thiết
Trang 5xe tự lái hiện nay
2 Ý nghĩa lý thuyết, thực tiễn của đề tài
3 Mục tiêu của đề tài
Xây dựng thành công chương trình quản lý thông tin của xe và thông tin cho thuê xe do cá nhân hoặc công ty cho thuê xe quản lý Cụ thể với các chức năng như sau:
- Nhập thông tin xe
- Hiển thị danh sách thông xe tin
- Sửa, xóa thông tinxe
- Sắp xếp thông tin xe theo hãng xe, tên xe
- Cập nhật trạng thái thuê xe
- Tìm kiếm thông tin xe theo hãng xe, chỗ ngồi, xe đã hoặc chưa cho thuê
- Thống kê theo hãng xe, chỗ ngồi, xe đã cho thuê
➔ Từ đó cài đặt chương trình quản lý thông tin xe cho thuê
4 Phạm vi của đề tài
- Chương trình đượcápdụng để quản thông tin lý cho thuê xe cho các cá nhân hoặc công ty cho thuê xe
Trang 65 Các phương pháp nghiên cứu
Nghiên cứu lýthuyết: nghiên cứ lý thuyết bài toán xây dựng chương trình quản lý thông tin
6 Kế hoạch thực hiện đề tài
STT Nội dung, công việc thực hiện Thời gian
Trang 7và là một phần mở rộng của ngôn ngữ lập trình C hoặc “C với các lớp Class” vì C++ là sự kết hợp các tính năng của ngôn ngữ cấp cao và cấp thấp Ngôn ngữ lập trình này có thể chạy trên nhiều nền tảng khác nhau như: Windows, macOS
và Unix Từ những thập niên 1990, C++ đã trở thành một trong những ngôn ngữ thương mại được ưa thích của các lập trình viên Theo thời gian nó đã mở rộng đáng kể và hiện nay có nhiều tính năng như: lập trình tổng quát, lập trình thủ tục, lập trình hướng đối tượng,
C++ là ngôn ngữ lập trình cấp trung Bởi vì nó có các tính chất của cả ngôn ngữ lập trình bậc thấp (Pascal, C…) và ngôn ngữ lập trình bậc cao (C#, Java, Python…)
Ngôn ngữ lập trình C++ (C plus plus) có đuôi mở rộng là cpp
Hình 1.1 Ngôn ngữ lập trình C++
Trang 81.1.2 Điểm mạnh của C++
C++ có ưu điểm rất nhanh, thậm chí có thể nói là cực nhanh Chính vì ưuđiểm này, mà C++ được coi là lựa chọn tốt nhất trong các ứng dụng mà cần đến tốc độ Trong đó, điển hình như các phần mềm về tài chính, các trò chơi hoặc các chương trình về quân sự được hoạt động trong thời gian thực
C++ có portable (tính di động): Tính di động của C++ được thể hiện trên một đoạn code C++ về lý thuyết nó có thể chuyển đổi dễ dàng khi chạy ở trong Windows, Linux hay Mac OS Theo đó, nhờ có tính năng này mà lúc viết một chương trình nào đó, bạn sẽ không viết lại nó nữa mà có thể chạy ở trong một plateform khác
1.1.3 Ưu, nhược điểm của ngôn ngữ lập trình C++
Tên ngôn ngữ lập
trình
Ưu điểm
có thể truy cập tới bất
kỳ phần tử nào trong mảng bằng cách chỉ định chỉ số cho phần tử đó
Kích thước của mảng phải là cố định Trong cấp phát mảng tĩnh, mảng cần được khai báo với kích thước xác định trướckhi chạy chương trình Các byte vùng nhớ cấp phát mảng được sắp xếp liên tục Trong trường hợp vùng nhớ cho chương trình đang bị phân mảnh, chương trình
sẽ báo lỗi khi chúng ta khai báo hoặc cấp phát cho mảng với kích thước lớn không vì đủ vùng nhớliên lục cho mảng
Trang 95
1.2 Danh sách liên kết, mảng một chiều
1.2.1 Danh sách liên kết
Danh sách liên kết đơn (Single Linked List) là một cấu trúc dữ liệu động,
nó là một danh sách mà mỗi phần tử đều liên kết với phần tử đúng sau nó trong danh sách Mỗi phần tử (được gọi là một node hay nút) trong danh sách liên kết đơn là một cấu trúc có hai thành phần:
• Thành phần dữ liệu: lưu thông tin về bản thân phần tử đó
• Thành phần liên kết: lưu địa chỉ phần tử đứng sau trong danh sách, nếu phần tử đó là phần tử cuối cùng thì thành phần này bằng NULL
2 Dễ dàng thêm hoặc xóa các phần tử trong danh sách mà không cần phải cấp phát hoặc tổ chức lại trật tự của mảng
nhiên dữ liệu
cùng, xóa phần tử ngẫu nhiên hay chèn thêm, tìm kiếm có thể phải duyệt tất cả các phần tử
Trang 10- Mảng có kích thước là số phần tử trong mảng Kích thước mảngbắt buộc phải là biểu thức hằng nguyên có thể cấp phát vùng nhớ lúc biên dịch
Ưu và nhược điểm của mảng một chiều
• Ưu điểm
1 Giúp ta tiết kiệm tài nguyên hệ thống Ta có thể sử dụng một mảng có kích thước lớn trong một thời gian nào đó rồi xóa bỏ
để trả lại vùng nhớ cho hệ thống
2 Dễ cài đặt và truy cập các phần dữ liệu
3 Tốc độ truy cập đến một vị trí bất kỳ trên mảng nhanh, hiệu quả
• Nhược điểm
1 Cần phải xác định trước số phần tử mảng trước khi sử dụng, không phù hợp với các bài toán chưa biết trước số lượng phần tử
2 Khó khăn trong các thao tác chèn và xóa một phần tử bất
kỳ trong mảng
3 Nếu việc chèn và xóa phần tử diễn ra liên tục thì tốc độ
xử lý sẽ rất chậm
Trang 11Dev C++ nằm trong bộ trình dịch mã nguồn mở MinGW và chỉ hỗ trợ trên hệ điều hành Microsoft Windows Nhà sản xuất cũ ng đã cho ra đời một phiên bản chạy trên Linux tuy nhiên vẫn đang nằm trong giai đoạn thử nghiệm Một điểm đáng chú ý của phần mềm này chính là tích hợp DevPaks, bao gồm các gói mở rộng như thư viện, mẫu và nhiều tiện ích khác Thông thường, DevPaks sở hữu thêm tiện ích GUI với các công cụ phổ biến như GTK+, FLTK
và wxWidgets
2.2 Ưu và nhược điểm của Dev-C++
2.2.1 Ưu điểm
Với những bạn mới học về lập trình C thì Dev C++ là một công cụ rất tốt
-để luyện cách ghi nhớ cú pháp (syntax) của ngôn ngữ, vì công cụ này không có tín năng gợi ý code
Đây là một công cụ mã nguồn mở vì vậy các bạn có thể sử dụng nó hoàn toàn miễn phí
Có hỗ trợ tích hợp trình biên dịch Điều này giúp cho các bạn mới học tập trung luôn được vào việc học mà không phải quan tâm đến cấu hình các thành phần liên quan
Công cụ lập trình này tương đối nhẹ nên hầu hết các máy tính có cấu hình vừa đủ là có thể chạy được
Trang 139
CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ CHO
THUÊ XE 3.1. Giới thiệu bài toán
VD: Den, Trang, Do,
- Biến Socho kiểuintđểnhập vào số chỗ của xe khi nhập thông tin của
Trang 143.2. Mô tả các bước thực hiện để xây dựng chương trình quản lý cho thuê xe
Để quảnlý thông tin cho thuê xe thìtrước tiên ta phải có danh sách
xe và có thể thực hiện các thao tác với danh sách đó
Trước tiên phải tạo danh sách chứa thông tin của các xe, số xe cần nhập là n Sau đó thực hiện:
- Nhập thông tin xe
- Hiển thị danh sách thông tin xe
- Sửa, xóa thông tin xe
- Sắp xếp thông tin xe theo hãng xe, tên xe
- Cập nhật trạng thái thuê xe
- Tìm kiếm thông tin xe theo hãng xe, chỗ ngồi, xe đã hoặc chưa cho thuê
- Thống kê theo hãng xe, chỗ ngồi, xe đã cho thuê
➔ Từ đó cài đặt chương trình quản lý thông tin tiêm chủngsinh viên ĐHCNTT20A
Trang 1511
3.3. Một số lưu đồ của chương trình quản lý thông tin xe
3.3.1. Lưu đồ nhập thông tin xe
Hình 3.1 Lưu đồ nhập thông tin xe Sau khi khởi động chương trình chọn mục số 1 hệ thống sẽ cho bạn nhập thông tin bao xe gồm hãng xe, tên xe, màu xe, số chỗ, biển số vào chương trình
void NhapTTxe(vector <Xechothue> &dsXe){
Trang 16cin.ignore();// bo qua cac ky tu con lai trong buffer}else{
Trang 1713
3.3.2. Lưu đồ hiển thị danh sách thông tin xe
Hình 3.2 Lưu đồ hiển thị danh sách thông tin xe
Sau khi nhập thông tin xe đầy đủ vào chương trình thì chương trình
sẽ tự lưu lại và bạn có thể chọn mục 2 để hiện thị danh sách thông tin xehiện có trong chương trình
void XuatTTxe(vector <Xechothue> &dsXe){
cout << setw(5) << left << "STT";
cout << setw(10) << left << "Hang xe";
cout << setw(10) << left << "Ten xe";
cout << setw(10) << left << "Mau xe";
cout << setw(15) << left << "So cho ngoi";
cout << setw(12) << left << "Bien so";
Trang 18cout << setw(15) << left << "Trang thai" << endl; cout << setfill('-');
cout << setw(77) << "-" << endl;
cout << setfill(' ');
for(int i = 0; i < dsXe.size(); i++) {
cout << setw(5) << left << i + 1;
}
cout << "\nBam phim bat ki de tro lai MENU ";
getch();
}
Trang 1915
3.3.3. Lưu đồ xóa thông tin xe
Hình 3.4 Lưu đồ xóa thông tin xe Chúng ta có thể xóa thông tin xe bằng cách chọn mục số 5 chương trình
sẽ cho bạn xoá thông tin xe bằng cách nhập thứ tự của xe trong danh sách
void Xoaxe(vector <Xechothue> &dsXe){
Trang 20CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH
4.1. Tổng thể chương trình
Chương trình quản lý thông tin cho thuê xe được viết bằng ngôn ngữ C++ sau khi hoàn chỉnh gồm có những chức năng như sau:
- Nhập thông tin xe
- Hiển thị danh sách thông xe tin
- Sửa, xóa thông tinxe
- Sắp xếp thông tin xe theo hãng xe, tên xe
- Cập nhật trạng thái thuê xe
- Tìm kiếm thông tin xe theo hãng xe, chỗ ngồi, xe đã hoặc chưa cho thuê
- Thống kê theo hãng xe, chỗ ngồi, xe đã cho thuê
4.2. Chương trình
4.2.1 Menu chương trình chính
Hình 4.1 Menu chính chương trình Chương trình gồm có 10 sự lựa chọn
1 Nhập thông tin xe
2 Hiển thị danh sách thông tin xe
3 Sắp xếp danh sách
4 Sửa thông tin xe
5 Xóa thông tin xe
6 Cập nhật trạng thái thuê xe
Trang 2117
7 Xem thông tin người thuê xe
8 Tìm kiếm thông tin xe
Chương trình sẽ bắt người dùng nhập số lượng xe muốn thêm thông tin
Sau đó người dùng sẽ nhập các thông tin của xe gồm: hãng xe, tên xe màu xe, ,
số chỗ ngồi biển số xe.,
Trang 224.2.3 Hiển thị danh sách thông tin xe
Hình 4.3 Hiển thị thông tin đối tượngNgười dùng sẽ nhập 2 ở menu chính của chương trình để hiển thị danh sách thông tin các xe đã thêm ở chức năng 1 Lưu ý: nếu danh sách xe rỗng thì sẽ không sử dụng được chức năng này (chương trình sẽ thông báo danh sách xe rỗng)
4.2.4 Sắp xếp danh sách
Hình 4.4 Sắp xếp danh sáchNgười dùng nhập lựa chọn 3 ở menu chính của chương trình Màn hình sẽ hiện thị tiếp menu lựa chọn sắp để sắp xếp danh sách thông tin xe, gồm lựa chọn: 3
1 Sắp xếp theo hãng xe: người dùng sẽ nhập lựa chọn 1 ở menu sắp xếp, chương trình sẽ tự động sắp xếp theo hãng xe Nếu người dùng muốn xem lại danh sách
sẽ nhập lại lựa chọn 2 ở menu chính
2 Sắp xếp theo tên xe: người dùng sẽ nhập lựa chọn 2 ở menu sắp xếp, chương trình sẽ tự động sắp xếp theo tên xe Nếu người dùng muốn xem lại danh sách
sẽ nhập lại lựa chọn 2 ở menu chính
3 Trở về menu chính: người dùng sẽ nhập lựa chọn 0 ở menu sắp xếp, chương trình sẽ trở về menu chính
Lưu ý: nếu danh sách xe rỗng thì sẽ không sử dụng được chức năng này (chương trình sẽ thông báo danh sách xe rỗng)
Trang 2319
4.2.5 Sửa thông tin xe
Hình 4.5 Sửa thông tin xe Người dùng nhập lựa chọn là 4 ở menu chính của chương trình để sửa thông tin của
xe Chương trình sẽ yêu cầu người dùng nhập vào thứ tự của xe muốn sửa thông tin Người dùng muốn sửa thông tin của xe nào thì nhập thứ tự của xe đó theo thứ tự của danh sách Chương trình sẽ bắt người dùng nhập lại toàn bộ thông tin của đối tượng
đó Lưu ý: nếu danh sách xe rỗng thì sẽ không sử dụng được chức năng này (chương trình sẽ thông báo danh sách xe rỗng)
Trang 244.2.6 Xóa thông tin đối tượng
Hình 4.6 Xóa thông tin đối tượngNgười dùng nhập lựa 5 ở menu chính của chương trình Chương trình sẽ yêu cầu người dùng nhập thứ tự xe cần xoá Người dùng muốn xóa thông tin của đối tượng nào thì nhập thứ tự của xe đó theo danh sách Chương trình sẽ xóa thông tin của xe
đó Lưu ý: nếu danh sách xe rỗng thì sẽ không sử dụng được chức năng này (chương trình sẽ thông báo danh sách xe rỗng)
Trang 264.2.8 Xem thông tin người thuê xe
Hình 4.8 Xem thông tin người thuê xe Người dùng sẽ nhập lựa chọn 7 ở menu chính Chương trình sẽ yêu cầu người dùng nhập thứ tự xe cần xem thông tin người thuê xe Sau đó chương trình sẽ hiện thông tin người thuê nếu trạng thái thuê của xe là “đang cho thuê”, ngược lại chương trình
sẽ hiện thị thông báo xe chưa được thuê Nếu danh sách chưa có xe được thuê thì chương trình sẽ thông báo danh sách chưa có xe được thuê
Lưu ý: chức năng này chỉ hoạt động nếu danh sách không rỗng
Trang 2723
4.2.9 Tìm thông tin xe
Hình 4.9 Menu tìm thông tin xe Người dùng sẽ nhập lựa chọn 8 ở menu chính Màn hình sẽ hiện thị tiếp menu lựa chọn tìm xe thông tin xe, gồm lựa chọn: 5
1 Tìm xe theo hãng xe: người dùng nhập lựa chọn 1 ở menu tìm xe, sau đó chương trình yêu cầu người dùng nhập hãng xe muốn tìm trong danh sách, chương trình sẽ tự động hiện danh sách xe theo hãng người dùng nhập Nếu người dùng nhập hãng xe không có trong danh sách chương trình sẽ thông báo không có xe hãng người dùng tìm trong danh sách
2 Tìm xe theo chỗ ngồi: người dùng nhập lựa chọn 2 ở menu tìm xe, sau đó chương trình yêu cầu người dùng nhập số chỗ muốn tìm trong danh sách, chương trình sẽ tự động hiện danh sách xe theo số chỗ người dùng nhập Nếu người dùng nhập sai số chỗ theo quy định về chỗ ngồi của xe hiện nay thì chương trình sẽ yêu cầu người dùng nhập lại
3 Tìm xe đã cho thuê: người dùng nhập lựa chọn 3 ở menu tìm xe, chương trình
sẽ tự động hiện danh sách xe đã cho thuê trong danh sách
4 Tìm xe chưa cho thuê: người dùng nhập lựa chọn 4 ở menu tìm xe, chương trình sẽ tự động hiện danh sách xe chưa cho thuê trong danh sách
5 Trở về menu chín : người dùng nhập lựa chọn 0 để trở về menu chính.h
Lưu ý: chức năng này chỉ hoạt động nếu danh sách không rỗng
Trang 284.2.10 Thống kê
Hình 4.10 Menu thống kê Người dùng sẽ nhập lựa chọn 9 ở menu chính Màn hình sẽ hiện thị tiếp menu lựa chọn tìm xe thông tin xe, gồm lựa chọn: 4
1 Thống kê theo hãng xe: người dùng nhập lựa chọn 1 ở menu thống kê, sau đó chương trình yêu cầu người dùng nhập hãng xe muốn thống kê trong danh sách, chương trình sẽ tự động hiện danh sách xe theo hãng người dùng nhập
2 Thống kê xe đã cho thuê: người dùng nhập lựa chọn 2 ở menu thống kê,chương trình sẽ tự động hiện danh sách xe đã cho thuê trong danh sách
3 Thống kê xe theo chỗ ngồi người dùng nhập lựa chọn 4 ở menu thống kê, sau :
đó chương trình yêu cầu người dùng nhập số chỗ muốn thống kê trong danh sách, chương trình sẽ tự động hiện danh sách xe theo số chỗ người dùng nhập
4 Trở về: người dùng nhập lựa chọn 0 để trở về menu chính
Lưu ý: chức năng này chỉ hoạt động nếu danh sách không rỗng