The Development of C++ Software
Added on - 16 Sep 2019
CIS 2252 – Programming ProjectAssignment DefinitionThis assignment requires the development of C++ software that supportsorder processing, accountmanagement, and inventory controlactivities of an imaginary food service. Assume that customers of this foodservice will use a separate Web-based app (not included in this assignment) to browse product catalogs and thencreate shopping lists stored in specially formatted text files (see input definitions below). Each shopping list mayinclude:Food item names and quantity.Coupon information that includes the name of the food and discount amount.To process these shopping lists,customers must first create an account with your service. Each account isidentified by a unique customer id and maintains an amount of money that may only be used for food purchases(i.e., a debit account). Customers enter a dollar amount when the account is created. Once they have an account,then they may select one of the following actions provided by your service program.Retrieve a shopping list file and save it to a virtual cart (only one virtual cart per customer).Retrieve a saved cart.Add or remove items from a saved shopping cartCreate shopping cart reports (output text file with list of saved cart items for a specific customer).Process the current cart (checkout). Saved carts must be deleted after checkout.Also, customers must be able to perform the following basic functions on their account.Add money to their food service account.Display account information.The inventory for this food service must be controlled by a food service manager. Your application must providethe following functions for the service manager.Addition of food item quantity to the inventory of the food service (i.e., re-stocking).Prices changes for food items. (Note:Official prices are stored in the inventory – not shopping carts).Creation of inventory control reports (for the entire inventory or selected items).Therefore, the main function of your application, must prompt the user for the following actions using asimple console window.1.Login or create an account. (Service manager account must already be in your system.)2.If service manager,a.Add quantity to inventory.b.Update inventory prices.c.Display inventory report.3.If customer,a.Display account information.b.Add money to account.c.Retrieve a shopping list file.d.Retrieve a saved cart.e.Update cart contents.f.Display cart report.g.Process the cart (checkout)
CIS 2252 – Programming ProjectAssumptions, Pre-conditions and Minimum Data RequirementsGeneral:Customer account info (name, account#, etc.) must be saved on disk.Shopping lists must be stored in separate pre-created text files. (See below.)A simple console user interface must be provided for all user functions.There are two types of users – customers and service managers. They must bothlogin.Payment andDebit Accounts:Customers set an initial balance on their service debit account when it is created.You must reject payments over the amount available in a customer account.Customers may add money to their accounts at any time.If the total cost of cart items exceeds account balance, then cancel checkout.Food Items:You must define a minimum of twenty (20) types of food items.Initial inventory (food, quantity, prices) must be pre-loaded into an inventory file.Every request to add or remove a food item must include a quantity.Price changes to inventory do not affect price of items in carts.Adding or removing food to carts causes only temporary changes to inventory data.Shopping Carts:Each customer may use only one cart at a time.The food service can handle a maximum of twenty (20) customers at one time.Customers may save cart contents on disk and retrieve them later.Carts will contain no duplicate items.Customer cart reports must show all cart items with prices, quantities, and a total.Each cart is deleted immediately after payment and checkout.Each remove request may only remove one cart item at a time.Entire quantity for each food item in a cart must be available (no partial orders).InventoryControl andReporting:The store manager may perform re-stocking actions at any time.Food re-stocking inputs specify food item names, prices, and quantities.Re-stocking quantity values must be added to current quantity levels.Inventory control reports are only displayed on a console screen – not saved to a file.Implementation RequirementsYou must use the following features or structures of the C++ programming language.At least one (1) instance of inheritance using your own classes.At least one (1) use of polymorphism and at least one (1) use of composition.Initialization of class data must be performed in class constructors.The array class template.Pointer data types and the C++ String class.At least one (1) instance of operator overloading other than stream input or output.At least one (1) use of an STL container with associated iterator and algorithms.Exception handling must be implemented to validate user inputs.All customer account, cart and inventory data must be stored in random access binary files (.dat).Shopping list files must be input as sequential stream text.