okay here it is friends one last question before I give this to the torture technician that devised it
first here is the code
and here is the outputCode:#include<iostream> #include <iomanip> #include <string> using namespace std; //===============================CLASSE DEFINITION FOR STACK============================================================ template <class T, int n> class stack { private: T elt[n]; int counter; public: void clearstack() { counter = -1; } //INITIALIZE COUNTER bool emptystack() { return counter==-1?true:false; } //EVALUATION IF STACK IS EMPTY bool fullstack() { return counter== n-1?true:false; } //EVALUATION IF STACK IS FULL void push(T x) { counter++; elt[counter] = x; } //FUNCTION TO ADD TO STACK T pop() { T x; x= elt[counter]; counter--;return x; } //FUNCTION TO POP THE STACK }; //====================================================================================================================== int main() { int q, m, p ; //THREE VARIABLES M Q AND P DECLARED FOR PUSH AND POP OPERATIONS char j; //VARIABLE J TO DETERMINE WETHER TO CONTINUE PROGRAM OR NOT char k; //VARIABLE K TO DETERMINE TYPE OF OPERATION BINARY OCTAL OR HEXADECIMAL char z; //VARIALBE Z TO USE IN HEXADECIMAL OPERATIONS SPECIFICALLY stack <int, 32> s; //OBJECT OF STACK TYPE DECLARED while(j!='n') //BEGINNING OF WHILE LOOP TO CONTINUE PROGRAM UNTIL VARIABLE J IS EQUAL TO 'n' { cout<<"===========================Conversion Menu================================"<<endl; cout<<"1.Decimal to binary"<<endl; cout<<"2.Decimal to octal"<<endl; cout<<"3.Decimal to hexadecimal"<<endl; cout<<"4.Exit"<<endl; cout<<"Enter your choice: "; cin>>k; //REQUEST TO USER TO ENTER THE TYPE OF OPERATION switch(k) //SWITCH STATEMENT USED TO RUN TYPE OF OPERATION CHOSEN BY USER { //======================================================================================================================= case '1': //CASE 1 FOR BINARY OPERATIONS s.clearstack(); cout<<"Enter a number to convert: "; cin>>m; while( !s.fullstack() ) { q = m % 2; s.push(q); m = m / 2; } while(!s.emptystack()) { p = s.pop(); cout<<setfill(char(7))<<p; } cout<<"\nPRESS 'y' TO CONTINUE: "; cin>>j; while(j !='y') { cout<<"\nYou entered an invalid response:"; cout<<"\nPlease re-enter your choice: "; cin>>j; } break; //======================================================================================================================= case '2': //CASE 2 FOR OCTAL OPERATIONS s.clearstack(); cout<<"Enter a number to convert: "; cin>>m; while( !s.fullstack() ) { q = m % 8; s.push(q); m = m / 8; } while(!s.emptystack()) { p = s.pop(); cout<<p; } cout<<endl; break; //======================================================================================================================= case '3': //CASE 3 FOR HEXADECIMAL OPERATIONS s.clearstack(); cout<<"Enter a number to convert: "; cin>>m; while( !s.fullstack() ) { z = m % 16; if(z<10 || z>15) //IF STATEMENT TO DETERMINE WETHER OR NOT CHAR OR INT VALUE DISPLAYED { s.push(z);m = m / 16; } else if(z>=10 || z<=15) { switch (z) { case 10: z='A'; s.push(z); m = m / 16; break; //////////////////////////////////////////////////// case 11: z='B'; s.push(z); m = m / 16; break; // EMBEDDED SWITCH STATEMENT TO CONVERT // case 12: z='C'; s.push(z); m = m / 16; break; // FROM INTEGER TO CHAR VALUES FOR HEXADECIMAL // case 13: z='D'; s.push(z); m = m / 16; break; // OUTPUT // case 14: z='E'; s.push(z); m = m / 16; break; // // case 15: z='C'; s.push(z); m = m / 16; break; //////////////////////////////////////////////////// } } } while(!s.emptystack()) { p = s.pop(); if(p<9) //LAST IF STATEMENT TO DETERMINE IF OUTPUT IS CHAR OR INT { cout<<(int)p; } else if(p>9) { cout<<(char)p; } } cout<<"\nPRESS 'y' TO CONTINUE: "; cin>>j; while(j !='y') { cout<<"\nYou entered an invalid response:"; cout<<"\nPlease re-enter your choice: "; cin>>j; } break; case '4': return 0; break; } } return 0; }
any idea how to get rid of the zeros here I was wondering if there was something in the iomanip library to cover this problem
1.Decimal to binary
2.Decimal to octal
3.Decimal to hexadecimal
4.Exit
Enter your choice: 3
Enter a number to convert: 987
000000000000000000000000000003DB
PRESS 'y' TO CONTINUE:



LinkBack URL
About LinkBacks


