Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Laboratornaja_rabota_No12

.pdf
Скачиваний:
35
Добавлен:
18.02.2016
Размер:
113.71 Кб
Скачать

Основы алгоритмизации и программирования

Лабораторная работа №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.Разработать программу, позволяющую проверить работу всех разработанных функций и управляемую с помощью текстового меню.

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