Hello! I am having issues with a menu I am trying to write in C++. Please ignore the instructions that go under each option. The only one iI want to make sure is proper is R (Causes the program to exit the input menu, resetting the trigger for the menu) and when the input is any other value not listed. I am noticing that no matter what option I choose, the menu printas again after the cout statement that indicates what option has been chosen. Here are the specifications.    In a loop, a thread waits for the input menu to be triggered. Once the input menu has been triggered, the thread prints instructions for the menu, then reads strings from standard input, reacting to input as follows: "Q" Causes the program to complete. Before completion, all dynamic storage used by the program must be properly freed.  "R" Causes the program to exit the input menu, resetting the trigger for the menu "S+" Causes the simulation rate of the program to increase by 1 "S-" Causes the simulation rate of the program to decrease by 1 "D+" Causes the frame rate of the program to increase by 1 "D-" Causes the frame rate of the program to decrease by 1 All other input : Re-prints the instructions for the menu #include #include #include #include using namespace std; //Menu void *displayMenu(void *arg){ string inputUser; int timeInSec = 1; do { cout<<"*************** MENU: PLEASE SELECT AN OPTION ***************\n"; usleep(timeInSec * 1000000); cout<<"\n"; cout<<"\"Q\" Causes the program to complete.\n"; cout<<"\"R\" Causes the program to exit the input menu, resetting the trigger for the menu.\n"; cout<<"\"S+\" Causes the simulation rate of the program to increase by 1.\n"; cout<<"\"S-\" Causes the simulation rate of the program to decrease by 1.\n"; cout<<"\"D+\" Causes the frame rate of the program to increase by 1.\n"; cout<<"\"D-\" Causes the frame rate of the program to decrease by 1.\n"; cout<<"\n"; cout<<"*************** ENTER YOUR SELECTION PLEASE ***************"<> inputUser; if(inputUser == "Q"){ cout<<"Program completed. See you later!\n"; //call function if necessary } else if(inputUser == "S+"){ cout<<"Simulation rate will increase by 1.\n"; usleep(timeInSec * 1000000); //call function or insert appropriate stuff } else if (inputUser == "S-"){ cout<<"Simulation rate will decrease by 1.\n"; usleep(timeInSec * 1000000); //call function or insert appropriate stuff } else if(inputUser == "D+"){ cout<<"Frame rate will increase by 1.\n"; usleep(timeInSec * 1000000); //call function or insert appropriate stuff } else if (inputUser == "D-"){ cout<<"Frame rate will decrease by 1.\n"; usleep(timeInSec * 1000000); //call function or insert appropriate stuff } else{ displayMenu(arg); } } while(inputUser != "R"); pthread_exit(NULL); } //main function int main(int argc, char *argv[]){ if(argc !=2){ cout<<"Please enter argument in following format: p3 insertFilename\n"; cout<<"Keep in mind the program only accepts one argument. Thank you!\n"; exit(1); } //required variables int frameRate; int simulationRate; pthread_t id; pthread_create(&id, NULL,displayMenu, NULL); pthread_join(id, NULL); cout <<"Test"<

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question
Hello! I am having issues with a menu I am trying to write in C++. Please ignore the instructions that go under each option. The only one iI want to make sure is proper is R (Causes the program to exit the input menu, resetting the trigger for the menu) and when the input is any other value not listed. I am noticing that no matter what option I choose, the menu printas again after the cout statement that indicates what option has been chosen. Here are the specifications. 
 
  • In a loop, a thread waits for the input menu to be triggered. Once the input menu has been triggered, the thread prints instructions for the menu, then reads strings from standard input, reacting to input as follows:
    • "Q" Causes the program to complete. Before completion, all dynamic storage used by the program must be properly freed. 
    • "R" Causes the program to exit the input menu, resetting the trigger for the menu
    • "S+" Causes the simulation rate of the program to increase by 1
    • "S-" Causes the simulation rate of the program to decrease by 1
    • "D+" Causes the frame rate of the program to increase by 1
    • "D-" Causes the frame rate of the program to decrease by 1
    • All other input : Re-prints the instructions for the menu
#include <iostream>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>

using namespace std;


//Menu
void *displayMenu(void *arg){
string inputUser;
int timeInSec = 1;
do {
cout<<"*************** MENU: PLEASE SELECT AN OPTION ***************\n";
usleep(timeInSec * 1000000);
cout<<"\n";
cout<<"\"Q\" Causes the program to complete.\n";
cout<<"\"R\" Causes the program to exit the input menu, resetting the trigger for the menu.\n";
cout<<"\"S+\" Causes the simulation rate of the program to increase by 1.\n";
cout<<"\"S-\" Causes the simulation rate of the program to decrease by 1.\n";
cout<<"\"D+\" Causes the frame rate of the program to increase by 1.\n";
cout<<"\"D-\" Causes the frame rate of the program to decrease by 1.\n";
cout<<"\n";
cout<<"*************** ENTER YOUR SELECTION PLEASE ***************"<<endl;
cin >> inputUser;
if(inputUser == "Q"){
cout<<"Program completed. See you later!\n";
//call function if necessary
} else if(inputUser == "S+"){
cout<<"Simulation rate will increase by 1.\n";
usleep(timeInSec * 1000000);
//call function or insert appropriate stuff
} else if (inputUser == "S-"){
cout<<"Simulation rate will decrease by 1.\n";
usleep(timeInSec * 1000000);
//call function or insert appropriate stuff
} else if(inputUser == "D+"){
cout<<"Frame rate will increase by 1.\n";
usleep(timeInSec * 1000000);
//call function or insert appropriate stuff
} else if (inputUser == "D-"){
cout<<"Frame rate will decrease by 1.\n";
usleep(timeInSec * 1000000);
//call function or insert appropriate stuff
} else{
displayMenu(arg);
}

} while(inputUser != "R");
pthread_exit(NULL);
}

//main function
int main(int argc, char *argv[]){
if(argc !=2){
cout<<"Please enter argument in following format: p3 insertFilename\n";
cout<<"Keep in mind the program only accepts one argument. Thank you!\n";
exit(1);
}
//required variables
int frameRate;
int simulationRate;
pthread_t id;
pthread_create(&id, NULL,displayMenu, NULL);
pthread_join(id, NULL);
cout <<"Test"<<endl;
return 0;
}
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 5 steps with 2 images

Blurred answer
Knowledge Booster
Structure chart
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education