Смекни!
smekni.com

Разработка программы при помощи языка программирования языка Delphi (стр. 2 из 4)

- вывод содержимого всего файла на экранной форме в виде таблицы;

- продвижение к следующей записи в файле;

- продвижение на предыдущую запись типизированного файла;

- возможность редактирования данных в имеющихся записях типизированного файла;

- возможность добавления новых записей в типизированный файл;

- возможность удаления отдельных записей из типизированного файла;

- поиск записей по какому-либо критерию и вывод результатов на экранную форму;

Последующие разделы будут посвящены решению поставленных задач и разработке приложения с вышеперечисленными функциями.


2 Разработка ЭКРАННЫХ ФОРМ И алгоритма программы

В предыдущем разделе было сказано, что процесс решения поставленной задачи разбивается на 3 этапа, первый из которых заключается в построении интерфейса с пользователем на основе экранных форм и визуальных объектов проектирования.

По сформулированной в предыдущем задании постановке должна иметься возможность выполнения манипуляций с файлами на жестком диске (открытие, сохранение, создание). Для этого разместим на форме объекты OpenDlg типа TOpenDialog (стандартный диалог открытия файла) и SaveDlg типа TSaveDialog (стандартный диалог сохранения файла). Эти объекты помогают автоматизировать процесс навигации по иерархии файлов и папок жесткого диска компьютера и выбора требуемого имени для открытия или сохранения файла.

Для запуска процедур открытия или создания файла, разместим на форме объект MainMenu типа TMainMenu. Настройка пунктов меню приведена на рисунке 2.1

Рисунок 2.1 – Настройка пунктов главного меню

Для возможности ввода исходных данных о компьютере поместим на форме поля ввода типа TEdit и соответствующие метки описания к ним. Для вывода информации о всех компьютерах аэропорта, предусмотрим объект SGrid1 типа TStringGrid, в который позволяет выводить информацию в виде таблицы.

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

В итоге, спроектируем экранную форму, вид которой приведен на рисунке 2.2

Рисунок 2.2 – Экранная форма приложения

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

Словесный алгоритм действий при открытии файла:

1. Открыть файл для чтения.

2. Принять размерность массива равной нулю.

3. Считать очередную запись из файла.

4. Если достигнут конец файла, перейти на пункт 8.

5. Увеличить длину динамического массива на единицу.

6. Занести очередную запись, считанную из файла в конец массива.

7. Перейти на пункт 3.

8. Закрыть файл.

9. Отобразить содержимое массива в таблице на экранной форме.

10. Конец

Словесный алгоритм действий при сохранении файла:

1. Открыть требуемый файл для записи.

2. Установить <номер> на начало массива (номер равен нулю).

3. Если достигнут конец массива, перейти на пункт 6.

4. Сохранить очередной элемент массива под номером <номер> в конец файла.

5. Нарастить <номер> на 1 и перейти на пункт 3.

6. Закрыть файл.

7. Конец.

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

1. Установить <номер1> на начало исходного массива А.

2. Обнулить размерность результирующего массива В.

3. Если достигнут конец массива А, перейти на пункт 8.

4. Если запись <номер1> исходного массива А удовлетворяет критериям поиска, перейти на пункт 4, если не удовлетворяет, перейти на пункт 7.

5. Нарастить длину результирующего массива В на единицу.

6. Записать элемент <номер1> массива А в конец результирующего массива В.

7. Нарастить <номер1> на единицу и перейти на пункт 3.

8. Отобразить содержимое массива В в таблице на экранной форме.

9. Конец.

Анализируя требования к функциям разрабатываемого приложения под разработанную экранную форму можно выделить следующие программные модули:

1) вывод информации о разработчике программы и задании на курсовой проект;

2) создание нового типизированного файла, с информацией о компьютерах (инициализация временного массива записей );

3) сохранение содержимого файла в типизированном файле на жестком диске;

4) сохранение содержимого файла в типизированном файле на жестком диске под новым именем;

5) вывод информации о компьютере текущей записи массива в поля ввода на экранной форме;

6) перенос информации из типизированного файла в динамический массив и вывод содержимого на форме;

7) продвижение к следующей записи в массиве;

8) продвижение на предыдущую запись массива;

9) перенос информации из полей ввода в поля текущей записи из массива;

10) добавление новой записи в массив;

11) удаление текущей записи из массива;

12) поиск записей по какому-либо критерию и вывод результатов на экранную форму;

13) вывод содержимого динамического массива на объекте типа TStringGrid.

Каждый из вышеприведенных модулей реализуем при помощи процедуры. Модули 1,2, 3, 4, 6 будут обработчиками нажатий на соответствующие пункты главного меню. Для запуска модулей 7, 8, 9, 10, 11, 12 предусмотрим экранные кнопки на форме, для чего поместим на форму объекты типа TBitButton. А сами процедуры будут реализованы как обработчики нажатия на соответствующие кнопки. Модули 5, 13 реализуем как отдельную процедуру.

