Conversión de Bases

Código:
#include <iostream> 
#include <stdio.h>
#include <string>
#include <stdlib.h> 
#include <iomanip>
#include <math.h> 
#include <conio.h>
#include <fstream>
#include <cstring> 
using namespace std;

void menu();
void escribirEnArchivo();
void llenarElArreglo (int num [], int digitos, int base1); 
int convertirAadecimal (int num [], int digitos, int base1, int base2); 
void convertirAabase (int decimal, int base2); 
int checabase (); 
int checabase2 ();
 
 
int main() 
    int digitos = 0; 
    int BASE1, BASE2; 
    int decim; 
 
  system("color F5");
    cout<<"\n\t\t\311\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\273"<<endl;
    cout<<"\t\t\272      **Con Este Programa**  \n\t\t\272     se Puede Convertir Numeros \n\t\t\272    de Una base a otra(2,8,10,16).\n\n"; 
    cout<<"\t\t\310\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\315\274\n"<<endl;;
 
    BASE1 = checabase (); 
 
    cout<< "\nQue cantidad de digitos es el numero a convertir?\n-) "; 
    scanf ("%d", &digitos); 
    int num [digitos]; 
  system("color F0");
    cout<<"\nIntroduce el numero que se va a convertir, digito a"  
            "digito \n empezando con la cifra mas significativa\n\n"; 
 
    llenarElArreglo (num, digitos, BASE1); 
    decim = convertirAadecimal (num, digitos, BASE1, BASE2); 
    BASE2 = checabase2(); 
    printf ("\n"); 
    convertirAabase (decim, BASE2); 
    system ("PAUSE"); 
    return 0; 
 
int checabase () 
{  
    int x; 
    cout<<"**** De que base es el numero a convertir ****\ntomando en cuenta que no puedes introducir otra base diferente de 2,8,10 y 16:?\n-) "; 
    scanf ("%d", &x); 
    if(x >=17) 
   
        printf("\n\n**El numero insertado rebaza la capacidad " 
               "por favor ingrese una base menor a 16**\n\n"); 
        printf ("De que base es el numero a convertir?\n"); 
        scanf ("%d", &x); 
    } 
 
    if(x <=-1) 
    { 
        printf("\n\n**El numero insertado es mayor a la capacidad," 
               "por favor ingrese una base mayor que cero**\n\n"); 
        printf ("De que base es el numero a convertir?\n"); 
        scanf ("%d", &x); 
    } 
    return x; 
 
int checabase2 () 
    int x; 
    printf ("\n\nA que base desea convertir el numero? \n"); 
    scanf ("%d", &x); 
    if(x >=17) 
   
        printf("\n\n**El numero insertado es mayor a la capacidad," 
               " por favor ingrese una base menor a 16**\n\n"); 
            printf ("\n\nA que base desea convertir este numero? \n"); 
        scanf ("%d", &x); 
    } 
 
    if(x <=-1) 
    { 
        cout<<"\n\n**El numero insertado se pasa de la capacidad " 
               " por favor inserte una base mayor a cero**\n\n"<<endl; 
        printf ("\n\nA que base desea convertir Este Numero? \n"); 
        scanf ("%d", &x); 
    } 
    return x; 
 
void llenarElArreglo (int num [], int digitos, int BASE1) 
    int i,x, a; 
    for (i=0; i<digitos; i++) 
   
        printf ("\nIntroduce el  %d digito:\n-)", i+1); 
        scanf("%x", &num[i]); 
        if (num[i]>=BASE1 || num[i]<0) 
       
            printf ("\n**Numero no valido para esta base**\n"); 
            printf ("\nIntroduce el digito numero %d\n", i+1); 
            scanf("%x", &num[i]); 
        } 
    } 
  system("color F0");
    printf ("\nEl numero que deseas convertir es: "); 
    for (i=0; i<digitos; i++) 
        printf ("%x", num [i]); 
 
int convertirAadecimal (int num [], int digitos, int BASE1, int BASE2) 
    int i, pot; 
    int x=0; 
    for (i=digitos-1, pot=0; i>=0, pot<digitos; i--, pot++) 
   
        x+= (pow(BASE1, pot)* num[i]); 
   
    return x; 
 
void convertirAabase (int decim, int BASE2) 
    int cociente1,resid,cont, i,j; 
    int convergente [50]; 
    i=0; 
    do{ 
        cociente1 = decim/BASE2; 
        resid = decim%BASE2; 
        convergente[i] = resid; 
        decim = cociente1; 
        i+=1; 
    }while (cociente1>0); 
  system("color F5");
    printf("La conversion es igual a: "); 
    for (cont=i-1; cont>=0; cont--) 
   
        printf("%x", convergente [cont]); 
    } 
    cout<<"\n\n"<<endl; 
    cout<<"Integrantes: "<<endl;
    cout<<"Alejandro MOndragon Perez\nLuis Fernando Gutierrez Monroy"<<endl;
}

void escribirEnArchivo(){
                               ofstream salidaArchivo("estudiantes.txt", ios::out);
                              
                }

               
Pantallas de salida:

No hay comentarios:

Publicar un comentario