Задание № 5. Тема: Функции. Динамические массивы и структуры
Сформировать одномерный динамический массив порядка N, элементы которого имеют указанную ниже структуру, и организовать обработку его данных в соответствии с вариантом задания.
Примечание: для связанных данных, которые обязательно есть в каждом варианте (например, фамилия, имя, отчество или день, месяц, год и др.), формировать отдельную единицу структурного типа.
Программа должна содержать отдельные функции, осуществляющие ввод, вывод даннях и реализацию задачи.
1. Структура элемента массива сотрудник: фамилия, имя, отчество, возраст, рост. Определить:
- средний рост сотрудников в возрасте 18-20 лет;
- имя самого високого сотрудника;
- ФИО сотрудников, имеющих одинаковый рост.
2. Структура элемента массива анкета: фамилия, имя, отчество, дата рождения (число, месяц, год), домашний адрес (город, улица, дом), оценки в аттестате зрелости (математика, физика, химия), стаж, факультет. Определить абитуриентов с максимальным рабочим стажем на каждом факультете. Названия факультетов определять из массива анкет.
3. Структура элемента массива работник: фамилия, число, месяц и год рождения, пол.
Определить:
- фамилию самого старшего мужчины;
- все фамилии, начинающиеся с заданной буквы;
- список людей, родившихся в заданном месяце.
4. Структура элемента массива аттестационная карточка студента: фамилия, имя, отчество, курс, группа, дата рождения (число, месяц, год), первый семестр (математика, физика, программирование), второй семестр (математика, физика , программирование). Определить средний балл студентов каждой группы в зимней сессии. Номера групп определять из массива аттестационных карт (заранее номера групп неизвестны).
5. Структура элемента массива знакомый: фамилия, номер телефона (5-значный), место жительства - город, улица, дом, квартира.
Определить:
- есть ли в книге телефон заданного человека;
- кому принадлежит заданный телефон;
- список людей, живущих на заданной улице.
6. Структура элемента массива абитуриент: фамилия, имя, отчество, пол, год рождения, домашний адрес (почтовый индекс, город, улица, дом), оценки в аттестате зрелости (математика, физика), факультет. Определить количество городов Украины, из которых прибыли абитуриенты. Названия факультетов определять из массива анкет.
7. Структура элемента массива студент: фамилия, номер группы, оценка по предмету № 1, оценка по предмету № 2, оценка по предмету № 3.
Определить:
- фамилию того, кто лучше всех сдал экзамены;
- средний балл по группе по заданному предмету;
- список должников.
8. Структура элемента массива студент: фамилия, имя, отчество, пол, возраст, № курса.
Определить:
- № курса, на котором учится наибольший процент студентов мужского пола;
- самые распространенные мужские и женские имена (по одному имени);
- список студентов заданного пола заданного курса.
9. Структура элемента массива аттестационная карточка: фамилия, имя, отчество, курс, группа, увлечения, первый семестр (математика, физика, программирование), второй семестр (математика, физика, программирование). Определить список студентов 3-го курса, которые не имели неудовлетворительных оценок в учебном году.
10. Структура элемента массива абитуриент-заочник: фамилия, имя, отчество, домашний адрес (город, улица, дом), стаж, место последней работы, наличие прописки. Определить количество абитуриентов из каждого города. Названия городов определять из массива анкет.
11. Структура элемента массива пассажир: фамилия, имя, отчество, номер рейса, количество багажных мест, общий вес.
Определить:
- рейс с максимальным весом багажа;
- пассажира с наибольшим количеством вещей;
- вывести список пассажиров, летящих заданным рейсом, и информацию об их багаже.
12. Структура элемента массива карточка студента: фамилия, имя, отчество, курс, группа, первый семестр (математика, физика, история), второй семестр (математика, физика, черчение), третий семестр (математика, физика, программирование), четвертый семестр (математика, иностранный язык, программирование). Подсчитать количество студентов в каждой группе, сдавших экзамены в летних сессиях за два года только на «хорошо» и «отлично». Номера групп определять из массива аттестационных карт (заранее номера групп неизвестны).
13. Структура элемента массива владелец: фамилия, адрес (строка), марка автомобиля, регистрационный номер, год выпуска.
Определить:
- количество автомобилей каждой марки;
- владельца самого старого автомобиля;
- фамилии владельцев и номера автомобилей данной марки.
14. Структура элемента массива аттестационные карточки группы: фамилия, имя, отчество, курс, возраст, первый семестр (математика, физика, программирование), второй семестр (математика, физика, черчение). По аттестационным карточкам группы определить абсолютную успеваемость каждого студента за год. Абсолютная успеваемость - это процентное отношение количества положительных оценок от общего количества оценок.
15. Структура элемента массива ребенок: фамилия, место жительства - город, улица, дом, квартира, пол, количество дней посещения детского сада.
Определить:
- ребенка, который чаще всех болеет;
- кто больше болеет - мальчики или девочки;
- список детей, проживающих на заданной улице.
16. Структура элемента массива анкета: фамилия, имя, отчество, год рождения, домашний адрес (город, улица, дом), оценки в аттестате зрелости (математика, физика, украинский язык, информатика), год окончания среднего учебного заведения. Определить абитуриентов-одесситов, имеющие максимальный средний балл в аттестате зрелости.
17. Структура элемента массива книга: автор, название, издательство - название, год издания, количество страниц.
Определить:
- есть ли в библиотеке книги данного автора;
- найти книгу с наибольшим количеством страниц;
- найти названия книг данного автора, изданных с указанного года, в данном издательстве.
18. Структура элемента массива товар: наименование, страна, партия - общий объем, объем расфасовки, цена.
Определить:
- страну, в которую экспортируется товар на максимальную сумму;
- список стран, в которые экспортируется данный товар;
- найти товары, имеющие минимальный объем партии, максимальный объем расфасовки.
19. Структура элемента массива карточка студента: фамилия, имя, отчество, курс, факультет, дата рождения (число, месяц, год), первый семестр (математика, физика, физкультура), второй семестр (математика, программирование, черчение). По аттестационным карточкам группы определить качество обучения каждого студента в год. Качество обучения - это процентное отношение количества «четверок» и «пятерок» к общему количеству оценок.
20. Структура элемента массива игрушка: название, цена, возрастной диапазон - нижняя граница, верхняя граница.
Определить:
- название самой дорогой игрушки;
- список игрушек, которые подходят детям заданного возраста;
- подобрать игрушки на заданную сумму денег (все варианты, но не более двух игрушек в комплекте).
21. Структура элемента массива аттестационная карточка: фамилия, имя, отчество, номер курса, факультет, увлечения, первый семестр (теория алгоритмов, физика, история), второй семестр (программирование, физика, черчение). По аттестационным карточкам группы определить студентов, увлекающихся шахматами, и имеющих не менее двух отличных оценок в каждой сессии.
22. Структура элемента массива игрушка: название, цена, цвет, возрастной диапазон - нижний предел, верхний предел.
Определить:
- названия игрушек, цена которых не превышает заданную и которые подходят детям заданного возраста;
- найти самую дешевую игрушку заданного названия;
- самый распространенный цвет игрушек.
23. Структура элемента массива пассажир: фамилия, номер рейса, багаж - количество вещей, общий вес.
Определить:
- число пассажиров, количество вещей которых превосходит среднее число вещей;
- пассажиров с заданным количеством вещей, суммарный вес которых не превышает заданный;
- вывести информацию о количестве вещей и общем весе вещей для каждого рейса.
24. Структура элемента массива спортсмен: фамилия, страна, год рождения, рейтинговый результат (в баллах), физические данные - рост, вес.
Определить:
- средний рост и вес спортсменов заданной страны;
- найти лучшего спортсмена заданной страны;
- список спортсменов заданного возраста с результатом, не хуже заданного.
25. Структура элемента массива спортсмен: фамилия, имя, отчество, страна, тренер, год рождения, рейтинговый результат (в баллах).
Определить:
- самого молодого спортсмена, занимающегося у заданного тренера;
- тренера лучшего спортсмена из заданной страны;
- список всех тренеров с указанием страны.