Cоставим алгоритм приложения, который представлен в приложении на рисунке A.1. На алгоритме приведены основные события экранной формы. В этом алгоритме:

блок №3 реализован процедурой NOpenClick,

блок №4 процедурой NSaveClick,

блок №5 - процедурой NShowClick,

блок №6 - процедурой NSaveAsClick,

блок №7 - процедурой NCreateClick,

блок №8 реализован процедурой BBDeleteClick,

блок №9 процедурой NInfoClick,

блок №10 - процедурой BBNextClick,

блок №11 - процедурой BBPrevClick,

блок №12 - процедурой BBUpdateClick,

блок №13 - процедурой BBAddClick,

блок №14 - процедурой BBSearchClick,

блок №15 - процедурой NExitClick.

Детальное описание разработанной программы, алгоритмов и их программной реализации приведено в последующих разделах.

3 ОПИСАНИЕ ПРОГРАММНЫХ МОДУЛЕЙ

3.1 Описание переменных и объектов

В программе используется глобальная переменная Form1, которая представляет собой экранную форму.

Для организации интерфейса с пользователем были разработаны экранные формы, в результате чего на экранной форме Form1 поместили элементы, приведенные в таблице 3.1

Таблица 3.1– Описание визуальных объектов на форме Form1

Наименование Тип Назначение
MainMenu1 TMainMenu главное меню
NOpen, NSave, NSaveAs, NCreate, NExit, NInfo, NShow TMenuItem пункты главного меню «Открыть», «Сохранить», «Сохранить как», «Создать», «Выход», «Информация», «Показать»
EName, EHDD, ERAM, EMonitor, TEdit поля для ввода данных о наименовании компьютера, объеме диска, памяти, типе монитора.
RGrInet TRadioGroup поле для ввода информации о подключении к интернет
SGrid1 TStringGrid вывод содержимого файла в виде таблицы
BBPrev TBitBtn кнопка с надписью «Предыдущая запись»
BBNext TBitBtn кнопка с надписью «Следующая запись»
BBDelete TBitBtn кнопка с надписью «Удалить»
BBAdd TBitBtn кнопка с надписью «Добавить»
BBUpdate TBitBtn кнопка с надписью «Редактировать»
BBSearch TBitBtn кнопка с надписью «Поиск»
OpenDlg1 TOpenDialog стандартный диалог открытия файлов
SaveDlg TSaveDialog стандартный диалог сохранения файла

В разделе var опишем переменные, приведенные в таблице 3.2


Таблица 3.2– Переменные программы

Наименование Тип Назначение
F file of TComp типизированный файл с данными о компьютерах
Comp TComp информация об одном компьютере
AComp array of TComp данные обо всех компьютерах в виде массива
CurK integer номер текущей записи в массиве AComp
Fname string имя текущего (рабочего) файла

Для хранения данных о компьютере разработаем составной тип данных TComp c полями, приведенными в таблице 3.3

Таблица 3.3 – Информационные поля о компьютере

Наименование Тип Назначение
Name string[20] наименование компьютера
HDD real объём жесткого диска
RAM integer объём оперативной памяти
Monitor string[20] тип монитора
Inet boolean наличие подключения к интернет

В разработанной программе содержится описание 13 процедур обработчиков событий и 4 вспомогательных процедуры, которые приведены в таблице 3.4.

Таблица 3.4 Пользовательские процедуры и обработчики событий

Наименование Обр-к Назначение Строки
GetComp - поиск компьютера по имени 78-89
ShowComp - вывод информации о компьютере на форму 90-101
ShowCompInGrid - вывод информации о компьютере в таблицу 102-114
ShowAComp - вывод содержимого массива FComp в таблицу 115-127
BBAddClick + добавление новой записи о новом компьютере 128-149
BBPrevClick + переход на предыдущую запись 150-157
BBNextClick + переход на следующую запись 158-165
NSaveClick + сохранение текущего файла 166-179
NSaveAsClick + запуск диалога и сохранение в файле с заданным именем 180-194
NOpenClick + запуск диалога и открытие файла 195-216
BBDeleteClick + удаление текущей записи 217-230
NCreateClick + инициализация массива AComp 231-237
FormCreate + инициализация шапки таблицы 238-247
BBUpdateClick + обновление записи в массиве данными из полей ввода 248-260
NShowClick + вывод содержимого текущего файла на форму 261-278
BBSearchClick + поиск компьютеров согласно некоторым критериям и вывод результатов поиска 279-312
NInfoClick + вывод информации о разработчике 313-317
NExitClick + выход из приложения 318-322

Более подробно некоторые процедуры будут рассмотрены далее.