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

Как оформить операцию создания (формирования) массива структур из 5 полей (фамилия, имя, улица, дом, квартира) в виде функции? - C++

Восстановить пароль Регистрация
 
Ilo
 Аватар для Ilo
3 / 3 / 0
Регистрация: 18.12.2013
Сообщений: 29
12.01.2014, 20:52     Как оформить операцию создания (формирования) массива структур из 5 полей (фамилия, имя, улица, дом, квартира) в виде функции? #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
//control2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
 #include <iostream>
 #include <fstream>
 #include <Windows.h>
 #include <string.h>
 
 using namespace std;
 const int NotUsed = system( "color F0" );
 
 struct student
 {
 char lastname[30];
 char firstname[30];
 char street[30];
 int house;
 int apartment;
 }mas;
 
 int _tmain(int argc, _TCHAR* argv[])
 {
 cout <<endl<<"Make"<<endl;
 int i;
 struct student mas[10];
 strcpy_s(mas[0].lastname, "Anisimov");
 strcpy_s(mas[0].firstname, "Anton");
 strcpy_s(mas[0].street, "Budanuva"); 
 mas[0].house=10;
 mas[0].apartment=3;
 strcpy_s(mas[1].lastname, "Bunin");
 strcpy_s(mas[1].firstname, "Pavel");
 strcpy_s(mas[1].street, "Oboronu"); 
 mas[1].house=20;
 mas[1].apartment=5;
 strcpy_s(mas[2].lastname, "Cuprin");
 strcpy_s(mas[2].firstname, "Vasiliy");
 strcpy_s(mas[2].street, "Lesnaay"); 
 mas[2].house=15;
 mas[2].apartment=8;
 strcpy_s(mas[3].lastname, "Dostoevskiy");
 strcpy_s(mas[3].firstname, "Igor");
 strcpy_s(mas[3].street, "Globova"); 
 mas[3].house=1;
 mas[3].apartment=15;
 strcpy_s(mas[4].lastname, "Esenin");
 strcpy_s(mas[4].firstname, "Evgeniy");
 strcpy_s(mas[4].street, "Respublikanskay"); 
 mas[4].house=56;
 mas[4].apartment=5;
 strcpy_s(mas[5].lastname, "Bach");
 strcpy_s(mas[5].firstname, "Anton");
 strcpy_s(mas[5].street, "Chmelnaay"); 
 mas[5].house=11;
 mas[5].apartment=88;
 strcpy_s(mas[6].lastname, "Pushkin");
 strcpy_s(mas[6].firstname, "Aleksandr");
 strcpy_s(mas[6].street, "Rechnaay"); 
 mas[6].house=132;
 mas[6].apartment=33;
 strcpy_s(mas[7].lastname, "Nosov");
 strcpy_s(mas[7].firstname, "Nikolay");
 strcpy_s(mas[7].street, "Treugolnaay"); 
 mas[7].house=16;
 mas[7].apartment=81;
 strcpy_s(mas[8].lastname, "Ostrovskiy");
 strcpy_s(mas[8].firstname, "Igor");
 strcpy_s(mas[8].street, "Komarskaay"); 
 mas[8].house=19;
 mas[8].apartment=8;
 strcpy_s(mas[9].lastname, "Asprin");
 strcpy_s(mas[9].firstname, "Robert");
 strcpy_s(mas[9].street, "Snezhnaay"); 
 mas[9].house=6;
 mas[9].apartment=24;
 for (i=0;i<10;i++)
 cout<<""<<mas[i].lastname<<" "<<mas[i].firstname<<" st. "<<mas[i].street<<" "<<mas[i].house<<", ap."<<mas[i].apartment<<endl; 
 system("pause");
 return 0;
 }

