Danh mục

Bài Tập Lớn 2: HỆ THỐNG QUẢN LÝ SẢN XUẤT KINH DOANHPhiên bản 2.01. Giới

Số trang: 6      Loại file: pdf      Dung lượng: 127.25 KB      Lượt xem: 9      Lượt tải: 0    
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Bài Tập Lớn 2: HỆ THỐNG QUẢN LÝ SẢN XUẤT KINH DOANHPhiên bản 2.01. Giới thiệuMột công ty chuyên sản xuất và cung ứng các mặt hàng ra thị trường. Công ty cần phải quản lý lượng sản xuất được, đơn đặt hàng từ khách hàng cũng như các tính toán thống kê cần thiết. Giả định rằng, chỉ có mã các sản phẩm là được lưu vào trong hệ thống. Ở mỗi ca trực, công ty cần ghi nhận lại toàn bộ quá trình sản xuất, kinh doanh.2. Yêu cầuTrong bài tập lớn này, sinh viên sẽ được cung...
Nội dung trích xuất từ tài liệu:
Bài Tập Lớn 2: HỆ THỐNG QUẢN LÝ SẢN XUẤT KINH DOANHPhiên bản 2.01. Giới Bài Tập Lớn 2: HỆ THỐNG QUẢN LÝ SẢN XUẤT KINH DOANH Phiên bản 2.01. Giới thiệuMột công ty chuyên sản xuất và cung ứng các mặt hàng ra thị trường. Công ty cần phải quản lý lượng sảnxuất được, đơn đặt hàng từ khách hàng cũng như các tính toán thống kê cần thiết. Giả định rằng, chỉ có mãcác sản phẩm là được lưu vào trong hệ thống. Ở mỗ i ca trực, công ty cần ghi nhận lại toàn bộ quá trình sảnxuất, kinh doanh.2. Yêu cầuTrong bài tập lớn này, sinh viên sẽ được cung cấp một file chứa dữ liệu nhập, bao gồm thông tin về các sựkiện đến hệ thống. Một sự kiện có thể là một lệnh nhập kho về một sản phẩm vừa mới được sản xuất ra, hoặcxuất kho cho một đơn đặt hàng về một sản phẩm của công ty, hoặc là một yêu cầu tính toán thống kê ... Saukhi kết thúc công việc, chương trình sẽ xuất ra màn hình hiện trạng dữ liệu của hệ thống.Các sự kiện mà sinh viên phải xử lý được biểu diễn dưới dạng danh sách liên kết (linked list). Dữ liệu lưu trữvà xuất là cây nhị phân. Chi tiết cụ thể công việc sinh viên phải làm sẽ mô tả trong phần 4.3. Dữ liệu nhậpDữ liệu nhập của chương trình được chứa trong file mang tên input.txt. File này sẽ chứa các thông tinvề các sự kiện gặp phải trong ca trực. Lưu ý là các số liệu tồn nếu có sẽ được đưa vào thông qua các sự kiệnnhập kho. Mỗi sự kiện sẽ được mô tả bằng một giá trị số, gọi là mã sự kiện. Ý nghĩa tương ứng của từng sựkiện được mô tả trong Bảng 1. Số sự kiện là không cố định, có thể thay đổ i tuỳ theo test case, và tối đa là 2100sự kiện. Một sự kiện có thể xảy ra nhiều lần. Các sự kiện có thể trình bày thành nhiều dòng. Bảng 1 – Các sự kiện xảy ra trong ca trực Mã sự kiện Ý nghĩa 0 Ca trực chấm dứt đột ngột 1XXXY Nhập kho Y sản phẩm XXX 2XXXY Một số lượng Y của sản phẩm XXX đã được khách hàng đặt hàng 3 Yêu cầu cấu trúc lại sổ kho theo AVL theo cách đơn giản 4 Yêu cầu cấu trúc lại sổ kho theo AVL theo cách phức tạp 5XXXY Yêu cầu nhập kho đặc biệt 6Z Yêu cầu loại bỏ các sản phẩm dư thừa 9 Sự kiện bonusVí dụ 1: Với dữ liệu nhập là11113 21112thì có các sự kiện sau:Sự kiện 1: nhập kho 3 sản phẩm 111.Sự kiện 2: có 2 sản phẩm 111 được đặt hàng.4. Hiện thực chương trìnhSinh viên sẽ hiện thực một hàm storageBin có prototype như sau: notesTree* storageBin(eventList* pEvent)Thông số pEvent là một con trỏ trỏ đến danh sách liên kết của các sự kiện được đọc từ file input, được địnhnghĩa như sau:struct eventList { int nEventCode; eventList* pNext;}Sổ kho notesTree là cấu trúc cây nhị phân lưu trữ toàn bộ dữ liệu tồn kho, có cấu trúc như sau:struct notesTree { // ID của sản phẩm int nProdID; // số lượng sản phẩm, có giá trị từ 0 đến 99 int nQuan; // chỉ dùng trong cây AVL và sẽ được bỏ qua trong các trường hợp khác int balance; notesTree* pLeftChild; // nhánh con trái // nhánh con phải notesTree* pRightChild;}Như vậy, mỗ i nút trên cây lưu trữ về tình trạng tồn sản phẩm. Thông tin về một nút bao gồm mã sản phẩm(nProdID) là khóa tìm kiếm và số lượng (nQuan). Giá trị của nProdID nằm trong khoảng [0-999], giá trị củanQuan nằm trong khoảng [0-99].Chú ý: Nếu nQuan vượt quá 99, nQuan sẽ được gán lại bằng (nQuan modulo 100). Chú ý: Trong trường hợp cây là một AVL, mỗ i nút trên cây bao gồm thêm thông tin về mức cân bằng của nó (giá trị balance). Theo định nghĩa trong bài giảng, balance = HL – HR trong đó, HL và HR lần lượt là chiều cao của cây con bên trái và cây con bên phải của nút đó. Như vậy: balance = 1: nhánh trái cao hơn nhánh phải (left_higher) balance = 0: nhánh trái và nhánh phải bằng nhau (equal_height) balance = -1: nhánh phải cao hơn nhánh trái (right_higher)Định nghĩa 1:- NI (NoteInfo) của một phần tử trong sổ kho là một chuỗi số nguyên có 5 chữ số được tạo thành bằng cáchghép các chữ số mã sản phẩm (3 chữ số), số lượng (2 chữ số).- NsI (NotesInfo) của một sổ kho là một chuỗ i biểu diễn cây nhị phân gồm các NI theo cách dùng dầu ngoặcđơn. NsI dùng để biễu diễn sổ kho và in ra kết quả khi kết thúc chương trình.Ví dụ 2: Nếu có hai sản phẩm trong sổ kho, sản phẩm ở vị trí nút gốc là 3 sản phẩm 111, sản phẩm thứ haiđứng ở vị trí nút con bên phải của ghi chú đầu, là 2 sản phẩm 222; thì NsI của cây là (11103 (N 22202)). Nviết tắt cho NULL, tức nút gốc không có nút con bên trái5. Xây dựng cây nhị phân kết quảCây nhị phân kết quả của hàm storageBin sẽ được xây dựng theo các nguyên tắc sau:S1) Sổ k ...

Tài liệu được xem nhiều: