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

Лабораторный практикум

.pdf
Скачиваний:
48
Добавлен:
15.06.2021
Размер:
3 Mб
Скачать

рабочей недели, и одновременно подсчитывается сумма деталей, которая выводится после выполнения внутреннего цикла.

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

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

Функция:

void lider ( Wokers a[], int n, int &n_max, int &day)

{

int max=0;n_max=-1; int j;

for(int i=0;i<n;i++)

{

int sum=0;

for(j=0;j<6;j++) sum+=a[i].kol[j]; if(sum>max)

{

max=sum; n_max=i;

}

}

day=-1; int max_day=0; for(j=0;j<6;j++) if(a[n_max].kol[j]>max_day)

{

133

max_day=a[n_max].kol[j]; day=j;

}

}

Основная функция main. В основной функции выполняется инициализация массива структуры, выводится информация по каждому сборщику с использованием функции output, определяется лидер и день, когда он достиг наивысшей производительности труда (функция lider). Используя оператор множественного выбора switch, название дня недели выводится в общепринятом виде.

Функция main:

int main()

{

setlocale(LC_CTYPE,"Russian"); Wokers t[10]={

"Иванов",25,10,10,20,40,26, "Петров",45,20,16,29,39,84, "Сидоров",35,6,86,23,53,57, "Куликов",58,30,76,87,34,65, "Егорова",45,22,87,34,76,12, "Добрый",43,10,98,23,56,74, "Янова",50,28,84,83,74,67, "Борисова",60,35,76,34,56,78, "Миронов",39,17,34,54,66,45, "Ягодкин",45,18,34,43,54,65}; cout<<"Исходные данные"<<endl; output(t,10);

int n_max,day; lider(t,10,n_max,day); cout<<endl<<endl;

cout<<"Лидер: "<<setw(10)<<t[n_max].name<<"

день= "; switch(day)

{

case 0: cout<<"Понедельник";break; case 1: cout<<"Вторник ";break; case 2: cout<<"Среда ";break;

case 3: cout<<"Четверг ";break; case 4: cout<<"Пятница ";break; case 5: cout<<"Суббота";break; };

cout<<endl<<endl;

134

}

Результат выполнения программы приведен на рис.2.

Рис.2. Результат выполнения программы к примеру 2

Порядок выполнения работы

1.Разработать и выполнить программу в соответствии с вариантом задания.

2.Результаты выполнения программы занести в отчет по работе.

3.Показать результаты работы преподавателю.

Требования к отчету

Отчет должен содержать:

1)наименование лабораторной работы;

2)формулировка задания;

3)текст программы для варианта задания;

4)результат выполнения программы (скриншот).

135

Варианты заданий

Написать программу в соответствии с номером варианта. Номер варианта задания соответствует номеру компьютера в компьютерном классе, за которым выполняется лабораторная работа.

Задание

п/п

 

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

2Сформируйте массив, содержащий сведения о номерах телефонов абонента: фамилия абонентов, год установки телефона. Напишите программу, которая выдает информацию об абонентах телефонной сети в алфавитном порядке фамилий. По введенной фамилии абонента выведите его номер телефона на экран

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

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

136

Продолжение

Задание

п/п

 

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

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

7Сформируйте массив, содержащий сведения об ассортименте обуви в магазине фирмы: артикул, наименование, количество, стоимость одной пары. Артикул начинается с буквы Д - для дамской обуви, М - для мужской, П - для детской. Напишите программу, которая выдает информацию об ассортименте обуви в порядке убывания ее стоимости. Выведите на экран информацию о всей дамской обуви

8Сформируйте массив, содержащий сведения о нападающих команды «Спартак»: фамилии игроков, число заброшенных ими шайб, число сделанных голевых передач, заработанное штрафное время. Напишите программу, которая выдает информацию о нападающих команды в порядке убывания забитых голов. Выведите на экран информацию о нападающих, имеющих количество результативных передач не менее X

