Noob question ( little dos program )
i'm making this little math program that lets you do diffrent things and it has this menu that you press arrow keys to change selection. That all works fine except when after using one of the tools, instead of asking for options again, it just goes to the next option there is and starts it... im a bigginer and i just started 3 days ago so plz dont laugh at me.
heres the source code for the main program:
Code:
/*
Name: Vortex Calculation tools
Author: Reo ***** <-- edited out by Kermi3
Description: tools involving math
Date: 01/04/03 21:24
Copyright: Reo Baird 2003
Version: 1.2
Version history:
1.0: 2 things, tax and prime number calc.
1.1: added odd even and square root things
1.2: Added Conversions, Changed name.
*/
//main
#include
#include
#include "prime.h"
#include "tax.h"
#include "type.h"
#include "square.h"
#include "types.h"
#include "consolelib.h"
void main()
{
unsigned int sel = 1;
void menu(int);
void fct(int);
system ("CLS");
CONSOLE_CURSOR_INFO console = {1,0};
SetConsoleCursorInfo( GetStdHandle( STD_OUTPUT_HANDLE ), &console );
menu(sel);
int key;
while (key != 27 && key != 13)
{
key = getch();
switch(key)
{
case 72:
if(sel != 1)
{menu(--sel);}
break;
case 80:
if(sel != 6)
{menu(++sel);}
break;
default:
break;
}
if(key == 13) {fct(sel);system("CLS");break;}
}
}
void menu(int sel)
{
switch(sel)
{
case 1: //draw menu 1
cputsxy(" Prime Checker ", 5, 2, BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);
cputsxy(" Tax Calculator ", 5, 3, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Odd or Even ", 5, 4, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Square Root Calculator ", 5, 5, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Conversions ", 5, 6, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Quit ", 5, 7, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
break;
case 2: //draw menu 2
cputsxy(" Prime Checker ", 5, 2, FOREGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);
cputsxy(" Tax Calculator ", 5, 3, BACKGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Odd or Even ", 5, 4, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Square Root Calculator ", 5, 5, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Conversions ", 5, 6, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Quit ", 5, 7, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
break;
case 3: //draw menu 3
cputsxy(" Prime Checker ", 5, 2, FOREGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);
cputsxy(" Tax Calculator ", 5, 3, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Odd or Even ", 5, 4, BACKGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Square Root Calculator ", 5, 5, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Conversions ", 5, 6, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Quit ", 5, 7, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
break;
case 4: //draw menu 4
cputsxy(" Prime Checker ", 5, 2, FOREGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);
cputsxy(" Tax Calculator ", 5, 3, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Odd or Even ", 5, 4, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Square Root Calculator ", 5, 5, BACKGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Conversions ", 5, 6, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Quit ", 5, 7, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
break;
case 5: //draw menu 4
cputsxy(" Prime Checker ", 5, 2, FOREGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);
cputsxy(" Tax Calculator ", 5, 3, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Odd or Even ", 5, 4, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Square Root Calculator ", 5, 5, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Conversions ", 5, 6, BACKGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Quit ", 5, 7, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
break;
case 6: //draw menu 4
cputsxy(" Prime Checker ", 5, 2, FOREGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);
cputsxy(" Tax Calculator ", 5, 3, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Odd or Even ", 5, 4, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Square Root Calculator ", 5, 5, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Conversions ", 5, 6, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
cputsxy(" Quit ", 5, 7, BACKGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
break;
}
}
void fct(int sel)
{
switch(sel)
{
case 1:
//selc1
system("CLS");
cout << "\n\n\n\n\n\n\n\n\n";
prime_numbers();
case 2:
system("CLS");
cout << "\n\n\n\n\n\n\n\n\n";
tax();
case 3:
system("CLS");
cout << "\n\n\n\n\n\n\n\n\n";
oddeven();
case 4:
system("CLS");
cout << "\n\n\n\n\n\n\n\n\n";
square();
case 5:
system("CLS");
cout << "\n\n\n\n\n\n\n\n\n";
num();
case 6:
break;
default:
//debug selection
break;
}
}
---------------
and heres the source for 1 of the options (the 1 that when u press 0 and enter it should go back to menu, but right now goes to the next option instead)
---------------
Code:
// To find any prime number
#include
#include
#include "consolelib.h"
void prime(int i, int c, int n, int j) /* This function can be used to find prime numbers to any extent ( first 10 here) by simply changing the while statement */
{
while (i !=0)
{
n=0;
cout << "Please enter a integer (0 to exit): ";
cin >> i ;
cout << "Calculating, Please wait... \n";
cout << "(This could take several minutes on larger numbers)\n";
for (j=1 ; j<=i ; j++ )
{
if ( i%j == 0)
{
n +=1;
}
}
if (n <=2 && n != 0)
{
cout< c +=1;
}
else
{
cout < }
}
}
void prime_numbers()
{
int i=1,c=1,n,j;
prime(i,c,n,j);
cout<<"\n\nPress ENTER to return to main";
getch();
system("CLS");
}
PLEASE HELP!! i really want to finish my program and this is really annoying.