1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài toán quản lý hàng mỹ phẩm môn cấu trúc dữ liệu và giải thuật và code

19 38 0

Đ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

Thông tin cơ bản

Tiêu đề Bài toán quản lý hàng mỹ phẩm
Trường học Trường Đại Học Sư Phạm Hà Nội
Chuyên ngành Cấu trúc dữ liệu và giải thuật
Thể loại Báo cáo đề tài
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 19
Dung lượng 280,2 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Viết chương trình quản lý các đối tượng để thực hiện cho “Bài toán quản lý hàng mỹ phẩm”. Môn IT05 cấu trúc dữ liệu và giải thuật đã bao gồm code c++ , Viện Đại Học Mở Hà Nội.Đa phần các cửa hàng mỹ phẩm ở Việt Nam đều được mở ra tự phát, hoặc được truyền lại từ đời này sang đời khác. Các chủ cửa hàng chủ yếu quản lý cửa hàng theo độ nhạy và kinh nghiệm gia truyền được truyền lại mà thiếu kinh nghiệm quản lý khoa học và chưa có chiến lược phát triển cụ thể. Chính vì vậy có chương trình quản lý cửa hàng mỹ phẩm là quan trọng

Trang 1

MỤC LỤC

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

2 XÁC ĐỊNH CTDL BIỂU DIỄN BÀI TOÁN 2

3 XÁC ĐỊNH CÁC THUẬT TOÁN – CÁC CHỨC NĂNG 2

4 LẬP TRÌNH – CÀI ĐẶT 3

5 KIỂM THỬ - LẬP BỘ TEST 13

5.1 Chọn yêu cầu 13

5.2 Nhập thông tin mỹ phẩm 14

5.3 Danh sách mỹ phẩm đã nhập 15

5.4 Tìm kiếm mỹ phẩm theo tên 15

5.5 Sắp xếp danh sách mỹ phẩm theo giá bán giảm dần 15

5.6 Tính tổng tiền các loại mỹ phẩm trong cửa hàng 15

5.7 Hiển thị các loại mỹ phẩm số lượng lớn hơn 10 16

5.8 Tìm mỹ phẩm có số lượng lớn nhất 16

5.9 Thêm nhân viên vào danh sách 17

5.10 Hiển thị danh sách nhân viên đã nhập 18

5.11 Tìm kiếm nhân viên theo tên 18

5.12 Sắp xếp nhân viên theo tên 19

6 Kết luận hướng phát triển 19

Trang 2

ĐỀ TÀI: Viết chương trình quản lý các đối tượng để thực hiện cho “Bài toán quản lý

hàng mỹ phẩm”

I Nội dung:

* Các thao tác cần thực hiện

- Nhập – In danh sách đối tượng;

- Thêm, sửa, xoá đối tượng

- Tìm kiếm đối tượng

- Sắp xếp đối tượng

- Các yêu cầu tìm phần tử lớn nhất, nhỏ nhất

- Các yêu cầu tính tổng, trung bình, đếm

- Các yêu cầu thống kê theo điều kiện

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

Đa phần các cửa hàng mỹ phẩm ở Việt Nam đều được mở ra tự phát, hoặc được truyền lại từ đời này sang đời khác Các chủ cửa hàng chủ yếu quản lý cửa hàng theo độ nhạy và kinh nghiệm gia truyền được truyền lại mà thiếu kinh nghiệm quản lý khoa học và chưa có chiến lược phát triển cụ thể Chính vì vậy có chương trình quản lý cửa hàng mỹ phẩm là quan trọng

2 XÁC ĐỊNH CTDL BIỂU DIỄN BÀI TOÁN

- Quản lý thông tin sản phẩm

- Quản lý thông tin nhân viên

3 XÁC ĐỊNH CÁC THUẬT TOÁN – CÁC CHỨC NĂNG

Tổ chức lưu trữ bài toán bằng : Danh sách liên kết đơn.

Các thuật toán

 Phương pháp Đổi chỗ trực tiếp (Interchange sort)

 Phương pháp Nổi bọt (Bubble sort)

 Phương pháp Chèn trực tiếp (Insertion sort)

 Phương pháp Chọn trực tiếp (Selection sort)

Các chức năng chính như:

- Tạo list

- Tạo struct

- Các hàm xử lý dữ liệu (thêm, sửa, xoá, tìm kiếm…)

- Các hàm xử lý khác

Chương trình khi chạy ban đầu xuất hiện danh sách lựa chọn chức năng:

- Nhập thông tin mỹ phẩm

Trang 3

- In danh sách mỹ phẩm đã nhập

- Tìm kiếm mỹ phẩm theo tên

- Sắp xếp theo đơn giá bán giảm dần

- Tính tổng tiền mỹ phẩm

- Hiển thị các mỹ phẩm có số lượng lớn hơn 10

- Tìm kiếm mỹ phẩm có số lượng lớn nhất

- Thêm nhân viên vào danh sách

- Hiển thị danh sách nhân viên đã nhập

- Tìm kiếm nhân viên theo tên

- Sắp xếp danh sách nhân viên giảm dần

4. LẬP TRÌNH – CÀI ĐẶT

Tiến hành cài đặt bài tập, Liệt kê cấu trúc chương trình tổng quát và đưa ra một số code xử lý chính

- Tiến hành code

#include <stdio.h>

#include <string.h>

struct MyPham;

struct NhanVien;

void hienThiDSMyPham(struct MyPham* ds, int slsv);

void hienThiTenCot();

void hienThiDSNhanVien(struct NhanVien* ds, int slsv);

void hienThiTenCotNhanVien();

struct MyPham {

char MaMyPham[50];

char TenMyPham[50];

char Hang[50];

float DonGiaBan;

int SoLuongBan;

float ThanhTien;

};

//nhanvien

struct NhanVien{

Trang 4

char MaNhanVien[50];

char TenNhanVien[50];

};

struct MyPham nhapMyPham() {

struct MyPham MyPham;

printf("\nNhap Ma my pham: ");

scanf("%s", &MyPham.MaMyPham);

printf("\nNhap Ten my pham: ");

scanf("%s", &MyPham.TenMyPham);

printf("\nNhap hang: ");

scanf("%s", &MyPham.Hang);

printf("\nNhap Don gia Ban: ");

scanf("%f", &MyPham.DonGiaBan);

printf("\nNhap so luong: ");

scanf("%d", &MyPham.SoLuongBan);

return MyPham;

}

//nhanvien

struct NhanVien nhapNhanVien() {

struct NhanVien NhanVien;

printf("\nNhap Ma nhan vien: ");

scanf("%s", &NhanVien.MaNhanVien);

printf("\nNhap Ten nhan vien: ");

scanf("%s", &NhanVien.TenNhanVien);

return NhanVien;

}

Trang 5

void hienThiMyPham(struct MyPham sv){

printf("%-20s %-20s %-20s %-10.2f %-10d %-10.2f\n",

sv.MaMyPham, sv.TenMyPham, sv.Hang, sv.DonGiaBan, sv.SoLuongBan,

sv.DonGiaBan*sv.SoLuongBan);

}

// nhan vien

void hienThiNhanVien(struct NhanVien sv){

printf("%-20s %-20s \n",

sv.MaNhanVien, sv.TenNhanVien);

}

void hienThiDSMyPham(struct MyPham* ds, int slsv) {

hienThiTenCot();

int i;

for(i = 0; i < slsv; i++) {

hienThiMyPham(ds[i]);

}

printf(" -"

" -\n");

}

//dsnhanvien

void hienThiDSNhanVien(struct NhanVien* ds, int slsv) {

hienThiTenCotNhanVien();

int i;

for(i = 0; i < slsv; i++) {

hienThiNhanVien(ds[i]);

}

printf(" -"

" -\n");

}

