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

.Создать класс Binary1, который будет содержать число в двоичной системе - C++

Восстановить пароль Регистрация
 
BlackScorpioNnn
0 / 0 / 0
Регистрация: 14.04.2013
Сообщений: 12
17.06.2013, 17:44     .Создать класс Binary1, который будет содержать число в двоичной системе #1
1.Поле first – целое число, целая часть числа, записанного в восьмеричной системе счисления; поле second – положительное целое число, дробная часть числа, записанного в восьмеричной системе счисле-ния. Реализовать метод add8( ) – сложение чисел в восьмеричной системе.
2.Создать класс Binary1, который будет содержать число в двоичной системе (в отдельном поле – целая часть, в другом поле – дробная часть). Разработайте методы для ввода двоичных чисел (с дробной частью!), вывода двоичных чисел, методы для вычисления суммы и произведения двоичных чисел.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2013, 17:44     .Создать класс Binary1, который будет содержать число в двоичной системе
Посмотрите здесь:

Определите класс, который должен содержать атрибуты C++
Перевернуть число в двоичной системе и записать его десятичное представление C++
C++ Наследование. Создайте класс Passport (паспорт), который будет содержать паспортную информацию о гражданине Украниы
C++ Создать строку, которая будет содержать набор символов содержащихся в файле
Вводим число в 8-ричной системе, получаем его же, но в двоичной C++
Создать класс Ship, который будет содержать данные об учетном номере корабля и его координатах C++
C++ Как реализовать класс Pricelist, который будет содержать динамический массив объектов Model
Создать класс, который считывает десятичное число и печатает его 2-ый, 8-ый и 16-ый эквивалент C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
17.06.2013, 20:32     .Создать класс Binary1, который будет содержать число в двоичной системе #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
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
130
131
132
133
134
135
#include <iostream>
#include <cstring>
 
class Oct;
std::ostream& operator<<(std::ostream &, const Oct &);
 
class Oct
{
    int first;
    unsigned second;
 
public:
    struct Bad_value {}; // for errors;
 
    Oct();
    Oct(const char * v);
 
    Oct& operator+=(const Oct &);
    friend std::ostream& operator<<(std::ostream &, const Oct &);
};
 
Oct::Oct() : first(0), second(0) {}
 
Oct::Oct(const char * v)
{
    if (strlen(v) < 3 || v[0] != '0' || v[1] != 'o')
    {
        throw Bad_value();
    }
 
    for (size_t i = 2; i < strlen(v); ++i)
    {
        if (v[i] == '.')
        {
            ++i;
            if (++i != strlen(v))
            {
                throw Bad_value();
            }
        }
    }
 
    first = second = 0;
 
    bool it_first = true;
    for (size_t index = 2; index < strlen(v); ++index)
    {
        switch (v[index])
        {
        case '0':   case '1':   case '2':    case '3':
        case '4':   case '5':   case '6':    case '7':
            if (it_first)
            {
                first = first * 10 + v[index] - '0';
            }
            else
            {
                second = second * 10 + v[index] - '0';
            }
            break;
        case '.':
            it_first = false;
            continue;
        default:
            throw Bad_value();
        }
    }
}
 
Oct& Oct::operator+=(const Oct & rhs)
{
    first += rhs.first;
    second += rhs.second;
 
    while (7 < second)
    {
        if (!(first % 7))
        {
            first += 3;
        }
        else
        {
            ++first;
        }
        second = second % 8;
    }
 
    return *this;
}
 
/********* non class operators *********/
 
std::ostream& operator<<(std::ostream &stream, const Oct &rhs)
{
    if (rhs.first < 0)
    {
        stream << "-0o" << -rhs.first << '.' << rhs.second;
    }
    else
    {
        stream << "0o" << rhs.first << '.' << rhs.second;
    }
    return stream;
}
 
Oct operator+(const Oct& lhs, const Oct& rhs)
{
    Oct obj;
    obj += lhs;
    obj += rhs;
    return obj;
}
 
/************* main() *************/
 
int main()
{
    for ( ; ; )
    {
        try
        {
            Oct a = "0o7.3";
            Oct b = "0o7.5";
            std::cout << "a + b = " << (a + b) << std::endl;
            std::cout << "b + a + a = " << (b + a + a) << std::endl;
            Oct c = b + b;
            std::cout << "c = b + b = " << c << std::endl;
            break;
        }
        catch (Oct::Bad_value)
        {
            continue;
        }
    }
}
Yandex
Объявления
17.06.2013, 20:32     .Создать класс Binary1, который будет содержать число в двоичной системе
Ответ Создать тему
Опции темы

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