В первой контрольной работе (приводится ниже) операции с массивом (создание массива случайных чисел, вывод на экран, поиск максимума и минимума, сортировка, поиск заданного числа) в виде функций я оформил.
Мне нужен пример оформления операции по созданию массива структур в виде функции для второй контрольной работы.

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
//control.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <Windows.h>
#include <string.h>
#include <ctime> 
using namespace std;
const int NotUsed = system( "color F0" );
 
int make(int *mas);
int print(int *mas);
int minmax(int *mas);
int sort(int *mas);
int find(int *mas);
 
int _tmain(int argc, _TCHAR* argv[])
{
int option = 0;
while(option != -1) {
cout<<endl<<"1 - Make 2 - Print 3 - MinMax 4 - Sort 5 - Find 0 - Exit"<<endl;
cout<<"Input Num ";
cin >> option;
switch(option) {
    case 1:
int mas[100];
make(mas);
break;
    case 2:
print(mas);
break;
    case 3:
minmax(mas);
break;
    case 4:
sort(mas);
break;
    case 5:
find(mas);
break;
    case 0: return 0;
default:
cout <<endl<<"Error"<<endl;
                }
                   }
system("pause");
return 0;
}
int make(int *mas)
{
    cout <<endl<<"Make array"<<endl;
    srand((unsigned)time(0));
    for(int i=0; i<100; i++)
    { 
             mas[i] = (10+rand()%11); 
             cout<< "M[" << i << "]="<<mas[i]<<endl;
    }
    return *mas;
}
 
int print (int *mas)
{
    cout <<endl<<"Array"<<endl;
    for(int i=0; i<100; i++)
    { 
             cout<< "M[" << i << "]="<<mas[i]<<" ";
             if(i>0 && i%9 == 0 )  cout <<endl;
    }
    return *mas;
}
 
int minmax(int *mas)
{
    cout <<"MinMax"<<endl;
    int min, imin, max, imax;
    min=max=mas[0];
    imin=imax=0;
    for (int i=1; i<100; i++)
             if (mas[i]<min)
    { 
             min=mas[i];
             imin=i;
    }
    else
             if (mas[i]>max)
    { 
    max=mas[i];
    imax=i;
    }
    cout << "Max = "<< "M[" << imax << "]= "<< max << endl;
    cout << "Min = "<< "M[" << imin << "]= "<< min << endl;
    return *mas;
}
 
int sort(int *mas)
{
    cout <<endl<<"Sort"<<endl;
    for(int i=0; i<100; ++i)
    for(int j=i+1; j<100; ++j)
             if(mas[j]<mas[i])swap(mas[i],mas[j]);
    for(int i=0; i<100; ++i)
    cout<<""<<mas[i]<<endl;
    return *mas;
}
 
