Question
Have you ever wanted to predict the future? Well the Magic Eight Ball does just that. The original game was a softball sized 8-ball. You
Have you ever wanted to predict the future? Well the Magic Eight Ball does just that. The original game was a softball sized 8-ball. You would ask a question, shake it up and look at the result. There are 20 responses10 positive, 5 negative, and 5 are vague, which are given at the end of the implementation details below. For this project, we want to recreate this, but give the ability to read in a set of responses, and add additional responses, and print out all of the responses in alphabetical order. Of course, we have to give seemingly accurate responses, which we will do by giving a random response.
Program Details:
You should have a menu with five lettered options. You should accept both capital and lower case letters in your menu options. The menu should do the task, then return to the menu (except in the case of exit). Any incorrect responses should get an error message, followed by a reprint of the menu.
Read responses from a file
Play Magic Eight Ball
Sort by responses (alphabetically)
Sort by categories (with responses listed alphabetically for each category)
Write responses to a file
Exit
Each menu item must be implemented using a function or sets of functions with appropriate input parameters and return values. Functions will have a prototype in a file called functions.h and defined in a file called functions.cpp.
DO NOT USE structs, vectors, and/or classes.
Implementation Detail 1: Remember you will need to #include functions.h into both your main.cpp and functions.cpp but do not include .cpp files
Implementation Detail 2: You should have an duplicate guard in your functions.h like: #ifndef FUNCTIONS_H #define FUNCTIONS_H void readResponses(ifstream &infile, string responses[ ], string categories[ ], int &size );
void playMagicEightBall(string responses [ ], string categories [ ], int size );
void sortByResponses(string responses [ ], string categories[ ] , int size);
void sortByCategories(string responses [ ], string categories [ ], int size );
void writeToFile(ofstream &, string responses [ ], string categories [ ], int size );
#endif
Implementation Detail 3: .txt files. In most IDEs, you need to make sure all of your files are included in the project. For VS and csegrid, make sure all files are in the same directory. For XCode, you will need to place them in the same directory, then go to Product->Scheme->Edit Scheme and Use custom working directory where your .cpp and .txt files are located. For the csegrid run your program with g++ -o pa2.o main.cpp functions.cpp. Then run with ./pa2.o. For CLion, you need to place the .cpp and .h files in the project directory, and the .txt file in the cmake-debug folder
Implementation Detail 4: You must use two arrays of the same size. One for the response and one for the category. Position zero of the response array will correspond to position zero of the category array (so when using both the response and category, you will have to use two addresses). You may not use vectors structs or classes.
Implementation Detail 5: You can not have any global variables. So you will need to declare variables in main, then pass them (as appropriate) to your functions. Remember that there is no built in size for arrays, so you will have to pass the size (and MAXSIZE when trying to add to an array)
Implementation Detail 6: You will need to choose a random response. See the example at http://www.cplusplus.com/reference/cstdlib/rand/
Note: You need some additional #include statements. You will use srand ONLY once in main, then use rand() with the modulus operator (%) to get a number between 0 and size -1
List of Default Responses (with category type below each response) to Use:
It is certain
positive
It is decidedly so
positive
Without a doubt
positive
Yes definitely
positive
You may rely on it
positive
As I see it, yes
positive
Most likely
positive
Outlook good
positive
Yes
positive
Signs point to yes
positive
Reply hazy try again
vague
Ask again later
vague
Better not tell you now
vague
Cannot predict now
vague
Concentrate and ask again
vague
Don't count on it
negative
My reply is no
negative
My sources say no
negative
Outlook not so good
negative
Very doubtful
negative
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started