2 курс - Основы алгоритмизации _ вариант 3 / Задания / Лабораторная работа 14
.docЛабораторная работа 14.
Структуры.
1. Цель работы:
Получить практические навыки работы со структурами и строками.
Получить практические навыки организации массивов с элементами сложной структуры.
2. Постановка задачи
Написать процедуру для формирования массива из элементов структурного типа. Структурный тип определен в варианте. Данные получить из заранее подготовленного файла Input.txt, содержащего не менее 15 записей в соответствующем формате.
Найти записи в файле, удовлетворяющие заданным условиям (колонка «Критерий для поиска»), занести найденные записи во второй массив.
Написать процедуру для вывода структуры на экран. Используя эту процедуру, написать процедуру вывода массива на экран. Вывести массив, полученный в результате выполнения заданий 1 и 2 на экран.
Написать процедуру для вывода массива в файл. В качестве параметров функция должна принимать массив и строку – имя файла..
Написать процедуру для обработки массива в соответствии с заданием своего варианта (последняя колонка). Преобразовать оба массива и вывести результаты в два файла (отдельно для каждого массива).
Написать функцию для вывода вектора в файл и вывести в файл Search.txt результаты поиска.
4 Варианты
№ варианта |
Структура |
Критерий для поиска |
Задание для обработки массива структур |
1 |
struct person { string name; string adres; int age; }; |
Имена начинаются на букву ‘A’ и возраст не менее 16 лет |
Отсортировать по возрастанию поля adres |
2 |
struct date { int day; string month; int year; }; |
Даты с летними месяцами и чётными днями |
Отсортировать по убыванию поля year |
3 |
struct student { string name; int kurs; float rating }; |
Поиск по указанной фамилии среди студентов 1 курса |
Удалить студентов, имеющих рейтинг ниже указанного |
4 |
struct employee { string name; float salary; int stage }; |
Поиск по указанной фамилии и стажем более 3 лет |
Поменять местами записи о сотрудниках с самой маленькой и самой большой зарплатой |
5 |
struct pupil { string name; int age; float rating }; |
Ученики со средним баллом больше 4 и указанной фамилией. |
Отсортировать по убыванию поля name |
6 |
struct person { string name; string family; unsigned long int telefon; }; |
Поиск по указанной фамилии (или первым буквам фамилии) |
Удалить персон, чьи телефоны начинаются с указанной цифры. |
7 |
struct date { int day; string month; int year; }; |
Даты, в которых встречается указанная буква |
Вставить на указанное место дату Вашего рождения |
8 |
struct student { string name; int kurs; float rating; }; |
Студенты, у которых рейтинг меньше 3 с фамилией, начинающейся на указанную букву. |
Отсортировать по убыванию рейтинга |
9 |
struct book { string autor; int year; string title; }; |
Книги указанного автора, в заглавии встречается казанное слово |
Отсортировать по возрастанию года издания |
10 |
struct pupil { string name; int age; float rating }; |
Ученики, у которых фамилия или имя начинается с указанных буквосочетаний |
Удалить самого старшего ученика |
5. Методические указания
Если в файле отсутствуют элементы, соответствующие критерию поиска, то должно быть выведено сообщение о том, что требуемые элементы не найдены.
При удалении элементов массива предусмотреть ситуации, когда массив пуст или количество удаляемых элементов будет превышать количество имеющихся элементов. В этом случае должно быть выведено сообщение об ошибке.
6. Критерии оценивания работы
В таблице приведены критерии, по которым студент может оценить свою работу.
Критерии оценивания заданий |
Процент |
При наличии синтаксических ошибок (программа не транслируется) работа не оценивается (0 процентов выполнения) |
(набранные баллы)*0 |
Наличие логических ошибок, например, зацикливание программы или возникновение ошибки времени выполнения |
-50% |
Небрежное оформление, отсутствие сведений о разработчике, наличие предупреждений, недружелюбный интерфейс |
-20% |
Вспомогательные алгоритмы: |
|
|
20 |
|
20 |
|
5 |
|
5 |
|
25 |
|
25 |
Итого - |
100 % |
Дополнительно к этому общая оценка работы: |
|
Аккуратное форматирование, комментариев необходимое и достаточное количество Программа выводит сведения о разработчике и номер варианта. |
5 |
Итого |
100 % |