- •Программирование
- •«Программирование»
- •Чернигов чгту 2011
- •Ответственный за выпуск: Бивойно п.Г., доцент кафедры информационных и компьютерных систем, кандидат технических наук,
- •Введение
- •1Расчетно-графическая работа № 1. Функции и процедуры для расчетов по формулам
- •1.1 Задания к расчетно-графической работе
- •1.2 Пример создания проекта
- •1.2.1Создание интерфейса
- •1.2.1.1 Компонент ole-контейнер
- •1.2.1.2Компонент Group Box
- •1.2.1.3 Компонент Memo
- •1.2.1.4 Завершение работы над интерфейсом
- •1.2.2Создание процедур и функций
- •1.2.2.1Процедура очистки протокола
- •1.2.2.2Процедура инициализации формы
- •1.2.2.3Процедура считывания коэффициентов уравнения
- •1.2.2.4Функция для расчета по формуле
- •1.2.2.5Процедура вызова выполнения расчета по формуле
- •1.2.3Использование дополнительного модуля
- •1.2.4Форматирование результатов расчетов
- •1.2.5Контольный пример
- •1.3 Содержание отчета
- •Рекомендованая литература
- •2Расчетно-графическая работа № 2. Программирование циклов
- •2.1 Задания к расчетно-графической работе
- •2.2 Рекомендации по составлению алгоритмов решаемых задач
- •2.2.1Итерационные алгоритмы
- •2.2.2Алгоритмы вычисления сумм бесконечных рядов
- •2.2.3Алгоритмы обработки последовательностей целых чисел
- •2.2.4Алгоритмы табулирования значений функций
- •2.3 Пример создания проекта
- •2.3.1Компоненты для создания интерфейса проекта
- •2.3.1.1Компоненты PageControl и TabSheet
- •2.3.1.2Компонент CheckBox
- •2.3.1.3Дополнительные требования к интерфейсу
- •2.3.2Создание закладки для вычисления корня
- •2.3.2.1Интерфейс страницы вычисления корня
- •2.3.2.2Процедура вычисления корня
- •2.3.3Создание закладки для вычисления синуса
- •2.3.3.1Интерфейс страницы вычисления синуса
- •2.3.3.2Процедура вычисления синуса
- •2.3.4Создание закладки «Табулирование функции»
- •2.3.4.1 Интерфейс странички «Табулирование функции»
- •2.3.4.2Создание процедуры табулирования функции
- •2.3.5Создание закладки «Обработка последовательности целых чисел»
- •2.3.5.1Интерфейс странички «Обработка последовательности целых чисел»
- •2.3.5.2Создание процедуры обработки последовательности целых чисел
- •Рекомендованая литература
- •3Расчетно-графическая работа № 3. Обработка массивов
- •3.1 Задания для работы с одномерным массивом
- •3.2 Задания на сортировку одномерных массивов
- •3.3 Задания на обработку двумерных массивов
- •3.4 Краткая характеристика вспомогательных модулей
- •3.4.1Интерфейс модуля для работы с одномерными массивами
- •3.4.2Интерфейс модуля для работы с двумерными массивами
- •3.4.3Рекомендации по перестановкам элементов матрицы
- •Перечень основных процедур и функций для работы с типизированными файлами
- •Пример Создание проекта «Результаты аттестации»
- •4.1.1Требования к проекту
- •4.1.2Интерфейс пользователя для проекта
- •4.1.3Определение типов данных
- •4.1.4Настройка интерфейса пользователя
- •4.1.5Вспомогательные процедуры для работы с файлом Процедура выбора имени файла
- •4.1.5.1Процедура открытия файла
- •4.1.5.2Процедура вывода файла в StringGrid
- •4.1.6Процедуры работы со StringGrid1
- •4.1.7Процедуры реализации пунктов меню fileMenu
- •4.1.7.1Добавление данных из StringGrid1 в файл
- •4.1.7.2Поиск записи по фамилии
- •4.1.7.3Удаление записи по фамилии
- •4.1.7.4Сохранение файла под другим именем
- •Содержание отчета
- •Рекомендованая литература
Перечень основных процедур и функций для работы с типизированными файлами
В таблице 4.2 приведены для справки основные процедуры и функции, используемые при работе с типизированными файлами.
Таблица 4.2 – Основные процедуры, обеспечивающие работу с файлами |
|
Назначение операции |
Синтаксис операции |
Определение имени |
AssignFile( <файловая переменная>,<имя файла> ) |
Создание (очистка) |
Rewrite( <файловая переменная > ) |
Установка в начало |
Reset( <файловая переменная > ) |
Закрыть файл |
CloseFile ( <файловая переменная > ) |
Удалить файл |
Erase( <файловая переменная > ) |
Размер файла |
FileSize(<файловая переменная >) |
Номер текущей записи |
FilePos(<файловая переменная >) |
Перейти к записи |
Seek( <файловая переменная >, <номер записи> ) |
Записать в текущую файловую позицию |
Write(<файловая переменная >, <переменная соотв. типа>) |
Читать из текущей файловой позиции |
Read(<файловая переменная >, <переменная соотв. типа> |
Обрезать «хвост» |
Truncate(<файловая переменная >) |
Конец файла |
Eof( <файловая переменная > ) |
Пример Создание проекта «Результаты аттестации»
Данный проект можно рассматривать как пример выполнения задания к расчетно-графической работе. Точного следования этому образцу от студента не требуется.
В этом проекте мы будем работать с файлом, содержащим информацию о результатах аттестации студентов. Каждая запись файла будет хранить информацию о группе студента, фамилии, количестве неудовлетворительных оценок и среднем балле.
Реализация проекта находится в папке kid\pub\lectures\1_kurs\ projectToLection\.To_lection_18_19.
4.1.1Требования к проекту
Проект должен обеспечить:
Просмотр записей файла в StringGrid.
Добавление группы записей из StringGrid к файлу.
Поиск записи по заданной фамилии .
Удаление записи.
Подсчет количества отличников в файле.
Сохранение файла под другим именем.
Сортировку файла по фамилиям и по результатам успеваемости.
Вставку записи в упорядоченный файл.
Удаление записи из упорядоченного файла.
4.1.2Интерфейс пользователя для проекта
Интерфейс разрабатываемого проекта представлен на рисунке 4.1.
Рисунок 4.1 – Интерфейс проекта
Интерфейс проекта предполагает, что исходная информация, которую необходимо добавить к файлу, будет храниться в ячейках компонента StringGrid1. Содержимое файла будет отображаться в компоненте StringGrid2. Результаты сортировки файла и результаты обработки отсортированного файла будут записываться в компонент StringGrid3.
Каждый из этих компонентов имеет встроенное меню (popupMenu), которое будет появляться при нажатии правой кнопки мышки, если курсор находится в поле компонента. Компонент PopupMenu расположен на закладке Standard палитры компонентов. Он видим только во время конструирования формы, и может располагаться где угодно. Для того чтобы связать это меню с каким-то компонентом, следует настроить свойство PopupMenu этого компонента, выбрав нужное меню из списка. Во избежание путаницы, следует внимательно подходить к наименованию меню. В нашем проекте будут использоваться названия для меню компонентов StringGrid и их функций приведенные в таблице 4.3.
Таблица 4.3 – Названия пунктов меню интерфейса пользователя |
|||
Компонент |
Имя PopupMenu |
Назначение пункта меню (Caption) |
Имя (Name) пункта меню |
StringGrid1 |
gridMenu |
Добавить строку к StringGrid1 |
mnuAddRow |
Удалить текущую строку из StringGrid1 |
mnuDelRow |
||
StringGrid2 |
fileMenu |
Показать файл |
mnuShowFile |
Добавить в файл из StringGrid1 |
mnuAddToFile |
||
Найти запись по фамилии |
mnuFindFam |
||
Удалить запись по фамилии |
mnuDelFam |
||
Подсчет количества отличников |
mnuCalc5 |
||
Сохранение файла под другим именем |
mnuSaveAs |
||
StringGrid3 |
sortMenu |
Упорядочить по фамилии |
mnuSortFam |
Найти по фамилии |
mnuFindInSort |
||
Удалить запись |
mnuDelInSort |
||
Добавить записи из StringGrid1 |
mnuAddToSort |
Для того чтобы настроить нужные функции меню следует сделать двойной щелчок по пиктограмме меню и в появившемся диалоге выделить свободную строку для пункта меню. Затем в инспекторе объектов настроить свойства Caption и Name.
Каждый пункт в PopupMenu является объектом, поэтому с ним связаны не только свойства Caption и Name но и событие onClick. Шаблон функции обработки этого события можно создать, используя закладку Events инспектора объектов.
Для удобства выбора имени файла в конструкторе формы, показанном на рисунке 4.1, предусмотрены компоненты OpenDialog и SaveDialog которые можно найти на закладке Dialogs палитры компонентов. Первый из них будет вызываться при нажатии кнопки «Имя файла» для выбора имени файла при его открытии, а второй при вызове функции меню «Сохранение файла под другим именем».