/*
*Realice un programa en C++ para mostrar las tablas de multiplicar.
*El programa debe de mostrar un menú con las tablas del 1 al 10.
*El usuario debe de elegir cual tabla desea que se imprima en pantalla.
*El usuario también puede elegir hasta qué número se va a mostrar la tabla, por ejemplo la tabla del 5 hasta el número 20.
*Al final de mostrar la tabla el usuario puede elegir si desea regresar al menú o finalizar el programa.
*Se utiliza If, While o Do While y For.
*/
#include<iostream>
using namespace std;
int main(){
int opc, n, c; //Opcion de la tabla, limite de la tabla, contador para la tabla
bool run = true; //Para volver correr el programa o terminar
char answer = 'N';
bool isValid = false; //Para validaciones de entrada del usuario
cout << "*************Proyecto#2:Tablas de multiplicar con menu******************" << endl;
do{
//Menu con las tablas del 1 al 10
cout<<endl<<"Elija la tabla de multiplicar desea ver:"<<endl;
cout<<"********************************************************"<<endl<<endl;
cout<<"Tabla de multiplicar del # 1"<<endl;
cout<<"Tabla de multiplicar del # 2"<<endl;
cout<<"Tabla de multiplicar del # 3"<<endl;
cout<<"Tabla de multiplicar del # 4"<<endl;
cout<<"Tabla de multiplicar del # 5"<<endl;
cout<<"Tabla de multiplicar del # 6"<<endl;
cout<<"Tabla de multiplicar del # 7"<<endl;
cout<<"Tabla de multiplicar del # 8"<<endl;
cout<<"Tabla de multiplicar del # 9"<<endl;
cout<<"Tabla de multiplicar del # 10"<<endl<<endl;
cout<<"********************************************************"<<endl<<endl;
//El usuario elige que tabla de multiplicar desea que se vea en pantalla
do{
cout << "Opcion: "; cin >> opc;
if (opc > 0 && opc <= 10){ //restriccion de 1 a 10
isValid = true;
}else{
isValid = false;
cout << "Solo se permiten numeros entre 1 y 10..." << endl;
}
}while(!isValid); //Negada
do{
cout << endl << "Hasta que numero desea que se multiplique la tabla del " << opc << "?: "; cin >> n;
if (n > 0){ //Solo positivos
isValid = true;
}else{
isValid = false;
cout << "Solo se permiten numeros positivos..." << endl;
}
}while(!isValid);//Negada
cout << endl;
//Tabla de multiplicar
for(c=1; c<=n; c++) { //Mejor for que while (se tienen limites definidos y se inicializa la variable)
cout << "\t\t\t" << opc << " x "<< c << " = " << opc*c << endl; //Tabuladores en vez de espacios (\t)
}
do{
cout << endl << "Desea volver al menu de las Tablas de Multiplicar? (S/N): "; cin >> answer;
if(answer == 'S' || answer == 's'){
isValid = true;
run = true;
}else if(answer == 'N' || answer == 'n'){
isValid = true;
run = false;
cout << endl << "Adios camarada..." << endl;
}else{
isValid = false;
cout << endl << "Error!, Debe elegir S o N.." << endl;
}
} while(!isValid); //Negada
} while(run);
return 0;
}