Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Данные Протокол Настройка Режим




Данные

Протокол

Настройка


а) б)

Рис. 3.4. Улучшенные варианты системы управления приложением с подчиненными формами (а) и с одним субменю и управляемыми кнопками (б)

На рис. 3.4,а меню управления приложением включает только команды, соответствующие режимам работы приложения. Подчиненные формы невидимы и показаны прерывистой линией. Выбор команды активизирует соответствующую форму и делает ее видимой в окне приложения. На рис. 3.4,б имеется меню только с одной главной командой и тремя командами на вложенном меню (обведено пунктиром). По существу, реализован переключатель режимов. В зависимости от выбранной команды становятся видимыми и доступными две или три кнопки с соответствующими надписями.

Наиболее изящным, на мой взгляд, решением проблемы является построение многостраничной формы с помощью объекта SSTab ("Вкладки"). Полный вид формы показан на рис. 3.5 (вкладки условно расположены рядом). Выносками показаны имена объектов, расшифровка имен приведена в табл. 3.5.


 
 

 


Рис. 3.5. Схема формы приложения с двумя вкладками

Таблица 3.5

Описание формы приложения

Имя Тип объекта   Имя Тип объекта
Form1 Форма   TBB Окно Text Box
SST Объект SSTab "Вкладки"   TBP Окно Text Box
Tab1 Таблица 1 объекта SST   CB1 Кнопка Command Button
Tab2 Таблица 2 объекта SST   CB2 Кнопка Command Button
Frame1 Рамка   CB3 Кнопка Command Button
LB1 Метка Label   CB4 Кнопка Command Button
LB2 Метка Label   ChB1 Окно выбора Check Box
LB3 Метка Label   OB1 Кнопка Option Button
LBX Метка Label   OB2 Кнопка Option Button
TBA Окно Text Box      

Назначение большинства объектов на обеих вкладках понятно без комментариев. Практически видны элементы, реализующие все команды управления приложением.

Переключатель на кнопках Option Button переводит приложение из режимов настройки протокола и решения уравнения в режим просмотра протокола. При включении кнопки "Просмотр" изменяются надписи на кнопках СВ1 и СВ2, а также функции кнопок. СВ1 в режиме просмотра протокола вызывает первую запись, а СВ2 – следующую запись. При обнаружении конца файла выводится соответствующее сообщение с помощью стандартного окна.

Окно ТВР предназначено для отображения спецификации файла протокола. Выбор и создание нового файла протокола выполняется при нажатии кнопки СВ3 с помощью объекта Common Dialog.

Еще более красивым решением было бы применение трехстраничной формы (рис. 3.6) с вкладками "Данные", "Протокол", "Настройка". На рис. 3.6 условно вкладки расположены рядом, но вкладка "Протокол" частично перекрывает вкладку "Данные", которая аналогична одноименной вкладке на рис. 3.5. Описание объектов, размещенных на форме, приведено в табл. 3.6.

 

 

 


Рис. 3.6. Трехстраничная форма

Таблица 3.6

Описание формы приложения

 

Имя Тип объекта   Имя Тип объекта
Form1 Форма   TBA Окно Text Box
SST Объект SSTab "Вкладки"   TBB Окно Text Box
Tab1 Таблица 1 объекта SST   TBP Окно Text Box
Tab2 Таблица 2 объекта SST   CB1 Кнопка Command Button
Tab3 Таблица 3 объекта SST   CB2 Кнопка Command Button
Frame1 Рамка   CB3 Кнопка Command Button
LB1 Метка Label   CB4 Кнопка Command Button
LB2 Метка Label   ChB1 Окно выбора Check Box
LB3 Метка Label   FG1 Объект Flex Grid (таблица)
LBX Метка Label      

Вкладка "Протокол" предоставляет средство просмотра протокола в виде объекта Flex Grid (FG1). На этой вкладке пунктиром показана кнопка СВ2, находящаяся на вкладке "Данные". Вкладка "Настройка" аналогична вкладке "Протокол" на рис. 3.5, но с нее убраны кнопки опций ОВ1 и ОВ2. В дальнейшем будет принят последний вариант интерфейса пользователя.

3.7.6. Проектирование структуры программы
и разработка алгоритма ее работы

С учетом выполненной разработки интерфейса придется доработать
табл. 3.3 и табл. 3.4, описывающие наборы данных и алгоритм преобразования данных. Результат доработки показан в табл. 3.7, 3.8. Добавленные данные выделены жирным шрифтом. Эти таблицы по мере разработки алгоритма работы программы будут расширяться.

Таблица 3.7

Описание наборов данных

Имя Тип Способ организации Видимость Назначение
Входные данные
A Single Переменная Public Коэффициент а
B Single Переменная Public Коэффициент b
Выходные данные
X Single Переменная Public Корень уравнения
Промежуточные данные
TBA.Text String Свойство Text Box Public Ввод коэффициента а
TBB.Text String Свойство Text Box Public Ввод коэффициента b
LBX.Caption String Свойство Label Public Отображение корня х
MessX String Функция Public Сообщение о корне х
  LogDisk LogPath LogFile   String String String   Переменная Переменная Переменная   Public Public Public Данные протокола: имя диска путь имя файла
TextMatrix String Массив, свойство объекта Flex Grid Private Отображение протокола
TBP.Text String свойство Text Box Public Спецификация файла протокола
ChB.Value Boolean Свойство ChB Public Статус операции "Запись в протокол"

Разработка Р-графа программы выполнялась в следующем порядке:

· составлен список состояний программы (табл. 3.9);

· для каждого состояния определены входные и выходные ветви Р-графа;

· на рис. 3.7 расставлены узлы, соответствующие состояниям, достигаемым при пуске приложения и в результате выбора режима работы программы с помощью вкладок (узлы Вход, Стоп, 1,2,3, 11,14)[3];

· около узлов в прямоугольниках расставлены номера состояний в соответствии с табл. 3.9:

· для имеющихся узлов нанесены ветви Р-графа, осуществляющие очевидные переходы от одного узла к другому (ветви "Вход-1", "1-2",
"2-Стоп", "2-14", "14-1", "2-11")[4];

· для узлов, имеющих только входные ветви, расставлены выходные ветви ("3-4", "4-5", "11-12", "12-13") и ограничивающие их узлы 4,5,12,13;

· для узлов 5 и 13 на основании анализа вкладок "Данные" и "Настройки" составлены списки доступных команд и нанесены выходные ветви, в случае необходимости ветви разбивались промежуточными узлами на части с целью показать достигаемое состояние (узлы 6-9) или ветвление алгоритма (узел 10).

Таблица 3.8

Таблица формул к алгоритму преобразования данных

Имена данных Обозначения формул Вид формул
TBA.Text нет ввод с клавиатуры
TBB.Text Нет ввод с клавиатуры
A TBA.Text→a a=val(TBA.Text) при вводе с клавиатуры, иначе читается из файла
B TBB.Text→b b=val(TBB.Text) при вводе с клавиатуры, иначе читается из файла
X x= -b/a x= -b/a при а≠0, иначе не определяется
MessX x →MessX MessX="не существует" MessX="не определено" MessX=str(x) при а≠0, MessX="не существует" при а=0 и b≠0, MessX="не определено" при а=0 и b=0,
LB.Caption LB.Caption=MessX LB.Caption=MessX
LogDisk LogDisk из списка дисков
LogPath LogPath из списка каталогов диска
LogFile LogFile из списка файлов или с клавиатуры
TextMatrix Прот ®FG1 TextMatrix[i,1]=str(a1), TextMatrix[i,2]=str(a2), TextMatrix[i,3]=a3 a1, a2, a3 читаются из файла, i – номер строки протокола
TBP.Text Выбор протокола LogDisk+LogPath+LogFile

Обычно для сложной задачи сразу получить в приемлемом виде
Р-граф алгоритма программы удается достаточно редко. Приходится неоднократно перерабатывать его в целях получения более простых путей реализации алгоритма и уменьшения числа пересечений ветвей. Полученный Р-граф программы приведен на рис. 3.7, пояснения к нему – в табл. 3.9.
На рис. 3.7 курсивом выделены условия, разрешающие движение по ветвям, жирным шрифтом – выполняемые действия, обычным шрифтом обозначены номера узлов, а цифрами в рамках – состояния программы


 

 


 


Таблица 3.9 Расшифровка обозначений к рис. 3.7.   Реализующая процедура (функция) Условия                       Действия Процедура InDan() Реализуется объектами управления формой То же То же
Соответствующее действие или условие Выбрана вкладка "Данные" Выбрана вкладка "Протокол" Выбрана вкладка "Настройка" Нажата кнопка СВ2 "Корень" Нажата кнопка СВ1 "Очистить" Включена запись протокола Отключена запись протокола Введен символ, который можно рассматривать как допустимый при вводе чисел Нажата кнопка СВ3 "Выбор" (протокола) Нажата кнопка СВ4 "Очистка" (протокола) Выбор объекта ChB "Запись" Инициализация данных (присвоение им начальных значений) Выбор вкладки, нажатие доступной кнопки, щелчок мыши или ввод символа Выбор объекта ТВА Выбор объекта ТВB
Обозначение Данные Протокол Протокол Выход Очистить Зап. вкл. Зап. откл Введен символ числа Выбор Очистка ChB Init Ввод команды Активизация TBА Активизация TBB

 


 

Окончание табл. 3.9 Реализующая процедура (функция) Процедура NulDan() Процедура WriteProt() Функция MessX и оператор присваивания Реализуется объектом Text Box Реализуется объектом Text Box Процедура ClFile() Процедура SelProt() Обработчик ChB_Click() Процедура GetProt() Процедура ProgEnd Состояния              
Соответствующее действие или условие Очистка текстовых окон ТВА, ТВВ, метки LBX и запись нулей в переменные a,b,x Запись данных в протокол Расчет корня уравнения и вывод в метку LBX Добавление символа в ТВА.Техt Добавление символа в ТВB.Техt Стирание информации в выбранном файле протокола Выбор протокола Включение и отключение режима записи Чтение протокола из файла в объект FG1 "Таблица" Завершение программы Начало работы программы Открыта вкладака "Данные, активе ТВА Открыта вкладка "Данные", активен ТВВ Открыта вкладка "Данные", выведен корень уравнения, активен ТВА Открыта вкладка "Протокол" Открыта вкладка "Настройка" Программа завершена
Обозначение Очистка формы и данных a,b.x® Прот LBX.Caption=MessX Simb® TBA.Text Simb® TBB.Text Очистка протокола Выбор протокола Статус записи Прот ®FG1 Зав. прог Вход           Стоп

Определим структурные элементы программы. Для описания данных с видимостью public (табл. 3.7) потребуется специальный модуль. В состав программы должны войти процедуры и функции пользователя и обработчики событий. Последовательность разработки структуры программы:

· создадим модуль OpDan для описания данных с видимостью public, не принадлежащих к стандартным объектам формы,

· разместим в секции General кода программы формы Form1 заготовки описаний процедур из табл. 3.9,

· создадим заготовки обработчиков событий стандартных объектов управления формой, для каждого из которых выпишем заголовок процедуры, несколько пустых строк и слова end sub,

· в заготовки обработчиков событий вставим вызовы процедур, не входящих в число методов стандартных объектов.

Полученная структура программы показана в табл. 3.10.

Таблица 3.10

Структура программы

Имя модуля, объекта, секции Содержание
OpDan Описание данных a,b,x
Форма Form1
Секция General Sub InDan() 'Инициализация данных End sub sub NullDan() 'Очистка формы и данных End sub Sub WriteProt() 'Запись данных в протокол End sub Sub ClFile() 'Очистка файла протокола End sub Sub SelProt() 'Выбор протокола End sub Sub GetProt() 'Получение данных из протокола End sub Sub EndProg() 'Завершение работы программы End sub Function MessX() 'Вычисление корня End function
   
Окончание табл. 3.10
Form1 Sub Form1_Load() 'Загрузка формы Call InDan End sub Sub Form1_Unload 'Выгрузка формы из памяти Call EndProg() End sub
CB1 Sub CB1_Click() 'Нажатие кнопки Очистить call NullDan End sub
CB2 Sub CB1_Click() 'Нажатие кнопки Корень LBX.Caption=MessX() End sub
CB3 Sub CB3_Click() 'Выбор протокола Call SelProt End sub
CB4 Sub CB4_Click() 'Очистка протокола Call ClFile End sub
SST.Tab2 Sub SST.Tab2_Click() 'Чтение протокола в FG1 call GetProt End sub
ChB Sub ChB_Click() ' Включение и отключение записи протокола ' в качестве признака включения записи 'использовать свойство ChB.Value 'true – запись включена, false – отключена End sub

 

Теперь, имея структуру программы, описание алгоритма преобразования данных и Р-граф программы, можно приступить к составлению кода программы. Этому вопросу будет посвящена 4-я глава, в которой будут рассмотрены типовые приемы программирования.





Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 683; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.03 сек.