Chủ đề 16 xây dựng chương trình quản lý bán hàng

39 0 0
Chủ đề 16 xây dựng chương trình quản lý bán hàng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Việc xây dựng chương trình quản lý bán hàng giúp các doanh nghiệp có thể quản lý được các thông tin về sản phẩm, khách hàng, đơn hàng, doanh thu, lợi nhuận, và các hoạt động kinh doanh k

Trang 1

TRƯỜ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ẢITHUẬT

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âmSinh viên thực hiện : Mai Tuyết Anh - 2210A01

Hà Thị Anh Thư - 2210A04 Lại Văn Phố - 2110A05

Đinh Xuân Phương - 2210A01

Trang 2

PHÂN CÔNG VÀ KẾ HOẠCH THỰC HIỆNHỌ VÀ TÊNCÔNG VIỆC

1 XÁC ĐỊNH BÀI TOÁN

Trang 3

1.1 Phát biểu bài toán

Chương trình quản lý bán hàng là một công cụ hữu ích giúp một cửa hàng có thể quản lý quá trình bán hàng một cách hiệu quả Việc xây dựng chương trình quản lý bán hàng giúp các doanh nghiệp có thể quản lý được các thông tin về sản phẩm, khách hàng, đơn hàng, doanh thu, lợi nhuận, và các hoạt động kinh doanh khác, từ đó giúp tăng hiệu quả kinh doanh và giảm thiểu rủi ro.

Quản lý bán hàng sẽ bao gồm các thông tin sau:

● NHÂN VIÊN trong cửa hàng có thông tin như mã nhân viên là một mã duy nhất, tên nhân viên, số điện thoại, ngày sinh, quê quán, hệ số lương, phụ cấp.

● KHÁCH HÀNG được quản lý sẽ bao gồm mã khách hàng là một mã duy nhất, tên khách hàng, giới tính, số điện thoại, phương thức thanh toán.

● SẢN PHẨM trong cửa hàng bao gồm mã sản phẩm là một mã duy nhất, tên sản phẩm, loại hàng, đơn giá, số lượng hàng trong kho.

● HOÁ ĐƠN của cửa hàng bao gồm các thông tin mã hoá đơn là một mã duy nhất, ngày lập hoá đơn, số lượng mua sản phẩm, tổng tiền.

Trang 4

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

Trang 5

Sửa thông tin 1 sản phẩm

Sắp xếp sản phẩm:

1 Tăng theo số lượng 2 Giảm theo số lượng

Tính tổng số lượng sản phẩm đang có Tìm sản phẩm có số lượng lớn nhất Tìm sản phẩm có số lượng nhỏ nhất

Hóa Đơn

Nhập danh sách hóa đơn In danh sách hóa đơn

Lưu danh sách hóa đơn vào File Đọc danh sách hóa đơn từ File Thêm hóa đơn:

1 Thêm hóa đơn vào đầu danh sách 2 Thêm hóa đơn vào cuối danh sách 3 Thêm hóa đơn sau hóa đơn chỉ định Xóa hóa đơn:

1 Xóa hóa đơn ở đầu danh sách 2 Xóa hóa đơn ở cuối danh sách 3 Xóa hóa đơn sau hóa đơn chỉ định 4 Xóa hóa đơn theo mã

Tìm kiếm một hóa đơn theo mã Sửa một hóa đơn theo mã Thống kê hóa đơn theo điều kiện:

1 Danh sách hóa đơn có tổng tiền trên 50 triệu 2 Lọc hóa đơn theo mã nhân viên

3 Lọc hóa đơn theo ngày lập

4 Danh sách hóa đơn có từ 2 đến 4 loại sản phẩm Sắp xếp hóa đơn tăng dần theo tổng tiền

Tính tổng/trung bình/đếm Hóa đơn có tổng tiền lớn nhất

Trang 6

2 XÁC ĐỊNH CTDL BIỂU DIỄN BÀI TOÁN2.1 Các cấu trúc dữ liệu được tổ chức

a, Ngăn xếp (Stack): Khách hàng: struct KhachHang {

char maKH[5], sdt[13], tenKH[30]; int gioiTinh, thanhToan;

//khoi tao danh sach rong void initKH(ListKH &Q)

Trang 8

- Bước 1: khởi tạo biến đếm = 0

- Bước 2: Kiểm tra danh sách còn phần tử và duyệt từ phần tử đầu đến phần tử cuối của danh sách

- Nếu p -> thanhToan == momo thì tăng biến đếm lên 1 - Bước 3: In ra màn hình giá trị biến đếm

Tìm kiếm theo mã: - Bước 1: k=Q.top

- Bước 2: Kiểm tra danh sách còn phần tử và duyệt từ phần tử đầu đến phần tử cuối của danh sách theo điều kiện đã cho, nếu k!

Trang 9

=NULL thì k trỏ đến phần tử cần tìm, ngược lại không tìm thấy phần tử cần tìm

b Hàng đợi:

DeQueue(Xóa 1 nhân viên ở đầu danh sách):

Trang 10

EnQueue(Thêm 1 nhân viên vào cuối danh sách):

Trang 11

c DSLK Đôi:

Xóa cuối:

- Bắt đầu hàm xoacuoiSP: + Khởi động hàm xoacuoiSP - Kiểm tra danh sách rỗng:

+ Kiểm tra xem danh sách có phần tử nào hay không +Nếu danh sách rỗng, kết thúc hàm.

- Kiểm tra danh sách có một phần tử:

Trang 12

+Kiểm tra xem danh sách có chỉ một phần tử hay không +Nếu có, xóa phần tử đó.

+Cập nhật con trỏ đầu và cuối danh sách +Kết thúc hàm.

- Xoá cuối của danh sách nhiều phần tử: + Nếu danh sách có nhiều hơn một phần tử:

+Di chuyển con trỏ tạm thời đến phần tử cuối cùng của danh sách +Cập nhật con trỏ cuối danh sách để trỏ đến phần tử trước phần tử cuối cùng.

+Xóa phần tử cuối cùng.

+Giải phóng bộ nhớ của phần tử cuối cùng.

+Cập nhật con trỏ next của phần tử trước phần tử cuối cùng thành

- Kiểm tra danh sách rỗng hoặc chỉ có một phần tử: + Kiểm tra xem danh sách có phần tử nào không.

+ Nếu danh sách rỗng hoặc chỉ có một phần tử, kết thúc hàm vì không cần sắp xếp.

- Sắp xếp danh sách nhiều phần tử:

+ Sử dụng thuật toán sắp xếp nổi bọt (bubble sort) hoặc một thuật toán sắp xếp khác.

+ Lặp qua danh sách và so sánh các phần tử liên tiếp + Nếu phần tử sau lớn hơn phần tử trước, hoán đổi chúng + Tiếp tục quá trình này cho đến khi danh sách được sắp xếp - Hiển thị danh sách sau khi sắp xếp:

+ Hiển thị danh sách sau khi đã sắp xếp theo yêu cầu của người dùng (tăng dần hoặc giảm dần).

Trang 13

- Kết thúc hàm:

+ Kết thúc hàm sapxepSP.

d DSLK Đơn:

Sắp xếp:

Trang 14

Xóa sau hóa đơn chỉ định:

Trang 15

Thêm sau hóa đơn chỉ định:

Trang 16

Xóa hóa đơn theo mã:

Trang 18

for(NodeKH* c = Q.top; c != NULL; c = c->next){ if(c->data.thanhToan==2 && c->data.gioiTinh==2){

Trang 19

if(p->data.thanhToan == 2 && p->data.gioiTinh==2)

2 Code Nhân Viên (Hàng đợi) // HAM XOA DAU DANH SACH void Enqueue(Queue &Q, Node *p)

// HAM XOA CUOI DANH SACH void Dequeue(Queue &Q, NhanVien &nv)

// SAPXEP THEO LUONG TANG DAN void SapxepTheoLuong(Queue &Q)

Trang 20

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)

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)

Trang 21

{

cout << "\nThong tin san pham:"; cout << "\nMa SP: " << p->info.maSP; cout << "\nTen SP: " << p->info.tenSP; cout << "\nLoai SP: " << p->info.loaiSP; cout << "\nSo Luong: " << p->info.soLuongSP; cout << "\nDon Gia: " << p->info.donGia; return;

}

p = p->next; }

// Nếu không tìm thấy sản phẩm với mã tương ứng cout << "\nKhong tim thay san pham co ma " << maSP; }

// doc ghi file san pham int soLuongSP(listSP &Qsp)

Trang 23

//loai san pham

cout<<"Nhap so loai san pham khach mua: "; cin>>a.slSP;

cout<<"_Nhap danh sach san pham mua hang: "<<endl; for(int i = 0; i < a.slSP; i++){

Trang 24

void inHD (HoaDon &x){

cout<<"\n\n HOA DON BAN HANG

Trang 27

float sum = sumTienDSHD (ds); int count = countDSHD (ds);

Trang 29

4.2: Nhân Viên (Queue): 1 Enqueue() +Nhập thông tin:

Trang 31

+Danh sách ban đầu:

+ Danh sách sau khi xóa:

4.3: Sản Phẩm (DSLK Đôi):

Trang 32

1 In danh sách sản phẩm:

2 Tính tổng số lượng sản phẩm:

3 Tìm sản phẩm theo mã:

Trang 33

4.4: Hóa Đơn (DSLK Đơn):

Trang 34

1 Nhập danh sách hóa đơn:

Trang 35

2 In danh sách hóa đơn:

2 Tổng giá trị tất cả hóa đơn:

Trang 36

3 Trung bình cộng tất cả các hóa đơn:

4 Hóa đơn có tổng tiền lớn nhất:

Trang 37

5 Sửa 1 hóa đơn theo mã:

Trang 38

6 Sắp xếp hóa đơn tăng dần theo tổng tiền

Ngày đăng: 08/04/2024, 12:49

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan