p align="left">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 | | |
Страницы: 1, 2, 3
|