Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ Ошибка в функции Привожу код: // создаёт новую строку, добавляя текущую // строку к rhs String String::operator+(const Srting& rhs) { unsigned short totalLen = itsLen + rhs.GetLen(); String temp(totalLen); unsigned short i; for (i= 0; i<itsLen; i++) temp = itsString; https://www.cyberforum.ru/ cpp-beginners/ thread730264.html Помощь с кодом(не доделано) C++
Здравствуйте, имеется задание: В одномерном массиве, состоящем из n-вещественных элементов, вычислить: • Максимальный по модулю элемент массива; • Преобразовать массив таким образом, чтобы элементы, равные нулю, располагались после всех остальных. Код: #include <iostream> #include <math.h> using namespace std; double Max(double * arr, int n);
C++ Дана функция и по ней нужно создать матрицу от минимально х и до максимального х https://www.cyberforum.ru/ cpp-beginners/ thread730251.html
Дана функция и по ней нужно создать матрицу от минимально х и до максимального х. во вложенном файле задание. нужно сделать под 1 вариант, есть 6ой вот пример : #include <conio.h> #include <malloc.h> #include <stdlib.h>
C++ Задать строку из 0 и 1 и подсчитать количество 0 и 1 Сама программа имеется. Будет внизу. А теперь задание поставили по-другому, нужнотакже вывести саму эту строку из нулей и единиц, а следующая строка чтобы была другая: к каждому 0+5 и к 1+10, то есть вместо нулей будут 5 ,а вместо 1 - 11. #include <iostream.h> #include <conio.h> #include <vcl.h> #include <math.h> int main () {int b,i,n; cout << "enter razmer massiva: "; cin >> n; https://www.cyberforum.ru/ cpp-beginners/ thread730250.html
C++ Что изучать после C++
Обращаюсь к вам, как к знающим людям со следующим вопросом. Допустим, я изучил C++ на уровне стандартного Си. И теперь задался вопрос - куда идти дальше? Я заметил, что сейчас существует большое количество технологий, средств для программирования и т.д. Но опять же становится непонятно, как они устроены. И иногда возникают трудности даже во время установки каких-то компонентов, возникаю проблемы...
C++ Построить последовательность помогите пожалуйста с довольно сложной задачей Ввести a1, a2, a3, m, n. Построить последовательность ak = 3ak-1 /2 - 2ak-2 /3 -ak-3 /3. Довести ее до |al|<=m. Сообщить, выполняется ли условие |al|=m и сравнить L и n. Запрещено размещать задания в виде картинок и других файлов с их текстом https://www.cyberforum.ru/ cpp-beginners/ thread730212.html
C++ Рекуррентность Помогите! Надо вывести рекуррентную формулу для pow не использовать. https://www.cyberforum.ru/ cpp-beginners/ thread730196.html Найти сумму положительных элементов J(10_ C++
Здравствуйте. Вопрос в том, как написать эту программу через указатель? #include <tchar.h> #include <iostream.h> #include <stdlib.h> #include <time.h> int _tmain(int argc, _TCHAR* argv) { randomize();
C++ Задачи с несколькими развилками https://www.cyberforum.ru/ cpp-beginners/ thread730161.html
Помогите пожалуйста! Вычислить X = max(a+b+c,\left|a+b-c \right|, min(a*b,2*a*c)) Добавлено через 9 часов 52 минуты help me please
C++ Определить минимальный радиус окружности с центром в начале координат...(массив) https://www.cyberforum.ru/ cpp-beginners/ thread730127.html
осталась последняя задача для зачета по с++ помогите пожалуйста программу написать кто нибудь(( В одномерном массиве с четным количеством элементов (2N) находятся координаты N точек плоскости. Они располагаются в следующем порядке: x1, x2,x3,x4 и т.д.. Определить минимальный радиус окружности с центром в начале координат, которая содержит все точки.
Подсчитать частоту встречающихся в тексте пар последовательных символов в словах C++
Всем привет, помогите пожалуйста сделать Текст ввести из файла input.txt Подсчитать частоту встречающихся в тексте пар последовательных символов в словах. Буду благодарен. Добавлено через 5 часов 18 минут #include<stdio.h> #include<string.h> #include <conio.h>
C++ Определить количество вхождений подстроки в заданную строку Определить количество вхождений подстроки в заданную строку.. Добавлено через 3 часа 57 минут Определить количество вхождений подстроки в заданную строку.. Вообщем сам допер. Если кому интересно будет то вот: #include <iostream> #include <sstream> #include <string> https://www.cyberforum.ru/ cpp-beginners/ thread730092.html
0 / 0 / 0
Регистрация: 04.12.2012
Сообщений: 18
0

классы, указатель на массив объектов производного класса) - C++ - Ответ 3850297

13.12.2012, 15:26. Показов 522. Ответов 0
Метки (Все метки)

Author24 — интернет-сервис помощи студентам
Есть иерархия классов (два базовых и три производных)
Требуется определить указатель на массив из N объектов производного класса(Obrobka) и добавить функцию для увеличения и уменьшения кол-ва объектов (допустим был массив из 10 объектов - а с помощью функции увеличь до 11)
Все объекты в массиве должны быть разные.
Прошу помочь
Код ниже
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
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
#include <iostream>
#include <string>
#include <conio.h>
#include <stdio.h>
#include <fstream>
 
using namespace std;
 
 
 
 
class Data
{
    private:
            int day;
            int month;
            int year;
 
     public:
            Data();
            Data(int, int, int);
            void d_show();
            void d_f(FILE *);
};
 
class Osoba
{
    private:
            string lastname;
            string name;
    public:
            Osoba();
            Osoba(string, string);
            void os_show();
            void os_f(FILE *);
};
 
 
class File: public Data
{
    private:
            string nazva;
            string rozsh;
            float rozmr;
            string kb;
 
    public:
            File();
            File(string, string, int, int, int, float, string);
            void f_show();
            void f_f(FILE *);
};
 
class Textdoc : public File, public Osoba
{
    private:
            string shlyakh;
            string slova;
            
    public:
            Textdoc();
            Textdoc(string, string, int, int, int, float, string, string, string, string, string);
            void t_show();
            void t_f(FILE *);
};
 
class Obrobka : public Textdoc, public Data
{
 
    private:
        int size;
        Obrobka *uk;
    public:
            Obrobka();
            Obrobka(string, string, int, int, int, float, string, string, string, string, string, int, int, int, Obrobka *, int);
            Obrobka(string, string, int, int, int, float, string, string, string, string, string, int, int, int);
            void ob_show();
            friend ostream & operator << (ostream &, Obrobka &);
            void ob_f(FILE *);
            
};
 
 
 
Data::Data()
{
        day=10;
        month=8;
        year=2002;
}
 
Data::Data(int day1, int month1, int year1)
{
    day=day1;
    month=month1;
    year=year1;
}
 
void Data::d_show()
{
    printf("%d.%d.%d\n", day, month, year);
}
 
void Data::d_f(FILE *file)
{
    fprintf(file, "%d.%d.%d\n",day,month,year);
}
 
Osoba::Osoba()
{
    lastname="Kosenko";
    name="Anton";
}
 
Osoba::Osoba(string Lastname1, string Name1)
{
    lastname=Lastname1;
    name=Name1;
}
 
void Osoba::os_show()
{
    cout<<"Фамилия: "<<lastname<<"\n";
    cout<<"Имя: "<<name<<"\n";
}
 
void Osoba::os_f(FILE *file)
{
    fprintf(file, "Фамилия: %s\nИмя: %s\n",lastname.c_str(),name.c_str());
}
 
File::File():Data()
{
    nazva="Lektsiya";
    rozsh="txt";
    rozmr=55.2;
    kb="KB";
 
}
 
File::File(string nazva1, string rozsh1, int day1, int month1, int year1, float rozmr1, string kb1):Data(day1, month1, year1)
{
    nazva=nazva1;
    rozsh=rozsh1;
    rozmr=rozmr1;
    kb=kb1;
}
 
void File::f_show()
{
    cout<<"Имя и расширение: "<<nazva<<"."<<rozsh<<"\n";
    cout<<"Дата создания: ";
    d_show();
    cout<<"Размер: "<<rozmr<<" "<<kb<<"\n";
}
 
void File::f_f(FILE *file)
{
    fprintf(file, "Имя и расширение: %s.%s\nДата создания: ",nazva.c_str(),rozsh.c_str());
    d_f(file);
    fprintf(file, "Размер: %3.2f",rozmr);
    fprintf(file, " %s \n",kb.c_str());
}
 
Textdoc::Textdoc():File(), Osoba()
{ 
        shlyakh="D://Desktop/New/";
        slova="OOP, Class, #7";
}
    
Textdoc::Textdoc(string nazva1, string rozsh1, int day1, int month1, int year1, float rozmr1, string kb1, string shlyakh1, string Lastname1, 
                 string Name1, string slova1):File(nazva1,rozsh1,day1,month1,year1,rozmr1,kb1), Osoba(Lastname1, Name1)
{
        shlyakh=shlyakh1;
        slova=slova1;
}
 
void Textdoc::t_show()
{
    f_show();
    cout<<"Путь к файлу: "<<shlyakh<<"\n";
    os_show();
    cout<<"Ключевые слова: "<<slova<<"\n";
}
 
void Textdoc::t_f(FILE *file)
{
    f_f(file);
    fprintf(file, "Путь к файлу: %s\n",shlyakh.c_str());
    os_f(file);
    fprintf(file, "Ключевые слова: %s\n",slova.c_str());
}
 
Obrobka::Obrobka():Textdoc(),Data()
{
}
Obrobka::Obrobka(string nazva1, string rozsh1, int day1, int month1, int year1, float rozmr1, string kb1, string shlyakh1, string Lastname1, 
                 string Name1, string slova1, int day_ob, int month_ob, int year_ob):Textdoc(nazva1, rozsh1, day1, month1, year1, rozmr1, kb1, 
                 shlyakh1, Lastname1, Name1, slova1),Data(day_ob, month_ob, year_ob)
{
 
}
Obrobka::Obrobka(string nazva1, string rozsh1, int day1, int month1, int year1, float rozmr1, string kb1, string shlyakh1, string Lastname1, 
                 string Name1, string slova1, int day_ob, int month_ob, int year_ob, Obrobka *p, int size1):Textdoc(nazva1, rozsh1, day1, month1, 
                 year1, rozmr1, kb1, shlyakh1, Lastname1, Name1, slova1),Data(day_ob, month_ob, year_ob)
 
{
    uk=new Obrobka[size1];
            
    for(int i=0;i<size1;i++)
        {
            uk[i]=p[i];
        }
    size=size1; 
}
 
void Obrobka::ob_show()
{
        
    for(int i=0;i<size;i++)
    {
    uk[i].t_show();
    cout<<"Дата обработки: ";
    uk[i].Data::d_show();
    cout<<"\n\n";
    }   
}
 
void Obrobka::ob_f(FILE *file)
{
    t_f(file);
    fprintf(file, "Дата обработки: ");
    Data::d_f(file);
    fprintf(file, "\n");
}
 
ostream & operator << (ostream &vyv, Obrobka &n)
{
 
    n.ob_show();
    return vyv;
}
 
 
 
int main()
{
        setlocale(0,"");
        const int size=10;
        Obrobka A[size]={Obrobka("Logins", "txt", 11, 1, 2013, 6.2, "KB", "C://User/Byvaet", "Sokolov", "Maxim", "login, vk, sart", 28, 3, 2013),
                         Obrobka("Kniga", "txt", 12, 12, 2013, 564.9, "KB", "C://User/Byvaet", "Ezhevikin", "Anton", "Begbeder, Lubov, 3, God", 18, 12, 2013),
                         Obrobka("Bloknot", "txt", 13, 6, 2013, 564.2, "KB", "C://User/Byvaet", "Kosenko", "Vlad", "programma, txt, slova", 4, 8, 2013),
                         Obrobka("Zapiska", "txt", 14, 10, 2013, 121.1, "KB", "C://User/Byvaet", "Eremin", "Sasha", "Ira, Vanya", 6, 11, 2013),
                         Obrobka("Uroki", "txt", 15, 9, 2013, 124.4, "KB", "C://User/Byvaet", "Svyatoy", "Igor", "Angl, Matematika, Heografiya, Phizika", 1, 12, 2013),
                         Obrobka("Slova", "txt", 16, 11, 2013, 98.5, "KB", "C://User/Byvaet", "Ivanov", "Vanya", "Bukvy", 17, 11, 2013),
                         Obrobka("Dengi", "txt", 17, 9, 2013, 564.5, "KB", "C://User/Byvaet", "Sidorova", "Olya", "GRN, Kurs", 25, 10, 2013),
                         Obrobka("AFDSF", "txt", 18, 1, 2013, 37.3, "KB", "C://User/Byvaet", "Starosta", "Masha", "dasda, dasd, dfg", 13, 3, 2013),
                         Obrobka("Vitaminy", "txt", 19, 2, 2013, 784.5, "KB", "C://User/Byvaet", "Zavalova", "Lilya", "B, Kaltsiy, E", 4, 8, 2013),
                         Obrobka("Sosedi", "txt", 20, 7, 2013, 69.1, "KB", "C://User/Byvaet", "Zgoda", "Kostya", "44, Sidorov, etazh", 3, 10, 2013)
        };
        Obrobka C;
        cout<<C;
        cout<<"\n";
        Obrobka B("Sosedi", "txt", 20, 7, 2013, 69.1, "KB", "C://User/Byvaet", "Zgoda", "Kostya", "44, Sidorov, etazh", 3, 10, 2013, A, size);
        cout<<B;
 
        char c[100];
        char shl[100];
        char *filename;
        cout<<"Введите имя файла: ";
        cin>>c;
        sprintf(shl,"D:\\%s.txt", c);
        filename = new char[strlen(shl)+1];
        strcpy(filename,shl);
 
        
        FILE *file;
        file=fopen(filename, "w");
        for(int i = 0; i < size;i++)
        A[i].ob_f(file);
        fclose;
 
        cout<<"Путь к файлу: "<<"\n";
        cout<<filename;
        getch();
        return 0;
 
}


Вернуться к обсуждению:
классы, указатель на массив объектов производного класса) C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.12.2012, 15:26
Готовые ответы и решения:

Задача (разъяснение) в алгоритм (программа, используя базовый и производный классы, создавала массив объектов типа производного класса)
Задача на наследование классов, базовый класс - &quot;люди&quot;, производный - &quot;студенты&quot;...как я понял, а...

Указатель на объект базового класса и адрес объекта производного класса
Пример кода: class Class1 { public: Class1(int x) { j = new int; *j = x; }...

Возможно ли указатель производного класса инициализировать объектом базового класса?
имеется связка наследуемых классов A-&gt;B а от B наследуются одновременно еще два класса B-&gt;C и B-&gt;D...

Определить обработчик исключений на преобразование указателя базового класса на указатель производного класса
Класс В является производным от класса А. Определить обработчик исключительной ситуации на...

0
13.12.2012, 15:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.12.2012, 15:26
Помогаю со студенческими работами здесь

Можно ли создать массив из объектов базового и производного класса?
Доброй ночи. Есть задание: Возник вопрос о реализации метода &quot;TovarRead&quot;. Насколько я понял...

Несколько объектов (как базового, так и производного класса) сохранить в один массив
Есть такое задание на С#, помогите выполнить т.к. сам не понимаю вообще в этом ничего. Если можно...

Объявить массив объектов класса Point - не работает указатель
всем привет подскажите пожалуйста что я сделал не так ? //Объявить массив объектов класса...

Создать копию объекта производного класса зная указатель на базовый
Добрый день! Вопрос в следующем... Возможно ли создать копию объекта производного класса зная...

Вызов метода производного класса через указатель на базовый класс
Всем привет ! Подскажите почему , при выполнении строки 45 я получаю ошибку ? А именно при...

Освобождение памяти для объектов производного класса
Всем привет. Не могу найти инфу в интернете, всё перерыл, но понял что случай специфичный у меня....

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru