































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
Báo cáo BTL môn Cấu trúc dữ liệu và giải thuật
Typology: Assignments
1 / 39
This page cannot be seen from the preview
Don't miss anything!
On special offer
Chủ đề 16: Xây dựng chương trình quản lý bán hàng Giảng viên hướng dẫn : ThS. Nguyễn Thị Tâm Sinh viên thực hiện : Mai Tuyết Anh - 2210A Hà Thị Anh Thư - 2210A Lại Văn Phố - 2110A0 5 Đinh Xuân Phương - 2210A0 1
Mai Tuyết Anh Danh sách liên kết đơn Lại Văn Phố Danh sách liên kết đôi Hà Thị Anh Thư Ngăn xếp Đinh Xuân Phương Hàng đợi
1. XÁC ĐỊNH BÀI TOÁN
Nhân Viên Nhập danh sách nhân viên In danh sách nhân viên Lưu danh sách nhân viên vào File Đọc danh sách nhân viên từ File Thêm 1 nhân viên vào cuối danh sách Xóa phần tử đầu danh sách Tìm 1 nhân viên theo mã nhân viên Hiện thông tin nhân viên có mức lương trên 2tr Hiện thông tin nhân viên có mức lương cao nhất Đếm số nhân viên có trong danh sách Sắp xếp theo thứ tự lương tăng dần Sản Phẩm Nhập danh sách sản phẩm In danh sách sản phẩm Lưu danh sách sản phẩm vào File Đọc danh sách sản phẩm từ File Thêm sản phẩm:
Sửa thông tin 1 sản phẩm Sắp xếp sản phẩm:
NhanVien data; struct Node *next; }; struct Queue { Node *Front; Node *Rear; }; c, Danh sách liên kết đôi: Sản phẩm: struct SanPham { int maSP; string tenSP; string loaiSP; float soLuongSP; float donGia; }; struct NodeSP { SanPham info; NodeSP *next; NodeSP *prev; }; struct listSP { NodeSP *head; NodeSP *tail; }; d, Danh sách liên kết đơn: Hoá đơn: struct HoaDon{ char maHD[5], ngayLap[10], mnv[5]; int slSP; SanPham dsSP[15]; double tongTien; };
struct NodeHD{ HoaDon infor; struct NodeHD *next; }; struct ListHD{ NodeHD *Head; NodeHD *Tail; }; 2.2. Xác định thuật toán a. Ngăn xếp: Đếm số lượng:
EnQueue(Thêm 1 nhân viên vào cuối danh sách):
c. DSLK Đôi: Xóa cuối:
Xóa sau hóa đơn chỉ định:
Xóa hóa đơn theo mã:
3. CÀI ĐẶT CHƯƠNG TRÌNH 1. Code Khách Hàng (Ngăn xếp) //tim kiem theo ma khach hang void SearchMaKH(ListKH Q) { int ck=0; //danh sach rong if(Q.top == NULL) { cout << "Khong co danh sach!!"<<endl; } else
char s[5]; cout <<"Nhap ma khach hang can tim: "; fflush(stdin); gets(s); for(NodeKH k=Q.top;k!=NULL;k=k->next) { if(strcmp(k->data.maKH, s) == 0) { cout << "Thong tin khach hang ma " << s << " :"<<endl; cout<<setw(7)<<"Ma KH"<<setw(3)<<"|"<<setw(30)<<"Ten KH"<<setw(3)<<"|"<<setw(5)<<"GT"<<setw(3)<<"|"<<setw(13)<<" So dien thoai"<<setw(3)<<"|"<<setw(30)<<"PT thanh toan"<<endl; cout<<setfill('-'); cout<<setw(97)<<"-"<<endl; cout<<setfill(' '); InKH(k->data); ck=1; } } } if(ck==0){ cout<< "Khong tim thay!!"<<endl; } } //thong ke //ptt la chuyen khoan void DSKH_ck(ListKH Q) { cout<<setw(7)<<"Ma KH"<<setw(3)<<"|"<<setw(30)<<"Ten KH"<<setw(3)<<"|"<<setw(5)<<"GT"<<setw(3)<<"|"<<setw(13)<<" So dien thoai"<<setw(3)<<"|"<<setw(30)<<"PT thanh toan"<<endl; cout<<setfill('-'); cout<<setw(97)<<"-"<<endl; cout<<setfill(' '); for(NodeKH c = Q.top; c != NULL; c = c->next){ if(c->data.thanhToan==1){ InKH(c->data); } } }
if(p->data.thanhToan == 2 && p->data.gioiTinh==2) { dem++; } } cout <<"\n__So khach hang nu co PTTT Tien mat: " << dem << endl; }
2. Code Nhân Viên (Hàng đợi) // HAM XOA DAU DANH SACH void Enqueue(Queue &Q, Node *p) { if(isEmpty(Q) == 1) { Q.Front = Q.Rear = p; } else { Q.Rear->next = p; Q.Rear = p; } } // HAM XOA CUOI DANH SACH void Dequeue(Queue &Q, NhanVien &nv) { if(isEmpty(Q) == 1) { cout << "Khong co nhan vien nao trong danh sach"; } else { Node *p = Q.Front; nv = p->data; Q.Front = Q.Front->next; delete p; } } // SAPXEP THEO LUONG TANG DAN void SapxepTheoLuong(Queue &Q) { for(Node *k = Q.Front; k!= NULL;k=k->next) { for(Node *g = k->next; g!= NULL;g=g->next)
if(k->data.Luong > g->data.Luong) swap(k->data, g->data); } } // NHAN VIEN CO LUONG MAX NhanVien NhanVienMax(Queue Q) { NhanVien max = Q.Front->data; for(Node *k = Q.Front;k!=NULL;k=k->next) { if(max.Luong < k->data.Luong ) max = k->data; } return max; }
3. Code Sản Phẩm (Danh sách liên kết đôi) // tinh tong so luong san pham trong danh sach void sumSoLuongSP(listSP &Qsp) { int sum = 0; NodeSP *p = Qsp.head; while (p != NULL) { sum += p->info.soLuongSP; // Cộng số lượng sản phẩm vào tổng p = p->next; // Chuyển đến phần tử kế tiếp trong danh sách } cout << "Tong so luong san pham: " << sum << endl; } // tim san pham co ma void hienThongTinTimKiem(listSP &Qsp, int maSP) { NodeSP *p = Qsp.head; while (p != NULL) { if (p->info.maSP == maSP)