Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Met_C++.doc
Скачиваний:
2
Добавлен:
16.11.2019
Размер:
620.54 Кб
Скачать

4 Робота із структурами

4.1 Мета роботи

Отримати практичні навички програмування на С++ задач, де використовується інформація у вигляді структури.

4.2 Методичні вказівки до організації самостійної роботи студентів

Структура – це упорядкована сукупність довільних типів даних, що об'єднані в одній області пам'яті. Тип структури вводиться описом наступного вигляду:

struct [ім’я_структури] {тип_1 ім’я_поля_1;

тип_2 ім’я_поля_2;...;

тип_n ім’я_поля_n;};

де ім’я_структури - ім'я структури шаблону, що задовольняє правилам завдання ідентифікаторів мови C++; тип_1, тип_2,..., тип_n - будь-які призначені типи,; ім’я_поля_1,..., ім’я_поля_n - ідентифікатори полів, що задовольняють правилам завдання ідентифікаторів.

Опис структури являє собою завдання нового типу «ім’я_структури» і не призводить до виділення пам'яті, а лише дає інформацію компілятору про типи і кількість полів. Ця інформація використовується компілятором при описі структурованих змінних для резервування необхідного місця в пам'яті і організації доступу до необхідних полів структурної змінної.

Доступ до полів структурних змінних можна забезпечити двома засобами: використовуючи оператор разіменування:

ім’я _структурної_змінної. ім’я_поля;

або використовуючи оператор покажчика на структуру:

покажчик_на_структуру-> ім’я_поля;

Приклад 4

Визначити список автомобілів з наступними даними: назва, рік випуску, потужність. Надрукувати назви тих авто, рік випуску та потужність яких співпадає зі введеними.

# include <iostream. h>

# define n 15

void main ()

{struct Poisk {char name[20];

int year;

int power};

Poisk car [n],*point=&car[0]; int i;

for(i=0;i<n;i++,point++)

{ cout<<"\nVvedi nazvy avto:”; cin>>car.name;

cout<<"\nVvedi rik vipusku:”; cin>>car.year;

cout<<"\nVvedi potuznist’:”; cin>>car.power; }

point-=n;

cout<<"\nVvedi poshukovyj rik vipusku:";

cin>>yy;

cout<<"\nVvedi poshukovu potuznist’:";

cin>>pp;

for(i=0;i<n;i++,p++)

{ if((*point->year==yy)&&(*point).power==pp)

cout<<car.name<<"\n";

else

cout<<"Avto ne znajdene\n ";}

}

4.3 Контрольні запитання

1. Назвіть основні відокремлювальні характеристики типу даних «структура».

2. Які типи полів може містити структура?

3. Назвіть засоби звернення до елементів структури.

4. Назвіть засоби опису змінних структурного типу.

5. Чи можна присвоювати змінній структурного типу структуру?

4.4 Варіанти індивідуальних завдань

  1. Ввести в ЕОМ інформацію про співробітника відділу: прізвище, ім'я, вік. Розпечатати імена співробітників, вік яких перевищує 33 роки.

  2. Сформувати список співробітників відділу: прізвище, ім'я, номер місяцю народження. Розпечатати імена співробітників, які народилися в задані місяці.

  3. Сформувати список про перездачі заборгованостей студентів: ПІБ, предмет, кількість перездач. Розпечатати список за заданою кількістю перездач.

  4. Сформувати список, в якому зберігається інформація про предмети, вилучені на митниці за звітний період: дата вилучення, найменування предмету, кількість одиниць, вартість. Визначити назву предмета, якого вилучено максимальну кількість.

  5. Сформувати відомість про фінансову діяльність підприємств за минулий рік: найменування підприємства, місяць, прибуток підприємства за цей місяць, нарахування на зарплату, зиск підприємства. Сформувати список підприємств, у яких позитивне відхилення від середньомісячного прибутку перевищує 50%.

  6. Сформувати відомість, в якій зберігаються результати сесії групи. Створити список студентів, які будуть отримувати стипендію.

  7. В відомості зберігається інформація про пропуски занять студентами: ПІБ, факультет, група, кількість пропусків. Вивести список 10 студентів з максимальною кількістю пропусків.

  8. В списку міститься інформація про володарів гаражного кооперативу: ПІБ, марка автомобіля, номер машини, рік випуску. Сформувати список володарів машин, яким більш, ніж 10 років.

  9. В списку міститься інформація про володарів автотранспорту: ПІБ, марка автомобіля, номер машини, потужність. Сформування список володарів автомобілів, отсортирований за потужністю.

  1. В відомості зберігається інформація про діяльність деяких підрозділів: найменування підрозділу, кількість співробітників, зиск, отриманий за поточний квартал. Визначити кращий підрозділ з урахуванням числа співробітників.

  1. В розкладі зберігається інформація про рух поїздів по станції Харків: номер поїзду, маршрут руху, час прибуття, час відправлення. Необхідно розпечатати поїзди, що рушають у заданому діапазоні часу.

  2. У звіті зберігається інформація про фінансову діяльність підприємств за минулий рік: найменування підприємства, місяць, прибуток підприємства за цей місяць, нарахування на зарплату, зиск підприємства. Відсортувати цей звіт у порядку зменшення прибутку і вивести на екран інформацію про три найбільш прибуткові підприємства.

  3. В розкладі зберігається інформація про рух поїздів по станції Харків: номер поїзду, маршрут руху, час прибуття, час відправлення. На його базі сформувати новий розклад, що містить інформацію про поїзди, які прибувають до заданого часу.

  4. Сформувати документ, в якому зберігається інформація про асортимент продовольчих товарів в магазині: назва магазину, код товару, кількість цього товару, ціна за кілограм. Підібрати магазин для оптової закупки заданого товару в заданій кількості так, щоб зменшити витрати на його придбання.

  5. Створити документ, в якому зберігається інформація про предмети, що вилучені на митниці за звітний період: дата вилучення, код предмету (зброя, продовольчі товари,, т.п.), кількість одиниць, вартість одиниці. Визначити групу предметів, по якій найчастіше відбувалося вилучення.

  6. Сформувати список, в якому зберігається інформація про співробітників підрозділу: ПІБ, місце народження, рік народження. На його основі сформувати новий список співробітників, які народилися в заданому році і розпечатати його.

  7. Створити список, в якому зберігається інформація про абонентів АТС: ПІБ, місце проживання, номер телефону. Необхідно упорядкувати список абонентів за номерами телефонів.

  8. В звіті зберігається інформація про ліцензії, що видані на придбання газової зброї: ПІБ, дата видачі ліцензії, тип зброї, його вартість. Необхідно вивести на екран всі записи із заданою вартістю.

  9. Сформувати документ, в якому зберігається інформація про академічні заборгованості по факультетах за три роки. Написати програму визначення факультету з максимальною і мінімальною кількістю заборгованостей.

  10. Сформувати список, в якому зберігається інформація про асортимент продовольчих товарів у магазинах: назва магазину, код товару, кількість цього товару. Підібрати магазини, в яких зберігається заданий товар в потрібній кількості.

  11. Створити список, в якому зберігається інформація про абонентів АТС: ПІБ, місце проживання, номер телефону. Необхідно написати програму, яка за номером абонента видає його ПІБ та місце проживання.

  12. Сформувати документ, в якому зберігається інформація про захворювання співробітників: ПІБ, рік народження, захворювання, тривалість хвороби. На його основі сформувати список співробітників, які хворіли найдовше.

  13. Створити список, в якому зберігається інформація про користувачів бібліотеки: ПІБ, кафедра, кількість книг, що на руках. Необхідно написати програму визначення користувача, за яким числиться максимальна кількість книг.

  14. Сформувати список, в якому зберігаються результати сесії групи. Написати програму нарахування стипендії за результатами сесії.

  15. У звіті зберігається інформація про винахідницьку діяльність кафедр за три роки: найменування кафедр, кількість заявок, кількість позитивних рішень. Написати програму визначення кафедри, що отримала максимальну кількість позитивних рішень.

  16. Написати програму визначення місяця, в якому народилася максимальна кількість студентів у вашій групі.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]