Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР17-С++03-сентября-2012.doc
Скачиваний:
17
Добавлен:
08.11.2019
Размер:
698.88 Кб
Скачать

2.5.1.2. Пример для варианта 30

Создать массив структур, содержащий информацию о студентах: ФИО, номер группы, оценки за последнюю сессию. Вывести информацию о студентах группы ИНФО-101 в порядке убывания среднего балла.

2.4.3.3. Программа

//Лабораторная работа № 14

//Задание № 2

//Выполнил ст. Иванов А.А.

//20 мая 2012 г.

#include <iostream.h>

#include <string.h>

#include <conio.h> // подключение библиотеки функций ввода-вывода

int main ()

{

struct strc // Объявление структуры strc

{ char fio[40];

char ngr[9];

int otc[5];

double sb;

}

mstud[100]; // Объявление массива структур mstud

int nst, i, j;

cout << "Vvedite kol-vo studentov <=100" << endl;

cin >> nst;

for (i=0; i < nst; i++) // Ввод информации о студентах

{

cout << "Vvedite FIO: ";

cin >> mstud[i].fio;

cout << "Vvedite nomer gr: ";

cin >> mstud[i].ngr;

cout << "Vvedite 5 otcenok" << endl;

mstud[i].sb = 0;

for (j=0; j<5; j++) // Ввод пяти оценок

{ // за последнюю сессию

cin >> mstud[i].otc[j];

mstud[i].sb += mstud[i].otc[j] / 5.; // Вычисление

} // среднего балла студента

cout << endl;

}

strc stemp;

for (i=0; i < nst-1; i++) // Сортировка по среднему баллу

for (j=i+1; j<nst; j++)

if (mstud[i].sb < mstud[j].sb

&& !strcmp (mstud[i].ngr, "ИНФО-101")

&& !strcmp (mstud[j].ngr, "ИНФО-101"))

{

stemp = mstud[i]; // Перестановка структур

mstud[i] = mstud[j];

mstud[j] =stemp;

}

for (i=0; i < nst; i++)

if (!strcmp (mstud[i].ngr, "ИНФО-101")) // Вывод информации

cout << mstud[i].fio << " " << mstud[i].ngr << " "

<< mstud[i].sb << endl;

cout << "Нажмите любую клавишу..." ;

getch();

return 0;

}

2.4.3.4. Тестирование

2.5.2. Задание 2. Формирование и запись в файл массивов структур

Создать массив структур, содержащий информацию согласно варианту индивидуального задания. Структуры (исходную и сформированную по запросу) сохранить в отдельных файлах. Выполнить задание и вывести на экран полученный результат.

Замечание: для ускорения выполнения задания рекомендуется воспользоваться результатами лабораторной работы № 14. Программирова­ние с использованием струк­тур, выполненной в предыдущем семестре.

2.5.2.1. Условие задания

Таблица 17.7

Задание

1

Описать структуру с именем STUDENT, содержащую следующие поля:

• фамилия и инициалы;

• номер группы;

• успеваемость (массив из пяти элементов).

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT (записи должны быть упорядочены по возрастанию номера группы);

• вывод на экран фамилий и номеров групп для всех студентов, включенных, в массив, если средний балл студента больше 4,0 (если таких студентов нет, вывести соответствующее сообщение).

2

Описать структуру с именем STUDENT, содержащую следующие поля:

• фамилия и инициалы;

• номер группы;

• успеваемость (массив из пяти элементов).

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT (записи должны быть упорядочены по алфавиту);

• вывод на экран фамилий и номеров групп для всех студентов, имеющих хотя бы одну оценку 2 (если таких студентов нет, вывести соответствующее сообщение).

3

Описать структуру с именем STUDENT, содержащую следующие поля:

• фамилия и инициалы;

• номер группы;

• успеваемость (массив из пяти элементов).

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT(записи должны быть упорядочены по возрастанию среднего балла);

• вывод на экран фамилий и номеров групп для всех студентов, имеющих оценки 4 и 5 (если таких студентов нет, вывести соответствующее сообщение).

4

Описать структуру с именем STUDENT, содержащую следующие поля:

• фамилия и инициалы;

• номер группы;

• успеваемость (массив из пяти элементов).

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из десяти структур типа STUDENT(записи должны быть упорядочены по возрастанию среднего балла);

• вывод на экран фамилий и номеров групп для всех студентов, имеющих оценки 5 по всем предметам (если таких студентов нет, вывести соответствующее сообщение).

5

Описать структуру с именем AER0FL0T, содержащую следующие поля:

• название пункта назначения рейса;

• номер рейса;

• тип самолета.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из семи элементов типа AER0FL0T (записи должны быть размещены в алфавитном порядке по названиям пунктов назначения);

