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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
Star_BAby
0 / 0 / 0
Регистрация: 04.04.2011
Сообщений: 12
#1

Динамический массив структур - C++

13.11.2011, 18:08. Просмотров 2126. Ответов 20
Метки нет (Все метки)

Помогите пожалуйста с заданием
Создать динамический массив структур (не менее 10 записей) со следующими полями:
-шифр поезда
-пункт отправления
-пункт назначения
-время пути
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2011, 18:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Динамический массив структур (C++):

Как объявить динамический массив структур, и как выглядит обращение к полям структур по указателю? - C++
Ребята подскажите как объявить динамический массив структур, и как выглядит обращение к полям структур по указателю.

Динамический массив структур ... - C++
Как создать дин. массив структур....пользователь должен ввести число этих массивов. вот что-то пробовал , но много ошибок выпрыгивает ...

Динамический массив структур - C++
Добрый день. Недавно начал изучать С++. В книге попалась задача в которой требуется сохранение информации в динамически выделяемом массиве...

Динамический массив структур - C++
Нужно создать базу данных библиотеки состоящую из структур: книга, автор, количество читателей взявших эту книгу. Реализовать функции:...

Динамический массив структур - C++
Необходимо создать структуру, и сделать динамический массив структур. Фиксированный массив получается сделать, а вот с динамическим...

Динамический массив структур - C++
Структура «Сотрудник» хранит имя, должность и возраст сотрудника. Структура «Компания» хранит название и массив сотрудников. Программа...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
13.11.2011, 19:05 #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
#include <iostream>
#include "stdlib.h"
#include "windows.h"
#include <string>
using namespace std;
struct ST
{
  int number;
  char put_naz[20];
  char put_otp[20];
  int time;
  ST(int number ,int time,const char*,const char* );
};
  ST::ST(int number,int time,const char* s1,const char* s2)
  {
    strcpy(this->put_naz,s1);
    strcpy(this->put_otp,s2);
  }
 
int main()
{
  ST *st[10];
  int number;
  char put_naz[20];
  char put_otp[20];
  int time;
  int size=0;
  cin >>size;  
    for(int i=0;i<size;i++)
    {
        cin >>number;  
        cin >>time;
        cin >>put_naz;
        cin >>put_otp;
        st[i]=new ST(number,time,put_naz,put_otp);
    
    }
    system("pause");
    return 0;
}
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.11.2011, 19:09 #3
Цитата Сообщение от Van111 Посмотреть сообщение
C++
1
2
3
4
5
ST::ST(int number,int time,const char* s1,const char* s2)
 {
 strcpy(this->put_naz,s1);
 strcpy(this->put_otp,s2);
 }
Цитата Сообщение от Van111 Посмотреть сообщение
C++
1
2
3
4
int number;
 char put_naz[20];
 char put_otp[20];
 int time;
Van111, time и number кто будет инициализировать?
Star_BAby
0 / 0 / 0
Регистрация: 04.04.2011
Сообщений: 12
13.11.2011, 19:25  [ТС] #4
вы не могли бы упростить?
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
13.11.2011, 19:36 #5
Цитата Сообщение от Jupiter Посмотреть сообщение
Van111, time и number кто будет инициализировать?
оператор cin

Добавлено через 1 минуту
Цитата Сообщение от Star_BAby Посмотреть сообщение
вы не могли бы упростить?
не для меня код идеален(знаю что можно найти кучу других путей но для меня он лучший)
Star_BAby, напишите какие ошибки вы получили в результате компиляции
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.11.2011, 19:37 #6
Цитата Сообщение от Van111 Посмотреть сообщение
оператор cin
уверен? еще раз внимательно посмотри на свой конструктор

Не по теме:

cin не оператор, а объект

Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
13.11.2011, 20:01 #7
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
#include <iostream>
#include "stdlib.h"
#include "windows.h"
#include <string>
using namespace std;
struct ST
{
  int number;
  char put_naz[20];
  char put_otp[20];
  int time;
  ST(int number ,int time,const char*,const char* );
};
  ST::ST(int number,int time,const char* s1,const char* s2)//время и номер записываются сразу  а станции записываются
  {
    strcpy(this->put_naz,s1);
    strcpy(this->put_otp,s2);
  }
 
int main()
{
  int number;
  char put_naz[20];
  char put_otp[20];
  int time;
  int size=0;
  cin >>size;  //размер масива
  ST *st[size];
     for(int i=0;i<size;i++)
    {
        cin >>number;  
        cin >>time;
        cin >>put_naz;
        cin >>put_otp;//забиваем значения , прога будет всегда вылетать когда вместо цифры будете ставить букву
        st[i]=new ST(number,time,put_naz,put_otp);//записываем
    
    }
    system("pause");
    return 0;
}
Добавлено через 16 минут
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
#include <iostream>
#include "stdlib.h"
#include "windows.h"
#include <string>
using namespace std;
struct ST
{
  int number;
  char put_naz[20];
  char put_otp[20];
  int time;
  ST(int ,int ,const char*,const char* );
};
  ST::ST(int number,int time,const char* s1,const char* s2)//âðåìÿ ГЁ Г*îìåð Г§Г*ïèñûâГ*ГѕГІГ±Гї Г±Г°Г*çó  Г* Г±ГІГ*Г*öèè Г§Г*ïèñûâГ*ГѕГІГ±Гї
  {
    this->number=number;
    this->time=time;
    strcpy(this->put_naz,s1);
    strcpy(this->put_otp,s2);
  }
 
int main()
{
  int number;
  char put_naz[20];
  char put_otp[20];
  int time;
  int size=0;
  cin >>size;  //Г°Г*çìåð Г¬Г*Г±ГЁГўГ*
  ST *st[size];
     for(int i=0;i<size;i++)
    {
        cin >>number;  
        cin >>time;
        cin >>put_naz;
        cin >>put_otp;//Г§Г*ГЎГЁГўГ*ГҐГ¬ Г§Г*Г*Г·ГҐГ*ГЁГї , ïðîãГ* áóäåò ГўГ±ГҐГЈГ¤Г* âûëåòГ*ГІГј êîãäГ* âìåñòî öèôðû áóäåòå Г±ГІГ*ГўГЁГІГј ГЎГіГЄГўГі
        st[i]=new ST(number,time,put_naz,put_otp);//Г§Г*ïèñûâГ*ГҐГ¬
        
   
        
       
    }
    system("pause");
    return 0;
}
Добавлено через 4 минуты
Jupiter, а можно сделать так чтоб номер и время сразу загружались то есть обойтись без this->number=number;

Добавлено через 16 секунд
Jupiter, а можно сделать так чтоб номер и время сразу загружались то есть обойтись без this->number=number;
Star_BAby
0 / 0 / 0
Регистрация: 04.04.2011
Сообщений: 12
13.11.2011, 20:03  [ТС] #8
Van111, а можете чтобы результаты через пробел выводились ?
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.11.2011, 20:04 #9
Van111,
C++
1
2
3
4
5
ST::ST(int number_, int time_, const char* s1, const char* s2) : number(number_), time(time_)
{
    strcpy(this->put_naz,s1);
    strcpy(this->put_otp,s2);
}
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
13.11.2011, 20:11 #10
вот окончательный хороший код
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
#include <iostream>
#include <string>
using namespace std;
struct ST
{
  int number;
  char put_naz[20];
  char put_otp[20];
  int time;
  ST(int ,int ,const char*,const char* );
 
};
  ST::ST(int number_,int time_,const char* s1,const char* s2) : number(number_),time(time_)//прога всегда будет вылетать когда вместо цифры будет буква
  {
       strcpy(this->put_naz,s1);
    strcpy(this->put_otp,s2);
  }
 
int main()
{
  int number;
  char put_naz[20];
  char put_otp[20];
  int time;
  int size=0;
  cin >>size;  //Г°Г*çìåð Г¬Г*Г±ГЁГўГ*
  ST *st[size];
     for(int i=0;i<size;i++)
    {
        cin >>number;  
        cin >>time;
        cin >>put_naz;
        cin >>put_otp;//Г§Г*ГЎГЁГўГ*ГҐГ¬ Г§Г*Г*Г·ГҐГ*ГЁГї , ïðîãГ* áóäåò ГўГ±ГҐГЈГ¤Г* âûëåòГ*ГІГј êîãäГ* âìåñòî öèôðû áóäåòå Г±ГІГ*ГўГЁГІГј ГЎГіГЄГўГі
        st[i]=new ST(number,time,put_naz,put_otp);//Г§Г*ïèñûâГ*ГҐГ¬
        cout  <<st[i]->number <<" ";  
        cout <<st[i]->time <<" ";
        cout <<st[i]->put_naz <<" ";
        cout <<st[i]->put_otp <<" " <<endl;
        
       
    }
    system("pause");
    return 0;
}
alkagolik
Заблокирован
13.11.2011, 20:13 #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
#include <stdio.h>
#include <stdlib.h>
 
typedef struct time__
{
    char hh;
    char mm;
};
 
typedef struct train
{
    char wpa[24]; //шифр поезда
    char start[24];
    char stop[24];
    struct time__ train_time;
};
 
int main()
{
    struct train *list;
    list = malloc(10 * sizeof(struct train));
    if ( !list )
        exit ( -1 );
    ///заполнение первого элемента
    scanf
    (
        "%s%s%s%d%d",
        &list[0].wpa,
        &list[0].start,
        &list[0].stop,
        &list[0].train_time.hh,
        &list[0].train_time.mm
    );
    
    ///вывод первого элемента
    printf
    (
        "%s\n%s\n%s\n%d\n%d\n",
        list[0].wpa,
        list[0].start,
        list[0].stop,
        list[0].train_time.hh,
        list[0].train_time.mm
    );
 
    free(list);
    return 0;
}
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.11.2011, 20:17 #12
alkagolik, компилится?
воть
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
#include <stdio.h>
#include <stdlib.h>
 
typedef struct //сначала объявляем анонимную структуру
{
    char hh;
    char mm;
} time__; //а потом задаем псевдоним
 
typedef struct 
{
    char wpa[24]; //шифр поезда
    char start[24];
    char stop[24];
    time__ train_time;
} train;
 
int main(void)
{
    train *list;
    list = (train*)malloc(10 * sizeof(train));  
    if ( !list )
        exit ( -1 );
    ///заполнение первого элемента
    scanf
    (
        "%s%s%s%d%d",
        &list[0].wpa,
        &list[0].start,
        &list[0].stop,
        &list[0].train_time.hh,
        &list[0].train_time.mm
    );
    
    ///вывод первого элемента
    printf
    (
        "%s\n%s\n%s\n%d\n%d\n",
        list[0].wpa,
        list[0].start,
        list[0].stop,
        list[0].train_time.hh,
        list[0].train_time.mm
    );
 
    free(list);
    return 0;
}
Star_BAby
0 / 0 / 0
Регистрация: 04.04.2011
Сообщений: 12
13.11.2011, 20:19  [ТС] #13
alkagolik, не запускается в строке
list = malloc(10 * sizeof(struct train)); ошибка((

Добавлено через 2 минуты
Jupiter, что это вообще? черный экран и цифры ввожу и потом закрывается(
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
13.11.2011, 20:21 #14
Цитата Сообщение от Star_BAby Посмотреть сообщение
Jupiter, что это вообще? черный экран и цифры ввожу и потом закрывается(
это исправленый вариант alkagolik
Van111
кодер с++
208 / 187 / 4
Регистрация: 03.08.2011
Сообщений: 2,597
Записей в блоге: 12
13.11.2011, 20:29 #15
вот код где шифр содержит буквы
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
    
#include <iostream>
#include <string>
using namespace std;
struct ST
{
  char number[20];//ГёГЁГґГ°
  char put_naz[20];
  char put_otp[20];
  int time;
  ST(const char* ,int ,const char*,const char* );
 
};
  ST::ST(const char* number,int time_,const char* s1,const char* s2) : time(time_)//i"?i^a~a` a^n~a*a~a"a` a'o'a"a*o` a^u^e"a*o`a`o`u" e^i^a~a"a` a^i`a*n~o`i^ o"e`o^?u^ a'o'a"a*o` a'o'e^a^a`
  {
    strcpy(this->put_naz,s1);
    strcpy(this->put_otp,s2);
    strcpy(this->number,number);
  
}
 
int main()
{
  char number[20];
  char put_naz[20];
  char put_otp[20];
  int time;
  int size=0;
  cin >>size;  //?a`c,i`a*? i`a`n~e`a^a`
  ST *st[size];
     for(int i=0;i<size;i++)
    {
        cin >>number;  
        cin >>time;
        cin >>put_naz;
        cin >>put_otp;//c,a`a'e`a^a`a*i` c,i'a`?a*i'e`y" , i"?i^a~a` a'o'a"a*o` a^n~a*a~a"a` a^u^e"a*o`a`o`u" e^i^a~a"a` a^i`a*n~o`i^ o"e`o^?u^ a'o'a"a*o`a* n~o`a`a^e`o`u" a'o'e^a^o'
        st[i]=new ST(number,time,put_naz,put_otp);//c,a`i"e`n~u^a^a`a*i`
        cout  <<st[i]->number <<" ";  
        cout <<st[i]->time <<" ";
        cout <<st[i]->put_naz <<" ";
        cout <<st[i]->put_otp <<" " <<endl;
        
       
    }
    system("pause");
    return 0;
}
Jupiter, у кого код быстрее работает у меня или у alkagolik,
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2011, 20:29
Привет! Вот еще темы с ответами:

Динамический массив структур - C++
Нужно сделать динамический массив структур. Задание составить перечень стран и количество автомобилей выпущенных этими странами. ...

Динамический массив структур - C++
Создаю структуру, выделяю память под указатель на массив таких структур, размер задается при вводе. #include &lt;iostream&gt; #include...

Динамический массив структур С++ - C++
Мне нужно сделать добавление экземпляра структуры в массив. Для этого нужно расширить динамический массив, я нашел для этого метод...

Динамический массив структур - C++
Прога почти готова интересует как сделать вот это добавление и удаление элемента из списка?


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
13.11.2011, 20:29
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru