Лабораторная работа 10
25 апр. 16 г.
Работа со структурами
Постановка задачи
В настоящей лабораторной необходимо сформировать массив структур. Структуры вводятся с клавиатуры. В ряде вариантов заданий с клавиатуры вводится не вся структура, а только ее отдельные поля. Необходимо выполнить обработку сформированного массива структур и результаты обработки вывести на экран дисплея. В программе следует в максимальной степени использовать функции. Например, функции должны использоваться для ввода структур, обработки сформированного массива структур и вывода результатов обработки.
Варианты заданий
Варианты заданий приведены в табл. 10. 1
Таблица 1.10. 1
N | Задание |
Массив должен содержать сведения о книгах. Каждая структура должна иметь следующие поля: автор (авторы), название, год издания, цена и издательство. Вывести на экран дисплея список книг, изданных в заданном временном интервале (например, в интервале 1993..2000). | |
Массив должен содержать сведения об успеваемости студентов факультета. Каждая структура должна содержать следующие поля: шифр группы (например, СП-91), фамилия, имя и отчество (например, Иванов Петр Андреевич), оценки за последнюю сессию (например: 3, 5, 4, 4), средний балл. С клавиатуры вводятся только первые три поля. Вывести на экран сведения о конкретной группе (например, о группе СП-71). | |
Массив должен содержать сведения о поездах. Каждая структура должна содержать следующие поля: номер поезда, станция назначения, время в пути и цена билета. Вывести на экран дисплея сведения обо всех поездах, находящихся в пути более “k” часов и цена билета которых не превосходит “m” рублей. | |
Массив должен содержать сведения о товарах, хранящихся в некотором магазине. Каждая структура должна содержать следующие поля: наименование товара, дата поступления и цена. Выполнить обработку массива структур, уменьшив цену товара, хранящегося более “k” месяцев на “m%” (например, на 30%). Полученный массив вывести на экран дисплея. | |
Массив должен содержать сведения о книгах. Каждая структура должна иметь следующие поля: автор (авторы), название, год издания, цена, тираж. Вывести на экран дисплея сведения о книгах, имеющих тираж более определенной величины (например, более 5000 экз.) и стоимость которых не превосходит определенной величины (например, 50 руб.). |
Продолжение табл. 1.10. 1
N | Задание |
Массив должен содержать сведения о сотрудниках кафедры. Каждая структура должна содержать следующие поля: фамилия, имя и отчество, должность, оклад, год окончания контракта. Вывести на экран сведения о сотрудниках, занимающих определенную должность (например, доцента), контракт с которыми заканчиваются в заданном году. | |
Массив должен содержать сведения о городах. Каждая структура должна содержать следующие поля: названия города, количество жителей, год основания, количество музеев. Вывести на экран сведения о городах, в которых проживает более “m” жителей и проживает более “n” жителей. | |
Массив должен содержать сведения о странах. Каждая структура должна содержать следующие поля: название страны, название столицы, количество жителей, средняя продолжительность жизни. Вывести на экран сведения о странах, в которых проживает не более “n” жителей и средняя продолжительность жизни, в которых не превосходит “m” лет. | |
Массив должен содержать сведения о продаже книг некоторым магазином. Каждая структура должна содержать следующие поля: автор (авторы), название, год издания, затраты на покупку книги магазином, количество закупленных книг, цена при продаже. Вычислить прибыль от продажи книги каждого названия. Вывести на экран сведения о книгах, продажа которых не принесла прибыли. | |
Массив содержит сведения о зарплате сотрудников некоторой фирмы. Каждая структура должна содержать следующие поля: фамилия, имя и отчество, должность, год рождения, массив из 12 элементов с месячной зарплатой, среднемесячная зарплата. С клавиатуры вводятся первые четыре поля. Вывести сведения о сотрудниках моложе “k” и средняя зарплата которых не превосходит “n” рублей. | |
Массив сведений о погоде за 30 последних дней. Каждая структура должна содержать следующие поля: среднее давление, среднюю скорость ветра, основное направление ветра, состояние облачного покрова (ясный, туманный, хмурый и др.). Вывести сведения о погоде для заданного состояния облачного покрова. | |
Массив должен содержать сведения о сотрудниках кафедры. Каждая структура должна содержать следующие поля: фамилия, имя и отчество, должность, год поступления на работу. Вывести на экран сведения о сотрудниках, работающие на кафедре не менее “k” лет. | |
Массив структур, содержащие сведения о запасах некоторых товаров. Каждая структура должна содержать следующие поля: наименование товара, норматив на величину запаса (целое число в диапазоне до 5000), единица измерения (тонна, центнер, литр, упаковка и др.), текущее значение запаса. Вывести на экран сведения о товарах, запасы которых меньше норматива. |
Продолжение табл. 10. 1
N | Задание |
Массив структур, содержащих сведения о прибытии поездов на некоторый вокзал. Каждая структура должна содержать следующие поля: станция назначения, номер поезда, время прибытия в форме ЧЧ (часы) ММ (минуты), номер платформы. Вывести на экран сведения о поездах, прибывающих на платформу с номером “n” в заданном интервале времени (например, от 12 до 18 часов). | |
Массив структур о кафедрах некоторого вуза. Каждая структура должна содержать следующие поля: название кафедры, фамилия, имя и отчество заведующего кафедрой, количество преподавателей, количество потоков, в которых проводит занятия кафедра в текущем семестре. Вывести на экран сведения о кафедрах, штатный состав которых превосходит “k” единиц. | |
Массив структур, содержащих сведения о поездах, которые отправляются с некоторого вокзала. Каждая структура должна содержать следующие поля: станция назначения, номер поезда, время отправления в форме ЧЧ (часы) ММ (минуты), время в пути, номер платформы. Вывести на экран сведения о поездах, находящихся в пути более “k” часов. | |
Массив структур, содержащих сведения о фильмах. Каждая структура должна содержать следующие поля: режиссер, название, страна, жанр, год создания. Вывести на экран сведения о фильмах определенного жанра, созданных в некоторой стране. | |
Массив структур, содержащих сведения о футбольных командах. Каждая структура должна содержать следующие поля: название команды, тренер, место, занятое командой в чемпионате в прошлом году, место, занимаемое командой в чемпионате в настоящем году. Вывести на экран сведения о командах, которые занимают место в текущем чемпионате не меньшее, чем в чемпионате прошлого года. | |
Массив структур, содержащих сведения о вузах. Каждая структура должна содержать следующие поля: название вуза, адрес, количество факультетов, наличие военной кафедры, число обучающихся студентов. Вывести на экран дисплея сведения о вузах, в которых обучается более “n” студентов. | |
Массив структур, содержащих сведения о музеях. Каждая структура должна содержать следующие поля: название музея, адрес, год основания, цена входного билета. Вывести на экран дисплея сведения о музеях, действующие более “k” лет. | |
Массив сведений о кинотеатрах. Каждая структура должна содержать следующие поля: название, адрес, категория кинотеатра, количество мест. Вывести на экран дисплея сведения о кинотеатрах, количество мест в которых превосходит “k”. | |
Массив сведений о подпрограммах. Каждая структура должна содержать следующие поля: имя подпрограммы, язык программирования, вид подпрограммы (функция, процедура), назначение. Вывести на экран дисплея о функциях, у которых количество параметров не превосходит “k”. |
Окончание табл. 10. 1
N | Задание |
Массив сведений о продаже товаров. Каждая структура должна содержать следующие поля: код товара (строка, длина которой не превосходит 10), год продаж, выручка за проданный товар. Вывести на экран дисплея сведения о товарах, выручка за которые превосходит “s” руб. | |
Массив сведений о фильмах, которые показывают в кинотеатрах города. Каждая структура должна содержать следующие поля: название кинотеатра, название фильма, список сеансов. Вывести на экран дисплея сведения о кинотеатрах, в которых показывают некоторый фильм. |
Методические указания по выполнению лабораторной работы
Приведем ряд рекомендации, которые могут использоваться при выполнении настоящей работы:
1. Рекомендуется следующая структура программы:
- функция main(),
- функция для ввода массива структур,
- функция для обработки массива структур,
- функция для вывода на экран результатов вычислений.
2. Функция main() должна содержать:
- ввод количества структур “n”,
- вызовы трех других функций (ввода массива структур, обработки и вывода результатов вычислений),
1.10.4. Контрольные вопросы
1. Какие структурные данные в языке Си называются структурами?
2. Каким образом в языке Си можно объявить тип данных, относящихся к структурам?
3. Каким образом можно объявить переменную, имеющую тип структуры?
4. Каким образом можно инициализировать структуру во время ее определения?
5. Каким образом можно обратиться к отдельным полям записи?
6. Какие операции можно применить к переменной, имеющей тип структуры?
7. Можно ли вернуть структуру в качестве значения функции?
8. Каким образом можно организовать ввод – вывод структур?
9. Каким образом объявляются и используются массивы структур?
10. Каким образом можно обратиться к отдельным полям элемента массива, содержащего структуры?
11. Какие возможности существуют в языке Си по работе со структурами при использовании функций? Можно ли использовать структуры в качестве параметров в функциях? Можно ли в функцию передавать массив структур?