Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Навроцкий, А. А. Основы_алгоритм_Программир_в_среде_VISUAL C++_Лаб_практикум_1_2_курсы_заоч.pdf
Скачиваний:
126
Добавлен:
16.03.2016
Размер:
1.06 Mб
Скачать

Лабораторная работа №7 ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ СТРУКТУР

7.1. Объявление структур

Структура это составной тип данных, в котором под одним именем объ- единены данные различных типов. Отдельные данные структуры называются полями. Объявление структуры осуществляется с помощью ключевого слова struct, за которым указывается ее имя и список элементов, заключенных в фи-

гурные скобки:

 

 

 

 

 

struct имя

 

 

И

{

тип_элемента_1 имя_элемента_1;

 

 

Р

 

У

 

тип_элемента_2 имя_элемента_2;

 

 

...

Г

 

 

} ;

тип_элемента_n имя_элемента n;

 

 

 

 

 

 

 

 

Правила работы с полями структуры идентичны работе с переменными со-

ответствующих типов. К полям структуры можно обращаться через составное

имя. Формат обращения:

 

 

на

имя_стру туры.Бимя поля

 

 

 

 

 

 

 

или

 

 

к

 

 

 

 

 

 

те

структуру–>имя_поля

 

 

 

 

указа

ль

 

 

 

7.2. Прим р выполнения работы

Создать массив струк

т

 

 

ур, сод ржащий информацию о студентах: ФИО,

 

 

 

по

 

 

 

номер группы, оценки за следнюю сессию. Вывести информацию о студен-

тах группы 610205 в порядке убывания среднего балла.

 

 

 

и

 

 

 

 

 

#include <iostream.h>

 

 

 

#include <string.h>

 

 

 

 

б

 

 

 

 

 

 

int main ()

 

 

 

 

 

{

structлstrc

 

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

 

 

 

 

 

{ char fio[40];

 

 

 

 

 

char ngr[7];

 

 

 

 

и int otc[4];

 

 

 

 

Б

 

double sb;

 

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

 

} mstud[100];

 

 

 

int nst, i, j;

 

 

 

 

 

 

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

 

 

cin >> nst;

 

 

// Ввод информации о студентах

 

 

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

 

 

{

cout << "Vvedite FIO: ";

 

 

 

 

 

 

 

 

 

 

 

 

27

cin >> mstud[i].fio;

cout << "Vvedite nomer gr: "; cin >> mstud[i].ngr;

cout << "Vvedite 4 otcenki" << endl;

 

 

 

mstud[i].sb = 0;

 

// Ввод четырех оценок

for (j=0; j<4; j++)

 

{

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

 

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

 

 

 

 

Р

 

 

 

 

 

 

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

}

 

 

 

И

 

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

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, "610205")

 

 

&&

!strcmp (mstud[j].ngr, "610205"))

 

 

 

 

 

 

{

stemp = mstud[i];

 

// Перестановка структур

 

 

 

 

 

 

 

 

 

 

 

 

е

 

 

 

 

 

 

 

 

mstud[i] = mstud[j];а

 

 

 

 

 

 

 

mstud[j] =stemp;к

 

 

 

 

 

 

 

}

т

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

о

 

 

 

// Вывод информации

 

 

if (!strcmp (mstud[i].ngr, "610205"))

 

 

 

и

 

 

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

 

 

 

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

 

 

л

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

 

 

 

return 0;

 

 

 

 

 

 

 

}

 

 

 

 

 

 

 

 

 

б

 

7.3. Индивидуальные задания

 

и

 

 

 

Создать массив структур, содержащий информацию согласно варианту

Б

 

 

 

 

 

 

 

 

 

инд в дуального задания. Выполнить задание и вывести на экран полученный результат.

1. В магазине сформирован список постоянных клиентов, который вклю- чает ФИО, домашний адрес покупателя и размер предоставляемой скидки. Вы- вести список покупателей, имеющих 5 %-ную скидку.

2. Список товаров, имеющихся на складе, включает в себя наименование товара, количество единиц товара, цену единицы и дату поступления товара на склад. Вывести список товаров, стоимость которых превышает 100 000 рублей.

3. Для получения места в общежитии формируется список студентов, ко- торый включает ФИО студента, номер группы, средний балл, доход на члена

28

семьи. Вывести фамилии студентов, у которых доход на члена семьи меньше двух минимальных заработных плат.

4. В справочной автовокзала имеется расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время от- правления и прибытия. Вывести информацию о рейсах, которыми можно вос- пользоваться для прибытия в пункт назначения раньше заданного времени.

5. На междугородной АТС информация о разговорах содержит дату разго- вора, код и название города, время разговора, тариф, номер телефона абонента.

книги, автор, название, год издания, издательство, количество страниц. Вывес-

ти список книг с фамилиями авторов, изданных послеГзаданного года.

 

а

9. Различные цеха завода выпускают продукцию нескольких наименова-

ний. Сведения о выпущенной продукции в люч Бют наименование, количество,

к

номер цеха. Для заданного цеха вывести оличество выпущенных изделий.

е

 

10. Информация о сотрудниках содержит ФИО, номер отдела, должность,

Вывести для заданного города общее время разговоров с ним и сумму.

6. Информация о сотрудниках фирмы включает ФИО, табельный номер,

ние страны, название команды, ФИО игрока, игровой номер,Ивозраст, рост и вес. Вывести фалимии спортсменов, возраст которых больше 20 лет.

количество отработанных часов за месяц, почасовой тариф. Вывести размер за-

работной платы каждого сотрудника.

Р

 

7. Информация об участниках спортивных соревнований содержит назва-

8. Для книг, хранящихся в библиотеке, задаются регистрационныйУ номер

стаж работы на предприятии. Выв сти список сотрудников заданного отдела, имеющих стаж работы на предприятии бол е 20 лет.

11. Ведомость абитуриен ов сод ржит ФИО, адрес, оценки по трем предме- там. Определить средний балл аби уриентов, проживающих в городе Минске.

12. В справочной аэр п р а имеется расписание вылета самолетов. Для

каждого рейса указаны

 

номер, ип самолета, пункт назначения, время выле-

 

 

т

та. Вывести все номера рейсов, вылетающих в заданный пункт назначения.

 

его

и

 

л

 

 

13. У администратора железнодорожных касс имеется информация о сво- бодных местахбв поездах на текущие сутки в следующем виде: пункт назначе- ния, время отправ ения, число свободных мест. Вывести информацию о числе свободных мест в поездах, следующих до заданного пункта назначения.

Б14. Ведомость абитуриентов, сдавших вступительные экзамены в универ- ситет, содерж т ФИО абитуриента и его оценки. Определить средний балл по университету и вывести список абитуриентов, средний балл которых выше среднего балла по университету.

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

29