9Сформируйте массив, содержащий сведения о том, какие из пяти предлагаемых дисциплин по выбору желает изучать студент: фамилия студента, факультет, номер группы, пять дисциплин, средний балл успеваемости. Выбираемая дисциплина отмечается символом 1, иначе - 0. Напишите программу, которая выдает информацию о студентах в алфавитном порядке их фамилий. Выведите на экран информацию о студентах, желающих изучать дисциплину X, чей средний балл успеваемости не ниже Y

137

Продолжение

Задание

п/п

 

10Сформируйте массив, содержащий сведения об отправлении поездов дальнего следования с Казанского вокзала: номер поезда, пункт назначения, время отправления, время в пути, наличие билетов. Напишите программу, которая выдает информацию о поездах дальнего следования, в порядке увеличения времени отправления. Выведите на экран информацию о поездах с пунктом назначения Х

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

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

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

14Сформируйте массив, содержащий сведения о клиентах турагентства: фамилия клиента, страна турпоездки, год поездки, стоимость тура. Напишите программу, которая выдает информацию о клиентах в порядке убывания года. Выведите на экран информацию о клиентах, стоимость тура которых не превосходил стоимость Y

138

Продолжение

Задание

п/п

 

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

XXXX г.

16Сформируйте массив, содержащий сведения об ассортименте обуви в магазине фирмы: артикул, наименование, количество, стоимость одной пары. Артикул начинается с буквы Д - для дамской обуви, М - для мужской, П - для детской. Напишите программу, которая выдает информацию об ассортименте обуви в алфавитном порядке наименований. Выведите на экран информацию об обуви, стоимость которой находится в диапазоне от A до B

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

18Сформируйте массив, содержащий сведения о теннисистах чемпионата: фамилия спортсмена, число выигранных матчей, количество двойных подач, количество подач навылет. Напишите программу, которая выдает информацию о теннисистах в порядке убывания подач навылет. Выведите на экран информацию о спортсменах, количество выигранных матчей у которых не менее X

19Сформируйте массив, содержащий сведения о том, какие из пяти предлагаемых дисциплин по выбору желает изучать студент: фамилия студента, факультет, номер группы, пять дисциплин, средний балл успеваемости. Выбираемая дисциплина отмечается символом 1, иначе - 0. Напишите программу, которая выдает информацию о студентах в порядке убывания среднего балла. Выведите на экран дисциплину, которую не желает изучать большинство студентов

139

Продолжение

Задание

п/п

 

20Сформируйте массив, содержащий сведения об отправлении поездов дальнего следования с Казанского вокзала: номер поезда, пункт назначения, время отправления, время в пути, наличие билетов. Напишите программу, которая выдает информацию о поездах дальнего следования в порядке убывания времени в пути. Выведите на экран информацию о поездах, отправляющихся в рейс после X ч

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

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

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

24Сформируйте массив, содержащий сведения о телефонных номерах абонентов: фамилия абонента, год установки телефона. Напишите программу, которая выдает информацию об абонентах по возрастанию года установки телефонов и определите количество установленных телефонов с XXXX г. Номер года вводится с клавиатуры

140

Окончание

Задание

п/п

 

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

141

Лабораторная работа № 8

Программирование задач с использованием строкового типа данных

Цель работы: изучение возможности программирования задач с использованием строкового типа данных; получение практических навыков программирования с использованием строк.

Теоретические сведения

Строка - это набор символов. Признаком конца строки служит 0.

Общий вид описания переменных строкового типа:

char имя_массива[кол-во символов в строке]; char имя_массива[];

char *имя_массива

Например:

char str[25]; char my_str[]; char *str_1;

Инициализация переменных строкового типа. Для задания зна-

чений переменным строкового типа достаточно при объявлении переменной присвоить строку символов, заключенных в кавычки. Размер строки можно не указывать, компилятор вычислит размер строки самостоятельно. Можно выделять динамическую область памяти для строковых переменных.

Примеры инициализации:

char str[25]=”The first string”; char my_str[]=”The second string”; char *str_1=new char[25]; strcpy(str_1,”The third string”);

142