Trang 6

void hienThiTenCot() {

printf(" -"

" -\n");

printf("%-20s %-20s %-20s %-10s %-10s %-10s \n",

"MaMyPham", "TenMyPham", "Hang", "DonGiaBan", "SoLuongBan",

"ThanhTien");

}

//hienthicotnhanvien

void hienThiTenCotNhanVien() {

printf(" -"

" -\n");

printf("%-20s %-20s \n",

"MaNhanVien", "TenNhanVien");

}

void timTheoTen(struct MyPham* ds, int slsv) {

char ten[20];

printf("Nhap ten My Pham can tim kiem: ");

scanf("%s", ten);

hienThiTenCot();

int i, timSV = 0;

for(i = 0; i < slsv; i++) {

if(strcmp(ten, ds[i].TenMyPham) == 0) {

hienThiMyPham(ds[i]);

timSV = 1;

} }

if(timSV == 0) {

Trang 7

printf("Khong co My Pham %s trong danh sach!\n", ten);

}

}

// tìm kiem ten nhan vien

void timTheoTenNhanVien(struct NhanVien* ds, int slsv) {

char ten[20];

printf("Nhap ten Nhan Vien can tim kiem: ");

scanf("%s", ten);

hienThiTenCotNhanVien();

int i, timSV = 0;

for(i = 0; i < slsv; i++) {

if(strcmp(ten, ds[i].TenNhanVien) == 0) {

hienThiNhanVien(ds[i]);

timSV = 1;

} }

if(timSV == 0) {

printf("Khong co nhan vien %s trong danh sach!\n", ten);

}

}

void sapXepTheoDonGia(struct MyPham* ds, int slsv) {

int i, j;

for(i = 0; i < slsv - 1; i++) {

for(j = i + 1; j < slsv; j ++) {

if(ds[i].DonGiaBan < ds[j].DonGiaBan) {

struct MyPham sv = ds[i];

ds[i] = ds[j];

ds[j] = sv;

}

Trang 8

} }

}

//sap xep nhan vien theo ten

void sapXepNhanVienTheoTen(struct NhanVien* ds, int slsv) {

int i, j;

for(i = 0; i < slsv - 1; i++) {

for(j = i + 1; j < slsv; j ++) {

if(ds[i].TenNhanVien < ds[j].TenNhanVien) {

struct NhanVien sv = ds[i];

ds[i] = ds[j];

ds[j] = sv;

} }

}

}

void TinhTongTienMyPham(struct MyPham* ds, int slsv) {

int i;

for(i = 0; i < slsv - 1; i++) {

ds[i].ThanhTien=ds[i].SoLuongBan*ds[i].DonGiaBan;

}

}

void MyPhamSLLonNhat( struct MyPham* sv, int slsv)

{

int index=1;

float max=0;

int i;

Trang 9

for(i=0;i<slsv;i++)

{

if(sv[i].SoLuongBan>max)

{

max=sv[i].SoLuongBan;

index=i;

}

}

hienThiMyPham(sv[index]);

}

void MyPhamSLlonhon10( struct MyPham* sv, int slsv)

{

int index=1;

float max=0;

int i;

for(i=0;i<slsv;i++)

{

if(sv[i].SoLuongBan>10)

{

hienThiMyPham(sv[i]);

}

}

}