• вывод на экран пунктов назначения и номеров рейсов, обслуживаемых самолетом, тип которого введен с клавиатуры (если таких рейсов нет, вывести соответствующее сообщение).

6

Описать структуру с именем WORKER, содержащую следующие поля:

• фамилия и инициалы работника;

• название занимаемой должности;

• год поступления на работу.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из десяти структур типа WORKER (записи должны быть упорядочены по алфавиту);

• вывод на экран фамилий работников, стаж работы которых превышает значение, введенное с клавиатуры (если таких работников нет, вывести соответствующее сообщение.

7

Описать структуру с именем TRAIN, содержащую следующие поля:

• название пункта назначения;

• номер поезда;

• время отправления.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN (записи должны быть размещены в алфавитном порядке по названиям пунктов назначения);

• вывод на экран информации о поездах, отправляющихся после введенного с клавиатуры времени (если таких поездов нет, вывести соответствующее сообщение).

8

Описать структуру с именем TRAIN, содержащую следующие поля:

• название пункта назначения;

• номер поезда;

• время отправления.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из шести элементов типа TRAIN (записи должны быть упорядочены по времени отправления поезда);

• вывод на экран информации о поездах, направляющихся в пункт, название которого введено с клавиатуры (если таких поездов нет, вывести соответствующее сообщение).

9

Описать структуру с именем TRAIN, содержащую следующие поля:

• название пункта назначения;

• номер поезда;

• время отправления.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN (записи должны быть упорядочены по номерам поездов);

• вывод на экран информации о поезде, номер которого введен с клавиатуры (если таких поездов нет, вывести соответствующее сообщение).

10

Описать структуру с именем MARSH, содержащую следующие поля:

• название начального пункта маршрута;

• название конечного пункта маршрута;

• номер маршрута.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа MARSH (записи должны быть упорядочены по номерам маршрутов);

• вывод на экран информации о маршруте, номер которого введен с клавиатуры (если таких маршрутов нет, вывести соответствующее сообщение).

11

Описать структуру с именем MARSH, содержащую следующие поля:

• название начального пункта маршрута;

• название конечного пункта маршрута;

• номер маршрута.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа MARSH (записи должны быть упорядочены по номерам маршрутов);

• вывод на экран информации о маршрутах, которые начинаются или оканчиваются в пункте, название которого введено с клавиатуры (если таких маршрутов нет, вывести соответствующее сообщение).

12

Описать структуру с именем NOTE, содержащую следующие поля:

• фамилия, имя;

• номер телефона;

• дата рождения (массив из трех чисел).

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE (записи должны быть упорядочены по дате рождения);

• вывод на экран информации о человеке, номер телефона которого введен с клавиатуры (если такого нет, вывести соответствующее сообщение).

13

Описать структуру с именем NOTE, содержащую следующие поля:

• фамилия, имя;

• номер телефона;

• дата рождения (массив из трех чисел).

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE (записи должны быть размещены по алфавиту);

• вывод на экран информации о людях, чьи дни рождения приходятся на месяц, значение которого введено с клавиатуры (если таких нет, вывести соответствующее сообщение).

14

Описать структуру с именем NOTE, содержащую следующие поля:

• фамилия, имя;

• номер телефона;

• дата рождения (массив из трех чисел).

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE (записи должны быть упорядочены по трем первым цифрам номера телефона);

• вывод на экран информации о человеке, чья фамилия введена с клавиатуры (если такого нет, вывести соответствующее сообщение).

15

Описать структуру с именем ZNAK, содержащую следующие поля:

• фамилия, имя;

• знак Зодиака;

• дата рождения (массив из трех чисел).

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK (записи должны быть упорядочены по дате рождения);

• вывод на экран информации о человеке, чья фамилия введена с клавиатуры (если такого нет, вывести соответствующее сообщение).

16

Описать структуру с именем ZNAK, содержащую следующие поля:

• фамилия, имя;

• знак Зодиака;

• дата рождения (массив из трех чисел).

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK (записи должны быть упорядочены по дате рождения);

• вывод на экран информации о людях, родившихся под знаком, название которого введено с клавиатуры (если таких нет, вывести соответствующее сообщение).

17

Описать структуру с именем ZNAK, содержащую следующие поля:

• фамилия, имя;

• знак Зодиака;

• дата рождения (массив из трех чисел).

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ZNAK (записи должны быть упорядочены по знакам Зодиака);

• вывод на экран информации о людях, родившихся в месяц, значение которого введено с клавиатуры (если таких нет, вывести соответствующее сообщение).

18

Описать структуру с именем PRICE, содержащую следующие поля:

• название товара;

• название магазина, в котором продается товар;

• стоимость товара в рублях.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа PRICE (записи должны быть упорядочены в алфавитном порядке по названиям товаров);

• вывод на экран информации о товаре, название которого введено с клавиатуры (если таких товаров нет, вывести соответствующее сообщение).

19

Описать структуру с именем PRICE, содержащую следующие поля:

• название товара;

• название магазина, в котором продается товар;

• стоимость товара в рублях.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа PRICE (записи должны быть упорядочены в алфавитном порядке по названиям магазинов);

• вывод на экран информации о товарах, продающихся в магазине, название которого введено с клавиатуры (если такого магазина нет, вывести соответствующее сообщение).

20

Описать структуру с именем PRICE, содержащую следующие поля:

• название товара;

• название магазина, в котором продается товар;

• стоимость товара в рублях.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа PRICE (записи должны быть упорядочены в алфавитном порядке по названиям товаров);

• вывод на экран информации о товарах, стоимость которых ниже средней по магазину.

21

Описать структуру с именем WORKER, содержащую следующие поля:

• фамилия и инициалы работника;

• название занимаемой должности;

• год поступления на работу.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из десяти структур типа WORKER (записи должны быть упорядочены по алфавиту);

• вывод на экран фамилий работников, стаж работы которых превышает среднее значение (старые сотрудники).

22

Описать структуру с именем NOTE, содержащую следующие поля:

• фамилия, имя;

• номер телефона;

• дата постановки на учет (массив из трех чисел).

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE (записи должны быть размещены по дате постановки на учет);

• вывод на экран информации о людях, вставших на учет ранее даты введенной с клавиатуры.

23

Описать структуру с именем PRICE, содержащую следующие поля:

• название товара;

• название магазина, в котором продается товар;

• стоимость товара в рублях.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа PRICE (записи должны быть упорядочены в алфавитном порядке по названиям товаров);

• вывод на экран информации о товарах, стоимость которых превышает среднюю по магазину.

24

Описать структуру с именем ORDER, содержащую следующие поля:

• расчетный счет плательщика;

• расчетный счет получателя;

• перечисляемая сумма в рублях.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ORDER (записи должны быть размещены в алфавитном порядке по расчетным счетам плательщиков);

• вывод на экран информации о сумме, снятой с расчетного счета плательщика, введенного с клавиатуры (если такого расчетного счета нет, вывести соответствующее сообщение).

25

Описать структуру с именем WORKER, содержащую следующие поля:

• фамилия и инициалы работника;

• название занимаемой должности;

• год поступления на работу.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из десяти структур типа WORKER (записи должны быть упорядочены по алфавиту);

• вывод на экран фамилий работников, стаж работы которых больше значения введенного с клавиатуры (если таких сотрудников нет, вывести соответствующее сообщение).

26

Описать структуру с именем NOTE, содержащую следующие поля:

• фамилия, имя;

• номер телефона;

• дата постановки на учет (массив из трех чисел).

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE (записи должны быть размещены по дате постановки на учет);

• вывод на экран информации о людях, вставших на учет позднее даты введенной с клавиатуры.

27

Описать структуру с именем ORDER, содержащую следующие поля:

• расчетный счет плательщика;

• расчетный счет получателя;

• полученная сумма в рублях.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа ORDER (записи должны быть размещены в алфавитном порядке по расчетным счетам плательщиков);

• вывод на экран информации о сумме, полученной на расчетный счет получателя, введенного с клавиатуры (если такого расчетного счета нет, вывести соответствующее сообщение).

28

Описать структуру с именем TRAIN, содержащую следующие поля:

• название пункта назначения;

• номер поезда;

• время отправления;

• время в пути.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN (записи должны быть размещены в алфавитном порядке по названиям пунктов назначения);

• вывод на экран информации о поездах, время в пути которых меньше среднего значения.

29

Описать структуру с именем WORKER, содержащую следующие поля:

• фамилия и инициалы работника;

• название занимаемой должности;

• год поступления на работу.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из десяти структур типа WORKER (записи должны быть упорядочены по алфавиту);

• вывод на экран фамилий работников, стаж работы которых меньше среднего значения (молодые сотрудники).

30

Описать структуру с именем NOTE, содержащую следующие поля:

• фамилия, имя;

• номер телефона;

• адрес.

Ключевые поля: фамилия и имя.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из восьми элементов типа NOTE (записи должны быть размещены по фамилии);

• вывод на экран информации об адресе и телефоне по фамилии, введенной с клавиатуры.

31

Описать структуру с именем AER0FL0T, содержащую следующие поля:

• название пункта назначения рейса;

• номер рейса;

• тип самолета.

Написать программу, выполняющую следующие действия:

• ввод с клавиатуры данных в массив, состоящий из семи элементов типа AER0FL0T (записи должны быть упорядочены по возрастанию номера рейса);

• вывод на экран номеров рейсов и типов самолетов, вылетающих в пункт назначения, название которого совпало с названием, введенным с клавиатуры (если таких рейсов нет, вывести сообщение).