Лабораторная работа №10
Лабораторная работа №10
Разработка программ с использованием структур в Pascal
Цель работы
Приобретение практических навыков разработки программ с использованием структур данных и файлового ввода-вывода в языке Pascal.
Теоретические сведения
Структура в Pascal - это составной тип данных, объединяющий несколько переменных разных типов под одним именем.
Основные элементы работы со структурами:
· Объявление типа записи (record)
· Создание переменных
· Доступ к полям через точку
· Работа с файлами записей
Задание 1: Работа с файлами личных данных.
Условие: Создать структуру Person с
полями: ФИО, дата рождения, адрес, телефон.
Написать программу, которая:
· Создает файл с записями о людях
· Сохраняет в файл 5 записей
· Читает файл и выводит информацию о людях старше 18 лет
Тип записи Person:
pascal
typePerson =record
FIO:string[50];
Date:record
Day, Month, Year: integerend;
Address:string[100];
Phone:string[15]
end;
Алгоритм решения:
1. Создание файла для записи
2. Ввод 5 записей
3. Сохранение в файл
4. Чтение и фильтрация по возрасту
Задание 2: Обработка данных о студентах.
Условие: Определить структуру Student с полями: номер зачётной
книжки, ФИО, средний балл, список оценок.
Написать программу, которая:
· Создает бинарный файл для хранения данных о студентах
· Добавляет в файл информацию о 10 студентах
· Находит и сохраняет в новый файл отличников
· Выводит статистику по среднему баллу группы
Тип записи Student:
pascal
typeStudent =record
Zno: integer;FIO:string[50];
AvgMark: real;Marks:array[1..5]ofinteger
end;
Основные функции:
· Создание бинарного файла
· Добавление записей
· Поиск отличников
· Расчет статистики
Задание 3: Работа с базой данных товаров.
Условие: Создать структуру Product с
полями: код товара, название, цена, количество на складе.
Написать программу, которая:
· Организует работу с файлом товаров
· Реализует функции добавления/удаления товара
· Осуществляет поиск по названию или коду
· Формирует отчёт о товарах с нулевым остатком
Тип записи Product:
pascal
typeProduct =record
Code: integer;Name:string[50];
Price: real;Quantity: integer
end;
Функционал:
· Управление базой товаров
· Поиск по критериям
· Формирование отчетов
· Работа с файлом
Задание 4: Обработка результатов экзаменов.
Условие: Определить структуру ExamResult с полями: ФИО
студента, предмет, оценка, дата сдачи.
Написать программу, которая:
· Создает файл для хранения результатов экзаменов
· Реализует добавление новых результатов
· Формирует ведомость по каждому предмету
· Выводит список отличников
· Сохраняет результаты в текстовый файл
Тип записи ExamResult:
pascal
typeExamResult =record
FIO:string[50];
Subject:string[30];
Mark: integer;Date:record
Day, Month, Year: integerend
end;
Задание 5: Работа с базой данных книг.
Условие: Создать структуру Book с
полями: ISBN, название, автор, год издания, количество экземпляров.
Написать программу, которая:
· Организует работу с файлом библиотеки
· Реализует функции выдачи/возврата книг
· Формирует отчёт о популярных книгах
· Сохраняет статистику по годам издания
· Осуществляет поиск книг по автору или названию
Тип записи Book:
pascal
typeBook =record
ISBN:string[15];
Title:string[100];
Author:string[50];
Year: integer; Copies: integerend;
Общие требования к реализации
1. Работа с файлами:
· Использование файловых переменных
· Проверка существования файлов
· Корректное открытие/закрытие
· Обработка ошибок
2. Пользовательский интерфейс:
· Меню программы
· Валидация ввода
· Информативные сообщения
3. Обработка данных:
· Проверка корректности
· Сортировка
· Поиск
· Фильтрация
Порядок выполнения работы
1. Подготовительный этап:
· Изучение задания
· Проектирование структуры данных
· Разработка алгоритма
2. Реализация:
· Написание кода
· Отладка программы
· Тестирование
3. Оформление отчета:
· Описание решения
· Листинг программы
· Результаты тестирования
Контрольные вопросы
1. Что такое запись (record) в Pascal?
2. Как объявляются и используются типы записей?
3. Какие существуют способы работы с файлами записей?
4. Как осуществляется доступ к полям записи?
5. Какие методы сортировки можно использовать для записей?
Пример структуры основной программы
pascal
program LabWork;uses Crt, Dos; type// Объявление типов записей
var// Объявление переменных
procedure Menu;begin// Реализация меню
end; procedure WorkWithFile;begin// Работа с файлами
end; begin ClrScr;// Основная программа
Menu; WorkWithFile; ReadLn;end.
Для каждого задания необходимо:
· Продумать структуру данных
· Реализовать корректную работу с файлами (создание, чтение, запись)
· Обеспечить обработку ошибок
· Добавить пользовательский интерфейс
· Предусмотреть сохранение изменений в файл