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

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

Восстановить пароль Регистрация
 
haseki
 Аватар для haseki
2 / 2 / 1
Регистрация: 02.11.2013
Сообщений: 151
27.02.2014, 12:23     Динамическая сруктура #1
Как сделать из этой статической динамическую структуру?
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
// Structure static.cpp: определяет точку входа для консольного приложения.
//
 
#include <cstdlib>
#include <iostream>
#include <cstring>
#define N 15
struct NOTE
{
       char name[N];
       char surname [N];
       char phone [N];
       int birth_day, birth_month, birth_year;
             
};
 
using namespace std;
 
int main()
{
    setlocale (0, "Russian");
    int n;
    char surname1[N];
    struct NOTE a[N];
    cout << "Введите число человек: ";
    cin >> n;
    if ((n<=0)||(n>N))
    { 
       cout << "Ошибка! Не удалось выделить память.\n";
                              
    }
    //input(a, n);
    for (int i=0; i<n; i++)
     {
        cout << "Введите имя: ";     
        cin >> a[i].name;
 
        cout << "Введите фамилию: ";     
        cin >> a[i].surname;
     
        cout << "Введите номер телефона: ";     
        cin >> a[i].phone;
     
        cout << "Введите дату рождения (в формате ДД ММ ГГ): ";     
        cin >> a[i].birth_day >> a[i].birth_month >> a[i].birth_year; 
        cout << "\n";
        cout << "___________________\n";
        cout << "\n";
     }
     
    cout << "\n";
    cout << "-------------------\n";
    //sort(a, n);
    NOTE buf; //Переменная типа структура (пустая строка таблицы).
 
       for (int i=0; i<n; i++) //Количество проходов по структуре.
       { 
           for (int j=0; j<n; j++)//Перестановка.
           {
             if (a[j].phone[0] > a[j+1].phone[0])
                  {
                                buf = a[j];
                                a[j] = a[j+1];
                                a[j+1] = buf;
                  }
             if(a[j].phone[0] == a[j+1].phone[0])
                {
                                  if(a[j].phone[1] > a[j+1].phone[1])
                     {
                                buf = a[j];
                                a[j] = a[j+1];
                                a[j+1] = buf;
                     }
                }
                 if(a[j].phone[1] == a[j+1].phone[1])
                    {
                                      if(a[j].phone[2] > a[j+1].phone[2])
                        
               {
                                buf = a[j];
                                a[j] = a[j+1];
                                a[j+1] = buf;
               }
                     }
           }
       }
    for (int i=0; i<n; i++)
     {
        cout << "Имя: " << a[i].name << "\n"; 
        cout << "Фамилия: " << a[i].surname << "\n";
        cout << "Номер телефона: " << a[i].phone << "\n";
        cout << "Дата рождения: " << a[i].birth_day << "/" << a[i].birth_month << "/" << a[i].birth_year << "\n";
 
          
     }
    cout << "\n";
    cout << "-------------------\n";
    cout << "Введите фамилию: \n";
    cin >> surname1;
    cout << "\n";
    cout << "-------------------\n";
    bool flag = false;
    for (int i=0; i<n; i++)
       {
           if (strstr(a[i].surname, surname1))
           { 
                 flag = true;
                 cout << "Имя: " << a[i].name << "\n";
                 cout << "Номер телефона: " << a[i].phone << "\n";
                 cout << "Дата рождения: " << a[i].birth_day << "/" << a[i].birth_month << "/" << a[i].birth_year;
           }
           
 
       }
    if (flag == false)
 
    {
       cout << "Людей с такой фамилией не обнаружено.\n";
    }
    cout << "\n";
    system("pause");
    return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 12:23     Динамическая сруктура
Посмотрите здесь:

Динамическая память C++
C++ Динамическая память.
Динамическая память C++
C++ Динамическая библиотека
C++ Динамическая библиотека
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,061
27.02.2014, 12:31     Динамическая сруктура #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от haseki Посмотреть сообщение
struct NOTE a[N];
в плюсах не обязательно писать struct
достаточно просто
C++
1
NOTE a[N];
Цитата Сообщение от haseki Посмотреть сообщение
Как сделать из этой статической динамическую структуру?
в смысле выделить память?
C++
1
NOTE* a=new NOTE[n];
когда будет не нужна обязательно, очистить память
C++
1
delete[]  a;
haseki
 Аватар для haseki
2 / 2 / 1
Регистрация: 02.11.2013
Сообщений: 151
27.02.2014, 14:41  [ТС]     Динамическая сруктура #3
ValeryS, большое спасибо)
Tulosba
27.02.2014, 15:31
  #4

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
в плюсах не обязательно писать struct
в сях тоже не обязательно, если предварительно сделать typedef

ValeryS
27.02.2014, 15:37     Динамическая сруктура
  #5

Не по теме:

Цитата Сообщение от Tulosba Посмотреть сообщение
в сях тоже не обязательно, если предварительно сделать typedef
нук не спорю

Yandex
Объявления
27.02.2014, 15:37     Динамическая сруктура
Ответ Создать тему
Опции темы

Текущее время: 00:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru