1 //Problem: Input a number n1, then convert it to another number on a particular number system.
 2 //Solved by Mon Feb 16, 11:58 PM
 3 //Source Code
 4 #include<iostream>
 5 #include<vector>
 6 using namespace std;
 7
 8 class iStack
 9 {
10 public:
11     iStack(int capacity = 0):_stack(capacity), _top(0){}
12
13     bool pop( int &value );
14     bool push( int value );
15
16     bool full();
17     bool empty();
18     void display();
19
20     int size();
21
22 private:
23     int _top;
24     vector< int > _stack;
25 };
26
27 void conversion();
28
29 int main()
30 {
31     conversion();
32 }
33
34 void conversion()
35 {
36     int n1, base;
37     cout << "Please input the number to be conversion n1: " << endl;
38     cin >> n1;
39     cout << "Please input the base used to perform conversion: " << endl;
40     cin >> base;
41     iStack s(100);
42     int remainder;
43     while(n1 != 0)
44     {
45         remainder = n1 % base;
46         n1 /= base;
47         s.push(remainder);
48     }
49     cout << "the number after conversion is: " << endl;
50     int temp;
51     while(s.size())
52     {
53         s.pop(temp);
54         cout << temp;
55     }
56     cout << endl;
57 }
58
59 inline int iStack::size()
60 {
61     return _top;
62 }
63
64 inline bool iStack::empty()
65 {
66     return _top ? false : true;
67 }
68
69 inline bool iStack::full()
70 {
71     return _top < _stack.size() - 1 ? false : true;
72 }
73
74 bool iStack::pop( int &top_value )
75 {
76     if ( empty() )
77         return false;
78
79     top_value = _stack[ -- _top ];
80
81     return true;
82 }
83
84 bool iStack::push( int value )
85 {
86     if( full() )
87         return false;
88
89     _stack[ _top ++ ] = value;
90     return true;
91 }

先贴两张图片,以后再写配置: