Quản lý đồ điện tử - Lập trình C
1. Khai báo cấu trúc dữ liệu
Định nghĩa một cấu trúc có tên spdientu_st gồm các thành phần sau:
Trong hàm main(), khai báo một mảng gồm 3 sản phẩm điện tử theo cấu trúc trên, có tên là danhsachsp.
2. Tạo Menu chức năng
Chương trình hiển thị Menu như sau:
Người dùng nhập lựa chọn (1–5) để thực hiện chức năng tương ứng.
3. Nhập dữ liệu của từng sản phẩm
Khi chọn 1 từ Menu, chương trình yêu cầu nhập thông tin cho từng sản phẩm như sau:
Ví dụ minh họa:
Yêu cầu kỹ thuật:
-
Viết hàm riêng để nhập dữ liệu.
-
Hàm sử dụng tham biến là mảng cấu trúc
spdientu_st. -
Lưu các giá trị người dùng nhập vào mảng
danhsachsptrong hàmmain().
4. Sắp xếp và hiển thị danh sách sản phẩm
Khi chọn 2 từ Menu:
-
Sắp xếp danh sách sản phẩm theo tên sản phẩm theo thứ tự giảm dần (Z → A).
-
Sau đó hiển thị danh sách ra màn hình theo định dạng sau:
Sau khi in danh sách, hiển thị thống kê số lượng sản phẩm theo nhà sản xuất, ví dụ:
Yêu cầu kỹ thuật:
-
Viết hàm riêng để thực hiện chức năng này.
-
Hàm sử dụng tham biến là con trỏ đến cấu trúc
spdientu_st.
5. Tìm sản phẩm theo nhà sản xuất
Khi chọn 3 từ Menu, chương trình yêu cầu người dùng nhập tên nhà sản xuất:
Sau đó, chương trình hiển thị tất cả sản phẩm thuộc nhà sản xuất này theo cùng định dạng như phần 4.
Nếu không tìm thấy sản phẩm nào, in thông báo:
Yêu cầu kỹ thuật:
-
Viết hàm riêng để thực hiện chức năng tìm kiếm.
-
Hàm sử dụng tham biến là con trỏ cấu trúc
spdientu_st.
6. Ghi dữ liệu vào tập tin nhị phân
Khi chọn 4 từ Menu:
-
Ghi toàn bộ thông tin sản phẩm trong mảng
danhsachspvào tập tin nhị phân có tênspdientu.dat.
Yêu cầu kỹ thuật:
-
Viết hàm riêng để thực hiện chức năng này.
-
Hàm sử dụng tham biến là mảng cấu trúc
spdientu_st. -
Các bước cần thực hiện:
-
Mở (hoặc tạo mới) file nhị phân
spdientu.dat. -
Ghi toàn bộ dữ liệu sản phẩm vào file.
-
Đóng file sau khi ghi xong.
-
7. Thoát chương trình
Khi chọn 5 từ Menu, chương trình kết thúc.
✅ Gợi ý triển khai
-
Sử dụng
fwrite()để ghi file nhị phân. -
Sử dụng
strcmp()để sắp xếp theo tên sản phẩm. -
Sử dụng
scanf()hoặcfgets()để nhập dữ liệu (tránhgets()). -
Dùng vòng lặp
forđể duyệt mảng sản phẩm. -
Có thể tạo các hàm con như:
-
void nhapSanPham(struct spdientu_st danhsach[], int n); -
void hienThiDanhSach(struct spdientu_st danhsach[], int n); -
void sapXepTheoTen(struct spdientu_st danhsach[], int n); -
void thongKeTheoNSX(struct spdientu_st danhsach[], int n); -
void timTheoNSX(struct spdientu_st *danhsach, int n); -
void ghiFile(struct spdientu_st danhsach[], int n);
-