- •СОДЕРЖАНИЕ
- •1.1. Консольный режим работы среды Visual С++ 6.0
- •1.2. Функции библиотеки math.lib
- •1.4. Индивидуальные задания
- •Лабораторная работа №2 ПРОГРАММИРОВАНИЕ РАЗВЕТВЛЯЮЩИХСЯ АЛГОРИТМОВ
- •2.1. Логические операции и операции сравнения
- •2.2. Оператор условной передачи управления if
- •2.3. Оператор множественного выбора switch
- •2.4. Пример выполнения работы
- •2.5. Индивидуальные задания
- •Лабораторная работа №3 ПРОГРАММИРОВАНИЕ ЦИКЛИЧЕСКИХ АЛГОРИТМОВ
- •3.1. Оператор цикла с параметром for
- •3.4. Операторы перехода
- •3.5. Отладка программы
- •3.6. Пример выполнения работы
- •3.7. Индивидуальные задания
- •Лабораторная работа №4 ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ОДНОМЕРНЫХ МАССИВОВ
- •4.1. Одномерные статические массивы
- •4.2. Пример выполнения работы
- •4.3. Индивидуальные задания
- •Лабораторная работа №5 УКАЗАТЕЛИ. ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ДИНАМИЧЕСКИХ ДВУМЕРНЫХ МАССИВОВ
- •5.1. Объявление указателя
- •5.2. Операции над указателями
- •5.5. Индивидуальные задания
- •Лабораторная работа №6 ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ СТРОК
- •6.1. Объявление строк
- •6.2. Функции для работы со строками
- •6.3. Пример выполнения работы
- •Лабораторная работа №7 ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ СТРУКТУР
- •7.1. Объявление структур
- •7.3. Индивидуальные задания
- •Лабораторная работа №8 ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ФУНКЦИЙ
- •8.1. Объявление функции
- •8.2. Передача параметров
- •8.2.1. Передача параметров по значению
- •8.2.2. Передача параметров по ссылке
- •8.4. Указатель на функцию
- •8.5. Пример выполнения работы
- •8.6. Индивидуальные задания
- •Лабораторная работа №9 ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ФАЙЛОВ
- •9.1. Организация работы с файлами
- •9.2. Функции для работы с файлами
- •9.3. Пример выполнения работы
- •10.1. Сортировка массивов
- •10.1.1. Метод пузырька
- •10.1.2. Сортировка выбором
- •10.1.3. Сортировка вставками
- •10.2. Индивидуальные задания
- •Лабораторная работа №11 ПОИСК ПО КЛЮЧУ В ОДНОМЕРНОМ МАССИВЕ СТРУКТУР
- •11.1. Поиск в массиве
- •11.1.1. Линейный поиск (метод полного перебора)
- •11.2. Индивидуальные задания
- •ЛИТЕРАТУРА
Лабораторная работа №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