
Laboratornaja_rabota_No12
.pdfОсновы алгоритмизации и программирования |
Лабораторная работа №12 |
«Структуры в С++, массивы структур»
Задача 1. Структуры в С++, как агрегатный тип данных (без вариантов)
1.Используя агрегатный тип struct, определите следующие понятия: цена в рублях и копейках; время в часах, минутах, секундах; дату как число, месяц и год; адрес (индекс, город, улица, дом, кваритра); экзаменационная ведомость (предмет, номер группы, дата экзамена, и 25 студентов, для которых указывается фамилия, номер, зачетной книжки и экзаменационная оценка).
2.Для каждого из реализованных типов данных написать набор операторов, позволяющих осуществлять доступ к элементам структуры через обычные переменные и с использованием указателей.
3.Для каждого из реализованных типов данных напишите 2 функции: одна функция получает значение структурного типа в качестве параметра, другая – возвращает значение структурного типа. Например, для типа «Дата», первая функция получает в качестве параметра дату, а возвращает название месяца. Вторая функция получает в качестве параметра дату и целое значение n, а возвращает дату, которая наступит спустя n дней.
Задача 2. Массивы структур (без вариантов)
Сведения о каждой машине включают в себя следующую информацию: модель (строка длиной 10 символов), номер (код региона и цифровой код), цвет, сведения о владельце (фамилия, имя, отчество), дата последнего техосмотра.
введите данные о нескольких машинах, используя для хранения информции массив;
выведите данные обо всех машинах, не прошедших техосмотр в текущем году;
выведите информацию обо всех владельцах «BMW» черного цвета;
по номеру машине выведите всю информацию о ней.
Задача 3. Массивы структур (индивидуальные задания)
Вариант 1
1. Описать структуру с именем STUDENT, содержащую следующие поля:
номер зачетной книжки;
• фамилия студента;
• номер группы;
• успеваемость (массив из пяти элементов для хранения оценок за 5 экзаменов).
2.Реализовать следующий набор функций:
ввод с клавиатуры данных о студентах в массив, состоящий из n элементов типа STUDENT (n вводится c клавиатуры, память под массив выделять динамически);
вывод на экран информации о всех студентах в виде таблицы;
упорядочить записи в массиве по возрастанию номера группы;
упорядочить записи в массиве по убыванию среднего балла студента по результатам сдачи всех экзаменов;
вывод на дисплей фамилий тех студентов, средний балл которых больше 4,0 (если таких студентов нет, вывести соответствующее сообщение);
вывод на экран информации о тех студентах, которые не сдали сессию (получили 3 и более неудовлетворительных оценок);
поиск студента в массиве по номеру зачетной книжки;
редактирование информации о студенте (по номеру зачетной книжки).
3.Разработать программу, позволяющую проверить работу всех разработанных функций и управляемую с помощью текстового меню.
Вариант 2
1.Описать структуру с именем AEROFLOT, содержащую следующие поля:
номер рейса;
название пункта вылета;
название пункта назначения;
тип самолета;
время в пути;
цена билета.
Основы алгоритмизации и программирования |
Лабораторная работа №12 |
2.Реализовать следующий набор функций:
ввод с клавиатуры данных о рейсах в массив, состоящий из n элементов типа AEROFLOT (n вводится c клавиатуры, память под массив выделять динамически);
вывод информации о всех рейсах на экран в виде таблицы;
поиск рейса по пункту назначения;
упорядочить записи по возрастанию цены билета;
упорядочить записи в массиве в алфавитном порядке названий пунктов назначения;
редактирование информации о рейсе (по номеру рейса);
3.Разработать программу, позволяющую проверить работу всех разработанных функций и управляемую с помощью текстового меню.
Вариант 3
1, Описать структуру с именем WORKER, содержащую следующие поля:
табельный номер сотрудника;
фамилия и инициалы работника;
название занимаемой должности;
год поступления на работу
должностной оклад.
2.Реализовать следующий набор функций:
ввод с клавиатуры данных в массив, состоящий из n элементов типа WORKER (n вводится c клавиатуры, память под массив выделять динамически);
вывод информации обо всех сотрудниках в виде таблицы;
упорядочить информацию о сотрудниках в алфавитном порядке фамилий;
поиск сотрудника по табельному номеру;
вывод на дисплей фамилий работников, чей стаж работы в организации
превышает значение, введенное с клавиатуры (если таких работников нет, вывести на дисплей соответствующее сообщение).
редактирование информации о сотруднике (по табельному номеру).
3.Разработать программу, позволяющую проверить работу всех разработанных функций и управляемую с помощью текстового меню.
Вариант 4
1.Описать структуру с именем NOTE (записная книжка), содержащую следующие поля:
фамилия;
имя;
номер телефона;
день рождения (массив из трех чисел или структура);
домашний адрес.
2.Реализовать следующие функции:
ввод с клавиатуры данных в массив, состоящий из n элементов типа NOTE (n вводится c клавиатуры, память под массив выделять динамически);
вывод на экран информации обо всех записях в записной книжке (в виде таблицы);
вывод на экран инормации обо всех записях в записной книжке, группируя записи в соответствии с алфавитным порядком (сначала все фамилии на букву «А», затем “Б” и
т.д);
упорядочить записи по дате рождения;
поиск информации в массиве по фамилии (фамилия вводится с клавиатуры);
реадктирование информации в массиве (поиск нужной записи осуществлять по фамилии).
3.Разработать программу, позволяющую проверить работу всех разработанных функций и управляемую с помощью текстового меню.
Вариант 5
1.Описать структуру с именем PRICE, содержащую следующие поля:
идентификатор товара (уникальное значение);
Основы алгоритмизации и программирования |
Лабораторная работа №12 |
название товара;
название магазина, в котором продается товар;
стоимость товара в руб;
количество единиц товара на складе.
2.Реализовать следующие функции:
ввод с клавиатуры данных в массив, состоящий из n элементов типа PRICE (n вводится c клавиатуры, память под массив выделять динамически);
вывод информации обо всех товарах в виде таблицы;
упорядочить записи в массиве в порядке возрастания стоимости товара;
вывод информации обо всех товарах на экран, группируя их по названиям магазинов;
поиск информации о товаре по его идентификатору;
вывод на экран информации о товарах, количество которых на складе меньше 5;
редактирование информации о товаре (поиск по идентификатору).
3.Разработать программу, позволяющую проверить работу всех разработанных функций и управляемую с помощью текстового меню.