I need help with this problem:
Design the following class to show several tables at a time horizontally
class TablasMultiplicar{
int TablaIni, TablaFin;
public:
void PedirNoTablas();
/*
Método para solicitar por teclado el número de la tabla de
multiplicar inicial y final a ser mostradas. Si el valor introducido
en ambos atributos
*/
void MostrarTablas();
/*
es menor que uno o mayor que 10, el método volverá a
solicitar ambos números de tabla.
En el caso que el valor de TablaIni sea menor que TablaFin, el
método deberá intercambiarlos
*/
};
This is how it needs to be:
This comes to me if I make the table from 1 to 2:
And this is what I get if I put the table from 1 to 3 for example: For now it only makes two tables horizontally, if it has to do more than two it gets messed up. I have done this:
#include <iostream>
using namespace std;
class TablasMultiplicar{
int TablaIni, TablaFin;
public:
void PedirNoTablas(); /*Método para solicitar por teclado el número de la tabla de
multiplicar inicial y final a ser mostradas. Si el valor introducido en ambos atributos */
void MostrarTablas(); /*es menor que uno o mayor que 10, el método volverá a
solicitar ambos números de tabla.
En el caso que el valor de TablaIni sea menor que TablaFin, el método deberá
intercambiarlos*/
};
void TablasMultiplicar::PedirNoTablas(){
do{
cout<<"Introduzca el numero de la tabla de multiplicar inicial: ";cin>>TablaIni;
cout<<"\nIntroduzca el numero de la tabla de multiplicar final: ";cin>>TablaFin;
}while(((TablaIni <1 || TablaIni>10)||(TablaFin < 1 || TablaFin >10 )));
}
void TablasMultiplicar::MostrarTablas(){
for(int i=0;i<=10;i++){
cout<<TablaIni<<" x "<<i<<" = "<<TablaIni*i<<"\t";
for(int j=(TablaIni+1);j<=TablaFin;j++){
cout<<j<<" x "<<i<<" = "<<j*i<<"\n";
}
}
}
int main()
{
TablasMultiplicar tablas;
tablas.PedirNoTablas();
tablas.MostrarTablas();
return 0;
}