
2 семестр ФИБС / Информатика / 1 практика / FIO_Pr_1
.doc
МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра ИИСТ
отчет
по практической работе №1
по дисциплине «Информатика»
Тема: Структуры в С++
Студент гр. номер |
|
ФИО |
Преподаватель |
|
Куракина Н.И |
Санкт-Петербург
20__
Цель работы.
Познакомиться со структурами в языке программирования С++, а также научиться писать функции, обрабатывающие структуры.
Основные теоретические положения.
В языке программирования C++ позволяет программистам создавать свои собственные пользовательские типы данных — типы, которые группируют несколько отдельных переменных вместе. Одним из простейших пользовательских типов данных является структура. Структура позволяет сгруппировать переменные разных типов в единое целое.
Для того чтобы создать структуру мы должны в начале сообщить компилятору, как она вообще будет выглядеть. Для этого используется ключевое слово struct и после пишем название структуры. Пример struct primer. После пишем круглые скобки и в них указываем переменные, не забываю про точку запятой после круглой скобки. Одной из самых простых ошибок в C++ является забыть точку с запятой в конце объявления структуры. Большим преимуществом использования структур, нежели отдельных переменных, является возможность передать всю структуру в функцию, которая должна работать с её членами.
Задание.
Разработать структуру для описанных ниже объектов. Выбранная структура должна иметь не менее пяти полей (элементов) двух и более типов. Для выбранной структуры данных написать следующие функции: функцию формирования динамического одномерного массива структур, значения которых вводятся с клавиатуры, функцию вывода на экран содержимого динамического массива структур, функцию сохранения массива структур в файле на диске, функцию поиска и вывода на экран структуры (структур) с заданным значением элемента.
Задание 17, выданное мне содержит следующую структуру ,,Школьник” со следующими данными: фамилия; имя; отчество; пол; национальность; рост; вес; дата рождения (год, месяц число); номер телефона; домашний адрес (почтовый индекс, страна, область, район, город, улица, дом, квартира); школа; класс.
Необходимо вывести:
1. Cписок школьников, учащихся в заданной школе;
2. Cписок школьников, имеющих одинаковую фамилию;
3. Максимальное количество учеников в классе.
1. Необходимо вывести список школьников, учащихся в заданной школе. Пояснение: Для выполнения необходимо создать отдельную функцию, которая будет запрашивать номер школы и после сравнивать его с каждым учеником и в случае совпадения выводить соответствующего ученика. Также нельзя забывать про текстовый вывод в файл, полученной таблицы.
Рисунок 1. Функция поиска учеников по вводимой школе.
2. Необходимо вывести список, имеющих одинаковую фамилию. Пояснение: В задании подразумевает вывести список учеников с одинаковой фамилией. Для этого нужно создать функцию, которая будет перебором сравнивать первого ученика с каждым другим и если будет находить одинаковую фамилию, то будет выводить его. Также нельзя забывать про текстовый вывод в файл, полученной таблицы.
Рисунок 2. Функция поиска учеников с одинаковой фамилией.
Рисунок 2.1. Функция поиска учеников с одинаковой фамилией.
3. Необходимо вывести максимальное количество учеников в классе. Пояснение: В задании требуется вывести максимальное количество учеников в классе, а значит нужно написать функцию определяющую максимум учеников, анализирую данные, которые мы ввели изначально. Также нельзя забывать про текстовый вывод в файл, полученной таблицы.
Рисунок 3. Функция определяющая максимум учеников.
Рисунок 3.1. Функция определяющая максимум учеников.
Результаты работы
Для примера введу такие данные.
Рисунок 4. Данные вводимые в программу.
Рисунок 5. Результат работы программы.
Пояснения: Некоторые значения не в точности совпадают с таблицей из-за сложности заполнения цифровых значений.
Код всей программы:
Рисунок 6.1. Скриншот кода.
Рисунок 6.2. Скриншот кода.
Рисунок 6.3. Скриншот кода.
Рисунок 6.4. Скриншот кода.
Рисунок 6.5. Скриншот кода.
Рисунок 6.6.Скриншот кода.
Рисунок 6.6.Скриншот кода.
Рисунок 6.7.Скриншот кода.
Вывод
В проделанной работе были освоены навыки работы со структурами в С++, освоен ввод данных в структуру, вывод данных из структуры и поиск определенных значений в структуре.