| | |
converting swtich/menu to function
Please support our C++ advertiser: Intel Parallel Studio Home
Thread Solved |
•
•
Join Date: Feb 2008
Posts: 55
Reputation:
Solved Threads: 0
i have this code here that i have written out and im i want to convert it using functions.
basically it is a geometry calculator that will let you calculate the area for any geometric object (ie rectangle, cirlce, triangle)
basically i have to rewrite the code and add a loop so that the uuser can calculate more than one geometric object.
here was my code that was only with switch statements:
im thinking that the layout should be like this:
function prototypes
int main()
loop (on yes)
function calls
-->switch statement
loop (on no)
---> end program
///functions below
it seems that this is something that is very easy--but the switch statment throws me off as im not sure if it should be part of the function or in main itself.
thanks for the help!!
basically it is a geometry calculator that will let you calculate the area for any geometric object (ie rectangle, cirlce, triangle)
basically i have to rewrite the code and add a loop so that the uuser can calculate more than one geometric object.
here was my code that was only with switch statements:
C++ Syntax (Toggle Plain Text)
#include <iostream> #include <iomanip> #include <cmath> using namespace std; int main () { //Declaration of Variables. double circleArea, rectangleArea, triangleArea, length, width, height, base, radius; char choice; const double PI = 3.14159; //Display the menu. cout << "\tGeometry Calculator" << endl << endl; cout << setw(10) << "1. Calculate the Area of a [C]ircle" << endl; cout << setw(10) << "2. Calculate the Area of a [R]ectangle" << endl; cout << setw(10) << "3. Calculate the Area of a [T]riangle" << endl; cout << setw(6) << "4. [Q]uit" << endl; cout << endl; //Prompt User for choice. cout << setw(10) << "Enter your choice (1-4)" << endl; cin >> choice; cout << endl; //Calculate the area of a Circle. switch (choice) { case 'C': case 'c': case '1': cout << "Enter the radius of the circle: "; cin >> radius; if (radius < 0) { cout << "Number must be greater than 0. Try again" << endl; } else { circleArea = PI * pow(radius, 2); cout << "The area of the circle is: " << circleArea; } cout << endl; break; //Calculate the area of a Rectangle. case 'R': case 'r': case '2': cout << "Enter the length and width of the rectangle: "; cin >> length >> width; if (length < 0 || width < 0) { cout << "Number must be greater than 0. Try again" << endl; } else { rectangleArea = length * width; cout << "The area of the rectangle is: " << rectangleArea; } cout << endl; break; //Calculate the area of a Triangle. case 'T': case 't': case '3': cout << "Enter the base and height of the triangle: "; cin >> base >> height; if (base < 0 || height < 0) { cout << "Number must be greater than 0. Try again" << endl; } else { triangleArea = base * height * .5; cout << "The area of the triangle is: " << triangleArea; } cout << endl; break; //Quit the program. case 'Q': case 'q': case '4': cout << "End of Program" << endl; cout << "Have a Great Day!" << endl; cout << endl; break; //Invalid number. default: cout << "That is an invalid choice." << endl; cout << "Please select choices 1-4." << endl; break; } return 0; }
im thinking that the layout should be like this:
function prototypes
int main()
loop (on yes)
function calls
-->switch statement
loop (on no)
---> end program
///functions below
it seems that this is something that is very easy--but the switch statment throws me off as im not sure if it should be part of the function or in main itself.
thanks for the help!!
Last edited by afg_91320; Oct 19th, 2008 at 5:16 pm.
I usually approach this kind of a problem like:
C++ Syntax (Toggle Plain Text)
do { menu_func( ) //which may also get the choice and return it switch( user_choice ) { //do the work here } }while (user_choice != quit_value );
Everyone's gotta believe in something. I believe I'll have another drink.
~~~~~~~~~~~~~~~~~~
Looking for an exciting graduate degree? Robotics and Intelligent Autonomous Systems (RIAS) at SDSM&T See the program brochure here.
~~~~~~~~~~~~~~~~~~
Looking for an exciting graduate degree? Robotics and Intelligent Autonomous Systems (RIAS) at SDSM&T See the program brochure here.
•
•
Join Date: Feb 2008
Posts: 55
Reputation:
Solved Threads: 0
^^i followed your layout and this is what i got:
C++ Syntax (Toggle Plain Text)
#include <iostream> #include <iomanip> #include <cmath> using namespace std; int menu(ostream& out); char choice; int main () { double circleArea, rectangleArea, triangleArea, length, width, height, base, radius; const double PI = 3.14159; do { menu(cout); switch (choice) { case 'C': case 'c': case '1': cout << "Enter the radius of the circle: "; cin >> radius; if (radius < 0) { cout << "Number must be greater than 0. Try again" << endl; } else { circleArea = PI * pow(radius, 2); cout << "The area of the circle is: " << circleArea; } cout << endl; break; //Calculate the area of a Rectangle. case 'R': case 'r': case '2': cout << "Enter the length and width of the rectangle: "; cin >> length >> width; if (length < 0 || width < 0) { cout << "Number must be greater than 0. Try again" << endl; } else { rectangleArea = length * width; cout << "The area of the rectangle is: " << rectangleArea; } cout << endl; break; //Calculate the area of a Triangle. case 'T': case 't': case '3': cout << "Enter the base and height of the triangle: "; cin >> base >> height; if (base < 0 || height < 0) { cout << "Number must be greater than 0. Try again" << endl; } else { triangleArea = base * height * .5; cout << "The area of the triangle is: " << triangleArea; } cout << endl; break; //Quit the program. case 'Q': case 'q': case '4': cout << "End of Program" << endl; cout << "Have a Great Day!" << endl; cout << endl; break; //Invalid number. default: cout << "That is an invalid choice." << endl; cout << "Please select choices 1-4." << endl; break; return 0; } while return 0; } //functions int menu(ostream& out) { out << "\tGeometry Calculator" << endl << endl; out << setw(30) << "1. Calculate the Area of a [C]ircle" << endl; out << setw(30) << "2. Calculate the Area of a [R]ectangle" << endl; out << setw(30) << "3. Calculate the Area of a [T]riangle" << endl; out << "4. [Q]uit" << endl; out << setw(10) << "Enter your choice (1-4)\n"; cin >> choice; return choice; }
![]() |
Other Threads in the C++ Forum
- Previous Thread: Repetition
- Next Thread: using input files
| Thread Tools | Search this Thread |
api array arrays based beginner binary c++ c/c++ calculator char char* class classes code compile compiler console conversion count delete deploy desktop directshow dll download dynamic dynamiccharacterarray encryption error file forms fstream function functions game givemetehcodez google graph gui homeworkhelp homeworkhelper iamthwee ifstream input int integer java lib linkedlist linker linux list loop looping loops map math matrix memory news numbertoword output parameter pointer problem program programming project proxy python random read recursion recursive reference return rpg sorting string strings struct temperature template templates test text text-file tree unix url variable vector video visual visualstudio win32 windows winsock wordfrequency wxwidgets






