//Micheal H. McCabe
//February 8, 2009
//Assignment 8
//CS-130 Intro Programming & Problem Solving using C++
//Dr. Schuyler
//
#include <iostream>
//#include <string>

using namespace std;

int main()
{   Mainloop:
    int dividend = 0;
    const char digit12[12] = {'0','1','2','3','4','5','6','7','8','9','A','B'};
    char base12 [3];
    int number10 = 0;
    int quotient = 0;
    int remainder = 0;
    int place = 0;
    int newbase = 12;
    int i = 0;
    string Base12 = "";

cout << "Welcome, again, to the world-famous base10 to base12 converter!" << endl;       
cout << "To end this program, enter a value greater than 9999." << endl << endl;
cout << "Please enter a positive integer >= 0 and <= 9999 - ";

cin >> number10;

if (number10 > 9999)
   {cout << number10 << " is too big.  Ending program now. " << endl; return 0;}
   else cout << number10 << " is the value to be converted." << endl << endl;

for (i=3; i>=0; i--){base12[i]=digit12[0];}

place=3;
quotient=0;
remainder=0;
dividend=number10;

if (dividend > (newbase-1))

   while (dividend>0)
   {     quotient = dividend / newbase;
         remainder = dividend % newbase;
         base12[place] = digit12[remainder];
         dividend=quotient;
         place--;
         }
   else
   
   base12[place]=digit12[number10];
   
for (i=0; i<=3; i++) {Base12=Base12+base12[i];}
    
cout << Base12 << " is the base-12 equivalent of " << number10 << endl;
cout << "Conversion is complete." << endl << endl;
goto Mainloop;
}