int main() {

int i;

Trang 10

struct MyPham dssv[100];

struct NhanVien dsnv[100];

int slsv = 0;

int luaChon;

do {

printf("=============== MENU ===============");

printf("\n1 Them My Pham vao danh sach.");

printf("\n2 Hien thi danh sach My Pham da nhap.");

printf("\n3 Tim kiem My Pham theo ten.");

printf("\n4 Sap xep theo don gia ban giam dan.");

printf("\n5 Tinh tong tien My Pham.");

printf("\n6 Hien thi cac My Pham co so luong lon hon 10.");

printf("\n7 Tim My Pham co so luong lon nhat.");

printf("\n8 Them Nhan Vien Vao danh sach.");

printf("\n9 Hien thi danh sach nhan vien da nhap.");

printf("\n10 Tim kiem nhan vien theo ten.");

printf("\n11 Sap xep nhan vien theo ten.");

printf("\n0 Thoat chuong trinh.");

printf("\nBan chon ? ");

scanf("%d", &luaChon);

struct MyPham sv;

struct NhanVien nv;

switch(luaChon) {

case 0:

break;

case 1:

Trang 11

sv = nhapMyPham();

dssv[slsv++] = sv;

break;

case 2:

hienThiDSMyPham(dssv, slsv);

break;

case 3:

timTheoTen(dssv, slsv);

break;

case 4:

sapXepTheoDonGia(dssv, slsv);

printf("\nDanh sach My Pham sau khi sap xep theo don gia ban giam dan:\n");

hienThiDSMyPham(dssv, slsv);

break;

case 5:

printf(" -"

" -\ n");

printf("%-20s %-20s %-20s %-10s %-10s %-10s \n",

"MaMyPham", "TenMyPham", "Hang", "DonGiaBan",

"SoLuongBan", "ThanhTien");

for(i = 0; i < slsv; i++) {

printf("%-20s %-20s %-20s %-10.2f %-10d %-10.2f\ n",

dssv[i].MaMyPham, dssv[i].TenMyPham, dssv[i].Hang, dssv[i].DonGiaBan, dssv[i].SoLuongBan, dssv[i].SoLuongBan*

dssv[i].DonGiaBan);

Trang 12

}

break;

case 6:

MyPhamSLlonhon10(dssv, slsv);

break;

case 7:

MyPhamSLLonNhat(dssv, slsv);

break;

case 8:

nv = nhapNhanVien();

dsnv[slsv++] = nv;

break;

case 9:

hienThiDSNhanVien(dsnv, slsv);

break;

case 10:

timTheoTenNhanVien(dsnv, slsv);

break;

case 11:

sapXepNhanVienTheoTen(dsnv, slsv);

printf("\nDanh sach nhan vien sap xep ten tu z den a:\n"); hienThiDSNhanVien(dsnv, slsv);

break;

default:

printf("Sai chuc nang, vui long chon lai!\n");

Trang 13

} } while(luaChon);

return 0;

}

5 KIỂM THỬ - LẬP BỘ TEST

Thực hiện chạy với bộ dữ liệu mẫu (Input-Output) đã xác định ở phần 2

Cho biết kết quả khi chạy từng chức năng tương ứng trên bộ dữ liệu Input đó

Chụp hình ảnh kết quả chương trình tương ứng

5.1 Chọn yêu cầu

Trang 14

5.2 Nhập thông tin mỹ phẩm

Trang 15

5.3 Danh sách mỹ phẩm đã nhập

5.4 Tìm kiếm mỹ phẩm theo tên

5.5 Sắp xếp danh sách mỹ phẩm theo giá bán giảm dần

5.6 Tính tổng tiền các loại mỹ phẩm trong cửa hàng

Trang 16

5.7 Hiển thị các loại mỹ phẩm số lượng lớn hơn 10

5.8 Tìm mỹ phẩm có số lượng lớn nhất

Trang 17

5.9 Thêm nhân viên vào danh sách

Trang 18

5.10 Hiển thị danh sách nhân viên đã nhập

5.11 Tìm kiếm nhân viên theo tên

Trang 19

5.12 Sắp xếp nhân viên theo tên

6 Kết luận hướng phát triển

- Hoàn thiện chức năng của phần mềm

- Khắc phục các lỗi tồn tại của hệ thống

- Ghi nhận thêm các yêu cầu khác của phần mềm

Ngày đăng: 27/07/2023, 19:39

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w