int find(int *mas)
{
    cout <<endl<<"Find"<<endl;
    int k, ok=0, nom, i;
    cout <<"Input value M: ";
    cin >> k;
    for(i = 0; i < 100; i++)
    if(mas[i] == k) {ok=1;nom=i;break;}
             if(ok==1)
    cout <<"Element M["<<nom<<"]="<<k<<endl;
             else 
    cout <<"There is no such element."<<endl;
    return *mas;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.01.2014, 20:52     Как оформить операцию создания (формирования) массива структур из 5 полей (фамилия, имя, улица, дом, квартира) в виде функции?
Посмотрите здесь:

C++ Преобразовать строку, записав адрес прававильно: <область>, <нас. пункт>, <улица>, <дом / квартира>, <индекс>
C++ Оформить в виде функции
C++ Дана строка: Ваши фамилия, имя и отчество записаны через один пробел. Записать одну фамилию в виде И...в.
C++ Как оформить приведенный код в виде функции
C++ Оформить в виде функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
13.01.2014, 10:04     Как оформить операцию создания (формирования) массива структур из 5 полей (фамилия, имя, улица, дом, квартира) в виде функции? #2
Как оформить операцию создания (формирования) массива структур из 5 полей (фамилия, имя, улица, дом, квартира) в виде функции?
Как то так
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
struct student
 {
 char lastname[30];
 char firstname[30];
 char street[30];
 int house;
 int apartment;
 }
 
void input(student & st)
{
    std::cin >> st.lastname;
    std::cin >> st.firstname;
    std::cin >> st.street;
    std::cin >> st.house;
    std::cin >> st.apartment;
}
 
int main()
{ 
   const unsigned SIZE = 5;
   student st[SIZE];
   for(unsigned i = 0; i < SIZE; ++i)
       input(st[i]);
   return 0
}
Ilo
 Аватар для Ilo
3 / 3 / 0
Регистрация: 18.12.2013
Сообщений: 29
13.01.2014, 13:52  [ТС]     Как оформить операцию создания (формирования) массива структур из 5 полей (фамилия, имя, улица, дом, квартира) в виде функции? #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
//control2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
 #include <iostream>
 #include <fstream>
 #include <Windows.h>
 #include <string.h>
 
 using namespace std;
 const int NotUsed = system( "color F0" );
 
 struct student
 {
 char lastname[30];
 char firstname[30];
 char street[30];
 int house;
 int apartment;
 }mas;
 
 int _tmain(int argc, _TCHAR* argv[])
 {
 cout <<endl<<"Make"<<endl;
 int i;
 struct student mas[10];
 strcpy_s(mas[0].lastname, "Anisimov");
 strcpy_s(mas[0].firstname, "Anton");
 strcpy_s(mas[0].street, "Budanuva"); 
 mas[0].house=10;
 mas[0].apartment=3;
 strcpy_s(mas[1].lastname, "Bunin");
 strcpy_s(mas[1].firstname, "Pavel");
 strcpy_s(mas[1].street, "Oboronu"); 
 mas[1].house=20;
 mas[1].apartment=5;
 strcpy_s(mas[2].lastname, "Cuprin");
 strcpy_s(mas[2].firstname, "Vasiliy");
 strcpy_s(mas[2].street, "Lesnaay"); 
 mas[2].house=15;
 mas[2].apartment=8;
 strcpy_s(mas[3].lastname, "Dostoevskiy");
 strcpy_s(mas[3].firstname, "Igor");
 strcpy_s(mas[3].street, "Globova"); 
 mas[3].house=1;
 mas[3].apartment=15;
 strcpy_s(mas[4].lastname, "Esenin");
 strcpy_s(mas[4].firstname, "Evgeniy");
 strcpy_s(mas[4].street, "Respublikanskay"); 
 mas[4].house=56;
 mas[4].apartment=5;
 strcpy_s(mas[5].lastname, "Bach");
 strcpy_s(mas[5].firstname, "Anton");
 strcpy_s(mas[5].street, "Chmelnaay"); 
 mas[5].house=11;
 mas[5].apartment=88;
 strcpy_s(mas[6].lastname, "Pushkin");
 strcpy_s(mas[6].firstname, "Aleksandr");
 strcpy_s(mas[6].street, "Rechnaay"); 
 mas[6].house=132;
 mas[6].apartment=33;
 strcpy_s(mas[7].lastname, "Nosov");
 strcpy_s(mas[7].firstname, "Nikolay");
 strcpy_s(mas[7].street, "Treugolnaay"); 
 mas[7].house=16;
 mas[7].apartment=81;
 strcpy_s(mas[8].lastname, "Ostrovskiy");
 strcpy_s(mas[8].firstname, "Igor");
 strcpy_s(mas[8].street, "Komarskaay"); 
 mas[8].house=19;
 mas[8].apartment=8;
 strcpy_s(mas[9].lastname, "Asprin");
 strcpy_s(mas[9].firstname, "Robert");
 strcpy_s(mas[9].street, "Snezhnaay"); 
 mas[9].house=6;
 mas[9].apartment=24;
 for (i=0;i<10;i++)
 cout<<""<<mas[i].lastname<<" "<<mas[i].firstname<<" st. "<<mas[i].street<<" "<<mas[i].house<<", ap."<<mas[i].apartment<<endl; 
 system("pause");
 return 0;
 }
egor2116
 Аватар для egor2116
337 / 368 / 42
Регистрация: 20.01.2013
Сообщений: 1,100
13.01.2014, 14:08     Как оформить операцию создания (формирования) массива структур из 5 полей (фамилия, имя, улица, дом, квартира) в виде функции? #4
Вы про циклы, что нибудь слышали ?
с уже введёнными значениями) записать в виде функции
Как то так
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
void input(student * mas, size_t SIZE)
{
 strcpy_s(mas[0].lastname, "Anisimov");
 strcpy_s(mas[0].firstname, "Anton");
 strcpy_s(mas[0].street, "Budanuva"); 
 mas[0].house=10;
 mas[0].apartment=3;
 strcpy_s(mas[1].lastname, "Bunin");
 strcpy_s(mas[1].firstname, "Pavel");
 strcpy_s(mas[1].street, "Oboronu"); 
 mas[1].house=20;
 mas[1].apartment=5;
 strcpy_s(mas[2].lastname, "Cuprin");
 strcpy_s(mas[2].firstname, "Vasiliy");
 strcpy_s(mas[2].street, "Lesnaay"); 
 mas[2].house=15;
 mas[2].apartment=8;
 strcpy_s(mas[3].lastname, "Dostoevskiy");
 strcpy_s(mas[3].firstname, "Igor");
 strcpy_s(mas[3].street, "Globova"); 
 mas[3].house=1;
 mas[3].apartment=15;
 strcpy_s(mas[4].lastname, "Esenin");
 strcpy_s(mas[4].firstname, "Evgeniy");
 strcpy_s(mas[4].street, "Respublikanskay"); 
 mas[4].house=56;
 mas[4].apartment=5;
 strcpy_s(mas[5].lastname, "Bach");
 strcpy_s(mas[5].firstname, "Anton");
 strcpy_s(mas[5].street, "Chmelnaay"); 
 mas[5].house=11;
 mas[5].apartment=88;
 strcpy_s(mas[6].lastname, "Pushkin");
 strcpy_s(mas[6].firstname, "Aleksandr");
 strcpy_s(mas[6].street, "Rechnaay"); 
 mas[6].house=132;
 mas[6].apartment=33;
 strcpy_s(mas[7].lastname, "Nosov");
 strcpy_s(mas[7].firstname, "Nikolay");
 strcpy_s(mas[7].street, "Treugolnaay"); 
 mas[7].house=16;
 mas[7].apartment=81;
 strcpy_s(mas[8].lastname, "Ostrovskiy");
 strcpy_s(mas[8].firstname, "Igor");
 strcpy_s(mas[8].street, "Komarskaay"); 
 mas[8].house=19;
 mas[8].apartment=8;
 strcpy_s(mas[9].lastname, "Asprin");
 strcpy_s(mas[9].firstname, "Robert");
 strcpy_s(mas[9].street, "Snezhnaay"); 
 mas[9].house=6;
 mas[9].apartment=24;
}
int _tmain(int argc, _TCHAR* argv[])
 {
 cout <<endl<<"Make"<<endl;
 int i;
 struct student mas[10];
 input(mas, 10);
 ///....
Ilo
 Аватар для Ilo
3 / 3 / 0
Регистрация: 18.12.2013
Сообщений: 29
13.01.2014, 23:48  [ТС]     Как оформить операцию создания (формирования) массива структур из 5 полей (фамилия, имя, улица, дом, квартира) в виде функции? #5
Я не волшебник, я только учусь. Спасибо за помощь.
Yandex
Объявления
13.01.2014, 23:48     Как оформить операцию создания (формирования) массива структур из 5 полей (фамилия, имя, улица, дом, квартира) в виде функции?
Ответ Создать тему
Опции темы

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