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

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

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

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

17.12.2013, 02:07. Просмотров 583. Ответов 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++ Задана строка, содержащая целые числа (максимум 15 чисел). Упорядочить целые числа в строке по убыванию.
Класс Hugeint (целые числа) Операции: - =, сравнение(<, >) C++
C++ Написать класс Binary, который инкрементирует число, записанное в 2-чном виде
В возростающем порядке напечатать все целые числа из диапазона от 1 до 1000000 которые отображаються в виде k=n^2+m^2,m>0,n>0 C++
Реализовать длинные целые числа в виде класс C++
Калькулятор, складывающий восьмеричные числа C++
В порядке возрастания напечатать те целые числа из диапазона 1..10000, которые можно представить в указанном виде C++
Организовать цикл do/while, который принимает целые числа с клавиатуры и вычитает их из 10000 C++
C++ Получить в порядке возрастания все целые числа от min до max, который не входят в последовательность
C++ Реализуйте класс List, представляющий список, элементами которого являются целые числа
Суммировать все нечётные целые числа в диапазоне, который введёт пользователь с клавиатуры C++
Разработать программу используя класс калькулятор с полями x, y - целые числа и методы +, -, /, *) и вывода ре C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
338 / 369 / 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;
}
Yandex
Объявления
17.12.2013, 14:30     Создать класс, который запоминает целые восьмеричные числа в виде строк
Ответ Создать тему
Опции темы

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