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

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

Войти
Регистрация
Восстановить пароль
 
nikys000
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 31
#1

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

27.04.2014, 16:59. Просмотров 265. Ответов 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
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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2014, 16:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос нужно реализовать программу, через функцию (C++):

Нужно реализовать функцию get_foo - C++
дан класс Foo: struct Foo { void say() const { std::cout &lt;&lt; &quot;Foo says: &quot; &lt;&lt; msg &lt;&lt; &quot;\n&quot;; } protected: Foo(const char...

Реализовать данный код через функцию - C++
Делаю лабу...Все время сидел на Паскаль, а тут вдруг нужно на с++...Медленно, но уверенно, с синтаксисом разбираюсь. Сделал часть лабы... ...

Написать программу, в которой реализовать функцию вычисления синуса - C++
В общем решаю задачи по книге в с++ В главе был разобран пример функции, для вычисления гиперболического синуса по формуле: sh(x) =...

Оформить программу через функцию - C++
нужна помощь! Вот задание! #include &lt;iostream&gt; #include&lt;cmath&gt; using namespace std; int main() { int x,k,i,r,d,d1,a,q; ...

Нахождение основных значений оформить через функцию RESHENIE(), ввод данных и вывод на печать через функцию MAIN() - C++
а помогите теперь эту задачку #include &lt;iostream&gt; int main() { int last = 0, next = 1; long sum = 1; for(;...

как написать данную программу через функцию? - C++
#include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; main() { int i,a=0; float k=0,M; ...

2
TheAlpha
6 / 6 / 2
Регистрация: 03.01.2013
Сообщений: 116
27.04.2014, 18:01 #2
Что именно не получается ?
0
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 минут
вопрос решен
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2014, 17:07
Привет! Вот еще темы с ответами:

как записать эту программу через функцию main и ее прототип? - C++
можите помоч! как записать эту программу через функцию main и ее прототип? в конце вызвать эту функцию! #include &lt;iostream.h&gt; int...

Как переделать эту программу, чтобы она выполнялась через функцию? - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main() { int Array; cout &lt;&lt; &quot;enter : &quot; &lt;&lt;...

Как переделать эту программу, чтобы она выполнялась через функцию? - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; int main(int argc, char* argv) { int *mas, n, sum;// dinamic...

Нужно написать функцию которая будет увеличевать каждый элеммент массива на 10% (Ввод массива через клаву) - C++
#include &lt;iostream&gt; #define n 7 using namespace std ; int funct(int q) { funct=q*10% ; } int main () { int a; ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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