Following are the functional requirements of the system that needs to be developed.
CO 1404 – Introduction to Programming Take-Home Assignment Release Date :- 30th April, 2021 Submission Date:- 30th May, 2021 Synex Outlet Store (SYOS) is an up and coming grocery store in the Colombo area. SYOS consists of a large store where the customers can choose their household needs. After selecting items, customers check out the items via the single point of sales managed by an employee of SYOS. At the point of sale, the employee writes down the items to be purchased in their quantities and calculate the amount owed by the customer to SYOS. Upon payment, the employee prepares and issues the final bill with the necessary change. The management of SYOS has observed that during the rush hour, the customers are spending a lot of time queuing at the point of sales, resulting in both store congestion and customer dissatisfaction. Also, the manual methods are prone to errors in calculations, time-consuming and tedious. To alleviate the problem, the management has decided to automate the billing system at SYOS and integrate it with the stock system to efficiently manage stocks and reorder levels. Following are the functional requirements of the system that needs to be developed. 1. The items to be purchased by the customer requires to be entered into the system via a code. The codes can be defined in suitable form as long as it identifies the item uniquely. Once the item has been keyed into the system, the quantity is inserted, and the next item is keyed into the system. Upon completing the inserting of the items to be purchased into the system, the system shall calculate the dues and display them to the employee. a. SYOS only accepts cash payments. Hence, when cash is tendered, the amount so tendered is inserted into the system and, the change to be returned is calculated and displayed. b. The bill is created with item name (not code), the quantity, total price for the item, the bill's total price, discount, cash tendered, and the change amount. The bill should further have the bill serial number (running number starting from 1) and the bill date. Bill should be saved as a separate file with the bill serial number for each customer transaction performed. 2. Upon the customer checking out (the bill has been generated and saved), the number of items on shelves should be reduced by the amount the customer has purchased. a. The items are first bought to the store of SYOS, and the items are stocked according to the code, date of purchase, amount of quantity received and date of expiry of items. b. From the store, items are moved to the shelf. The stock should be reduced from the oldest batch of items and put on the shelf. However, in a case where another batch's expiry date is closer than the one in the oldest batch of items, the newer batch is chosen to stock the SYOS shelves. 3. Following reports are needed to be displayed on the screen as well as file output a. The total sale for a given day. This report should display the items sold (with name and code) and the total quantity, and the total revenue for the given day. b. The total number of items with code, name, and quantity required to be reshelved at the end of the day. c. Reorder levels of stock. If any stock for a given item falls below 50 items, that item should appear on the report. d. Stock report. Provides details of the current stock in batchwise manner with the same information as mentioned in 2(a) above. e. Bill report. This would contain all the customer transactions that have taken place in the SYOS system. Deliverables • Working C++ program for the scenario given above. The program should create files for the store, shelf and bills of SYOS. o Filenames: store.txt and shelf.txt o Bills should be named in a separate file for each transaction with the relevant bill serial. • The student is required to submit the following in addition to the working source code as specified above. o Data flow diagrams for the entire scenario. o Pseudo-code for the business logic. • The source code, the diagrams and the pseudo-code should be submitted to the blackboard in a single archived name with your UCLAN id. • A command-line interface is mandatory for the SYOS system that is to be developed. Evaluation Criteria Dataflow diagrams for the entire scenario 15 marks Psuedo-code for the core business logic 10 marks Implementation of core business logic in C++ 40 marks File input/output (proper naming, updating of text files) 15 marks Comments, indentation, readability of the code produced. 20 marks