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

нужно реализовать программу, через функцию - C++

Восстановить пароль Регистрация
 
nikys000
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 31
27.04.2014, 16:59     нужно реализовать программу, через функцию #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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#include <iostream>
#include <string.h>
 
using namespace std;
 
struct Data //сама структура
{
    char surname[20];
    char name[20];
    char year[20];
    char group[20];
    char number[20];
    char card[20];
    char address[20];
};
 
 
int main()
{
    setlocale(LC_ALL, "rus");//что бы компилятор понимал рус язык внутри проги!!
 
    Data *mas = new Data[1];//объект структуры
 
    int var = 1; //переменная для продолжения или выхода
    int size = 1; //размер массива структур
 
    while (var)
    {
        if(size == 1)
        {
        cout << "Фамилия: ";
        cin >> mas[size-1].surname;
 
        cout << "Имя: ";
        cin >> mas[size-1].name;
 
        cout << "Год рождения: ";
        cin >> mas[size-1].year;
 
        cout << "Группа крови: ";
        cin >> mas[size-1].group;
 
        cout << "Номер телефона: ";
        cin >> mas[size-1].number;
 
        cout << "Номер мед.карты: ";
        cin >> mas[size-1].card;
 
        cout << "Адрес: ";
        cin >> mas[size-1].address;
        cout << "\n";
        cout << "________________________________________________________________________________";
        cout << "\n";
        cout << "\n";
 
        cout << "ИМЕЮЩИЕСЯ ДАННЫЕ:  "<< "\n";
        cout << "Фамилия:  " << mas[size-1].surname << ";\n";
        cout << "Имя:  " << mas[size-1].name << ";\n";
        cout << "Год рождения:  " <<  mas[size-1].year << ";\n";
        cout << "Группа крови:  " << mas[size-1].group << ";\n";
        cout << "Номер телефона:  " << mas[size-1].number << ";\n";
        cout << "Номер медкарты:  " << mas[size-1].card << ";\n";
        cout << "Адрес:  " << mas[size-1].address << ";\n";
        cout << "\n";
 
       //cout << "ИМЕЮЩИЕСЯ ДАННЫЕ::  " << mas[i].surname << "  " <<  mas[i].name <<" "<< mas[i].year << " "<< mas[i].group << " "<< mas[i].number <<" "<< mas[i].card << " "<< mas[i].address <<";\n";
        }
        else//size > 1
        {
            Data *copy = new Data [size-1];//создаем новую структуру для копирования в нее данных
 
            for(int i = 0; i < size-1; i++)//копируем данные перед очисткой памяти mas
            {
                strcpy(copy[i].surname, mas[i].surname);
                strcpy(copy[i].name, mas[i].name);
                strcpy(copy[i].year, mas[i].year);
                strcpy(copy[i].group, mas[i].group);
                strcpy(copy[i].number, mas[i].number);
                strcpy(copy[i].card, mas[i].card);
                strcpy(copy[i].address, mas[i].address);
            }
 
            delete [] mas; //освобождаем  память
 
            mas = new Data[size]; //выделяем новую память
 
            for (int i = 0; i < size-1; i++) // обратное копирование в mas
            {
                strcpy(mas[i].surname, copy[i].surname);
                strcpy(mas[i].name, copy[i].name);
                strcpy(mas[i].year, copy[i].year);
                strcpy(mas[i].group, copy[i].group);
                strcpy(mas[i].number, copy[i].number);
                strcpy(mas[i].card, copy[i].card);
                strcpy(mas[i].address, copy[i].address);
            }
 
            delete [] copy; //освобождаем память
 
        cout << "Фамилия: ";
        cin >> mas[size-1].surname;
 
        cout << "Имя: ";
        cin >> mas[size-1].name;
 
        cout << "Год рождения: ";
        cin >> mas[size-1].year;
 
        cout << "Группа крови: ";
        cin >> mas[size-1].group;
 
        cout << "Номер телефона: ";
        cin >> mas[size-1].number;
 
        cout << "Номер мед.карты: ";
        cin >> mas[size-1].card;
 
        cout << "Адрес: ";
        cin >> mas[size-1].address;
        cout << "\n";
        cout << "________________________________________________________________________________";
        cout << "\n";
 
            for (int i = 0; i < size; i++)//выводим все данные на экран
            {
                cout << i+1 << "-е ИМЕЮЩИЕСЯ ДАННЫЕ:  "<< "\n";
                cout << "Фамилия:  " << mas[i].surname << ";\n";
                cout << "Имя:  " << mas[i].name << ";\n";
                cout << "Год рождения:  " <<  mas[i].year << ";\n";
                cout << "Группа крови:  " << mas[i].group << ";\n";
                cout << "Номер телефона:  " << mas[i].number << ";\n";
                cout << "Номер медкарты:  " << mas[i].card << ";\n";
                cout << "Адрес:  " << mas[i].address << ";\n";
                cout << "\n";
             
            }
        }
 
        size++;//счетчик
 
        cout << "\nВнести еще данные - 1, выход - 0: ";
        cin >> var;
    }
 
    delete [] mas;//освобождение памяти
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2014, 16:59     нужно реализовать программу, через функцию
Посмотрите здесь:

C++ как записать эту программу через функцию main и ее прототип?
C++ как написать данную программу через функцию?
C++ Задача через функцию (составить программу, которая по данному числу (1-12) выводит название соответствующего ему месяца)
Реализовать данный код через функцию C++
Степень вывести через указатель,a десятичный логарифм через функцию рекуренционную C++
Нахождение основных значений оформить через функцию RESHENIE(), ввод данных и вывод на печать через функцию MAIN() C++
Нужно сделать задание по c++! Через 3 часа нужно сдать! C++
Быстрее ли вывов функции, переданной через параметр шаблона, чем через простой указатель на функцию? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
TheAlpha
6 / 6 / 2
Регистрация: 03.01.2013
Сообщений: 114
27.04.2014, 18:01     нужно реализовать программу, через функцию #2
Что именно не получается ?
nikys000
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 31
28.04.2014, 17:07  [ТС]     нужно реализовать программу, через функцию #3
ну вот я попытался сделать функцию, компилируется вроде нормально, но когда добавляешь структуру, вместо первой фамилии выводятся символы.. не понимаю почему так.. потому что все остальные значения выводятся нормально..

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
#include <iostream>
#include <string.h>
 
using namespace std;
 
struct Data 
{
    char surname[20];
    char name[20];
    char year[20];
    char group[20];
    char number[20];
    char card[20];
    char address[20];
};
 
Data func(Data *mas, Data *cop, int size)
{
 
            for(int i = 0; i < size-1; i++)
            {
                strcpy(cop[i].surname, mas[i].surname);
                strcpy(cop[i].name, mas[i].name);
                strcpy(cop[i].year, mas[i].year);
                strcpy(cop[i].group, mas[i].group);
                strcpy(cop[i].number, mas[i].number);
                strcpy(cop[i].card, mas[i].card);
                strcpy(cop[i].address, mas[i].address);
            }
 
            delete [] mas; 
 
            mas = new Data[size]; 
 
            for (int i = 0; i < size-1; i++) 
            {
                strcpy(mas[i].surname, cop[i].surname);
                strcpy(mas[i].name, cop[i].name);
                strcpy(mas[i].year, cop[i].year);
                strcpy(mas[i].group, cop[i].group);
                strcpy(mas[i].number, cop[i].number);
                strcpy(mas[i].card, cop[i].card);
                strcpy(mas[i].address, cop[i].address);
            }
 
            delete [] cop; 
 
}
 
 
main()
{
    setlocale(LC_ALL, "rus");
 
    Data *p = new Data[1];
 
    int var = 1; 
    int size = 1;
 
    while (var)
    {
        if(size == 1)
        {
        cout << "Фамилия: ";
        cin >> p[size-1].surname;
 
        cout << "Имя: ";
        cin >> p[size-1].name;
 
        cout << "Год рождения: ";
        cin >> p[size-1].year;
 
        cout << "Группа крови: ";
        cin >> p[size-1].group;
 
        cout << "Номер телефона: ";
        cin >> p[size-1].number;
 
        cout << "Номер мед.карты: ";
        cin >> p[size-1].card;
 
        cout << "Адрес: ";
        cin >> p[size-1].address;
        cout << "\n";
        cout << "_____________________________________________";
        cout << "\n";
 
        cout << "ИМЕЮЩИЕСЯ ДАННЫЕ:  "<< "\n";
        cout << "Фамилия:  " << p[size-1].surname << ";\n";
        cout << "Имя:  " << p[size-1].name << ";\n";
        cout << "Год рождения:  " <<  p[size-1].year << ";\n";
        cout << "Группа крови:  " << p[size-1].group << ";\n";
        cout << "Номер телефона:  " << p[size-1].number << ";\n";
        cout << "Номер медкарты:  " << p[size-1].card << ";\n";
        cout << "Адрес:  " << p[size-1].address << ";\n";
        cout << "\n";
 
        }
        else//size > 1
        {
        Data *copy = new Data [size-1];
        func(p,copy,size);
        cout << "Фамилия: ";
        cin >> p[size-1].surname;
 
        cout << "Имя: ";
        cin >> p[size-1].name;
 
        cout << "Год рождения: ";
        cin >> p[size-1].year;
 
        cout << "Группа крови: ";
        cin >> p[size-1].group;
 
        cout << "Номер телефона: ";
        cin >> p[size-1].number;
 
        cout << "Номер мед.карты: ";
        cin >> p[size-1].card;
 
        cout << "Адрес: ";
        cin >> p[size-1].address;
        cout << "\n";
        cout << "_____________________________________________";
        cout << "\n";
 
            for (int i = 0; i < size; i++)
            {
                cout << i+1 << "-е ИМЕЮЩИЕСЯ ДАННЫЕ:  "<< "\n";
                cout << "Фамилия:  " << p[i].surname << ";\n";
                cout << "Имя:  " << p[i].name << ";\n";
                cout << "Год рождения:  " <<  p[i].year << ";\n";
                cout << "Группа крови:  " << p[i].group << ";\n";
                cout << "Номер телефона:  " << p[i].number << ";\n";
                cout << "Номер медкарты:  " << p[i].card << ";\n";
                cout << "Адрес:  " << p[i].address << ";\n";
                cout << "\n";
              
            }
        }
 
        size++;
 
        cout << "\nВнести еще данные - 1, выход - 0: ";
        cin >> var;
        while(var != 0 && var != 1)
        {
            cout << "Ошибка ввода!\n";
                cout << "\nВнести еще данные - 1, выход - 0: ";
                cin >> var;
        }
    }
 
    delete [] p;
return 0;
}
Добавлено через 22 часа 55 минут
вопрос решен
Yandex
Объявления
28.04.2014, 17:07     нужно реализовать программу, через функцию
Ответ Создать тему
Опции темы

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