Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Instructions Project 1: Kitchen Impossible Milestone Due: February 8 by Midnight Complete Project Due: February 22 by Midnight For this project you will be designing

Instructions

Project 1: Kitchen Impossible

Milestone Due: February 8 by Midnight Complete Project Due: February 22 by Midnight

For this project you will be designing and implementing a system, in C++ (98, 11, or 14), to help manage inventory for a struggling restaurant. Your system will read in the list of ingredients for each dish, store the ingredients list for each dish in a bit vector, and perform data analytics on the information to help the restaurant determine where it can make improvements.

Additionally, sample input files can instead be found on the CSE machines at /home/jeh0289/public/csce2110/sp19/proj1/ You can cd into that directory and copy input the files from there.

Requirements

This assignment has two parts: a report and the implementation of the solution.

Report

For the report portion, you must generate documentation, in PDF format, describing your system. The purpose of this is for you to explain not just what your system is doing, and how it is doing it, but why. You will need to justify your design decisions in a concise, informative manner. Justifications such as I did this because it was easy are not sufficient, as you should actually explain why a particular data structure or algorithm was more efficient, effective, or optimal. Additionally, commented code, while sometimes helpful in small examples, is not a sufficient explanation in and of itself. Your explanations and justifications are expected to be presented in prose and in paragraph format, i.e. not bulleted lists. Further, part of the evaluation of your report is the apparent amount of thought and effort that went into its creation.

This document should be divided into three main sections, and should follow the template provided on Canvas.

For the Project Description section, in one to two paragraphs you should describe the project in your own words and give a brief overview of the problem. Do not copy and paste this information from this instruction document.

For the Data Structure section, you should describe the data structures you used in your system. What objects or structs did you create to store data? How did you organize and manage them? What types of formal data structures did you make use of (trees, graphs, arrays, hashes, etc)? Be sure to put the majority of the functionality explanation in the System Functionality section. In a few paragraphs, describe in detail how you stored the various data elements in your system, and be sure to provide sufficient justification of your methodology.

For the System Functionality section, you should describe functionality of your system. How is data moved and transformed? How is it read in? How is it output? What are the various major functions you constructed and how do they work? In a few paragraphs, describe in detail how your system works, and be sure to provide sufficient justification of your methodology. You might also consider including diagrams to more easily visualize how all of the pieces fit together.

Implementation

Your program must provide the following functionality and adhere to the following constraints:

Allow the user to input the name of the file containing the list of dishes: o Do NOT hardcode the filename into your program. o The first line will be a comma delimited list containing the full list of ingredients the restaurant has on

hand. o All other lines will have the name of the dish, followed by a colon, and then a comma delimited list of

ingredients. Your program should read in each dish and create an appropriate set object for the dish.

o If a dish contains an ingredient that is not part of the full list of ingredients the restaurant has on hand, politely report this to the user and do not include the dish

  • Your int main() should be in its own .cpp file

  • The set class for a dish should be in its own .cpp file with an associated header file and contain at least:

o A bit vector representation of the dishs ingredients using Booleans.

o Appropriate accessor and mutator (getter and setter) member functions to promote encapsulation. Using appropriate set operations (i.e. Union, Intersection, etc...) you implement as functions, your program

should calculate and output the following: o The set of all ingredients that are in one or more dishes in 0/1 format, where a 1 indicates an ingredient

is a member of the set. o The set of all ingredients that are in more than one dish in 0/1 format, where a 1 indicates an ingredient

is a member of the set. o The set of all ingredients that are in exactly one dish in 0/1 format, where a 1 indicates an ingredient is a

member of the set. o The set of all ingredients that are in no dishes in 0/1 format, where a 1 indicates an ingredient is a

member of the set. o These operations should be stored in a separate .cpp file as a library. o Remember that most set operations are binary (performed on two sets), so your set operation functions

should never be performed on more than two sets at a time. You may need a temporary set to store

information while you are working toward the final solution. o Manipulation and generation of resulting sets should only be performed using set operations

  • Your program should also output the 0/1 formatted set of the ingredients for each dish, where a 1 indicates an ingredient is a member of the set. Make sure the name of the dish is provided along with its associated ingredients.

  • Example outputs have been provided in the same directory as the example inputs.

  • You may not use any of the set containers or set operations/algorithms provided by C or C++. You must write

    your own versions of them.

o Examples: bitsets, sets, multisets, set_union, set_intersection, set_difference, etc...

  • Your code must be well commented.

  • You must provide a .txt README file which includes your name and explains how to compile and run your

program. An example README file has been provided in the same directory as the example input files.

Additionally, you may write a makefile if you want your code to compile with additional flags.

Milestone Submission

Your program must be able to read in the input file, display the 0/1 formatted set of the ingredients for each dish. Make sure it adheres to the constraints listed in the instructions. You must submit a .zip file containing the following:

  1. All files necessary to compile and run your program

  2. A .txt README file explaining how to compile and run your program

Complete Project Submission

Your program must provide all requested functionality. You must submit a .zip file containing the following:

  1. All files necessary to compile and run your program

  2. A .txt README file explaining how to compile and run your program

  3. Your report in PDF format

Rubric

The entire assignment is worth 100 points. The breakdown of those points is as follows.

  • 30 points: Report

  • 30 points: Code satisfies milestone requirements

  • 30 points: Code satisfies complete requirements

  • 10 points: Professional coding style

o 5 points: Adequate comments o 5 points: Readability

If your code fails to compile on the CSE machines you will not receive credit for the code portion of the assignment. I recommend not making changes to your code without checking for compilation before you submit.

Bonus

For 20 bonus points, you will need to implement the set as a LinkedList, instead of a bit vector, where a node represents a single food item. This should be done as a separate program from your bit vector implementation. Additionally, you must write your own LinkedList class and associated operations, in addition to the bit vector implementation restrictions on STL usage.

Thanks! image text in transcribed

image text in transcribed

image text in transcribed

a 2110+Project+1.pdf (page of 3 Project 1: Kitchen Impossible Milestone Due: February 8 by Midnight Complete Project Due: February 22 by Midnight Instructions For this project you will be designing and implementing a system, in C+ (98, 11, or 14), to help manage inventory for a struggling restaurant. Your system will read in the list of ingredients for each dish, store the ingredients list for each dish in a bit vector, and perform data analytics on the information to help the restaurant determine where it can make Additionally, sample input files can instead be found on the CSE machines at /home/jeh0289/public/csce2110/sp19/proj You can cd into that directory and copy input the files from there. Also, as a reminder, all of the work for this project must be the sole product of the individual student. You may not share code or download solutions off the internet, as doing so will be considered cheating. If you are struggling with a concept or implementation, you are encouraged to contact the instructor or your TA's for aid Requirements This assignment has two parts: a report and the implementation of the solution. Report For the report portion, you must generate documentation, in PDF format, describing your system. The for you to explain not just what your system is doing, and how it is doing it, but why. You will need to ju purpose of this is stify your design decisions in a concise, informative manner. Justifications such as 1 did this because it was easy are you should actually explain why a particular data structure or algorithm was more efficient, effective, or op imal. Additionally, commented code, while sometimes helpful in small examples, is not a sufficient explana Your explanations and justifications are expected to be presented in prose and in paragraph format, ie. not bulleted lists. Further, part of the evaluation of your report is the apparent amount of thought and effort that went into its creation This document should be divided into three main sections, and should follow the template provided on Canvas. for the Project Description section, in one to two paragraphs you should describe the project in your own words and give a brief overview of the problem. Do not copy and paste this information from this instruction document. For the Data Structure section, you should describe the data structures you used in your system. What objects or structs did you create to store data? How did you organize and manage them? What types of formal data structures did you make use of (trees, graphs, arrays, hashes, etc)? Be sure to put the majority of the functionality explanation in the System Functionality section. In a few paragraphs, describe in detail how you stored the various data elements in your system, and be sure to provide sufficient justification of your methodology. For the System Functionality section, you should describe functionality of your system. How is data moved and transformed? How is it read in? How is it output? What are the various major functions you constructed and how do they work? In a few paragraphs, describe in detail how your system works, and be sure to provide sufficient justification of your methodology. You might also consider including diagrams to more easily visualize how all of the pieces fit together Implementation Your program must provide the following functionality and adhere to the following constraints: Allow the user to input the name of the file containing the list of dishes o Do NOT hardcode the filename into your program o The first line will be a comma delimited list containing the full list of ingredients the restaurant has on hand o All other lines will have the name of the dish, followed by a colon, and then a comma delimited list of ingredients. Your program should read in each dish and create an appropriate set object for the dish o If a dish contains an ingredient that is not part of the full list of ingredients the restaurant has on hand, politely report this to the user and do not include the dish Your int main() should be in its own.cpp file a dish should be in its own.cpp file with an associated header file and contain at least o A bit vector representation of the dish's ingredients using Booleans o Appropriate accessor and mutator (getter and setter) member functions to promote encapsulation. Using appropriate set operations (i.e Union, Intersection,etc) you implement as functions, your program should calculate and output the following: o The set of all ingredients that are in one or more dishes in Of1 format, where a 1 indicates an ingredient is a member of the set The set of al ingredients that are in more than one dish in o/s format, where a 1 indicates an ingredient is a member of the set The set of al ingredients that are in exactly one dish in O/1 format, where a 1 indicates an ingredient is a member of the set o o o The set of all ingredients that are in no dishes in o/1 format, where a 1 indicates an ingredient is a member of the set These operations should be stored in a separate.cpp file as a library Remember that most set operations are binary (performed on two sets), so your set operation functions should never be performed on more than two sets at a time. You may need a temporary set to store information while you are working toward the final solution Manipulation and generation of resulting sets should only be performed using set operations o o Your program should also output the 0/1 formatted set of the ingredients for each dish, where a 1 indicates arn ingredient is a member of the set. Make sure the name of the dish is provided along with its associated ingredients. Example outputs have been provided in the same directory as the example inputs. You may not use any of the set containers or set operations/algorithms provided by C or C your own versions of them . you mat write o Examples: bitsets, sets, multisets, set union, set intersection, set difference, etc.. .Your code must be well commented You must provide a 1xt README file which includes your name and explains how to compile and run your program. An example README file has been provided in the same directory as the example input files

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Oracle Autonomous Database In Enterprise Architecture

Authors: Bal Mukund Sharma, Krishnakumar KM, Rashmi Panda

1st Edition

1801072248, 978-1801072243

More Books

Students also viewed these Databases questions