Разработка программы "Медицинская энциклопедия"
Технология создания информационной системы. Задание индекса, паролей, языкового драйвера, таблицы для выбора значений. Использование компонента Dilphi: TreeView. Формирование дерева объектов. Организация входных, выходных данных. Описание программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.11.2016 |
Размер файла | 572,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Среди свойств узлов следует отметить Count -- число узлов, управляемых данным, т.е. дочерних узлов, их дочерних узлов и т.п. Если значение Count узла равно нулю, значит у узла нет дочерних узлов, т.е. он является листом дерева.
Вернемся к свойствам компонента TreeView. Важным свойством компонента TreeView является Selected. Это свойство указывает узел, который выделен пользователем. Пользуясь этим свойством можно запрограммировать операции, которые надо выполнить для выбранного пользователем узла. Если ни один узел не выбран, значение Selected равно nil. При выделении пользователем нового узла происходят события OnChanging (перед изменением выделения). В обработчик события передаются параметры Node: TTreeNode -- узел, который выделен в данный момент, и var AllowChange: Boolean -- разрешение на перенос выделения. Если в обработчике задать AllowChange = false, то переключение выделения не произойдет.
У компонента TreeView имеется свойство RightClickSelect, разрешающее (при значении равном true) выделение узла щелчком как левой, так и правой кнопкой мыши.
Ряд событий компонента TreeView связан с развертыванием и свертыванием узлов. При развертывании узла происходят события OnExpanding (перед развертыванием) и OnExpanded (после развертывания). В обработчики обоих событий передается параметр Node: TTreeNode -- развертываемый узел. Кроме того в обработчик OnExpanding передается параметр var AllowExpansion: Boolean, который можно задать равным false, если желательно запретить развертывание. При свертывании узла происходят события OnCollapsing (перед свертыванием) и OnCollapsed (после свертывания). Так же, как и в событиях, связанных с развертыванием, в обработчики передается параметр Node: TTreeNode -- свертываемый узел, а в обработчик OnCollapsing дополнительно передается параметр var AllowCollapse: Boolean, разрешающий или запрещающий свертывание.
Свойство ReadOnly компонента TreeView позволяет запретить пользователю редактировать отображаемые данные. Если редактирование разрешено, то при редактировании возникают события OnEditing и OnEdited, аналогичные рассмотренным ранее (в обработчике OnEditing параметр var AllowEdit: Boolean позволяет запретить редактирование).
Ряд свойств компонента TreeView: ShowButtons, ShowLines, ShowRoot отвечают за изображение дерева и позволяют отображать или убирать из него кнопки, показывающие раскрытия узла, линии, связывающие узлы, и корневой узел. Поэкспериментируйте с этими свойствами и увидите, как они влияют на изображение.
Свойство SortType позволяет автоматически сортировать ветви и узлы дерева. По умолчанию это свойство равно stNone, что означает, что дерево не сортируется. Если установить SortType равным stText, то узлы будут автоматически сортироваться по алфавиту. Возможно также проводить сортировку по связанным с узлами объектам Data (значение SortType равно stData), одновременно по тексту и объектам Data (значение SortType равно stBoth) или любым иным способом. Для использования этих возможностей сортировки надо написать обработчик события OnСompare, в который передаются, в частности, параметры Node1 и Node2 -- сравниваемые узлы, и по ссылке передается целый параметр Compare, в который надо заносить результат сравнения: отрицательное число, если узел Node1 должен располагаться ранее Node2, 0, если эти узлы считаются эквивалентными, и положительное число, если узел Node1 должен располагаться в дереве после Node2. Например, следующий оператор в обработчике события OnCompare обеспечивает обратный алфавитный порядок расположения узлов:
Compare := - AnsiCompareText(Node1.Text, Node2.Text);
События OnCompare наступают после задания любого значения SortType, отличного от stNone, и при изменении пользователем свойств узла (например, при редактировании им надписи узла), если значение SortType не равно stNone. После сортировки первоначальная последовательность узлов в дереве теряется. Поэтому последующее задание SortType = stNone не восстанавливает начальное расположение узлов, но исключает дальнейшую генерацию событий OnCompare, т.е. автоматическую перестановку узлов, например, при редактировании их надписей. Если же требуется изменить характер сортировки или провести сортировку с учетом новых созданных узлов, то надо сначала задать значение SortType = stNone, а затем задать любое значение SortType, отличное от stNone. При этом будут сгенерированы новые обращения к обработчику событий OnCompare.
Имеются и другие возможности сортировки. Например, метод AlphaSort обеспечивает алфавитную последовательность узлов независимо от значения SortType, но при отсутствии обработчика событий OnCompare (если обработчик есть, то при выполнении метода AlphaSort происходит обращение к этому обработчику). Отличие метода AlphaSort от задания значения SortType = stText заключается в том, что изменение надписей узлов приводит к автоматической пересортировке дерева только при SortType = stText.
Мы рассмотрели основные возможности компонента TreeView. Компонент Outline похож на него. Структура дерева тоже содержится в свойстве Items и доступ к отдельным узлам также осуществляется через этот индексный список узлов. Но индексы начинаются с 1. Например, Outline1.Items[1] -- это узел дерева с индексом 1 (первый узел дерева). Свойство Items имеет тип TOutlineNode. Его свойства и методы отличаются от свойств и методов типа узлов в TreeView. И заполняется структура дерева иначе: через свойство Lines типа TStrings. Редактор этого свойства можно вызвать, щелкнув на кнопке с многоточием около свойства Lines в окне Инспектора Объектов. Вы попадете в окно, в котором можете записать тексты всех узлов, делая отступы, чтобы выделить уровни узлов. Текст должен выглядеть так, как выше описывалось представление структуры в текстовом файле.
Пиктограммы, сопровождающие изображения узлов, задаются параметрами PictureOpen (пиктограмма развернутого узла), PictureClosed (пиктограмма свернутого узла), PictureMinus (пиктограмма символа «-» около развернутого узла, имеющего наследников), PicturePlus (пиктограмма символа «+» узла, имеющего наследников, но не развернутого), PictureLeaf (пиктограмма узла, не имеющего наследников -- листа дерева). Основное отличие пиктограмм компонента Outline заключается в том, что они одинаковы для всех узлов одного типа, тогда как в TreeView можно задавать пиктограммы индивидуально для каждого узла.
Программно изменять структуру дерева можно с помощью методов Add, AddObject (добавление узла в дерево), Insert, InsertObject (вставка узла в заданную позицию), AddChild, AddChildObject (вставка дочернего узла), Delete (удаление узла).
Индекс выделенного пользователем узла можно определить через свойство SelectedItem. Если SelectedItem = 0, значит ни один узел не выделен. Текст выделенного узла определяется свойством Text: например,
OutLine1.Items[Outline1.SelectedItem].Text
Впрочем, тот же самый текст даст и выражение
OutLine1.Lines[Outline1.SelectedItem-1]
В заключение коротко рассмотрим компонент ListView. Он позволяет отображать в стиле Windows 95/98 данные в виде списков, таблиц, крупных и мелких пиктограмм. С подобным отображением все вы сталкиваетесь, раскрывая папки Windows.
Стиль отображения информации определяется свойством ViewStyle, которое может устанавливаться в процессе проектирования или программно во время выполнения. Свойство может принимать значения: vsIcon -- крупные значки, vsSmallIcon -- мелкие значки, vsList -- список, vsReport -- таблица. Что означает каждое из этих значений вы можете посмотреть в любой папке Windows на рабочем столе.
Если вы хотите предоставить пользователю возможность изменять вид списка, сделайте следующее:
введите в приложение разделы меню "Крупные значки" (пусть его имя будет MIcon), "Мелкие значки" (имя MSmallIcon), "Список" (имя MList) и "Таблица" (имя MReport) установите во всех этих разделах одинаковый отличный от нуля индекс GroupIndex и свойства RadioItem в true один из разделов пометьте как Checked и в свойстве списка ViewStyle установите значение, соответствующее этому разделу напишите следующие обработчики щелчков для этих разделов:
procedure TForm1.MIconClick(Sender: TObject);
begin
ListView1.ViewStyle:=vsIcon;
MIcon.Checked:=true;
end;
procedure TForm1.MSmallIconClick(Sender: TObject);
begin
ListView1.ViewStyle:=vsSmallIcon;
MSmallIcon.Checked:=true;
end;
procedure TForm1.MListClick(Sender: TObject);
begin
ListView1.ViewStyle:=vsList;
MList.Checked:=true;
end;
procedure TForm1.MReportClick(Sender: TObject);
begin
ListView1.ViewStyle:=vsReport;
MReport.Checked:=true;
end;
Основное свойство компонента, описывающее состав отображаемой информации -- Items. Во время проектирования оно может быть установлено специальным редактором , вызываемом щелчком на кнопке с многоточием рядом с этим свойством в окне Инспектора Объектов. Оно похоже на окно, описанное для компонента TreeView. Точно так же в нем задаются новые узлы кнопкой "New Item" и дочерние узлы -- кнопкой "New SubItem". Только смысл дочерних узлов другой: это информация, которая появляется только в режиме vsReport -- в виде таблицы.
Для каждого узла задается свойство "Caption" -- надпись, появляющаяся около пиктограммы. Для дочерних узлов это свойство соответствует надписи, появляющейся, в ячейках таблицы в режиме vsReport.
Свойство "Image Index" определяет индекс пиктограммы. Индекс соответствует спискам изображений, хранящимся в отдельных компонентах ImageList . Указания на эти компоненты вы можете задать в свойствах "LargeImages" для режима vsIcon и "SmallImages" для режимов vsSmallIcon, vsList и vsReport. Индексы начинаются с 0. Если вы укажете индекс -1 (значение по умолчанию), пиктограммы изображаться не будут. Свойство "State Index" в панели "Item Properties" позволяет добавить вторую пиктограмму в данный объект. Подобная пиктограмма может просто служить дополнительной характеристикой объекта. Индекс, указываемый как "State Index", соответствует списку изображений, хранящихся в отдельном компоненте ImageList, указанном в свойстве "StateImages" компонента ListView.
Свойство Columns определяет список заголовков таблицы в режиме vsReport при свойстве ShowColumnHeaders (показать заголовки), установленном в true. Свойство Columns можно задать в процессе проектирования специальным редактором заголовков, вызываемом двойным щелчком на компоненте ListView или щелчком на кнопке с многоточием рядом со свойством Columns в окне Инспектора Объектов. Редактор заголовков уже был нами рассмотрен .
Свойство Checkboxes определяет отображение индикатора с флажком около каждого элемента списка. Индикаторы можно устанавливать программно или их может изменять пользователь во время выполнения. Тогда узнать программно, установлен ли индикатор в некотором элементе Items[i], можно проверкой его свойства Checked. Например:
for i:=0 to ListView1.Items.Count-1 do
if ListView1.Items[i].Checked then
...;
Свойства HotTrack и HotTrackStyles определяют появление выделения при перемещении курсора над элементом списка и стиль этого выделения. Свойство HoverTime (только в Delphi 5) задает в миллисекундах задержку появления такого выделения.
Свойство списка Selected определяет выделенный пользователем элемент списка.
Свойство DragMode определяет режим перетаскивания элементов списка. Если вы хотите разрешить пользователю перетаскивать пиктограммы по площади списка в режимах vsIcon и vsSmallIcon, вам надо сделать следующее:
установить DragMode = dmAutomatic
установить DragKind = dkDrag
написать обработчик события OnDragOver списка:
Accept := Source = ListView1;
написать обработчик события OnDragDrop списка:
(Source as TListView).Selected.Position:=Point(X,Y);
Если вы предоставили пользователю возможность выбирать вид отображения списка с помощью описанных ранее разделов меню, то в обработчиках щелчка на MIcon и MSmallIcon надо написать операторы
ListView1.DragMode:=dmAutomatic;
а в обработчиках щелчка на MList и МReport надо написать операторы
ListView1.DragMode:=dmManual;
Метод Arrange:
procedure Arrange(Code: TListArrangement);
позволяет упорядочить пиктограммы в режимах vsIcon и vsSmallIcon. Параметр Code определяет способ упорядочивания:
arAlignBottom выравнивание вдоль нижнего края области
arAlignLeft выравнивание вдоль левого края области
arAlignRight выравнивание вдоль правого края области
arAlignTop выравнивание вдоль верхнего края области
arDefault выравнивание по умолчанию (вдоль верхнего края области) arSnapToGrid размещение каждой пиктограммы в ближайшем узле сетки.
В Delphi 5 введено еще одно свойство ListView -- WorkAreas.
Это свойство определяет рабочую область (прямоугольную рамку), в которой осуществляется выравнивание пиктограмм в режимах vsIcon и vsSmallIcon. Свойство WorkAreas представляет собой индексированный список, аналогичный Items, но совершенно независимый от него. Если WorkAreas -- пустой список (ни одна область в него не добавлена), то упорядочивание пиктограмм производится в пределах всей клиентской области ListView. Добавление новой рабочей области осуществляется методом Add. Свойство рабочей области Rect типа TRect определяет границы области. Свойство Color определяет цвет рамки, обрамляющей область. Свойство DisplayName определяет подпись под рамкой. И рамка, и подпись отображаются только в случае, если свойство списка ShowWorkAreas установлено в true.
Пример операторов, создающих в площади списка две рабочие области:
ListView1.WorkAreas.Add;
ListView1.WorkAreas[0].Rect := Rect(0,0,
ListView1.ClientWidth div 4, ListView1.ClientHeight div 2);
ListView1.WorkAreas.Items[0].DispiayName := 'Область 0';
ListView1.WorkAreas.Items[0].Color := clRed;
ListView1.WorkAreas.Add;
ListView1.WorkAreas[1].Rect := Rect(ListView1.ClientWidth div 2,
0, (ListView1.ClientWidth div 4)*3, ListView1.ClientHeight div 2);
ListView1.WorkAreas.Items[1].DisplayName := 'Область 1';
Упорядочивание пиктограмм происходит в пределах той области, в которой они находятся. Если вы разрешили пользователю перетаскивать пиктограммы, как было описано ранее, то вид выравнивания будет зависеть от расположения пиктограмм. Если одна или несколько из них расположены в пределах одной области, а другие размещаются вне рабочих областей, то при вызове метода Arrange все они расположатся в пределах той области, в которой была хоть одна пиктограмма. Если же пиктограммы были расположены в нескольких рабочих областях, то они будет упорядочиваться в пределах областей их размещения.
Способ упорядочивания определяется соответствующим заданием свойства SortType, которое уже рассматривалось нами для компонента TreeView.
1.4 Технические характеристики
1.4.1 Постановка задачи
Исходя из описания предметной области (см. Введение) нам необходимо разработать и создать базу данных, в которую входили бы следующие данные:
· Наименование заболевания;
· Группа заболевания;
· Описание заболевания;
· Симптомы
· Способы лечения
На основании вышеизложенного создадим следующие базы данных и рассмотрим их структуру:
1. Name-таблица наименования заболевания
2. Gruop-группа заболеваний
3. About-описание заболевания
4. Simtom-симптомы и лечение заболевания
1.4.2 Организация входных и выходных данных
При работе входными и выходными данными будут являться строковые, целые, вещественные и BLOB типы данных.
1.4.3 Выбор состава технических и программных средств
Разработка программы будет вестись в среде визуального программирования Delphi 6.
Delphi строится на базе компилятора объектно-ориентированного языка Object Pascal.
Для разработки программы воспользуемся средой программирования Borland Delphi5 Enterprise.
Delphi - это комбинация нескольких важнейших технологий:
Высокопроизводительный компилятор в машинный код
Объектно-ориентированная модель компонент
Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов
Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре “клиент-сервер”. Этот компилятор в настоящее время является самым быстрым в мире, его скорость компиляции составляет свыше 120 тысяч строк в минуту на компьютере 486DX33. Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения (4GL) и в то же время обеспечивает качество кода, характерного для компилятора 3GL.
В процессе построения приложения разработчик выбирает из палитры компонент готовые компоненты. Еще до компиляции он видит результаты своей работы - после подключения к источнику данных их можно видеть отображенными на форме, можно перемещаться по данным, представлять их в том или ином виде. В этом смысле проектирование в Delphi мало чем отличается от проектирования в интерпретирующей среде, однако после выполнения компиляции мы получаем код, который исполняется в 10-20 раз быстрее, чем то же самое, сделанное при помощи интерпретатора. Кроме того, компилятор компилятору рознь, в Delphi компиляция производится непосредственно в родной машинный код, в то время как существуют компиляторы, превращающие программу в так называемый p-код, который затем интерпретируется виртуальной p-машиной. Это не может не сказаться на фактическом быстродействии готового приложения.
Особенности Delphi:
модульная архитектура, с возможностью разделения интерфейсной и описательной частей;
средства объектной ориентации (наследование, инкапсуляция и полиморфизм);
поддержка механизмов RTTI (Run-Time Type Information), позволяющих получать информацию о базовых характеристиках объектных типов (классов) и их экземпляров (объектов) с помощью языковых средств, непосредственно встроенных в системную библиотеку и структуру организации описаний классов;
Следствием введения поддержки RTTI стала возможность создания визуального инструмента разработки приложений.
При программировании в среде Delphi используются так называемые компоненты, созданные на основе VCL (Visual class Library).
Компоненты, используемые в разрабатываемой программе, написаны на том же языке, который используется при создании приложений. Любой программист может создавать свои компоненты, наследуя их от других классов или уже созданных программистом своих классов.
Объекты БД в Delphi основаны на SQL и включают в себя Borland Database Engine. В состав Delphi также включен Borland SQL Link, поэтому доступ к СУБД Oracle, Sybase, Informix и InterBase происходит с высокой эффективностью. Разработчик в среде Delphi, проектирующий информационную систему для локальной машины, может использовать для хранения информации файлы формата .db (Paradox).
Преимущества Delphi:
· Быстрота разработки приложения.
· Высокая производительность разработанного приложения.
· Возможность разработки новых компонент и инструментов собственными средствами Delphi (существующие компоненты и инструменты доступны в исходниках)
Технические характеристики компьютера, создающие условия для полноценной работы Delphi 6 и программ, созданных в этой среде следующие:
1. Intel Pentium133 или выше (Pentium 200 рекомендуется);
2. Операционная система Microsoft Windows 9x,XP,NT;
3. Оперативная память: 16-32MB (рекомендуется 64MB или больше);
4. 80MB свободного места жесткого диска;
5. CD-ROM;
6. монитор;
7. Мышь.
dilphi информационный драйвер программа
2. Разработка рабочего проекта
2.1 Разработка программы
Для разработки программы используется среда визуального программирования Delphi. Проект программы содержит 2 окна:
Окно “Оглавление” - Главное окно программы.
Окно “Поиск” - Окно поиска.
Form1.
object Form1: TForm1
Left = 203
Top = 108
Width = 766
Height = 593
Caption = 'Form1'
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
2- компонент PageControl1: TPageControl
object PageControl1: TPageControl
Left = 0
Top = 0
Width = 758
Height = 566
ActivePage = TabSheet1
Align = alClient
TabIndex = 0
TabOrder = 0
Рис.2.1. Разработка окна “Оглавление”
3- компонент TabSheet1: TTabSheet
object TabSheet1: TTabSheet
Caption = #1054#1075#1083#1072#1074#1083#1077#1085#1080#1077
ParentShowHint = False
ShowHint = False
4 - DBMemo3: TDBMemo
object DBMemo3: TDBMemo
Left = 328
Top = 24
Width = 673
Height = 209
DataField = 'About'
DataSource = DataSource1
ScrollBars = ssVertical
TabOrder = 2
End
Рис.2.2. Разработка окна “Поиск”
5 - компонент TreeView1: TTreeView
object TreeView1: TTreeView
Left = 8
Top = 16
Width = 305
Height = 633
Images = ImageList1
Indent = 19
TabOrder = 0
OnChange = TreeView1Change
Items.Data = {
End
6- компонент DBMemo4: TDBMemo
object DBMemo4: TDBMemo
Left = 320
Top = 264
Width = 681
Height = 385
DataField = 'Simtom'
DataSource = DataSource1
ScrollBars = ssVertical
TabOrder = 1
End
7-компонент StaticText3: TStaticText
object StaticText3: TStaticText
Left = 400
Top = 0
Width = 81
Height = 17
Caption=#1054'
TabOrder = 3
End
8- компонент -TabSheet2: TTabSheet
object
Caption = #1055#1086#1080#1089#1082
ImageIndex = 1
9- компонент DBGrid1: TDBGrid
object DBGrid1: TDBGrid
Left = 0
Top = 8
Width = 625
Height = 273
DataSource = DataSource1
TabOrder = 0
TitleFont.Charset = DEFAULT_CHARSET
TitleFont.Color = clWindowText
TitleFont.Height = -11
TitleFont.Name = 'MS Sans Serif'
TitleFont.Style = []
Columns = <
item
Expanded = False
FieldName = 'Name'
Title.Caption=#1053#1072#1079#1074#1072#
Width = 315
Visible = True
End
item
Expanded = False
FieldName = 'Gruop'
Title.Caption = #1043#1088#1091#1087#1087#1072
Width = 270
Visible = True
End
10- компонент DBMemo1: TDBMemo
object DBMemo1: TDBMemo
Left = 632
Top = 24
Width = 377
Height = 641
DataField = 'Simtom'
DataSource = DataSource1
ScrollBars = ssVertical
TabOrder = 1
End
11- компонент DBMemo2: TDBMemo
object DBMemo2: TDBMemo
Left = 0
Top = 312
Width = 625
Height = 129
DataField = 'About'
DataSource = DataSource1
ScrollBars = ssVertical
TabOrder = 2
End
12- компонент StaticText1: TStaticText
object StaticText1: TStaticText
Left = 720
Top = 0
Width = 111
Height = 17
Caption = #1057#1080#
TabOrder = 3
End
13-компонент StaticText2: TStaticText
object StaticText2: TStaticText
Left = 176
Top = 288
Width = 123
Height = 17
Caption = #1054#1087#1080#1089#1072#1085#
TabOrder = 4
End
14- компонент GroupBox1: TGroupBox
object GroupBox1: TGroupBox
Left = -8
Top = 440
Width = 633
Height = 73
Caption = #1055#1086#1080#1089#1082
TabOrder = 5
15- компонент Button1: TButton
object Button1: TButton
Left = 8
Top = 24
Width = 145
Height = 25
Caption = #1055#1086#1080#1089
TabOrder = 0
OnClick = Button1Click
End
16- компонент Edit1: TEdit
object Edit1: TEdit
Left = 208
Top = 24
Width = 209
Height = 21
TabOrder = 1
End
17- компонент DBNavigator1: TDBNavigator
object DBNavigator1: TDBNavigator
Left = 144
Top = 520
Width = 240
Height = 25
DataSource = DataSource1
TabOrder = 6
End
18- компонент DataSource1: TDataSource
object DataSource1: TDataSource
DataSet = Table1
Left = 92
Top = 40
End
19- компонент Table1: TTable
object Table1: TTable
Active = True
DatabaseName = 'D:\programma'
TableName = 'tab1.db'
Left = 52
Top = 112
End
20- компонент Timer1: TTimer
object Timer1: TTimer
Interval = 3000
OnTimer = Timer1Timer
Left = 224
Top = 64
End
21- компонент ImageList1: TImageList
object ImageList1: TImageList
Left = 360
Top = 56
Bitmap = {
End
Создание дерева объектов программным путём
unit Polic;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, DB, DBTables, Grids, DBGrids, DBCtrls,
ExtCtrls, jpeg;
type
TForm1 = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Table1: TTable;
DBMemo1: TDBMemo;
DBMemo2: TDBMemo;
StaticText1: TStaticText;
StaticText2: TStaticText;
GroupBox1: TGroupBox;
Button1: TButton;
Edit1: TEdit;
DBNavigator1: TDBNavigator;
TreeView1: TTreeView;
DBMemo4: TDBMemo;
DBMemo3: TDBMemo;
StaticText3: TStaticText;
StaticText4: TStaticText;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure TreeView1Change(Sender: TObject; Node: TTreeNode);
procedure Timer1Timer(Sender: TObject);
procedure Tree(Sender: TObject; Node: TTreeNode);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Locate('Name', Edit1.Text, [loPartialKey, loCaseInsensitive]);
end;
procedure TForm1.TreeView1Change(Sender: TObject; Node: TTreeNode);
var
T:string;
j:integer;
begin
j:= TreeView1.Selected.StateIndex;
T:=TreeView1.Items.Item[j].Text;
Table1.Locate('Name',T, [loPartialKey, loCaseInsensitive]);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Image1.Free;
Panel1.Free;
Timer1.Free
end;
procedure TForm1.Tree(Sender: TObject; Node: TTreeNode);
begin
TreeView1.Items.Clear; // очистка списка
// добавление корневого узла 'Оглавление' (индекс 0)
TreeView1.Items.Add(nil, 'Оглавление');
{добавление дочернего узла 'Заболевания органов дыхания' (индекс 1}
TreeView1.Items.AddChild(TreeView1.Items.Item[1], 'Заболевания органов дыхания');
TreeView1.Items.AddChild(TreeViewl.Items.Item[2], 'Абсцесс легкого острый');
TreeView1.Items.AddChild(TreeView1.Items.Item[3], 'Абсцесс хронический');
{добавление корневого узла 'Заболевания сердечно-сосудистой системмы' после узла 'Заболевания органов дыхания' (индекс 14) }
TreeView1.Items.Add(TreeView1.Items.Item[14], 'Заболевания сердечно-сосудистой системмы');
{добавление дочернего узла 'Синусовая брадасардия'}
TreeView1.Items.AddChild(TreeView1.Items.Item[15], 'Синусовая брадасардия');
{добавление дочернего узла 'Экстрасистолы'}
TreeView1.Items.AddChild(TreeView1.Items.Item[16], 'Экстрасистолы');
TreeView1.Items.AddChild(TreeView1.Items.Item[17], 'Пароксизмальная тахикардия');
TreeView1.Items.AddChild(TreeView1.Items.Item[18], 'Мерцание и трепетание предсердий');
TreeView1.Items.AddChild(TreeView1.Items.Item[19], 'Мерцание и трепетание желудочков');
TreeView1.Items.AddChild(TreeView1.Items.Item[20], 'Блокады сердца');
TreeView1.Items.AddChild(TreeView1.Items.Item[21], 'Пароксизмальная тахикардия');
end;
end.
Создание дерева объектов визуально с помощью компонента TreeView приведено на рисунке 2.3.
Рис.2.3. Разработка дерева объектов визуально
2.2 Описание программы
Общие сведения.
Обозначение программы - приложение по поддержке принятия решений в области медицины.
Наименование программы - "Медецинская энциклопедия", исполняемый модуль - Medik.exe.
Для функционирования программы необходимо следующее установленное программное обеспечение: операционная система Windows.
Программа написана на языке программирования Object Pascal в интегрированной среде разработки Delphi 6.0.
Функциональное назначение.
Программа предназначена для получения справочных данных в области медицины.
Используемые технические средства.
При работе программы могут использоваться ПЭВМ любой архитектуры. Желательно наличие манипулятора типа мышь.
Вызов и загрузка.
Программа хранится на НЖМД в директории Х:\…\medik. Запуск программы осуществляется любыми способами, предусмотренными в ОС Windows
Перед работой с программой необходимо установить Borland database engine. Затем создать в BDE Administrator алиас «chut», который будет указывать на директорию Data в директории с программой
Входные данные.
Входные данные должны быть следующих типов: целые, вещественные, строковые, BLOB, даты. Формат даты - чч.мм.гг.
Выходные данные.
Выходные данные аналогичны входным, с тем лишь различием, что они выводятся на экран дисплея.
2.3 Спецификация программы
Спецификация программы представлена в таблице 2.1.
Таблица 2.1. Спецификация программы
Наименование |
Обозначение |
Примечание |
|
Project1.dof |
Файл параметров проекта |
Содержит текущие установки проекта: настройки компилятора и компонов-щика, имена служебных каталогов. |
|
Project1.dpr |
Файл проекта |
Связывает все файлы из которых состоит приложение |
|
Project1.res |
Файл ресурсов |
Содержит пиктограммы, графические изображения |
|
Polic.pas |
Файл модуля для формы №1 |
Определяет функциональность формы №2 |
|
Polic.dfm |
Файл формы №1 |
Содержит список свойств всех компо-нентов, включенных в форму №1 |
|
Polic.dcu |
Объектный файл для Unit1.pas |
Откомпилированная версия Polic.pas |
|
tab1.db |
Файл базы данных |
||
tab1.PX |
Файл базы данных |
||
tab1.MB |
Файл базы данных |
Заключение
Выполнение выпускной квалификационной работы осуществлялось в интегрированной среде разработки Delphi 6.0.
В качестве базы данных были использованы таблицы Paradox 7.0. Обращение к базам данных осуществлялась с использованием механизма доступа к данным Borland Database Engine.
Такой выбор объясняется тем, что и Delphi и Borland Database Engine входят в один пакет поставки, работа с базами данных в Delphi основана на механизме BDE.
Основной целью данной выпускной квалификационной работы было показать и использовать полученные в процессе обучения знания и навыки.
В процессе выполнения выпускной квалификационной работы были решены следующие задачи:
· Разработана и создана база данных по наименованиям заболеваний;
· Разработана и создана база данных по группам заболеваний;
· Разработана и создана база данных по описанию заболеваний;
· Разработана и создана база данных по симптомам и лечению заболеваний;
· Разработан и создан интерфейс взаимодействия пользователя с программой;
· Написан исходный код программы.
В результате выполнения выпускной квалификационной работы мы имеет программу поддержки принятия решений - «Медицинская энциклопедия».
Имя исполняемого файла Medik.exe
Библиографический список литературы
ГОСТ 19.102-77 ЕСПД. Стадии разработки.
ГОСТ 19.202-78 ЕСПД. Спецификация. Требования к содержанию и оформлению.
ГОСТ 19.401-78 ЕСПД. Текст программы. Требования к содержанию и оформлению.
ГОСТ 19.404-79 ЕСПД. Пояснительная записка. Требования к содержанию и оформлению.
ГОСТ 19.505-79 ЕСПД. Руководство оператора.
Дж.Ульман. Основы систем баз данных. -М.: Финансы и статистика,1983.
Диго С.М. Проектирование и использования баз данных. -М.: Финансы и статистика, 1995.
Фараонов В.В. Delphi 4. Учебный курс. -М.:Издательство "Нолидж", 1998.
Шумаков П.В. Delphi 3.0 и создание баз данных. М., 1997.
S. Tiexeira & X. Pacheco. Delphi Developers Guide. SAMS Publishing / Borland PRESS.
Borland Delphi InterBase User Guide. Формат PDF.
12. Фараонов В.В. Delphi. Программирование на языке высокого уровня. - М.: С-Петербург, 2003.
13. Бобровский С. Delphi 7. Учебный курс. - М.: С-Петербург, 2003.
Приложение
Рис.1 Окно «Оглавление»
Рис.2 Окно «Поиск»
Рис.3 Заставка программы
Рис.4 Схема построения базы данных
Размещено на Allbest.ru
...Подобные документы
Технологии и языки программирования, используемые при разработке программы. Проектирование и реализация социальной сети. Описание и обоснование выбора организации входных и выходных данных. Алгоритм функционирования программы, таблицы базы данных.
курсовая работа [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