Лабораторная №10
.docxОдеський національний політехнічний університет
Інститут комп’ютерних систем
Кафедра інформаційних систем
Варіант №1
Лабораторна робота №10
По дисципліні “Алгоритмізація і програмування”
Тема:“ Програмування з використанням структур”
Виконав:
Студент гр. АІ-171
Анищенко М.О.
Перевірили:
Шпиньковський О.А.
Одеса 2017
Мета роботи: Набуття практичних навичок у створенні програм обробки структур даних.
Завдання:
Дано масив записів. Кожен запис містить прізвище та адресу людини (місто,
вулиця, будинок, квартира).
Вивести прізвища людей, в адресах яких є вулиця, що задається (введена з
клавіатури), або повідомити про те, що таких людей немає.
Вивести адресу людини із заданим прізвищем.
БСА:
Код програми:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Human{
char lastname[20];
char town[20];
char street[20];
int building;
int apartment;
};
int main()
{
const int L;
printf("Enter number of peoples ");
scanf("%d", &L);
struct Human people[L];
for(int i = 0; i < L; i++)
{
printf("Enter last name ");
scanf("%s", people[i].lastname);
printf("Enter town ");
scanf("%s", people[i].town);
printf("Enter street ");
scanf("%s", people[i].street);
printf("Enter building ");
scanf("%d", &people[i].building);
printf("Enter apartment ");
scanf("%d", &people[i].apartment);
}
int search_results = 0;
char search_string[20];
printf("Enter street that you want to find ");
scanf("%s", search_string);
printf("Peoples, who living on this street:\n");
for(int i = 0; i < L; i++)
if(!strcmp(search_string, people[i].street))
{
printf("%s\n", people[i].lastname);
search_results++;
}
if(!search_results)
printf("Nobody living on this street\n");
search_results = 0;
printf("Enter last name of people, that you want to find ");
scanf("%s", search_string);
for(int i = 0; i < L; i++)
if(!strcmp(search_string, people[i].lastname))
{
printf("t.%s s.%s b.%d ap.%d\n", people[i].town, people[i].street, people[i].building, people[i].apartment);
search_results++;
}
if(!search_results)
printf("There is no people with same last name");
return 0;
}
Приклад виконання:
№ жителя |
1 |
2 |
3 |
4 |
Прізвище |
Orwell |
Turgenev |
Anischencko |
Someguy |
Місто |
London |
Orel |
Odessa |
Sometown |
Вулиця |
Baker |
Govorova |
Govorova |
Somestreet |
Будинок |
221 |
23 |
11 |
123 |
Квартира |
2 |
56 |
413 |
456 |
Enter number of peoples 4
Enter last name Orwell
Enter town London
Enter street Baker
Enter building 221
Enter apartment 2
Enter last name Turgenev
Enter town Orel
Enter street Govorova
Enter building 23
Enter apartment 56
Enter last name Anischencko
Enter town Odessa
Enter street Govorova
Enter building 11
Enter apartment 413
Enter last name Someguy
Enter town Sometown
Enter street Somestreet
Enter building 123
Enter apartment 456
Enter street that you want to find Govorova
Peoples, who living on this street:
Turgenev
Anischencko
Enter last name of people, that you want to find Orwell
t.London s.Baker b.221 ap.2
Process returned 0 (0x0) execution time : 187.147 s
Press any key to continue.
Контрольні запитання:
-
Дайте означення структурного типу даних
Структура – сукупність декількох змінних, об’єднаних під одним ім’ям, яке слугує для зручного зберігання логічно пов’язаних даних у пам’яті ЕВМ.
-
Як здійснюється доступ до компонентів структури?
Звернення до полів структури здійснюється за допомогою операції доступу:
<ім’я змінної структурного типу>.<ім’я поля>;
-
Як визначається обсяг пам’яті, необхідний для зберігання структури?
Додаванням заданих розмірів всіх елементів структури.
Висновки:
Під час виконання ЛР була написана програма, що обробляє структури.
Під час написання програми не виникло помилок.