TRƯỜNG ĐẠI HỌC MỞ HÀ NỘIKHOA 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 XÂY DỰNG BÀI TOÁN QUẢN LÝ KINH DOANH LAPTOP SỬ DỤNG DANH SÁCH LIÊN KẾT ĐƠN
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 XÂY DỰNG BÀI TOÁN QUẢN LÝ KINH DOANH LAPTOP SỬ DỤNG DANH SÁCH LIÊN KẾT ĐƠN
Giáo viên hướng dẫn : Ths Trịnh Thị XuânSinh viên thực hiện : - Hoàng Minh Chính
- Trần Đức Hùng
- Lê Hoàng Việt
Đà Nẵng, năm 2022
Trang 2MỤC LỤC
1 Giới thiệu đề tài 10
2 Phân tích đề tài 10
2.1 Dữ liệu cần lưu trữ trong đề tài 10
3 Phân tích chương trình 13
3.1 Thao tác khai báo thư viện: 13
3.2 Thao tác khai báo cấu trúc dữ liệu: 14
3.3 Thao tác nhập dữ liệu: 16
3.4 Thao tác hiện toàn bộ danh sách đã nhập: 17
3.5 Thao tác chèn thêm Laptop vào cuối danh sách: 18
3.6 Thao tác xóa Laptop theo mã: 20
3.7 Thao tác đếm số lượng Laptop có đơn giá < = X: 20
3.8 Thao tác đếm số lượng Laptop có đơn giá > = Y: 21
3.9 Thao tác sắp xếp danh sách tăng dần theo đơn giá: 21
3.10 Thao tác sắpxếp danh sách Laptop giảm dần theođơn giá: 21
3.11 Thao tác tìm kiếm theo mã: 22
3.12 Thao tác tìm kiếm Laptop theo tên: 22
3.13 Thao tác tìm kiếm Laptop có đơn giá trong một khoảng: 22
3.14 Thao tác dọc danh sách Laptop đã nhập từ file 24
3.15 Thao tác hiển thị thông tin của Laptop có đơn giá thấp nhất: 25
3.16 Thao tác hiển thị thông tin của Laptop có đơn giá cao nhất: 25
3.17 Thao tác tính tổng thành tiền của đơn giá tất cả Laptop trong danh sách: 25
3.18 Thao tác thoát khỏi chương trình: 26
3.19 Code của chương trình chính: 27
Trang 31 Giới thiệu đề tài
- Đề tài: Bài toán quản lý kinh doanh Laptop
- Cùng với sự phát triển mạnh mẽ của Khoa học – Kỹ thuật – Công nghệ, thịtrường Laptop hiện nay cũng phát triển mạnh mẽ không kém với đa dạng loại mẫu
mã sản phẩm, chủng loại, chuyên môn hóa cho từng phân khúc khác nhau từ cácloại và cấu hình phổ biến, dòng trung cấp cho đến các dòng cao cấp dành cho nhiềuđối tượng khác nhau từ bình dân, sinh viên, đến doanh nhân và các chuyên gia đồhọa, lập trình, dựng phim, 3d … Và để thuận tiện cho việc quản lý kinh doanhLaptop thì cần một phần mềm tối ưu hoa nhất
- Bộ dữ liệu đã nhập: (TrangThai: 0 : Chưa bán, 1: Đã Bán) (import file)
Mã Tên Số lượng Hãng SX Trạng thái Đơn giá
Trang 4Các chức năng cần thực hiện
- Các chức năng của chương trình:
0 Thoat Chuong Trinh\n";
1 Them Laptop Moi Vao Danh Sach\n";
2 Xoa 1 Mot Laptop co Ma\n";
3 Dem So Luong Laptop Trong Danh Sach\n";
4 Dem So Luong Laptop Co Don Gia <= 1000.000\n";
5 Dem So Luong Laptop Co Don Gia <= 2000.000\n";
6 Dem So Luong Laptop Co Don Gia > 2000.000\n";
7 Sap Xep Tang Dan Theo Don Gia Laptop\n";
8 Sap Xep Giam Dan Theo Don Gia Laptop\n";
9 Hien Toan Bo Danh Sach Laptop\n";
10 Hien Toan Bo Danh Sach Laptop Tinh Trang 'da ban'\n";
11 Tim Kiem Theo Ma Laptop\n";
12 Tim Kiem Theo Ten Laptop\n";
13 Tim Kiem Theo Don Gia Trong Khoang [a->b]\n";
14 Tim Kiem Theo Hang san xuat Laptop\n";
15 Dua Ra Thong Tin Laptop Co Don Gia Thap Nhat\n";
16 Dua Ra Thong Tin Laptop Co Don Gia Cao Nhat\n";
17 Tong Thanh Tien Cua Tat Ca Laptop\n";
18 Doc thong tin tu file\n";
Trang 5Thiết kế menu
CAC CHUC NANG CUA CHUONG TRINH _
0 Thoat Chuong Trinh\n";
1 Them Laptop Moi Vao Danh Sach\n";
2 Xoa 1 Mot Laptop co Ma\n";
3 Dem So Luong Laptop Trong Danh Sach\n";
4 Dem So Luong Laptop Co Don Gia <= 1000.000\n";
5 Dem So Luong Laptop Co Don Gia <= 2000.000\n";
6 Dem So Luong Laptop Co Don Gia > 2000.000\n";
7 Sap Xep Tang Dan Theo Don Gia Laptop\n";
8 Sap Xep Giam Dan Theo Don Gia Laptop\n";
9 Hien Toan Bo Danh Sach Laptop\n";
10 Hien Toan Bo Danh Sach Laptop Tinh Trang 'da ban'\n";
11 Tim Kiem Theo Ma Laptop\n";
12 Tim Kiem Theo Ten Laptop\n";
13 Tim Kiem Theo Don Gia Trong Khoang [a->b]\n";
14 Tim Kiem Theo Hang san xuat Laptop\n";
15 Dua Ra Thong Tin Laptop Co Don Gia Thap Nhat\n";
16 Dua Ra Thong Tin Laptop Co Don Gia Cao Nhat\n";
17 Tong Thanh Tien Cua Tat Ca Laptop\n";
18 Doc thong tin tu file\n";
Trang 7ThanhTien = _DonGia * _SoLuong;
Node* node = new Node;
LAPPTOP laptop = LAPPTOP(_MaSanPham, _TenSanPham,_HangSx, _DonGia, _SoLuong);
Trang 8void CreateList(List &list) {
cout << " SANPHAM " << i + 1 << endl;
cout << "NHAP THONG TIN SANPHAM BAO GOM :
MA SANPHAM, TEN SANPHAM, HANG SAN XUAT, DON GIA, SO LUONG " << endl;
cout << "MA SANPHAM: ";
Trang 9cout << "SO LUONG: ";
cin >> SoLuong;
AddLast(list, MaSanPham, TenSanPham, HangSx, DonGia, SoLuong);
}}
- Kết quả khi chạy:
3.4.Thao tác hiện toàn bộ danh sách đã nhập:
Sau khi nhập một hoặc một danh sách điện thoại thì danh sách đó cần được
in ra màn hình
// In thong tin
void Printlaptop(Node* node, int STT) {
if (node != NULL) {
int TrangThai = node->laptop.TrangThai;
string tt = TrangThai == 1 ? "DA BAN": "CHUA BAN";if(STT == 1) {
cout << setfill('-');
cout << setw(95) << "-" << endl;
cout << setfill(' ');
cout << setw(5) << left << "STT";
cout << setw(15) << left << "MA SAN PHAM";cout << setw(15) << left << "TEN SAN PHAM";cout << setw(15) << left << "HANG SAN XUAT";cout << setw(15) << left << "DON GIA";
cout << setw(15) << left << "SO LUONG";
cout << setw(15) << left << "TRANG THAI" ;cout << setw(15) << left << "THANH TIEN" << endl;cout << setfill('-');
cout << setw(105) << "-" << endl;
} std::ostringstream oss;
double ThanhTien = node->laptop.ThanhTien;
oss << ThanhTien;
string SoTien = oss.str();
cout << setfill(' ');
Trang 10cout << setw(5) << left << STT;
cout << setw(15) << left << node->laptop.MaSanPham;cout << setw(15) << left << node->laptop.TenSanPham;cout << setw(15) << left << node->laptop.HangSx;
cout << setw(15) << left << node->laptop.DonGia;
cout << setw(15) << left << node->laptop.SoLuong;cout << setw(15) << left << tt;
cout << setw(15) << left << SoTien << endl;
};
}
- Kết quả khi chạy:
3.5.Thao tác chèn thêm Laptop vào cuối danh sách:
Trang 11- Kết quả khi chạy:
Trang 123.6.Thao tác xóa Laptop theo mã:
Nếu không muốn một phần tử nào đó tồn tại trong danh sách ta thực hiện chức năng xóa
- Kết quả khi chạy:
3.7.Thao tác đếm số lượng Laptop có đơn giá < = X:
Chức năng này cho ra kết quả là số lượng của toàn bộ Laptop trongdanh sách có giá < = X (X : Nhập từ bàn phím)
Kết quả khi chạy:
Trang 133.8.Thao tác đếm số lượng Laptop có đơn giá > = Y:
- Chức năng này cho ra kết quả là số lượng của toàn bộ Laptop trongdanh sách có giá > = Y (Y : Nhập từ bàn phím)
- Kết quả khi chạy:
3.9.Thao tác sắp xếp danh sách tăng dần theo đơn giá:
- Kết quả khi chạy:
3.10 Thao tác sắp xếp danh sách Laptop giảm dần theo đơn giá:
- Kết quả khi chạy:
Trang 143.11 Thao tác tìm kiếm theo mã:
Cho ra thông tin Laptop khi biết mã Laptop đó
- Kết quả khi chạy:
3.12 Thao tác tìm kiếm Laptop theo tên:
Cho ra thông tin Laptop khi biết tên Laptop đó
- Kết quả khi chạy:
3.13 Thao tác tìm kiếm Laptop có đơn giá trong một khoảng:
- Kết quả khi chạy:
Trang 163.14 Thao tác dọc danh sách Laptop đã nhập từ file
Thao tác nhập danh danh laptop từ file text
void Readfile(List &list)
{
std::fstream fileInput("C:/Users/mchin/OneDrive/Documents/ds.txt",std::ios::in);
Trang 17}
Kết quả:
3.15 Thao tác hiển thị thông tin của Laptop có đơn giá thấp nhất:
Cho ra thông tin chi tiết của Laptop thỏa mãn yêu cầu về đơn giá thấp nhất
- Kết quả khi chạy:
3.16 Thao tác hiển thị thông tin của Laptop có đơn giá cao nhất:
Cho ra thông tin chi tiết của Laptop có đơn giá cao nhất
- Kết quả khi chạy:
3.17 Thao tác tính tổng thành tiền của đơn giá tất cả Laptop trong danhsách:
Tính tổng đơn giá của tất cả Laptop và cho ra kết quả chính xác
Trang 183.18 Thao tác thoát khỏi chương trình:
Sau khi thực hiện chương trình để thoát khỏi chương trình ta chọn phím “0”
Trang 193.19 Code của chương trình chính:
void process(List &list,int quantity){
Trang 20cout << "Chon chuc nang :" ;
Trang 23cout << "Tim Kiem Theo Hang San Xuat: \n" ;
cout << "Nhap Hang Can Tim: \n" ;
cin >> _HangSX;