Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
turin
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 13
#1

Создать класс, который запоминает целые восьмеричные числа в виде строк - C++

17.12.2013, 02:07. Просмотров 633. Ответов 1
Метки нет (Все метки)

Всем доброго времени суток. Столкнулся с проблемой,что не могу создать класс, который запоминает целые восьмеричные числа в виде строк! В виде одномерного массива могу....в виде строк есть проблемы...никто не знает как решить? И там ещё перегружены операторы +,++,+=....Вот в виде одномерного массива
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
#include <Windows.h>
 
using namespace std;
class CDoubleString
{
private:
    int count;
public:
    void getValue()
    {
        cout<<endl<<oct<<count;
        cout<<dec;
    }
    CDoubleString():count(0)
    {
 
    }
 
    CDoubleString(int addcount)
    {
        count=addcount;
    }
 
    friend istream & operator>>(istream &, CDoubleString &);//дружественная функция для ввода строки
    friend ostream & operator<<(ostream &, CDoubleString &);//дружественная функция для вывода строки
    
    void Show () 
    {
        cout<<"\n"<<count;
    }
    CDoubleString operator+(const CDoubleString&R)
    {
        CDoubleString resault;
        resault.count = count + R.count;
        return resault;
    }
    CDoubleString operator++ ()
    {
        count++;
        return count;
    }
    CDoubleString operator+=(const CDoubleString& right) {
 
        count += right.count;
        return *this;
    }
 
};
 
int main()
{
    int a=1,b=1,c=1;
    setlocale(LC_ALL,"");
 
    CDoubleString car1, car2, car3;
    int key = 0;
    int cm =0;
 
    do 
    {
        printf("\n1 - Ввести первое число\n");
        printf("2 - Ввести второе число\n");
        printf("3 - Вывести первое число в десятичном виде\n");
        printf("4 - Вывести второе число в десятичном виде\n");
        printf("5 - Перегрузка оператора \"+\" \n");
        printf("6 - Перегрузка оператора \"++\" \n");
        printf("7 - Перегрузка оператора \"+=\" \n");
        printf("ESC - выход\n");
        printf("Ваш выбор: \n");
        key=getch();
        switch(key)
        {
        case '1': 
            cout << "Введите первое число в восьмиричном виде:" << endl;
            cin >> oct >> a;
            car1 = CDoubleString(a);
            break;
        case '2': cout << "Введите второе число в восьмиричном виде:" << endl;
            cin >> oct >> b;
            car2 = CDoubleString(b);
            break;
        case '3':   cout<<"Первое число в десятичном виде:"<<endl;
            
            car1.Show();
            cout<<endl;
            break;
        case '4':   cout<<"Второе число в десятичном виде:"<<endl;
            car2.Show();
            cout<<endl;
            break;
        case '5':   cout<<"Первое число + второе = :"<<endl;
            car3 = car1 + car2;
            cout << "В десятичном виде:";
            car3.Show();
            cout<<endl<<endl;
            cout << "В восьмиричном виде:";
            car3.getValue();
            cout<<endl;
            break;
        case '6':   cout<<"Первое число + 1 = :"<<endl;
            car1++;
            cout << "В десятичном виде:";
            car1.Show();
            cout<<endl<<endl;
            cout << "В восьмиричном виде:";
            car1.getValue();
            cout<<endl;
            break;
        case '7':   cout<<"Первое число + третье = :"<<endl;
            car1+=car2;
            cout << "В десятичном виде:";
            car1.Show();
            cout<<endl<<endl;
            cout << "В восьмиричном виде:";
            car1.getValue();
            cout<<endl;
            break;
        }
    }
    while(key!=27);
    getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2013, 02:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать класс, который запоминает целые восьмеричные числа в виде строк (C++):

Реализовать длинные целые числа в виде класс - C++
здравствуйте,только начала изучение классов,помогите с решением задачи:нужно реализовать длинные целые числа в виде класса с конструктором...

Разработать класс "Массив больших чисел", который состоит из объектов класса "Большие целые числа". Найти сумму элементов массива. - C++
Разработать класс &quot;Массив больших чисел&quot;, который состоит из объектов класса &quot;Большие целые числа&quot;. Найти сумму элементов массива. ...

Организовать цикл do/while, который принимает целые числа с клавиатуры и вычитает их из 10000 - C++
do - while Организовать цикл, который принимает целые числа с клавиатуры и вычитает их из 10000. Окончание цикла - получение...

Суммировать все нечётные целые числа в диапазоне, который введёт пользователь с клавиатуры - C++
Условие Необходимо суммировать все нечётные целые числа в диапазоне, который введёт пользователь с клавиатуры Решение ...

Написать класс Binary, который инкрементирует число, записанное в 2-чном виде - C++
Написать класс Binary, который инкрементирует число, записанное в 2-чном виде. Допускаются только числа больше нуля. Ведущих нулей в числе...

Класс Hugeint (целые числа) Операции: - =, сравнение(<, >) - C++
Описать класс, который реализовывает указанный ниже тип данных. Класс должен содержать множину конструкторов для создания объектов...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
17.12.2013, 14:30 #2
Вот в виде одномерного массива
Что то не видно тут у вас одномерных массивов.
Как то так
Операторы перегрузите сами
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <iostream>
#include <string>
 
class Octal
{
  private:
          std::string oct;
          bool correctOct(std::string _oct)
          {
           unsigned int numMax = 10;
           bool check = true;
           for(int i = 0; i < _oct.size(); ++i)
              for(int j = 0; j < numMax; ++j)
                 if(_oct[i] != j)
                   check = false; 
              return check;
          }
  public:
         Octal(std::string _oct)
         { 
           if(correctOct(_oct))
              oct = _oct;
           else 
              oct = "0";
         }
 
         void setOct(std::string _oct)
         {
           if(correctOct(_oct))
              oct = _oct;
           else 
              oct = "0"; 
         }
         
         std::string getOct(){ return oct; }
};
 
int main()
{   
    Octal oct("4A55");
    
    std::cout << oct.getOct() << std::endl;
    
    system("PAUSE");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.12.2013, 14:30
Привет! Вот еще темы с ответами:

Калькулятор, складывающий восьмеричные числа - C++
Задание звучит так: Написать калькулятор, складывающий восьмеричные числа. Восьмеричные числа – не более трех разрядов, все разряды...

Получить в порядке возрастания все целые числа от min до max, который не входят в последовательность - C++
#include&lt;stdio.h&gt; #include &lt;ios&gt; #include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;iomanip&gt; using namespace std; int main() { ...

В возростающем порядке напечатать все целые числа из диапазона от 1 до 1000000 которые отображаються в виде k=n^2+m^2,m>0,n>0 - C++
В возростающем порядке напечатать все целые числа из диапазона от 1 до 1000000 которые отображаються в виде k=n^2+m^2,m&gt;0,n&gt;0

Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить целые числа в строке по убыванию. - C++
Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить целые числа в строке по убыванию. должно выглядеть что то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru