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

Размер массива объектов

13.03.2013, 15:35. Показов 796. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Метод Count() подсчёта количества элементов массива (массив из сообщений) не правильно распознаёт элементы,заполняет и выводит правильно а если в методе обратиться к содержимому этого объекта то он не правильно работает
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
// labar.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include "iostream"
#include "conio.h"
 
using namespace std;
 
class TMessage
{
public:
    char Topic[30];
    char Author[30];
    char Text[250];
};
 
class TTopic
{
public:
    TMessage* AddMessage(char* topic,char* author,char* text);
    void GetMessage(TMessage*);
    void DeleteMessage(TMessage**,int q);
    int Count(TMessage*);
};
TMessage* TTopic::AddMessage(char* topic,char* author,char* text)
{   
   TMessage* p=new TMessage;
    strcpy(p->Topic,topic);
    strcpy(p->Author,author);
    strcpy(p->Text,text);
    return p;
}
void TTopic::GetMessage(TMessage*p)
{
    cout<<"TOPIC - "<<p->Topic<<'\n'
          <<"AUTHOR - "<<p->Author<<'\n'
          <<"TEXT - "<<p->Text<<endl;
    
}
void TTopic::DeleteMessage(TMessage **p,int q)
{ 
    for (int i=q;i<10;i++)
    {
strcpy(p[q]->Topic,p[q+1]->Topic);
strcpy(p[q]->Author,p[q+1]->Author);
strcpy(p[q]->Text,p[q+1]->Text);
    }
}
int TTopic::Count(TMessage*p)
{
    int j=0;
    for(int i=0;i<10;i++)
    {
        if (p[i].Author=="0" || p[i].Text=="0" || p[i].Topic=="0")
        break;
        else
            j++;
    }
    return j;
}
void main()
{
    setlocale(LC_ALL,"RUSSIAN");
    int* i=0;
    TTopic top; //объявляем тему
    TMessage* p[10];   //объявляем массив сообщений
        p[0]=top.AddMessage("книга","Stiven King","parapapa");
        p[1]=top.AddMessage("kniga","Stiven","parapapa");
        p[2]=top.AddMessage("0","0","0");
        
        
    top.GetMessage(p[0]);
    top.GetMessage(p[1]);
    top.GetMessage(p[2]);
    cout<<top.Count(*p)<<"\n";
    top.DeleteMessage(p,0);
    top.DeleteMessage(p,1);
    
 
    cout<<"------------------------\n";
    
     top.GetMessage(p[0]);
     top.GetMessage(p[1]);
     top.GetMessage(p[2]);
    delete p[0];
    delete p[1];
    getch();
}
здесь в цикле метода Count() счётчик до 10,но он должен выходить из цикла при просмотре 3 элемента (p[2]),но он не выходит
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
13.03.2013, 15:35
Ответы с готовыми решениями:

Узнать размер (количество) массива объектов класса
Допустим, у меня есть такой массив объектов: TGameEnemy enemies = { TGameEnemy(), TGameEnemy(), TGameEnemy() }; Мне необходимо...

Ввести размер массива с клавиатуры и передать этот размер в конструктор
Я создал массив объектов. И я хочу ввести размер этого массива с клавиатуры, и передать этот размер в конструктор, как мне это сделать? ...

Каков максимальный размер динамического массива объектов?
подскажите пожалуйста, какое максимальное к-во объектов класса можно создать при таком описании класса? class MyClass { private: ...

3
419 / 418 / 72
Регистрация: 27.05.2012
Сообщений: 1,168
13.03.2013, 15:44
строки так не сравниваются, strcmp
1
6 / 6 / 4
Регистрация: 18.10.2011
Сообщений: 187
13.03.2013, 17:18  [ТС]
Я их не сравниваю а копирую
0
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
13.03.2013, 20:23
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
// labar.cpp: определяет точку входа для консольного приложения.
#include "iostream"
#include "conio.h"
using namespace std;
 
class TMessage
{
public:
    char Topic[30];
    char Author[30];
    char Text[250];
};
 
class TTopic
{
public:
    TMessage* AddMessage(char* topic,char* author,char* text);
    void GetMessage(TMessage*);
    void DeleteMessage(TMessage**,int q);
    int Count(TMessage **p);
};
TMessage* TTopic::AddMessage(char* topic, char* author, char* text)
{   
    TMessage* p = new TMessage;
    strcpy(p->Topic, topic);
    strcpy(p->Author, author);
    strcpy(p->Text, text);
    return p;
}
void TTopic::GetMessage(TMessage*p)
{
    cout<<"TOPIC - "<<p->Topic<<'\n'
          <<"AUTHOR - "<<p->Author<<'\n'
          <<"TEXT - "<<p->Text<<endl;
    
}
void TTopic::DeleteMessage(TMessage **p,int q)
{ 
    for (int i=q;i<10;i++)
    {
strcpy(p[q]->Topic,p[q+1]->Topic);
strcpy(p[q]->Author,p[q+1]->Author);
strcpy(p[q]->Text,p[q+1]->Text);
    }
}
int TTopic::Count(TMessage **p)
{
    int j = 0;
    for(int i = 0 ; i < 10; i++)
    {
        if (!strcmp(p[i] ->Author, "0") || !strcmp(p[i] ->Text, "0") || !strcmp(p[i] ->Topic, "0"))
        break;
        else
            j++;
    }
    return j;
}
void main()
{
    setlocale(LC_ALL,"RUSSIAN");
    int* i=0;
    TTopic top; //объявляем тему
    TMessage *p[10];   //объявляем массив сообщений
        
        p[0]=top.AddMessage("книга","Stiven King","parapapa");
        p[1]=top.AddMessage("kniga","Stiven","parapapa");
        p[2]=top.AddMessage("0","0","0");
        
        
    top.GetMessage(p[0]);
    top.GetMessage(p[1]);
    top.GetMessage(p[2]);
    
    cout<<top.Count(p)<<"\n";
    
    top.DeleteMessage(p,0);
    top.DeleteMessage(p,1);
    
 
    cout<<"------------------------\n";
    
     top.GetMessage(p[0]);
     top.GetMessage(p[1]);
     top.GetMessage(p[2]);
    delete p[0];
    delete p[1];
    
    getch();
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.03.2013, 20:23
Помогаю со студенческими работами здесь

Автоматически изменять размер объектов Image под размер формы
Как сделать чтобы после запуска программы в C++ Builder можно было изменить размер формы, и размер объектов Image автоматически изменялся...

Как собрать из массива ключей и массива объектов - массив объектов?
Как собрать из массива ключей и массива обьектов - массив объектов? // Массив ключей ; // Массив значений , , ];

Размер 3d объектов в UI
Приветствую, если по сути то у меня есть ScrollViev в котором лежит 3d объект, в редакторе это выглядит так (первая картинка), а на самом...

Размер объектов в Дельфи
Пожалуйста объясните что такое размер объекта? Недавно в учебнике нашёл забавный, как мне показалось, код построения для любого объекта...

При инициализации массива объектов в одном методе, этот массив объектов не видно в других методах
static public void Load() { BaseObject objs = new BaseObject; //Этот массив! for (int i = 0; i &lt;...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
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 - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru