1.8: Sắp xếp danh sách ô tô theo chiều giảm dần của giá cho thuê Input: Danh sách ô tô, tên của từng ô tô. Output: Danh sách ô tô sau khi sắp xếp được hiển thị trên màn hình.. Đối tượ
Trang 1TRƯỜNG ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
-BÁO CÁO BÀI TẬP LỚN
MÔN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬTĐề tài: Quản lý cho thuê xe Ô TÔ
Giảng viên hướng dẫn: ThS.Trịnh Thị Xuân
Sinh viên thực hiện: Bùi Hải Triều- 2010A04
Lê Tuấn Vũ – 2010A04 Đoàn Minh Tùng – 2010A04 Lê Quang Vinh – 2010A05
Hà Nội – Năm 2021
Trang 2PHÂN CÔNG VÀ KẾ HOẠCH THỰC HIỆN
MỤC LỤC
A XÁC ĐỊNH BÀI TOÁN 1
I.Phát biểu bài toán 1
II Xác định cấu trúc dữ liệu bài toán 1
III.Xác định các thuật toán và chức năng 1
B XÁC ĐỊNH CẤU TRÚC DỮ LIỆU CỦA BÀI TOÁN 2
I.Mô tả cấu trúc dữ liệu tổ chức để lưu trữ cho bài toán 2
1.Danh sách liên kết đơn 2
2.Danh sách liên kết đôi 4
3.Ngăn xếp(Tương tự 1 và 2 ) 6
4.Hàng Đợi(Tương tự 1 và 2 ) 6
II Liệt kê input và output của từng chức năng 6
C XÁC ĐỊNH CÁC THUẬT TOÁN 8
I.Danh sách liên kết đơn 8
II Danh sách liên kết đôi 18
III.Ngăn xếp 28
IV.Hàng đợi 34
D Cài Đặt – Kiểm Thử 42
1.Danh sách liên kết đơn 42
2.Danh sách liên kết đôi 49
3.Ngăn Xếp (Stack) 56
4.Hang đợi (Queue) 63
A.XÁC ĐỊNH BÀI TOÁN
2
Trang 3I Phát biểu bài toán
Ngày nay với sự phát triển của ngành công nghệ thông tin đã đem lại hiệu quả to lớn trong nhiều lĩnh vực, đáp ứng nhu cầu ngày càng cao của cuộc sống con người trong đó có quản lý trong lĩnh vực thuê xe ô tô Đây là một trong những lĩnh vực phổ biển ở việt nam và nhận được nhiều sự quan tâm và thảo luận rộng rãi Vì vậy , việc quản lý hóa đơn cho thuê xe ô tô trên máy tính , chúng ta sẽ giảm bớt khối công việc rất lớn cho người quản lý , giảm bớt nhân sự cho khâu này , dễ dàng quản lý , nhập nhật và thay đổi linh hoạt của thông tin hóa đơn một cách linh hoạt nhất.
Cửa hàng cho thuê xe ô tô cần lưu danh sách thông tin Xe ô tô cho thuê , Khách hàng và Hóa đơn cho thuê
II Xác định cấu trúc dữ liệu bài toán
Xe ô tô : Mã xe , Tên xe, Hãng xe, giá cho thuê
Khách hàng : Mã khách hàng, Họ tên ,SDT, CMND, Địa chỉ. Hóa đơn : Mã HĐ ,ngày thuê, số ngày thuê, số lượng xe thuê, thành
tiền,,thông tin ô tô thuê,thông tin khách hàng
(Giá cho thê từ ô tô * số lượng xe muốn thuê)*số ngày thuê = thành tiền III Xác định các thuật toán và chức năng
Đối với ô tô
Nhập danh sách ô tô Hiện danh sách ô tô Ghi danh sách ô tô vào file Đọc file danh sách ô tô Thêm ô tô vào cuối danh sách Xóa một ô tô vào đầu danh sách Tìm kiếm ô tô theo mã xe
Chức năng thực hiện với hóa đơn
Nhập danh sách hóa đơn 3
Trang 4 Hiện danh sách hóa đơn Ghi danh sách hóa đơn vào file Đọc danh sách hóa đơn từ file
Thêm hóa đơn mới( Thêm đầu , thêm cuối … ) Xóa hóa đơn ( Xóa đầu , xóa cuối …….) Tổng tiền tất cả hóa đơn
Sắp xếp theo tổng tiền tăng dần trong hóa đơn Săp xếp tăng dần theo số ngày thuê trong hóa đơn Sắp xếp giảm dần theo số lượng xe thue trong mỗi hóa đơn
Lọc ra những hóa đơn có tổng tiền từ > =150000000 & <=300000000 Tìm kiếm hóa đơn có tổng tiền cao nhất
Tìm kiếm hóa đơn có tổng tiền thấp nhất
B.XÁC ĐỊNH CẤU TRÚC DỮ LIỆU CỦA BÀI TOÁN I Mô tả cấu trúc dữ liệu tổ chức để lưu trữ cho bài toán
1 Danh sách liên kết đơna Đối tượng OTO
4
Trang 5b Đối tượng Hóa Đơn
5
Trang 62 Danh sách liên kết đôia Đối tượng OTO
6
Trang 7b Đối tượng hóa đơn
7
Trang 83 Ngăn xếp(Tương tự 1 và 2 )a Đối tượng OTOb Đối tượng Hóa Đơn4 Hàng Đợi(Tương tự 1 và 2 )
a Đối tượng OTOb Đối tượng Hóa Đơn
II Liệt kê input và output của từng chức năng 1 Đối tượng OTO
1.1: Nhập danh sách ô tô
Input: Thông tin giáo viên nhập từ bàn phím gồm: Mã ô tô, tên xe, Hãng xe, Giá cho thuê
Output: Thông tin ô tô được lưu trữ trên máy tính 1.2: Hiện danh sách ô tô
Input: Thông tin ô tô lưu trữ trên máy tính Output: Danh sách ô tô được in ra trên màn hình 1.3: Ghi danh sách ô tô vào file
Input: Danh sách ô tô
Output: Danh sách ô tô được lưu trữ trên máy tính dưới dạng file 1.4: Đọc danh sách ô tô từ file
Input: Danh sách ô tô được lưu trữ trên máy tính dưới dạng file Output: Dữ liệu trong file được in ra trên màn hình.
1.5: Thêm giáo ô tô
Intput: Thông tin của ô tô mới, danh sách ô tô Output: Danh sách ô tô sau khi được thêm giáo viên mới.
8
Trang 91.6: Xóa giáo viên
Input: Danh sách ô tô, thực hiện xóa ô tô.
Output: Danh sách ô tô sau khi xóa được hiển thị trên màn hình 1.7: Tìm kiếm giáo viên theo mã ô tô X
Input: Danh sách ô tô, mã ô tô của từng ô tô, X nhập từ bàn phím Output: Thông tin của ô tô đang được tìm kiếm hiển thị trên màn hình 1.8: Sắp xếp danh sách ô tô theo chiều giảm dần của giá cho thuê
Input: Danh sách ô tô, tên của từng ô tô.
Output: Danh sách ô tô sau khi sắp xếp được hiển thị trên màn hình 2 Đối tượng Hóa Đơn
2.1: Nhập danh sách Hóa Đơn
Input: Thông tin Hóa đơn nhập từ bàn phím gồm: Mã hóa đơn, ngày thuê, sô ngày thuê , số lượng xe thuê, thành tiền , thông tin xe ds ô tô thuê, thông tin khách hàng thuê
Output: Thông tin Hóa đơn được lưu trữ trên máy tính 2.2: Hiện danh sách hóa đơn
Input: Thông tin hóa đơn lưu trữ trên máy tính Output: Danh sách hóa đơn được in ra trên màn hình 2.3: Ghi danh sách bảng lương vào file
Input: Danh sách Hóa đơn.
Output: Danh sách hóa đơn được lưu trữ trên máy tính dưới dạng file 2.4: Đọc danh sách hóa đơn từ file
Input: Danh sách hóa đơn được lưu trữ trên máy tính dưới dạng file Output: Dữ liệu trong file được in ra trên màn hình.
2.5: Thêm hóa đơn mới
Intput: Thông tin của hóa đơn mới, danh sách hóa đơn, vị trí cần thêm Output: Danh sách hóa đơn sau khi được thêm bảng lương mới 2.6: Xóa hóa đơn
Input: Danh sách hóa đơn, thực hiện xóa bảng lương.
Output: Danh sách hóa đơn sau khi xóa được hiển thị trên màn hình 2.7: Tổng tiền tất cả hóa đơn
Input: Thành tiền danh sách hóa đơn
Output: Tổng tất cả thành tiền của tất cả hóa đơn hiển thị trên màn hình 2.8: Loc ra Hoa Don co tong tien >=5.000.000 & <= 10.000.000
Input: Danh sách hóa đơn, tổng tiền của từng hóa đơn.
Output: Danh sách hóa đơn sau khi lọc được hiển thị trên màn hình 2.9: Sắp xếp danh sách hóa đơn theo tổng tiền tăng dần
9
Trang 10 Input: Danh sách hóa đơn
Output: Danh sách hóa đơn sau khi sắp xếp được hiển thị trên màn hình 2.10: Sắp xếp hóa đơn theo chiều giảm dần số lượng xe thuê
Input: Danh sách hóa đơn.
Output: Thông tin hóa đơn của giáo viên có lương nhỏ nhất 2.11: Thông tin hóa đơn có tổng tiền là lớn nhất
Input: Danh sách hóa đơn, tổng tiền của từng hóa đơn Output: Thông tin hóa đơn có tổng tiền lớn nhất 2.12: Thông tin hóa đơn có tổng tiền là ít nhất
Input: : Danh sách hóa đơn, tổng tiền của từng hóa đơn Output: Thông tin hóa đơn có tổng tiền ít nhất 2.13: Thông tin hóa đơn theo mã hóa đơn X
Input: Danh sách hóa đơn, mã x nhập từ bàn phím Output: Thông tin hóa đơn tìm kiếm.
2.14: Thông tin hóa đơn theo tên khách hàng
Input: Danh sách hóa đơn , tên khách hàng nhập tự bàn phím Output: Hiện thị thông tin hóa đơn tìm kiếm.
C.XÁC ĐỊNH CÁC THUẬT TOÁN I Danh sách liên kết đơn
1 Nhập danh sách( bao gồm hóa đơn và ô tô) Áp dụng cho danh sách ô tô & Hóa đơn
10
Trang 112 Hiện danh sách
Áp dụng với danh sách ô tô và Hóa đơn
11
Trang 133.1 Thêm vào cuối danh sách
Áp dụng với danh sách ô tô & Hóa đơn
13
Trang 143.2 Thêm phần tử bất kỳ vào trong danh sách Áp dụng với danh sách ô tô & Hóa đơn
14
Trang 154 Xóa phần tử cuối danh sách
Áp dụng cho danh sách ô tô và Hóa đơn 15
Trang 164.1 Xóa phần tử bất kỳ danh sách
Áp dụng cho danh sách ô tô và Hóa đơn
16
Trang 175 Tổng tiền tất cả hóa đơn
Áp dụng cho tổng tiền tất cả hóa đơn
17
Trang 186 Sắp xếp danh sách
Sắp xếp tổng tiền tăng dần hóa đơn
18
Trang 19 Sắp xếp tăng dần thôi số ngày thuê xe ô tô
Sắp xếp giảm dần theo số lượng xe thuê trong hóa đơn
7 Tìm kiếm danh sách
Tìm kiếm hóa đơn có tổng tiền thấp nhất 19
Trang 20 Tìm kiếm hóa đơn có tổng tiền cao nhất Tìm kiếm thông tin hóa đơn theo số ngày thuê Tìm kiếm thông tin hóa đơn theo tên khách hàng
II Danh sách liên kết đôi 1 Nhập danh sách
20
Trang 21 Nhập danh sách ô tô và Hóa đơn
2 Hiện danh sách
Hiện danh sách ô tô và hóa đơn 21
Trang 223 Thêm vào đầu danh sách
Áp dụng với danh sách ô tô và Hóa đơn
22
Trang 23III.1 Thêm phần tử vào cuối danh sách Áp dụng với dánh sách ô tô và Hóa đơn
23
Trang 24III.2 Thêm phần tử vào một ví trị bất kỳ sau q Áp dụng với danh sách ô tô và Hóa đơn
24
Trang 254 Xóa phần tử ở đầu danh sách
Áp dụng với danh sách ô tô và Hóa đơn
25
Trang 264.1 Xóa cuối danh sách
Áp dụng với danh sách ô tô và Hóa đơn
4.2 Xóa phần tử bất kỳ trong danh sách Áp dụng với danh sách ô tô và Hóa đơn
26
Trang 275 Tổng tiền tất cả danh sách hóa đơn
Tổng tiền tất cả hóa đơn trong danh sách hóa đơn
27
Trang 286 Sắp xếp danh sách hóa đơn
Sắp xếp tổng tiền tăng dần hóa đơn Sắp xếp tăng dần thôi số ngày thuê xe ô tô
28
Trang 29 Sắp xếp giảm dần theo số lượng xe thuê trong hóa đơn
7 Tìm kiếm danh sách hóa đơn
Tìm kiếm hóa đơn có tổng tiền thấp nhất Tìm kiếm hóa đơn có tổng tiền cao nhất
29
Trang 30 Tìm kiếm thông tin hóa đơn theo số ngày thuê Tìm kiếm thông tin hóa đơn theo tên khách hàng
III Ngăn xếp 1 Nhập danh sách
Nhập danh sách ô tô
30
Trang 31 Nhập danh sách hóa đơn
2 Hiện danh sách Hiện danh sách ô tô Hiện danh sách Hóa đơn
31
Trang 323 Xóa phần tử ở Stack Xóa ô tô Xóa hóa đơn
32
Trang 334 Tổng tiền tất cả hóa đơn
Áp dụng với tất cả hóa đơn trong Stack
33
Trang 345 Sắp xếp danh sách
1 Áp dụng cho danh sách hóa đơn
34
Trang 42 Sắp xếp tăng dần thôi số ngày thuê xe ô tô
Sắp xếp giảm dần theo số lượng xe thuê trong hóa đơn
7 Tìm kiếm hóa đơn
1 Áp dụng với danh sách hóa đơn Tìm kiếm hóa đơn có tổng tiền thấp nhất
42
Trang 43 Tìm kiếm hóa đơn có tổng tiền cao nhất Tìm kiếm thông tin hóa đơn theo số ngày thuê Tìm kiếm thông tin hóa đơn theo tên khách hàng
D Cài Đặt – Kiểm Thử
43
Trang 441 Danh sách liên kết đơn Chương trình tổng
Danh sách ô tô
- Nhập và xuất danh sách ô tô (Bao gồm đọc file, lưu file)
- Thêm vào cuối danh sách ô tô
44
Trang 45- Xóa đầu danh sách ô tô
- Tìm mã ô tô
- Sắp xếp
45
Trang 46 Danh sách hóa đơn - Menu
- Nhập xuất (Bao gồm lưu file , đọc file)
46
Trang 47- Them hóa đơn vào cuối
47
Trang 48- Xóa đầu danh sách
- Tổng tiền tất cả hóa đơn
- Lọc hóa đơn
48
Trang 49- Sắp xếp theo số lượng xe giảm dần
49
Trang 59- Xóa đầu danh sách ô tô
- Tìm mã ô tô
- Sắp xếp
59
Trang 60 Danh sách hóa đơn - Menu
- Nhập xuất (Bao gồm lưu file , đọc file)
60
Trang 61- Them hóa đơn vào cuối
61
Trang 62- Xóa đầu danh sách
- Tổng tiền tất cả hóa đơn
- Lọc hóa đơn
62
Trang 63- Sắp xếp theo số lượng xe giảm dần
63
Trang 64- Tìm kiếm
64
Trang 654 Hang đợi (Queue) Chương trình tổng
Danh sách ô tô
- Nhập và xuất danh sách ô tô (Bao gồm đọc file, lưu file)
- Thêm vào cuối danh sách ô tô
65
Trang 66- Xóa đầu danh sách ô tô
- Tìm mã ô tô
- Sắp xếp
66
Trang 67 Danh sách hóa đơn - Menu
- Nhập xuất (Bao gồm lưu file , đọc file)
67
Trang 68- Them hóa đơn vào cuối
68
Trang 69- Xóa đầu danh sách
- Tổng tiền tất cả hóa đơn
- Lọc hóa đơn
69
Trang 70- Sắp xếp theo số lượng xe giảm dần
70
Trang 71- Tìm kiếm
71