- •1. Краткие теоретические сведения
- •1.1. Понятие структуры
- •1.2. Определение (описание) шаблона структуры
- •1.3. Описатель типа
- •1.4. Объявление переменных структурного типа
- •1.5. Инициализация переменной структурного типа
- •1.6. Операции со структурами
- •1.7. Доступ к значениям полей структурного типа
- •1.8. Вложенные структурные типы
- •1.9. Массивы структурного типа
- •1.10. Структурные переменные и указатели
- •1.11. Структуры и функции
- •1.11. Использование синонима типа
- •1.12. Доступ к отдельному биту
- •1.13.Типичные ошибки при разработке структур
- •1.14. Примеры программирования задач на структуры
- •2. Задание
- •2.4. Задания для выполнения на занятиях
- •2.4.1. Задание 1. Вычисление с использованием структур
- •2.4.1.1. Условие задания
- •2.4.1.2. Пример для варианта 30
- •2.4.1.3. Программа
- •2.4.1.4. Тестирование
- •2.4.2. Задание 2. Массив структур
- •2.4.2.1. Условие задания
- •2.4.2.2. Пример выполнения работы
- •2.4.2.3. Программа
- •2.4.2.4. Тестирование
- •2.4.3. Задание 3. Структуры данных
- •2.4.3.1. Условие задания
- •2.4.3.2. Пример для варианта 30
- •2.4.3.3. Программа
- •2.4.3.4. Тестирование
- •2.4.4. Задание 4. Структуры данных
- •2.4.4.1. Условие задания
- •2.4.4.2. Пример для варианта 31
- •2.4.4.3. Программа
- •2.4.4.4. Тестирование
- •2.4.5. Задание 5. Создание и обработка структур
- •2.4.5.1. Условие задания
- •2.4.6.2. Пример для варианта 30
- •2.4.7.2. Пример для варианта 30
- •2.4.7.3. Программа
- •2.4.7.4. Тестирование
- •3. Выводы
- •4. Требование к отчету
- •4. Краткие теоретические сведения.
- •5. Вопросы для самоконтроля
- •Литература
- •1. Краткие теоретические сведения 2
- •1.1. Понятие структуры 2
2.4.1.2. Пример для варианта 30
Структура "Студент" имеет поля: фамилия, имя, отчество; домашний адрес; группа; оценки по 5 предметам сессии.
Вывести все сведения о студентах, имеющих 5 по всем предметам.
2.4.1.3. Программа
//Лабораторная работа № 14
//Задание № 1
//Выполнил ст. Иванов А.А.
//20 мая 2012 г.
#include <iostream.h>
#include <string.h>
#include <conio.h> // подключение библиотеки функций ввода-вывода
int main ()
{
struct strc // Объявление структуры strc
{ char fam[20];
char im[15];
char otch[20];
char adres[40];
char ngr[9];
int otcen[5];
double sb;
}
mstud[100]; // Объявление массива структур mstud
int nst, i, j;
cout << "Введите количество студентов <=100" << endl;
cin >> nst;
for (i=0; i < nst; i++) // Ввод информации о студентах
{
cout << "Введите фамилию: ";
cin >> mstud[i].fam;
cout << "Введите имя: ";
cin >> mstud[i].im;
cout << "Введите отчество: ";
cin >> mstud[i].otch;
cout << "Введите адрес: ";
cin >> mstud[i].adres;
cout << "Введите номер группы: ";
cin >> mstud[i].ngr;
cout << "Введите 5 оценок" << endl;
mstud[i].sb = 0;
for (j=0; j<5; j++) // Ввод пяти оценок
{ // за последнюю сессию
cin >> mstud[i].otcen[j];
mstud[i].sb += mstud[i].otcen[j] / 5.; // Вычисление
} // среднего балла студента
cout << endl;
}
for (i=0; i < nst; i++)
{
if (mstud[i].sb >=5.0) // Вывод информации
{
cout << mstud[i].fam << " " << mstud[i].im << " "<< mstud[i].otch
<< " " << mstud[i].ngr << " Оценки: ";
for (j=0; j<5; j++) // Вывод пяти оценок
{ // за последнюю сессию
cout << mstud[i].otcen[j]<< " ";
}
cout << endl;
}
}
cout << "Нажмите любую клавишу..." ;
getch();
return 0;
}
2.4.1.4. Тестирование
2.4.2. Задание 2. Массив структур
2.4.2.1. Условие задания
Создать массив структур, содержащий информацию согласно варианту индивидуального задания. Выполнить задание и вывести на экран полученный результат.
Таблица 14.2
№ |
Формула |
1 |
В магазине сформирован список постоянных клиентов, который включает ФИО, домашний адрес покупателя и размер предоставляемой скидки. Вывести всех покупателей, имеющих 5 % - ную скидку. |
2 |
Список товаров, имеющихся на складе, включает в себя наименование товара, количество единиц товара, цену единицы и дату поступления товара на склад. Вывести список товаров, стоимость которых превышает 100 000 рублей. |
3 |
Для получения места в общежитии формируется список студентов, который включает ФИО студента, номер группы, средний балл, доход на члена семьи. Вывести фамилии студентов, у которых доход на члена семьи меньше двух минимальных зарплат. |
4 |
В справочной автовокзала имеется расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия. Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше заданного времени. |
5 |
На междугородной АТС информация о разговорах содержит дату разговора, код и название города, время разговора, тариф, номер телефона абонента. Вывести для заданного города общее время разговоров с ним и сумму. |
6 |
Информация о сотрудниках фирмы включает ФИО, табельный номер, количество отработанных часов за месяц, почасовой тариф. Вывести размер заработной платы каждого сотрудника. |
7 |
Информация об участниках спортивных соревнований содержит название страны, название команды, ФИО игрока, игровой номер, возраст, рост и вес. Вывести фамилии спортсменов, возраст которых больше 20 лет. |
8 |
Для книг, хранящихся в библиотеке, задаются регистрационный номер книги, автор, название, год издания, издательство, количество страниц. Вывести список книг с фамилиями авторов, изданных после заданного года. |
9 |
Различные цеха завода выпускают продукцию нескольких наименований. Сведения о выпущенной продукции включают наименование, количество, номер цеха. Для заданного цеха вывести количество выпущенных изделий. |
10 |
Информация о сотрудниках содержит ФИО, номер отдела, должность, стаж работы на предприятии. Вывести список сотрудников заданного отдела, имеющих стаж работы на предприятии более 20 лет. |
11 |
Ведомость абитуриентов содержит ФИО, адрес, оценки по трем предметам. Определить средний балл абитуриентов, проживающих в городе Москве. |
12 |
В справочной аэропорта имеется расписание вылета самолетов. Для каждого рейса указаны его номер, тип самолета, пункт назначения, время вылета. Вывести все номера рейсов, вылетающих в заданный пункт назначения. |
13 |
У администратора железнодорожных касс имеется информация о свободных местах в поездах на текущие сутки в следующем виде: пункт назначения, время отправления, число свободных мест. Вывести информацию о числе свободных мест в поездах, следующих до заданного пункта назначения. |
14 |
Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит ФИО абитуриента и его оценки. Определить средний балл по университету и вывести список абитуриентов, средний балл которых выше среднего балла по университету. |
15 |
В радиоателье хранятся квитанции о сданной в ремонт радиоаппаратуре. Каждая квитанция содержит наименование изделия, дату приемки в ремонт, состояние готовности заказа (выполнен, не выполнен). Вывести информацию об изделиях, ремонт которых еще не выполнен. |
16 |
Cписок студентов группы. О каждом студенте хранятся следующие сведения: Ф.И.О., год рождения, номер зачетной книжки, пол, результаты последней сессии по четырем экзаменам (физика, математика, история, химия). Вывести Ф.И.О. студентов, получивших отличные оценки по математике. |
17 |
Cписок студентов группы. Окаждом студенте хранятся следующие сведения: Ф.И.О., год рождения, номер зачетной книжки, пол, результаты последней сессии по четырем экзаменам (физика, математика,история, химия). Вывести Ф.И.О. студентов заданной группы, не имеющих троек. |
18 |
Cписок студентов группы. Окаждом студенте хранятся следующие сведения: Ф.И.О., год рождения, номер зачетной книжки, пол, результаты последней сессии по четырем экзаменам (физика, математика,история, химия). Вывести Ф.И.О. студентов заданной группы, имеющих только отличные оценки. |
19 |
Cписок результатов метеорологических наблюдений по месяцам. Элемент списка хранит следующие данные: период наблюдения(месяц или год), количество дней месяца, количество выпавших осадков, количество облачных дней, количество дней с переменной облачностью. Определить месяц в заданном году, в течение которого выпало наибольшее количество осадков. |
20 |
Cписок результатов метеорологических наблюдений по месяцам. Элемент списка хранит следующие данные: период наблюдения(месяц или год), количество дней месяца, количество выпавших осадков, количество облачных дней, количество дней с переменной облачностью. Определить год с наиболее высоким количеством выпавших осадков в течение летних месяцев. |
21 |
Cписок результатов метеорологических наблюдений по месяцам. Элемент списка хранит следующие данные: период наблюдения(месяц или год), количество дней месяца, количество выпавших осадков, количество облачных дней, количество дней с переменной облачностью. Определить год с наиболее высокой минимальной температурой, зафиксированной в течение зимних месяцев. |
22 |
Cписок книг, хранящихся в библиотеке. О каждой книге хранятся следующие сведения: инвентарный номер, шифр УДК, название книги, Ф.И.О. автора, место издания, год издания. Вывести сведения о книгах, имеющих заданный шифр УДК и выпущенных не раньше указанного года. |
23 |
Cписок книг, хранящихся в библиотеке. О каждой книге хранятся следующие сведения: инвентарный номер, шифр УДК, название книги, Ф.И.О. автора, место издания, год издания. Вывести сведения о книгах заданного автора, выпущенных не раньше заданного года. |
24 |
Cписок книг, хранящихся в библиотеке. О каждой книге хранятся следующие сведения: инвентарный номер, шифр УДК, название книги, Ф.И.О. автора, место издания, год издания. Вывести сведения о читателях, для которых истек срок возврата книг. |
25 |
Cписок поставок. Описание поставки включает в себя номер поставки, дату поставки (день, месяц год), Ф.И.О поставщика, наименование поставленного товара,объем поставки, единицу измерения (штука, тонна и т.д.). Для товара с заданным наименованием определить Ф.И.О поставщиков, когда - либо осуществляющих его поставки, а также даты и номера поставок. |
26 |
Список поставок. Описание поставки включает в себя номер поставки, дату поставки (день, месяц год), Ф.И.О поставщика, наименование поставленного товара,объем поставки, единицу измерения (штука, тонна и т.д.). Вывести сведения о поставке заданного товара с с максимальным объемом. Принять, что для одинаковых наименований товара единицы измерения одинаковы. |
27 |
Cписок поставок. Описание поставки включает в себя номер поставки, дату поставки (день, месяц год), Ф.И.О поставщика, наименование поставленного товара,объем поставки, единицу измерения (штука, тонна и т.д.). Вывести сведения о поставках товара заданного наименования, осуществляющихся поставщиком, с заданным Ф.И.О. |
28 |
Cписок работников, содержащий следующие поля: фамилия и инициалы работника, название занимаемой должности, год поступления на работу. Вывести фамилии работников, чей стаж работы превышаетзначение, введенное с клавиатуры. Если таких работников нет, то вывести соответствующее сообщение. |
29 |
Записная книжка NOTE. NOTE включает следующие поля: Ф.И.О., номер телефона, дата рождения ( массив из трех чисел). Вывести информацию о людях, чьи дни рождения приходятся на месяц, значение которого введено с клавиатуры. Если таких людей нет, то вывести соответствующее сообщение. |
30 |
Создать массив структур, содержащий информацию о студентах: ФИО, номер группы, оценки за последнюю сессию. Вывести информацию о студентах группы ИНФО-101 в порядке убывания среднего балла. |
31 |
Записная книжка NOTE. NOTE включает следующие поля: Ф.И.О., номер телефона, дата рождения (массив из трех чисел). Вывести информацию о человеке, фамилия которого которого введена с клавиатуры. Если такого человека нет, то вывести соответствующее сообщение. |
32 |
Записная книжка NOTE. NOTE включает следующие поля: Ф.И.О., номер телефона, дата рождения ( массив из трех чисел). Вывести информацию о человеке, номер телефона которого введен с клавиатуры. Если такого человека нет, то вывести соответствующее сообщение. |