Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 24.12.2022
Сообщений: 31

Коллекция объектов класса

01.01.2023, 18:23. Показов 569. Ответов 3

Студворк — интернет-сервис помощи студентам
В чем ошибка и как исправить?
Lab5.ccp:
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
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <string.h>
#include "Film.h"
#include "Group.h"
 
int main(){
  Group *Films = new Group("PI-21");
 
  Film *des1 = new Film(180, 300, "Prototype");
  Film *des2 = new Film(120, 250, "Way out");
  Film *des3 = new Film(150, 300, "Crysis");
 
  Films->add(des1);
  Films->add(des2);
  Films->add(des3);
 
  printf("%d\n", Films->getSize());
  Films->print();
 
  Film *des4 = Films->getFilm(2);
  des4->print();
 
  Films->change(0, 2);
 
  Films->print();
  Films->change(0, 5);
 
  Films->sort();
  Films->print();
 
  delete Films;
  
  system("pause");
  return 0;
}
Film.h:
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
//---------------------------------------------------------------------------
 
#ifndef H_Film
#define H_Film
class Film {
  char fname[80];  //Название
  int length;  //Длина фильма (в минутах)
  int cost;    //Цена за билет (в рублях)
  public:
    Film();
    Film(int k, int c, char* n);
    Film::Film(Film &f);
    Film::Film(char *f);
    ~Film();
    void setName(const char *f);
    void setLength(int k);
    void setCost(int k);
    char* getName();
    int getLength();
    int getCost();
    void scan();
    void print();
    Film *copyMAX(Film *ndes);
};
//---------------------------------------------------------------------------
#endif
Film.cpp:
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
#include "Film.h"
#include <stdio.h>
#include <vcl.h>
 
Film::Film() {
  length=0;
  cost=0;
  setName("");
}
 
Film::Film(int k, int c, char* n) {
  setLength(k);
  setCost(c);
  setName(n);
}
 
Film::Film(Film &f) {
  setLength(f.length);
  setCost(f.cost);
  setName(f.fname);
}
 
Film::Film(char *f) {
  length = 0;
  cost = 0;
  setName(f);
}
 
Film::~Film() {
  printf("Erased\n");
}
 
void Film::setName(const char *f) {
  strcpy(fname, f);
}
 
void Film::setLength(int k) {
  length = k;
}
 
void Film::setCost(int k) {
  cost = k;
}
 
char *Film::getName() {
  return fname;
}
 
int Film::getLength() {
  return length;
}
 
int Film::getCost() {
  return cost;
}
 
void Film::print() {
  printf("Äëèíà ôèëüìà (â ìèíóòàõ) = %d\n", length);
  printf("Öåíà çà áèëåò (â ðóáëÿõ) = %d\n", cost);
  printf("Íàçâàíèå = ");
  puts(fname);
}
 
void Film::scan() {
  int k, c;
  char n[80];
  printf("Äëèíà ôèëüìà (â ìèíóòàõ) = ");
  scanf("%d", &k);
  setLength(k);
  printf("Öåíà çà áèëåò (â ðóáëÿõ) = ");
  scanf("%d", &c);
  setCost(c);
  printf("Íàçâàíèå = ");
  scanf("%s", n);
  setName(n);
}
 
Film *Film::copyMAX(Film *ndes) {
  Film *check = new Film;
  if (length < ndes->length)
    check->setLength(ndes->getLength());
  else
    check->setLength(length);
  if (cost < ndes->cost)
    check->setCost(ndes->getCost());
  else
    check->setCost(cost);
  int k1=0, k2=0, i = 0;
  while (i != 0) {
    fname[i]++;
    k1++;
  }
  i=0;
  while (i != 0) {
    (ndes->fname[i])++;
    k2++;
  }
  if (k1>k2)
    check->setName(fname);
  else
    check->setName(ndes->getName()); 
  return check;
}
Group.h:
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
#ifndef H_Group
#define H_Group
#include "Film.h"
class Group {
  private:
  char name[100];
  Film* g[100];
  int size;
 
  public:
  //constructors:
  Group();
  Group(char*);
 
  //destructor
  ~Group();
 
  void add(Film*);
 
  void del(int);
 
  int getSize();
 
  Film* getFilm(int);
 
  void change(int, int);
 
  void sort();
 
  void print();
 
