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

Разработка класса Tdrob - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описание класса под названием Organizer http://www.cyberforum.ru/cpp-beginners/thread141166.html
Описание класса под названием Organizer,который вмещает в себе следующие свойства и методы: -Имя и иницыалы -номер тел. -дата рождения(масив из трех елементов) -ф-ция которая выводит на дисплей дату рождения ---------------------------------------------------- Создание динамического массива объекта Organizer,розмерность которого равна количеству рядков в файле; Чтение с файла in.txt ...
C++ не компилируется люди добрые!и не очень!! итак.имеются два файла-игра и меню игры. из них я создала проект.так понимаю один из main'ов нужно убрать-тот который в игре? в общем после всего проделанного игра не компилируется.ПОМОГИТЕ!!пожалуйста доделать!а то защита курсовой уже подкралась вплотную!!! вот тут и меню, и змейка,и проект. ПОМОГИТЕ!!просто вопию и умоляю о помощи!! пы.сы.там всего одна... http://www.cyberforum.ru/cpp-beginners/thread141162.html
Лаба на файлы,кто решит палтишок на мабилку C++
Написать программу, которая определяет, одинаково ли содержимое символьных файлов 'a.txt' и 'b.txt'.
C++ Не работает printf без \n в цикле for
Вообще задача: выводить процент завершения процесса без перехода на новую строку и без мигания курсора. В одной функции в цикле while такой вариант выводит: printf("\rREAD STRUCT: %-30s \t %.2f\tMB",Name,float32(nTotalByte)/1024/1024); Но при этом мигающий прямоугольничик в консоле постоянно прыгает по строке (Как этого избежать?) Другая проблема: в другой функции пишу цикл:
C++ КурсАч). HELP!!! http://www.cyberforum.ru/cpp-beginners/thread141130.html
Из данного на плоскости множества точек выбрать три различные точки так, чтобы разность между площадью круга, ограниченного окружностью, проходящей через эти три точки и площадью треугольника с вершинами в этих точках была минимальной. Как это отобраЗить на С???
C++ Не работает gets() Не работает ф-ция gets(), просто игнорируется, при трассировке тоже тупо перепрыгивает на следующюю строку. Код и собственно проблема здесь Я вообще не могу понять почему так происходит%-) подробнее

Показать сообщение отдельно
taposhka
0 / 0 / 0
Регистрация: 05.06.2010
Сообщений: 7
11.06.2010, 19:00  [ТС]     Разработка класса Tdrob
Цитата Сообщение от easybudda Посмотреть сообщение
taposhka, ещё раз тот же класс, только слегка доделанный и местами с комментариями
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
#include <iostream>
#include <string>
#include <sstream>
#include <stdexcept>
 
class Fraction {
        long _numerator; //числитель
        long _denominator; // знаменатель
        // функция для проверки знаменателя на равенство нулю
        void check_zero() {
            if ( ! _denominator )
                throw std::runtime_error("Zero denominator!");
        }
 
public:
        // конструктор, принимающий значения числителя и знаменателя
        Fraction(long n, long d) : _numerator(n), _denominator(d) {
            check_zero();
        }
        // конструктор по умолчанию
        Fraction() : _numerator(1), _denominator(1) { }
        // конструктор копирования
        Fraction(const Fraction & f) { *this = f; }
        // деструктор
        ~Fraction() { }
        // перегруженный оператор =
        const Fraction & operator = (const Fraction & f) {
                if ( this != & f ) {
                        _numerator = f.numerator();
                        _denominator = f.denominator();
                }
                return *this;
        }
        // функции для доступа к числителю и знаменателю (константные - чтение, неконстантные - запись)
        long numerator() const { return _numerator; }
        void numerator (long n) { _numerator = n; }
        long denominator() const { return _denominator; }
        void denominator(long d) { _denominator = d; check_zero(); }
        // функция, возвращающая дробь в виде строки
        std::string str() const {
                if ( ! _numerator )
                    return "0";
                std::ostringstream ost;
                ost << _numerator << '/' << _denominator;
                return ost.str();
        }
        // функция, возвращающая строку, содержащую "правильную дробь"
        // к примеру 5/2 будет выведено, как 2 1/2
        std::string correct_str() const {
            if ( _numerator >= _denominator ) {
                std::ostringstream ost;
                long whole = _numerator / _denominator;
                ost << whole;
                if ( _numerator % _denominator )
                    ost << ' ' << ( _numerator - whole * _denominator ) << '/' << _denominator;
                return ost.str();
            }
            else
                return str();
        }
        // функция для сокращения дроби. 4/8 будет преобразованно в 1/2
        const Fraction & abbreviation() {
                for ( long i = _numerator; i > 1; --i ) {
                        if ( _numerator % i == 0 && _denominator % i == 0 ){
                                _numerator /= i;
                                _denominator /= i;
                                break;
                        }
                }
                return *this;
        }
        // перегруженные функции для выполнения математических действий с дробями
        // см. учебник по математике примерно для пятого класса
        const Fraction operator * (const Fraction & f) const {
                Fraction n( _numerator * f._numerator, _denominator * f._denominator );
                n.abbreviation();
                return n;
        }
 
        const Fraction operator / (const Fraction & f) const {
                Fraction n( _numerator * f._denominator, _denominator * f._numerator );
                n.abbreviation();
                return n;
        }
 
        const Fraction operator + (const Fraction & f) const {
                Fraction n;
                if ( _denominator == f._denominator ){
                        n.numerator(_numerator + f._numerator);
                        n.denominator(_denominator);
                }
                else {
                        n.numerator(_numerator * f._denominator + f._numerator * _denominator);
                        n.denominator(_denominator * f._denominator);
                }
                n.abbreviation();
                return n;
        }
 
        const Fraction operator - (const Fraction & f) const {
                Fraction n;
                if ( _denominator == f._denominator ){
                        n.numerator(_numerator - f._numerator);
                        n.denominator(_denominator);
                }
                else {
                        n.numerator(_numerator * f._denominator - f._numerator * _denominator);
                        n.denominator(_denominator * f._denominator);
                }
                n.abbreviation();
                return n;
        }
};
 
int main() {
        // несколько примеров разной степени удачности для проверки работы класса
        Fraction f1;
        std::cout << "Default value of Fraction object is " << f1.str() << std::endl;
        long n, d;
        std::cout << "New numerator value: ";
        std::cin >> n;
        std::cout << "New denominator value: ";
        std::cin >> d;
        f1.numerator(n);
        f1.denominator(d);
        std::cout << "New Fraction value: " << f1.numerator() << '/' << f1.denominator() << std::endl;
        std::cout << "After abbreviation: ";
        f1.abbreviation();
        std::cout << f1.str() << std::endl;
 
        Fraction * f2;
        std::cout << "Numerator for new Fraction: ";
        std::cin >> n;
        std::cout << "Denominator for new Fraction: ";
        std::cin >> d;
        f2 = new Fraction(n, d);
        std::cout << "New Fraction: " << f2->str() << std::endl;
        f2->abbreviation();
        std::cout << "After abbreviation: " << f2->str() << std::endl;
 
        Fraction f3;
        f3 = *f2;
        std::cout << "Copy of Fraction object: " << f3.correct_str() << std::endl;
 
        Fraction f4(f3);
        std::cout << "Another copy numerator: " << f4.numerator() << std::endl;
        std::cout << "Another copy denominator: " << f4.denominator() << std::endl;
        std::cout << "Correct fraction: " << f4.correct_str() << std::endl;
 
        std::cout << "Some arithmetic functions examples:" << std::endl;
 
        while ( true ) {
                std::cout << "First numerator: ";
                std::cin >> n;
                std::cout << "First denominator: ";
                std::cin >> d;
                Fraction a(n, d);
                std::cout << "Second numerator: ";
                std::cin >> n;
                std::cout << "Second denominator: ";
                std::cin >> d;
                Fraction b(n, d);
 
                Fraction c;
                c = a + b;
                std::cout << a.str() << " + " << b.str() << " = " << c.str() << " = " << c.abbreviation().correct_str() << std::endl;
                c = a - b;
                std::cout << a.str() << " - " << b.str() << " = " << c.str() << " = " << c.abbreviation().correct_str() << std::endl;
                c = a * b;
                std::cout << a.str() << " x " << b.str() << " = " << c.str() << " = " << c.abbreviation().correct_str() << std::endl;
                c = a / b;
                std::cout << a.str() << " / " << b.str() << " = " << c.str() << " = " << c.abbreviation().correct_str() << std::endl;
 
                std::cout << "Continue? (yes/no): ";
                std::string answ;
                std::cin >> answ;
 
                if( answ != "yes" && answ != "YES" )
                        break;
        }
 
        delete f2;
 
        return 0;
}
Ещё раз огромное спасибо за Вашу помощь!! Вы настоящий друг =)))
 
Текущее время: 20:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru