Разработка программы "Медицинская энциклопедия"
Технология создания информационной системы. Задание индекса, паролей, языкового драйвера, таблицы для выбора значений. Использование компонента Dilphi: TreeView. Формирование дерева объектов. Организация входных, выходных данных. Описание программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.11.2016 |
Размер файла | 572,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Оглавление
Введение
1. Литературный обзор. Подходы и решения в разработки проекта
1.1 Технология создания информационной системы
1.2 Создание приложения
1.2.1 Использование модуля данных
1.3 Использование компонента Dilphi: TreeView
1.4 Технические характеристики
1.4.1 Постановка задачи
1.4.2 Организация входных и выходных данных
1.4.3 Выбор состава технических и программных средств
2. Разработка рабочего проекта
2.1 Разработка программы
2.2 Описание программы
2.3 Спецификация программы
Заключение
Библиографический список литературы
Приложение
Введение
В связи с тем, что природа человеческого организма не является совершенной, человек очень часто нуждается в медицинском лечении. Поэтому больницы, как и поликлиники, всегда будут находить свою нишу на экономическом рынке любого государства.
Мы живем во время быстрого развития техники и технологий. Люди, особенно занимающиеся своим делом, все чаще привлекают себе на помощь современные технологии, как вычислительные, так и предназначенные для связи. От скорости реагирования на изменения рынка, от оперативности поступления информации зависит успешность того или иного дела.
Поэтому старые методы ведения дел теряют свою актуальность. Сейчас уже многие отрасли деятельности человека, будь то наука, медицина, торговля, производство переходят на автоматизированные информационные системы, тем самым, снижая роль влияния человеческого фактора на допускаемые ошибки.
Все современные автоматизированные информационные системы основаны на принципах работы с базами данных. Поэтому тематика выпускных работ, посвященная программам по работе с базами данных, в ближайшее время будет актуальна. По этой причине мы и выбрали тему выпускной квалификационной работы «Система поддержки принятия решений в предметной области: «Медицина». Кроме использования данной системы в специализированных предприятиях (больницах, как и поликлиниках), она будет полезна в каждом доме.
Задача предлагаемой вам программы "Медицинская энциклопедия" - не только помочь врачу принять решение, но и сделать современную медицину доступной для массового пользователя, для каждого, кого интересует древняя "наука врачевания", побудить внимательнее, относиться к своему здоровью, предоставить информацию о заболеваниях, которым может подвергнуться человек.
Немало сторонников у мнения, согласно которому только врачу должна быть доступна картина болезни, а больной для своей же пользы обязан пребывать в неведении, что вредно даже популярное изложение медицинских тем в изданиях типа журнала "Здоровье". Дескать, то, что дозволено знать врачу, не дано знать больному. Но насколько справедливо такое утверждение? Начнем с того, что медицина - одна из важнейших областей знания. И человек с широким кругозором, определенным уровнем культуры неизбежно включает ее в орбиту своих интересов. Тем более, что рано или поздно его побудит к этому сама жизнь с ее неизбежными болезнями.
Просвещение не может принести вред. Просто делая медицину "тайной за семью печатями", некоторые врачи стремятся оградить свои действия от возможной критики, создавая удобный для себя вакуум информации. Но любой монополизм автоматически ведет к снижению качества принимаемых решений. К тому же пассивность пациента вовсе не безобидна: она ослабляет его способность к сопротивлению болезням. Понимание своего состояния, осведомленность о своей болезни только поможет мобилизовать духовные и физические ресурсы организма для противостояния недугу. "Каждый солдат должен знать свой маневр", - так говорил Суворов. И с этим всегда побеждал.
Человеку приходится следить за своим здоровьем всю жизнь. И «Медицинская энциклопедия» поможет вовремя распознать опасную болезнь, принять меры первой помощи, своевременно обратиться к соответствующему специалисту, сознательно следовать назначенному лечению, правильно принимать лекарства.
Данная программа универсален, как были когда-то универсальны семейные врачи, успешно пользовавшие от всевозможных болезней всех чад и домочадцев. Такую программу полезно иметь каждой семье.
Но в первую очередь, как специализированное, пособие может быть полезно и для медицинских работников, особенно в "глубинке", где трудно получить оперативную консультацию специалиста.
1. Литературный обзор. Подходы и решения в разработки проекта
1.1 Технология создания информационной системы
Создание таблиц базы данных
Для работы с таблицами БД при проектировании приложения удобно использовать программу Database Desktop, которая позволяет выполнять следующие действия:
-создание таблицы;
-изменение структуры;
-редактирование записей.
Кроме того, с помощью Database Desktop можно выполнять и другие действия над БД (создание, редактирование и выполнение визуальных запросов и SQL-запросов, операции с псевдонимами).
Процесс создания новой таблицы начинается по команде File/New/Table (Файл/Новая/Таблица) и происходит в интерактивном режиме.
При этом разработчик должен:
· выбрать формат (тип) таблицы;
· задать структуру таблицы.
В начале создания новой таблицы в окне Create Table (Создание таблицы) (рис 1.1.) выбирается ее формат. По умолчанию предлагается формат таблицы Paradox версии 7, который мы и будем использовать для таблиц других форматов, например, dBase IV, действия по созданию таблицы практически не отличаются.
Рис. 1.1. Выбор формата таблицы
После выбора формата таблицы появляется окно определения структуры таблицы (рис.1.2), в котором выполняются следующие действия:
- описание полей;
- задание ключа;
- задание индексов;
- определение ограничений на значения полей;
- определение условий (ограничений) ссылочной целостности;
- задание паролей;
- задание языкового драйвера;
- задание таблицы для выбора значений.
В этом списке обязательным является только первое действие, т.е. каждая таблица должна иметь хотя бы одно поле. Остальные действия выполняются при необходимости. Часть действий, такие как задание ключа и паролей, производится для таблиц определенных форматов, например, для таблиц Paradox.
Рис. 1.2. Определение структуры таблицы.
При заведении новой таблицы сразу после выбора ее формата можно не создавать структуру таблицы, а скопировать ее из другой таблицы: при нажатии на кнопку Borrow…(Взаймы…) открывается окно Select Borrow Table (Выбор таблицы для заимствования) -- рис. 1.3.
Рис. 1.3. Выбор таблицы для заимствования ее структуры.
В этом окне можно выбрать таблицу (главный ее файл) и указать копируемые элементы структуры, установив соответствующий флаг, например Primary index (Первичный индекс) для ключа. После нажатия кнопки Открыть из выбранной таблицы в новую копируются описания полей, а также те элементы, для которых установлен флаг. Если какой-либо элемент в структуре копируемой таблицы отсутствует, то состояние флага не имеет значения. Например, если в выбранной таблице не определены ограничения ссылочной целостности, то в новой таблице они не появятся, даже если установлен переключатель Referential integrity (Ссылочная целостность).
Впоследствии скопированную структуру можно настраивать, изменяя, добавляя или удаляя ее отдельные элементы.
После определения структуры таблицы ее необходимо сохранить, нажав кнопку Save as... (Сохранить как...) и указав расположение таблицы на диске и ее имя. В результате на диск записывается новая таблица, первоначально пустая, при этом все необходимые файлы создаются автоматически.
Описание полей
Центральной частью окна определения структуры таблицы является список Field roster (Список полей), в котором указываются поля таблицы. Для каждого поля задаются:
- имя -- в столбце Field Name;
- тип -- в столбце Туре;
- размер -- в столбце Size.
Имя поля вводится по правилам, установленным для выбранного формата таблиц. Тип поля можно задать, непосредственно указав соответствующий символ, например, "А" для символьного или " I " для целочисленного поля, или выбрать его из списка, раскрываемого при нажатии клавиши (Пробел) или щелчком правой кнопки мыши в столбце Туре. Список содержит все типы полей, допустимые для заданного формата таблицы. В списке подчеркнуты символы, используемые для обозначения соответствующего типа, при выборе типа эти символы автоматически заносятся в столбец Туре.
Размер поля задается не всегда, необходимость его указания зависит от типа поля. Для полей определенного типа, например, автоинкрементного (“+”) или целочисленного (" I "), размер поля не задается. Для поля строкового типа размер определяет максимальное число символов, которые могут храниться в поле.
Добавление к списку полей новой строки выполняется переводом курсора вниз на несуществующую строку, в результате чего эта строка появляется в конце списка. Вставка новой строки между существующими строками с описанием полей выполняется нажатием клавиши <Insert>. Новая строка вставляется перед строкой, в которой расположен курсор. Для удаления строки необходимо установить курсор на эту строку и нажать комбинацию клавиш <Ctrl>+<Delete>.
Ключ создается указанием его полей. Для указания ключевых полей в столбце ключа (Key) нужно установить символ "*", переведя в эту позицию курсор и нажав любую алфавитно-цифровую клавишу. При повторном нажатии клавиши отметка о принадлежности поля ключу снимается. В структуре таблицы ключевые поля должны быть первыми, то есть верхними в списке полей. Часто для ключа используют автоинкрементное поле (см. рис.1.2).
Напомним, что для таблиц Paradox ключ также называют первичным индексом (Primary Index), а для таблиц dBase ключ не создается, и его роль выполняет один из индексов.
Для выполнения остальных действий по определению структуры таблицы используется комбинированный список Table properties (Свойства таблицы), содержащий следующие пункты:
- Secondary Indexes -- индексы;
- Validity Checks -- проверка правильности ввода значений полей (выбирается по умолчанию);
- Referential Integrity -- ссылочная целостность;
- Password Security -- пароли;
- Table Language -- язык таблицы (языковой драйвер);
- Table Lookup -- таблица выбора;
- Dependent Tables -- подчиненные таблицы.
После выбора какого-либо пункта этого списка в правой части окна определения структуры таблицы появляются соответствующие элементы, с помощью которых выполняются дальнейшие действия.
Отметим, что состав данного списка зависит от формата таблицы. Так, для таблицы dBase он содержит только пункты Indexes и Table Language.
Задание индекса сводится к определению:
- состава полей;
- параметров;
- имени.
Эти элементы устанавливаются или изменяются при выполнении операций создания, изменения и удаления индекса.
Для выполнения операций, связанных с заданием индексов, необходимо выбрать пункт Secondary Indexes (Вторичные индексы) комбинированного списка, при этом под списком появляются кнопки Define (Определить) и Modify (Изменить), список индексов и кнопка Erase (Удалить). В списке индексов выводятся имена созданных индексов, на рис.1.2. это индекс indName.
Для таблиц Paradox индекс также называют вторичным индексом.
Создание нового индекса начинается с нажатия кнопки Define, являющейся всегда доступной. Это приводит к появлению окна Define Secondary Index (Задание вторичного индекса), в котором задаются состав полей и параметры индекса (рис.1.4).
Рис.1.4. Окно задания индекса.
В списке Fields окна выводятся имена всех полей таблицы, включая и те, которые нельзя включать в состав индекса, например, графическое поле или поле комментария. В списке Indexed Fields (Индексные поля) содержатся поля, которые включаются в состав создаваемого индекса. Перемещение полей между списками выполняется выделением нужного поля (полей) и нажатием расположенных между списками кнопок с изображением горизонтальных стрелок. Имена полей, которые нельзя включать в состав индекса, выделяются в левом списке серым цветом. Поле не может быть повторно включено в состав индекса, если оно уже выбрано и находится в правом списке.
Изменить порядок следования полей в индексе можно с помощью кнопок с изображением вертикальных стрелок, имеющих общее название Change order (Изменение порядка). Для перемещения поля (полей) необходимо его (их) выделить и нажать нужную кнопку.
Переключатели, расположенные в нижней части окна задания индекса, позволяют указать следующие параметры индекса:
- Unique (Уникальный) -- индекс требует для составляющих его полей
уникальных значений;
- Maintained (Поддерживаемый) -- если таблица открыта, индекс автоматически не модифицируется;
- Case sensitive (Зависящий от условий) -- для полей строкового типа учитывается регистр символов;
- Descending (Нисходящий) -- сортировка выполняется в порядке убывания значений.
Так как для таблиц dBase нет ключей, то для них использование параметра Unique является единственной возможностью обеспечить уникальность записей на физическом уровне (уровне организации таблицы), не прибегая к программированию.
После задания состава индексных полей и нажатия кнопки ОК появляется окно Save Index As (Сохранить индекс), в котором указывается имя индекса (см. рис. 1.5). Для удобства обращения к индексу в его имя можно включить имена полей, указав какой-нибудь префикс, например "ind".
Нежелательно образовывать имя индекса только из имен полей, так как для таблиц Paradox подобная система именования используется при автоматическом образовании имен для обозначения ссылочной целостности между таблицами. После повторного нажатия кнопки ОК сформированный индекс добавляется к таблице, и его имя появляется в списке индексов.
Созданный индекс можно изменить, определив новый состав полей, параметров и имени индекса. Изменение индекса не отличается от процесса его создания. После выделения индекса в списке и нажатия кнопки Modify (Изменить) снова открывается окно задания индекса (см. рис. 1.4). При нажатии кнопки OK появляется окно сохранения индекса (рис. 1.5), содержащее имя изменяемого индекса, которое можно исправить или оставить прежним.
Рис.1.5. Задание имени индекса
Для удаления индекса его нужно выделить в списке индексов и нажать кнопку Erase (Удалить). В результате индекс удаляется без предупреждающих сообщений.
Кнопки Modify и Erase доступны, только если индекс выбран в списке.
Задание ограничений на значения полей заключается в указании для полей:
- требования обязательного ввода значения;
- минимального значения;
- максимального значения;
- значения по умолчанию;
- маски ввода.
Для выполнения операций, связанных с заданием ограничений на значения полей, нужно выбрать пункт Validity Checks (Проверка значений) комбинированного списка Table Properties (см. рис.1.2), при этом под списком появляются переключатель Required Field (Обязательное поле), редакторы Minimum Value (Минимальное значение), Maximum Value (Максимальное значение), Default Value (значение по умолчанию), Picture (Образ) и кнопка Assist (Помощь). Переключатель и редакторы отображают установки для поля, которое выбрано в списке полей (курсор находится в строке этого поля).
Требование обязательного ввода значения означает, что поле не может быть пустым (иметь значение Null). Это требование действует при добавлении к таблице новой записи. До того, как изменения в таблице будут подтверждены, поле должно получить какое-либо непустое значение, в противном случае генерируется ошибка. Ошибка может также возникнуть при редактировании записи, когда будет удалено старое значение поля и не присвоено новое.
Данное требование удобно использовать для так называемых обязательных полей таблиц, например, для поля фамилии в таблице сотрудников организации. Отметим, что обязательность ввода значения не действует на автоинкрементное поле, которое и без того является обязательным и автоматически заполняемым.
Для указания обязательности ввода значения в поле необходимо установить флаг Required Field, который по умолчанию выключен.
Для полей некоторых типов, в первую очередь числовых, денежных, строковых и даты, иногда удобно задавать диапазон возможных значений, а также значение по умолчанию. Диапазон определяется минимально и максимально возможными значениями, которые вводятся в редакторах Minimum Value и Maximum Value. После их задания значение поля не может выйти за указанные границы при вводе и редактировании любым способом.
Значение поля по умолчанию указывается в редакторе Default Value. Это значение устанавливается при добавлении новой записи, если при этом для поля не указано какое-либо значение.
Отметим, что задание диапазона и значений по умолчанию возможно не для всех полей, например, они не определяются для графического поля и поля комментария. Для этих полей соответствующий редактор блокируется.
В редакторе Picture (Образ) можно задать маску (шаблон) для ввода значения поля. Ввод по маске поддерживается, например, для таких типов полей, как числовой или строковый. Его удобно использовать для ввода информации определенных форматов, например, телефонных номеров или почтовых индексов.
Для маски используются следующие символы:
- # -- цифра;
- ? -- любая буква (регистр не учитывается);
- & -- любая буква (преобразуется к верхнему регистру);
- ~ -- любая буква (преобразуется к нижнему регистру);
- @ -- любой символ;
- ! -- любой символ (преобразуется к верхнему регистру);
- ; -- за этим символом следует буквенный символ;
- * -- число повторов следующего символа;
- [abc] или {а,Ь,с} -любое из приведенных значений (a, b или с), значения перечисляются через запятую без пробелов.
Маску можно ввести в редакторе Picture вручную или использовать для этого окно Picture Assistance (Помощник), вызываемое нажатием кнопки Assist (Помощь) -- рис.1.6.
Рис. 1.6. Окно помощника формирования маски
Указанное окно помогает ввести, выбрать или откорректировать маску, а также проверить ее функционирование.
Список Sample pictures (Образцы образов) содержит образцы масок, которые выбираются нажатием кнопки Use (Использовать). Выбранная маска помещается в редактор Picture и доступна для изменения. Для редактирования списка образцов масок служат кнопки Add to List (Добавить в список) и Delete from List (Удалить из списка): первая добавляет к списку маску, содержащуюся в редакторе Picture, а вторая удаляет из списка выбранную маску.
Проверка синтаксиса маски выполняется по нажатию кнопки Verify Syntax (Проверить синтаксис), результат проверки выводится в информационном поле. Кнопка Restore Original (Вернуть исходную) служит для восстановления начального (т. е. до начала редактирования) значения маски.
Функционирование маски можно проверить, введя в редактор Sample value (Пример значения) значение поля. По нажатии кнопки Test Value (Проверить значение) выполняется проверка введенного значения, результат проверки выводится в информационном поле.
Задание ссылочной целостности
Понятие ссылочной целостности относится к связанным таблицам и проявляется в следующих вариантах взаимодействия таблиц:
- запрещается изменение поля связи или удаление записи главной
таблицы, если для нее имеются записи в подчиненной таблице;
- при удалении записи в главной таблице автоматически удаляются
соответствующие ей записи в подчиненной таблице (каскадное удаление)
Для выполнения операций, связанных с заданием ссылочной целостности, необходимо выбрать пункт Referential Integrity комбинированного списка Table Properties (см. рис.1.2). При этом, как и в случае задания индексов, появляются кнопки Define, Modify, Erase и список.
В списке выводятся имена созданных условий ссылочной целостности.
Условие ссылочной целостности задается для подчиненной таблицы и определяется следующими элементами:
- полями связи подчиненной таблицы;
- именем главной таблицы;
- полями связи главной таблицы;
- параметрами.
Разработчик может создать, изменить или удалить условие ссылочной целостности.
Для создания ссылочной целостности нужно нажать кнопку Define, после чего появляется окно Referential Integrity (рис.1.7).
Рис. 1.7. Определение ссылочной целостности
В списке Fields следует выбрать поле связи и нажатием кнопки со стрелкой вправо перевести его в список Child fields (Дочерние поля) Если полей связи несколько, то эти действия выполняются для каждого из них. Кнопка со стрелкой влево удаляет выбранное поле из списка полей связи.
В списке Table указывается главная таблица, имена таблиц выбираются из рабочего каталога программы Database Desktop. После выбора таблицы и нажатия кнопки со стрелкой влево (рядом со списком таблиц) в список Parent's key (Родительский ключ) автоматически заносятся ключевые поля главной таблицы.
Параметры ссылочной целостности выбираются переключателями. Группа Update rules (Правила изменения) определяет вид взаимодействия таблиц при изменениях в главной таблице. Переключатель Cascade
(Каскад) устанавливает режим каскадного удаления записей в подчиненной таблице при удалении соответствующей записи главной таблицы. Переключатель Prohibit (Запрет) устанавливает режим запрещения изменения поля связи или удаления записи главной таблицы, для которой имеются записи в подчиненной таблице.
Переключатель Strict referential integrity (Жесткая ссылочная целостность) устанавливает защиту таблиц от модификации с использованием ранних версий программы Database Desktop (под DOS), которые не поддерживают ссылочную целостность.
После установки нужных флагов и нажатия кнопки ОК появляется окно Save Referential Integrity As (Сохранить Условие ссылочной целостности), в котором указывается имя условия. Напомним, что для таблиц Paradox условия ссылочной целостности именуются. Для удобства обращения к условию в его имя можно включить имена полей и таблиц, задав при этом некоторый префикс, например, "ri". После нажатия ОК сформированное условие ссылочной целостности добавляется к таблице, и его имя появляется в списке условий.
Созданное условие ссылочной целостности можно изменить, определив новый состав полей и новые значения параметров. Изменение условия ссылочной целостности не отличается от процесса его создания: после выделения имени условия в списке и нажатия кнопки Modify открывается окно определения ссылочной целостности (см. рис.1.7) При нажатии кнопки ОК измененное условие ссылочной целостности сохраняется под тем же именем.
Для удаления условия ссылочной целостности нужно выделить его в списке и нажать кнопку Erase. Удаление производится без выдачи предупреждающих сообщений.
Кнопки Modify и Erase доступны только, если выбрано условие в списке.
Задание паролей
Пароль позволяет задать права доступа пользователей (приложений) к таблице. Если для таблицы задать пароль, то он будет автоматически запрашиваться при каждой попытке открытия таблицы.
Для выполнения операций, связанных с заданием пароля, нужно выбрать строку Password Security (Парольная защита) в комбинированном списке Table properties окна определения структуры таблицы (см. рис.1.2) При этом под списком появляются кнопки Define и Modify. Нажатие кнопки Define вызывает окно Password Security (рис.1.8), в котором задается пароль.
Рис. 1.8. Задание главного пароля
Пароль таблицы вводится два раза -- в полях Master password (Главный пароль) и Verify master password (Проверка главного пароля) При нажатии кнопки ОК оба значения сверяются, и при их совпадении пароль принимается. Когда пароль определен, кнопка Define блокируется и становится доступной кнопка Modify изменения пароля. Ее нажатие снова вызывает окно задания пароля (см. рис.1.8), в котором появляются кнопки Change и Delete, а редакторы заблокированы.
Нажатием кнопки Delete пароль удаляется, после чего его можно ввести заново. Если в качестве значения пароля указана пустая строка, то пароль для таблицы не задан Нажатием кнопки Change редакторы разблокируются и значение пароля можно изменить (в обоих редакторах) При этом название кнопки Change изменяется на Revert (Возврат), и ее повторное нажатие возвращает значение пароля, которое было до начала редактирования.
Рассмотренный пароль считается главным паролем, который предоставляет пользователю полные права доступа к таблице, включая изменение записей и структуры таблицы, в том числе смену пароля. Кроме главного пароля можно задать для таблицы дополнительные пароли, устанавливающие пользователю ограниченные права доступа к таблице Для задания дополнительных паролей нажатием кнопки Auxiliary Passwords (Дополнительные пароли) вызывается одноименное окно (рис.1.9).
Рис. 1.9. Задание дополнительных паролей
В списке Passwords выводятся действующие дополнительные пароли. Группа переключателей Table rights определяет для пароля права доступа к таблице в целом. Они могут быть следующими:
- All -- полные права, включая изменение записей и структуры таблицы;
- Insert & delete - разрешены вставка и удаление, а также редактирование записей, запрещено изменение структуры таблицы;
- Date entry - разрешены редактирование и вставка записей, запрещены изменение структуры таблицы и удаление записей;
- Update - разрешены только просмотр (чтение) записей и редактирование неключевых полей;
- Read only -- разрешен только просмотр (чтение) записей.
Права доступа к таблице действуют на все ее поля, кроме того, для каждого поля можно установить отдельные права доступа, не зависящие от прав доступа к другим полям. Права доступа к полям выводятся слева от имени поля в списке Fields rights и содержат следующие позиции:
- All -- чтение и изменение значения поля;
- Read only -- только чтение значения поля;
- None -- доступ к полю запрещен.
Смена права доступа к полю выполняется выбором поля в списке и нажатием кнопки Fields rights, при котором право циклически устанавливается очередным значением списка (All, Read only и None).
Создание пароля начинается нажатием кнопки New, после чего его имя указывается в редакторе Current password (Текущий пароль) и устанавливаются права доступа к таблице и ее полям. Нажатие кнопки Add (Добавить) заносит пароль в список дополнительных паролей.
Нажатие кнопки Change переводит пароль, выбранный в списке, в режим редактирования, при этом появляются кнопки Accept (Подтвердить) и Revert, а также разблокируется кнопка Delete.В процессе редактирования пароль можно изменить, удалить или оставить без изменений. После смены имени пароля и права доступа внесенные изменения утверждаются нажатием кнопки Accept.Для выхода из режима редактирования и возврата к прежним установкам пароля необходимо нажать кнопку Revert. Удаляется пароль нажатием кнопки Delete.
Отметим, что из приложения паролями можно управлять с помощью методов компонента session. Управление паролями заключается в их добавлении и удалении. Процедура AddPassword (const Password: String) добавляет новый пароль, заданный параметром Password; процедура RemovePassword (const Password: string) удаляет указанный пароль, а процедура RemoveAllPasswords удаляет все пароли.
Задание языкового драйвера
Для задания языкового драйвера нужно выбрать пункт Table Language (Язык таблицы) комбинированного списка Table properties окна определения структуры таблицы (см. рис.1.2). При этом под списком становится доступной кнопка Modify, открывающая окно Table Language (рис.1.10). Под языком таблицы понимается языковой драйвер, используемый для этой таблицы. В поле списка Language (Язык) отображается текущий драйвер.
Рис. 1.10. Выбор языкового драйвера
В списке можно выбрать драйвер нужного языка, для русского языка эй драйвер Pdox ansi Cyrillic, который корректно отображает символы русского алфавита и выполняет с ними операции сортировки.
По умолчанию языковой драйвер определяется установками процессора баз данных BDE, поэтому целесообразно установить его (параметр langdriver) в нужное значение, например, с помощью программы Administrator BDE .
Задание таблицы для выбора значений
Часто возникает ситуация, когда в поле должны заноситься значения из какого-либо набора значений, который может формироваться различными способами. Одним из часто используемых является вариант, когда эти значения содержатся в поле другой таблицы, а совокупность значений всех записей этого поля образует набор допустимых значений.
Для полей некоторых типов, например, строкового, числового или даты можно определить для выбора значений поле другой таблицы (таблицы выбора). Поля таблицы выбора используются для формирования набора допустимых значений. Если для поля задана таблица выбора, то в него можно ввести только значение, содержащееся в таблице выбора (в указанном поле любой записи). Задание таблицы выбора гарантирует, что в поле не будет введено недопустимое значение.
Действие набора допустимых значений распространяется также на редактирование записей таблицы программным способом: при попытке присвоить полю недопустимое значение генерируется исключительная ситуация.
Для выполнения операций, связанных с полями выбора, предназначен пункт Table Lookup (Таблица выбора) комбинированного списка Table properties окна определения структуры таблицы (см. рис.1.2). При этом под списком становится доступной кнопка Define, нажатие которой открывает окно Table Lookop (рис.1.11).
Рис. 1.11. Окно задания таблицы выбора
В списке Fields выводятся имена всех полей таблицы, при этом имена полей, которые не допускают создание таблицы выбора, выделены серым цветом (например, поле автоинкрементного типа).
Имя поля, для которого задается таблица выбора, отображается в области Field name, для его указания следует выделить в списке Fields нужное поле и нажать кнопку с изображением стрелки вправо. Если указать другое поле и нажать кнопку, то имя этого поля перейдет в область Field name и заменит имя предыдущего поля.
В списке Lookup table задается таблица выбора, имя которой (имя главного файла) появляется в редакторе списка. В списке Drive (or Alias) (Диск или псевдоним) задается диск или псевдоним, которые определяют расположение таблицы выбора. Название каталога, таблицы которого содержатся в списке Lookup table, отображается справа от названия списка Drive (or Alias). Таблицу также можно задать в окне Select File (Выбор файла), вызываемом нажатием кнопки Browse (Просмотр).
После задания таблицы выбора нажатие кнопки с изображением стрелки влево переводит имя первого ее поля, значения которого будут использованы для формирования набора допустимых значений, в область Lookup field(Поле выбора). Типы полей обеих таблиц должны совпадать, в противном случае в информационной панели выдается сообщение об ошибке.
С помощью группы переключателей Lookup type (Тип выбора) можно задать способ взаимодействия обеих таблиц. Если включен переключатель Just current field (Только текущее поле), то таблица выбора задается только для поля, указанного в области Field name. Переключатель All corresponding fields (Все соответствующие поля) назначает таблицу выбора не только указанному полю, но и всем последующим полям. Имена и типы этих полей должны совпадать с соответствующими полями таблицы выбора.
Группа переключателей Lookup access (Доступ к таблице выбора), определяет, каким образом пользователем используются значения из таблицы выбора.
Если включен переключатель Fill no help (Вставка без помощи), то при редактирования поля, для которого определена таблица выбора, пользователь должен знать допустимые значения этого поля. При этом термин "выбор" не совсем точно отражает взаимосвязь полей таблиц, так как пользователю не предлагается список возможных значений, из которых он может выбрать нужное ему. Пользователь сам вводит значение в поле, при этом на уровне таблицы выполняется проверка, является ли это значение допустимым Если значение отсутствует в указанном поле таблицы выбора, то оно не принимается.
В этом случае может помочь отображение рядом с редактируемой таблицей таблицы выбора, например, как показано на 1.12.
Рис. 1.12. Функционирование поля, для которого задана таблица выбора
В приведенном на рис.1.12 примере в окне программы Database Desktop таблица Personne12 содержит данные о сотрудниках организации, в ней определены поля кода (P_code), фамилии (P_ name), должности (P_Post) и оклада (P_Salary). В строковое поле должности можно вводить только допустимое название должности. Перечень всех должностей содержится в единственном поле Post таблицы Post2. Для предотвращения ввода в таблицу Personnel2 неправильных значений ее полю P_Post назначена таблица выбора Post2 и ее поле Post. В таблице Personnel2 для первых трех сотрудников введены должности, имеющиеся в таблице Post2.
Попытка задать для четвертого сотрудника должность "Бухгалтер" блокируется, так как эта должность не является разрешенной для ввода. При необходимости эту должность сначала нужно ввести в таблицу Post2, после чего она станет доступной также и для таблицы Personnel2.
Установка переключателя Help and fill (Помощь и вставка) (см. рис.1.11) позволяет не только ввести значение в поле, как описано выше, но и действительно выбрать значение из списка. Список, сформированный на основании значений поля (полей) таблицы выбора , появляется при наитии комбинации клавиш <Ctr1> + <Пробел> в редактируемом поле. После выбора нужного значения и нажатия кнопки ОК оно заносится в поле.
После задания для поля таблицы выбора в окне определения структуры таблицы (см. рис. 1.2) появляются кнопки Modify и Erase, а также список, в котором отображается имя этой таблицы.
Нажатие кнопки Modify вновь открывает окно задания таблицы выбора, в котором можно ввести новые данные. Кнопка Erase служит для отмены использования таблицы выбора и связанных с ней ограничений на значения поля.
Отметим, что объекты поля типа TFieid наборов данных Table и Query, a также сетка DBGrid позволяют определить для поля список выбора, который также дает возможность пользователю выбирать значения при редактировании. Они задаются на программном уровне, и их действие распространяется только на свое приложение.
Просмотр списка подчиненных таблиц
Таблица, связанная с другими таблицами, является либо главной, либо подчиненной. Выше мы рассмотрели задание ссылочной целостности для подчиненной таблицы. Для главной таблицы можно просмотреть список подчиненных таблиц, отображаемый при выборе пункта Dependent Table (Подчиненная таблица) все того же комбинированного списка Table properties (см. рис. 1.2). Этот список содержит имена всех таблиц, для которых заданы условия ссылочной целостности, в которых участвует данная таблица.
Изменение структуры таблицы
Структуру существующей таблицы можно изменить, выполнив команду Table/Restructure (Таблица/Реструктурировать) после предварительного выбора таблицы в окне программы Database Desktop. В результате открывается окно определения структуры таблицы, и дальнейшие действия не отличаются от действий, выполняемых при создании таблицы.
Если необходимо просто ознакомиться со структурой таблицы, то выполняется команда Table/Into Structure (Таблица/Просмотр структуры). В результате появляется окно определения структуры таблицы, но элементы, с помощью которых в структуру таблицы могут быть внесены изменения, заблокированы. Просмотр структуры возможен также для таблицы, с которой связаны другие приложения.
1.2 Создание приложения
Для примера рассмотрим создание приложения, позволяющего перемещаться по записям таблицы БД, просматривать и редактировать поля, удалять записи из таблицы, а также вставлять новые. Файл проекта приложения обычно не требует от разработчика выполнения каких-либо действий. Поэтому при создании приложения главной задачей является конструирование форм, в простейшем случае -- одной формы.
Компонент Tablel обеспечивает взаимодействие с таблицей БД. Для связи с требуемой таблицей нужно установить соответствующее значение свойствам DataBaseName, указывающему путь К БД, И Table Name, определяющему имя таблицы. После задания таблицы для открытия набора данных свойству Active должно быть установлено значение True.
В рассматриваемом приложении использована таблица клиентов, входящая в состав поставляемых с Delphi примеров, ее главный файл -- clients dbf. Файлы этой и других таблиц примеров находятся в каталоге, путь к которому указывает псевдоним dbdemos.
Компонент Data Source1 является промежуточным звеном между компонентом Table1, соединенным с реальной таблицей БД, и визуальными компонентами DBGrid1 и DBNavigator1, с помощью которых пользователь взаимодействует с этой таблицей на компонент Table1, с которым связан компонент DataSourcel, указывает свойство Data Set последнего.
Компонент DBGrid1 отображает содержимое таблицы БД в виде сетки, в которой столбцы соответствуют полям, а строки - записям таблицы. По умолчанию пользователь может просматривать и редактировать данные.
Компонент DBNavigator1 позволяет пользователю осуществлять перемещение по таблице, редактировать, вставлять и удалять записи.
Компоненты DBGrid1 и DBNavigator1 связываются со своим источником данных -- компонентом Data Source1 -- через свойства Data Source.
Взаимосвязь компонентов приложения и таблицы БД и используемые при этом свойства компонентов показаны на рис 1.13.
Рис. 1.13. Взаимосвязь компонентов приложения и таблицы БД
При разработке приложения значения всех свойств компонентов можно задать с помощью Инспектора объектов. При этом требуемые значения можно набрать в поле значений иди выбрать из раскрывающихся списков. В последнем случае приложение создается с помощью мыши и не требует набора каких-либо символов с клавиатуры. В табл. 1.1. приведены компоненты, используемые для работы с таблицей БД, основные свойства и их значения.
Таблица 1.1. Значения свойств компонентов
Компонент |
Свойства |
Значения |
|
Tablel |
DataBaseName TableName Active |
dbdemos clients.dbf true |
|
DataSourcel |
DataSet |
Tablel |
|
DBGndl |
DataSource |
DataSourcel |
|
DBNavigatori |
DataSource |
DataSourcel |
В дальнейшем при организации приложений предполагается, что названные компоненты связаны между собой именно таким образом, и свойства, с помощью которых эта связь осуществляется, не рассматриваются.
Для автоматизации процесса создания формы, использующей компоненты для операций с БД, можно вызвать Database Form Wizard (Мастер форм баз данных) -- рис. 1.14. Этот мастер расположен на странице Business хранилища объектов, доступ к которому осуществляется по команде File/New (Файл/Новый) главного меню Delphi.
Мастер позволяет создавать формы для работы с отдельной таблицей и со связанными таблицами, при этом можно использовать наборы данных Table или Query.
1.2.1 Использование модуля данных
При конструировании формы невизуальные компоненты, используемые для доступа к данным, такие как Data Source или Table, размещаются на форме, но при выполнении приложения эти компоненты не видны. Поэтому их можно размещать в любом удобном месте формы, выступающей для них контейнером -- модулем. Кроме того, для размещения невизуальных компонентов, через которые осуществляется доступ к данным, предназначен специальный объект -- модуль данных.
Существует три типа модуля данных
- простой модуль данных,
- удаленный модуль данных;
- Web-модуль
Простой модуль данных представлен объектом Data Module, который будет рассмотрен ниже.
Если применяется простой модуль данных, то взаимосвязь компонентов приложения и таблицы БД имеет вид, показанный на рис. 1.14.
Рис.1.14. Взаимосвязь компонентов приложения и таблицы БД при использовании модуля данных
Модуль данных, как и форма, является контейнером для своих невизуальных компонентов, и для него создается модуль кода с расширением PAS. Добавление модуля данных к проекту выполняется путем выбора объекта Data Module на странице New хранилища объектов, доступ к которому осуществляется по команде File/New главного меню Delphi. Окно модуля разделено на две части, в правой части размещаются компоненты таким же образом, как и на форме, а в левой автоматически отображается дерево объектов. При выборе объекта в Инспекторе объектов отображаются его свойства, значения которых можно просматривать и изменять.
При обращении к содержащимся в модуле данных компонентам для них указывается составное имя, в которое, кроме имени компонента, входит также имя модуля данных. Составное имя имеет формат:
<Имя модуля данных>.<Имя компонента>
Ниже приводится пример кода, в котором осуществляется обращение к компонентам модуля данных:
procedure TForm1.FormCreate(Sender: TOb3ect);
begin
DataModule2.Table1.TableName:='clients.dbf';
DataModule2.Table1.DatabaseName:='dbdemos';
DataModule2.DataSource1.DataSet:=DataModule2.Table;
DBGrid1.DataSource:=DataModule2.DataSource1;
DBNavigator1.DataSource:=DataModule2.DataSource1;
DataModule2.Table1.Active:=true;
end;
Для компонентов выполняется установка значений свойств, связывающих между собой эти компоненты и таблицу БД. Значения свойств устанавливаются динамически -- в процессе выполнения приложения, для чего использован обработчик события создания главной формы приложения. В составных именах компонентов доступа к данным, которыми являются источник данных Data Source1 и набор данных Table1, указывается имя модуля данных Data Module2.
Чтобы обеспечить возможность доступа к компонентам модуля данных в модуле формы, в список uses раздела implementation необходимо включить ссылку на модуль данных:
uses unit2;
Ссылку на другой модуль можно написать самостоятельно, но Delphi дает возможность вставить ее и автоматически. При выборе команды File/Use Unit (Файл/Использовать модуль) появляется диалоговое окно Use Unit (Выбор модуля). После выбора нужного модуля и нажатия ОК он добавляется в список.
Если ссылка на требуемый модуль отсутствует, то при компиляции приложения появляется диалоговое окно Information (Информация).
В нем сообщается о том, что форма ссылается на другую форму, объявленную в модуле, отсутствующем в списке uses формы. Для автоматического добавления модуля в список достаточно нажать кнопку Yes.
Помимо компонентов доступа к данным, которыми являются Session, Database, Table, Query, StoredProc, BatchMove и другие, в модуле данных можно размещать также невизуальные компоненты, не имеющие прямого отношения к БД, Например, ImageList, OpenDialog или Timer.
Модуль данных позволяет:
- отделить управление БД от обработки данных,
- создать модуль, совместно используемый несколькими приложениями.
Основным назначением модуля данных является централизованное хранение компонентов доступа к данным, а также кода для этих компонентов, например, обработчиков событий. В модуле данных удобно размещать код, выполняющий управление БД, например, реализацию бизнес-правил.
Использование модуля данных несколькими приложениями позволяет ускорить разработку приложений, так как готовый модуль данных впоследствии можно включать в новые приложения. Кроме того, управление БД через общий модуль дает возможность определить для всех пользователей одинаковые режимы и правила работы с базой, а также делает более простым изменение этих режимов и правил.
Однако для небольших приложений использование модуля данных не всегда оправдано, так как может затруднить, а не облегчить разработку приложения.
Удаленный модуль данных предназначен для работы с удаленными БД в трехуровневой архитектуре "клиент-сервер" и используется для создания сервера приложения -- промежуточного уровня между приложением и сервером БД.
Web-модуль предназначен для работы с БД в сети Internet и является посредником между браузером (программой просмотра Web-документов) и сервером БД.
1.3 Использование компонента Dilphi: TreeView
Компонент служит для отображения иерархических данных в виде дерева, в котором пользователь может выбрать нужный ему узел или узлы. Иерархическая информация может быть самой разной: структура некоторого предприятия, структура документации учреждения, структура отчета и т.п. С каждым узлом дерева могут быть связаны некоторые данные.
Основным свойством TreeView, содержащим информацию об узлах дерева, является Items. Доступ к информации об отдельных узлах осуществляется через этот индексный список узлов. Например, TreeView1.Items[1] -- это узел дерева с индексом 1 (второй узел дерева). Каждый узел является объектом типа TTreeNodes, обладающим своими свойствами и методами.
Во время проектирования формирование дерева осуществляется в окне редактора узлов дерева. Это окно вызывается двойным щелчком на компоненте TreeView или нажатием кнопки с многоточием около свойства Items в окне Инспектора Объектов.
Кнопка "New Item" (новый узел) позволяет добавить в дерево новый узел. Он будет расположен на том же уровне, на котором расположен узел, выделенный курсором в момент щелчка на кнопке "New Item".
Кнопка "New SubItem" (новый дочерний узел) позволяет добавить в дерево дочерний узел. Он будет расположен на уровень ниже уровня того узла, который выделен курсором в момент щелчка на кнопке "New SubItem".
Кнопка "Delete" (удалить) удаляет выделенный узел дерева. Кнопка "Load" позволяет загрузить структуру дерева из файла. Файл, хранящий структуру дерева -- это обычный текстовый файл, содержащий тексты узлов. Уровни узлов обозначаются отступами.
Для каждого нового узла дерева можно указать ряд свойств в панели "Item Properties". Это прежде всего свойство "Text" -- надпись, появляющаяся в дереве около данного узла. Свойства "Image Index" и "Selected Index" определяют индекс пиктограммы, отображаемой для узла, который соответственно не выделен и выделен пользователем в данный момент. Эти индексы соответствуют списку изображений, хранящихся в отдельном компоненте ImageList . Указание на этот компонент вы можете задать в свойстве Images компонента TreeView. Индексы начинаются с 0. Если вы укажете индекс -1 (значение по умолчанию), пиктограммы изображаться не будут. Последнее свойство -- "State Index" в панели "Item Properties" позволяет добавить вторую пиктограмму в данный узел, не зависящую от состояния узла. Подобная пиктограмма может просто служить дополнителъной характеристикой узла. Индекс, указываемый как "State Index", соответствует списку изображений, хранящихся в отдельном компоненте ImageList, указанном в свойстве StateImages компонента TreeView.
Мы рассмотрели формирование дерева в процессе проектирования. Однако, дерево можно формировать или перестраивать и во время выполнения приложения. Для этого служит ряд методов объектов типа TTreeNodes. Следующие методы позволяют вставлять в дерево новые узлы:
function Add(Node: TTreeNode; const S: string): TTreeNode; Добавляет новый узел с текстом S как последний узел уровня, на котором расположен Node.
function AddFirst(Node: TTreeNode; const S: string): TTreeNode; Вставляет новый узел с текстом S как первый из узлов уровня, на котором находится Node. Индексы последующих узлов увеличиваются на 1.
function Insert (Node: TTreeNode; const S: string): TTreeNode; Вставляет новый узел с текстом S сразу после узла Node на тот же уровень. Индексы последующих узлов увеличиваются на 1.
function AddChild(Node: TTreeNode; const S: string): TTreeNode; Добавляет узел с текстом S как последний дочерний узла Node.
function AddChildFirst(Node: TTreeNode; const S: string); TTreeNode; Вставляет новый узел с текстом S как первый из дочерних узлов узла Node. Индексы последующих узлов увеличиваются на 1.
Каждый из этих методов возвращает вставленный узел. Ниже в качестве примера приведен код, формирующий то же дерево.
TreeView1.Items.Clear; // очистка списка
// добавление корневого узла 'производство' (индекс 0)
TreeView1.Items.Add(nil, 'производство');
{добавление дочерних узлов 'цех 1' -- 'цех 3' (индексы 1 - 3)}
TreeView1.Items.AddChild(TreeView1.Items.Item[0], 'цех 1');
TreeView1.Items.AddChild(TreeViewl.Items.Item[0], 'цех 2');
TreeView1.Items.AddChild(TreeView1.Items.Item[0], 'цех 3');
{добавление корневого узла 'управление' после узла 'производство' (индекс 4) }
TreeView1.Items.Add(TreeView1.Items.Item[0], 'управление');
{добавление дочерних узлов 'администрация' и 'бухгалтерия' узла 'управление' }
TreeView1.Items.AddChild(TreeView1.Items.Item[4], 'администрация');
TreeView1.Items.AddChild(TreeView1.Items.Item[4], 'бухгалтерия');
Дерево может быть сколь угодно разветвленным. Например, следующие операторы добавляют дочерние узлы «бригада 1» и «бригада 2» в сформированный ранее узел «цех 1»:
TreeView1.Items.AddChild(TreeView1.Items.Item[1], 'бригада 1');
TreeView1.Items.AddChild(TreeView1.Items.Item[l], 'бригада 2');
Текст, связанный с некоторым узлом, можно найти с помощью его свойства Text. Например, TreeView1.Items.Item[1].Text -- это надпись «цех 1».
С каждым узлом может быть связан некоторый объект. Добавление таких узлов осуществляется методами AddObject, AddObjectFirst, InsertObject, AddChildObject, AddChildObjectFirst, аналогичными приведенным выше, но содержащими в качестве параметра еще указатель на объект:
function AddObject(Node: TTreeNode; const S: string; Ptr: Pointer): TreeNode; Добавляет новый узел с текстом S и объектом Ptr как последний узел уровня, на котором расположен Node.
function AddObjectFirst(Node: TTreeNode; const S: string; Ptr: Pointer): TTreeNode; Вставляет новый узел с текстом S и объектом Ptr как первый из узлов уровня, на котором находится Node. Индексы последующих узлов увеличиваются на 1.
function InsertObject(Node: TTreeNode; const S: string; Ptr: Pointer): TTreeNode; Вставляет новый узел с текстом S и объектом Ptr сразу после узла Node на тот же уровень. Индексы последующих узлов увеличиваются на 1.
function AddChildObject(Node: TTreeNode; const S: string; Ptr: Pointer): TTreeNode; Добавляет узел с текстом S и объектом Ptr как последний дочерний узла Node.
function AddChildObjectFirst(Node: TTreeNode; const S: siring; Ptr: Pointer): TTreeNode; Вставляет новый узел с текстом S и объектом Ptr как первый из дочерних узлов узла Node. Индексы последующих узлов увеличиваются на 1.
Объект, связанный с некоторым узлом, можно найти с помощью его свойства Data. Например, TreeView1.Items.Item[1].Data.
Для удаления узлов имеется два метода: Clear, очищающий все дерево, и Delete(Node: TTreeNode), удаляющий указанный узел Node и все его узлы -- потомки. Например, оператор TreeView1.Items.Clear;
удалит в нашем примере все узлы, а оператор TreeView1.Items.Delete(TreeView1.Items.Item[1]);
удалит узел «цех 1» и его дочерние узлы (если они имеются).
При удалении узлов, связанных с объектами, сами эти объекты не удаляются.
Реорганизация дерева, связанная с созданием или удалением многих узлов, может вызывать неприятное мерцание изображения. Избежать этого можно с помощью методов BeginUpdate и EndUpdate. Первый из них запрещает перерисовку дерева, а второй -- разрешает. Таким образом, изменение структуры дерева может осуществляться по следующей схеме:
TreeView1.Items.BeginUpdate;
<операторы изменения дерева>
TreeView1.Items.EndUpdate;
Если метод BeginUpdate применен подряд несколько раз, то перерисовка дерева произойдет только после того, как столько же раз будет применен метод EndUpdate.
...Подобные документы
Технологии и языки программирования, используемые при разработке программы. Проектирование и реализация социальной сети. Описание и обоснование выбора организации входных и выходных данных. Алгоритм функционирования программы, таблицы базы данных.
курсовая работа [3,5 M], добавлен 10.06.2014Разработка эскизного и технического проектов программы, ее назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка рабочего проекта, спецификация программы.
курсовая работа [159,8 K], добавлен 26.01.2010Проектирование программного обеспечения, позволяющего создавать и вести множество электронных словарей. Обоснование выбора программных средств решения задачи. Разработка формы входных и выходных данных. Описание модулей программы и процесса отладки.
дипломная работа [1007,7 K], добавлен 03.07.2015Разработка эскизного и технического проектов программы, ее назначение и область применения, технические характеристики. Организация входных и выходных данных, выбор состава технических и программных средств. Текст программы, ее описание и тестирование.
курсовая работа [1,3 M], добавлен 15.11.2009Разработка эскизного и технического проектов программы, ее назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка рабочего проекта, спецификация программы.
курсовая работа [700,6 K], добавлен 26.01.2010Комбинированный тип данных для хранения входных данных о студентах и информация, содержащаяся в полях. Пример структуры входных и выходных данных. Алгоритм работы и программный код программы по успеваемости студентов, описание используемых функций.
курсовая работа [135,9 K], добавлен 28.12.2012Разработка эскизного и технического проектов программы "Шифр Цезаря": назначение и область применения, описание алгоритма, организация входных и выходных данных. Выбор состава технических и программных средств, разработка, тест и внедрение программы.
курсовая работа [563,7 K], добавлен 15.07.2012Создание программы для обработки и хранения информации о пациентах, сделанных им назначениях и их выписке из больницы. Описание структуры и определение формы представления входных и выходных данных. Разработка системы средствами C++ и Builder 6.0.
курсовая работа [552,0 K], добавлен 19.02.2013Разработка эскизного и технического проектов программы, моделирующей игру "Кости". Постановка задачи, описание алгоритма; написание программы, организация входных и выходных данных; выбор программных средств; спецификация, текст, условия выполнения.
курсовая работа [93,8 K], добавлен 11.02.2012Разработка Windows-приложения, представляющего собой компьютерную игру "Кости". Организация входных и выходных данных. Минимальные требования. Выбор состава технических и программных средств. Спецификация программы, ее описание и внедрение, тестирование.
курсовая работа [475,8 K], добавлен 18.07.2012Проектирование структуры базы данных. Технология обработки данных. Порядок установки и запуска программы. Описание объектов приложения и структура данных. Ввод и изменение исходных данных. Получение выходных документов и тестирование программы.
отчет по практике [2,3 M], добавлен 22.07.2012Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Разработка программы для автоматизации расчетов на телефонной станции. Описание входной и выходной информации, комплекс технических средств. Интерфейс конечного пользователя. Проектирование программных модулей представления входных и выходных данных.
курсовая работа [460,1 K], добавлен 26.06.2015Разработка программы тестирования студентов по MS PowerPoint с кодом на языке Delphi. Создание алгоритма для решения функциональных требований задачи. Описание переменных, вспомогательных процедур, входных и выходных данных для реализации программы.
курсовая работа [1,5 M], добавлен 21.09.2010Использование теории графов для решения задач. Информационные структуры входных и выходных данных. Иерархическая схема программы. Руководство оператора: назначение и условия выполнения программы. Граф-схема FormCreate, Found, RassUpdate и Search.
курсовая работа [2,5 M], добавлен 07.08.2013Требования к программному изделию и параметрам технических средств. Описание пользовательского интерфейса для автоматизированной системы учёта товаров на оптовом складе. Обоснование выбора языков программирования, организации входных и выходных данных.
дипломная работа [3,4 M], добавлен 02.04.2013Алгоритм и функционирование программы, организация входных и выходных данных, состав технических средств. Обеспечение выбора учебного материла преподавателем с возможностью модификации его содержания. Повышение наглядности проведения лекционных занятий.
дипломная работа [2,6 M], добавлен 22.06.2011Особенности разработки программ на языке Turbo Pascal на примере программы обработки массива данных с построением диаграммы. Функции программы и основные требования к ней. Состав входных и выходных данных. Использование предметной области "Садовод".
курсовая работа [789,1 K], добавлен 13.03.2013Общее описание и структура программы, ее компоненты и функции, сферы практического применения. Требования к функциональным возможностям. Характеристика логической структуры, используемые технические средства. Исследование входных и выходных данных.
курсовая работа [94,7 K], добавлен 30.01.2016Разработка программы игры в крестики-нолики. Примеры игровой ситуации на игровом поле. Описание входных и выходных данных, переменных и функций программы. Реализация алгоритма работы программы на языке C++. Текст программы и примеры ее выполнения.
курсовая работа [352,8 K], добавлен 14.04.2011