  void setGroupName(char*);
  char* getGroupName();
};
#endif
Group.cpp:
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
#include <stdio.h>
#include <string.h>
#include "Group.h"
//constructors:
Group :: Group(){
  strcpy(name, "");
  size = 0;
}
 
Group :: Group(char* f){
  strcpy(name, f);
  size = 0;
}
 
//Destructor
Group :: ~Group(){
  int i=0;
  for(i=0; i<size; i++){
    delete g[i];
  }
  //delete g;
  printf("Erased\n");
}
 
void Group :: add(Film* e){
  g[size]=e;
  size++;
}
 
void Group :: del(int k){
  int i=0;
  if(k>=size){
    return;
  }
  delete g[k];
  for(i=k; i<size; i++){
    g[i]=g[i+1];
  }
  size--;
}
 
int Group :: getSize(){
  return size;
}
 
Film* Group :: getFilm(int k) {
  return g[k];
}
 
void Group :: change(int i, int j){
  if(i>=size || j>=size){
    return;
  }
  Film* t = f[i];
  g[i]=g[j];
  g[j]=t;
}
 
void Group :: sort(){
  int i=0, j=0;
  Film* sup;
  for (i=1; i<size; i++){
        sup = g[i];
        for (j=i-1; j>=0 && (strcmp(g[j]->getName(), sup->getName())>0); j--){
            g[j+1] = g[j];
    }
    g[j+1] = sup;
    }
}
 
void Group :: print(){
  int i=0;
  printf("%s:\n", name);
  for(i=0; i<size; i++){
    g[i]->print();
  }
}
 
void Group :: setGroupName(char* n){
  strcpy(name, n);
}
 
char* Group :: getGroupName(){
  return name;
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.01.2023, 18:23
Ответы с готовыми решениями:

Коллекция объектов базового класса
Доброго дня! У меня есть несколько классов одинаковых по предметной области(это фигуры круги и треугольники), просто рисуются они по...

Коллекция объектов
Здравствуйте, у меня есть массив родительского класса Human, но как мне создать коллекцию из разных объектов (студент, продавец, врач) в...

Коллекция полиморфных объектов
Здравствуйте! Столкнулась с такой проблемой, задание гласит, что нужно составить программу, позволяющую создать коллекцию объектов. В одной...

3
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
01.01.2023, 18:53
Лучший ответ Сообщение было отмечено Rembys как решение

Решение

Цитата Сообщение от Rembys Посмотреть сообщение
В чем ошибка и как исправить?
компилятор запускал?
1
0 / 0 / 0
Регистрация: 24.12.2022
Сообщений: 31
01.01.2023, 20:33  [ТС]
Да
[C++ Error] Group.cpp(25): E2147 'Film' cannot start a parameter declaration
[C++ Error] Group.cpp(25): E2316 'Group::add(int *)' is not a member of 'Group'
[C++ Error] Group.cpp(46): E2141 Declaration syntax error

Добавлено через 1 час 27 минут
Сработало после пересоздания и вставки.
0
И тут вот те нате
322 / 209 / 117
Регистрация: 12.07.2016
Сообщений: 555
01.01.2023, 20:35
У вас там куча ошибок. Film.h 12-13 строка Film::Film в декларации это что? Group.cpp 54 строка Film* t = f[i];, может g[i]?? Убрать эти стандартные ошибки, которые компилятор сразу выводит, и уже будет лучше. У меня компилит по крайней мере
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.01.2023, 20:35
Помогаю со студенческими работами здесь

Разработать программу с использованием класса объектов. Для класса объектов разработать подпрограммы
Разработать программу с использованием класса объектов.Треугольник Периметр, площадь Для класса объектов разработать подпрограммы...

Передача объектов дочерних классов через массив объектов родительского класса в функцию
Здравствуйте. Возможно, вопрос больше относится к теории ООП, но все же я не решился задавать его в теме теории ООП, так как он кажется мне...

Удаление динамического массива объектов класса, который имеет динамические массивы объектов других классов
Здравствуйте. Опишу вопрос подробнее. У меня есть класс Department, который имеет динамический массив объектов класса Sector. Класс Sector,...

Перегрузка операции + с преобразованием объектов одного класса в объекты другого класса
Доброго времени суток! Изучаю ООП, при выполнении следующего задания возникли сложности: Создать класс Polar для хранения полярных...

Построение описания класса, создание и уничтожение объектов этого класса
Построить описание класса, содержащего информацию о почтовом адресе организации. Предусмотреть возможность раздельного изменения...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru