База данных поликлиники

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    224,52 Кб
  • Опубликовано:
    2013-12-05
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

База данных поликлиники

Содержание

Задание

Назначение и область применения разрабатываемой программы

Постановка задачи

Структурная схема фрагмента информационной системы

Таблица имён

Инструкция по работе с программой

Заключение

Литература        

Приложение 1(листинг программного кода)



Задание

Разработать информационную систему с применением динамических структур данных. Для решения поставленной задачи рекомендуется использовать динамические структуры (списки, деревья, очереди, стеки и т.п.) в том случае, если для решения поставленной задачи их использование окажется более целесообразным. Обеспечить возможность выполнения следующих операций над выбранными структурами данных:

инициализацию;

добавление новых элементов;

удаление элементов;

перемещение по структуре данных;

поиск элементов структуры данных, отвечающих заданным критериям;

вывод всех элементов структуры данных на экран.

Вариант №2 «Поликлиника»

Назначение и область применения разрабатываемой программы

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

Основные возможности и характеристики программы

Программа позволяет создавать, упорядоченный по алфавиту, список пациентов, содержащий ФИО , год рождения и название отделения в которое направлен больной. Добавлять в него новые записи о пациентах, так же осуществлять просмотр всего имеющегося списка, и удалять записи о пациентах , осуществляя их поиск по заданным параметрам:ФИО и год рождения.

Постановка задачи

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

Списком называется упорядоченное множество, состоящее из переменного числа элементов, к которым применимы операции включения, исключения. Список, отражающий отношения соседства между элементами, называется линейным. Если ограничения на длину списка не допускаются, то список представляется в памяти в виде связной структуры. Линейные связные списки являются простейшими динамическими структурами данных.

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

На рисунке ниже приведена структура односвязного списка. На нем поле INF - информационное поле, данные, NEXT - указатель на следующий элемент списка. Каждый список должен иметь особый элемент, называемый указателем начала списка или головой списка, который обычно по формату отличен от остальных элементов. В поле указателя последнего элемента списка находится специальный признак nil, свидетельствующий о конце списка.

Рис. Список.

Итак, необходимо реализовать программно линейный связный список и обеспечить выполнение над ним следующих операций:

Добавление

Сортировка

Поиск

Удаление

Структурная схема фрагмента информационной системы

        




Таблица имён

Во время работы над курсовой работой был создан объект - пациентов. В качестве узлов списка используются экземпляры структуры node.

= ^TPacient; //указатель на тип Tpacient

TPacient = record

name:string[20]; //ФИО:string[4]; //год рождения

vr:string[20]; //врач:TPPacient; //следующий элемент списка: TPPacient; // голова списка: TPPacient; //новый узел списка: TPPacient; //текущий узел списка: TPPacient; //предыдущий( относительно curr) узел списка(node); //создание нового элемента списка

node^.name:= Edit1.Text; //ФИО^.date:= Edit2.Text; //Год рождения^.vr:= ListBox1.Items[listBox1.ItemIndex];//врачButton1Click(Sender: TObject);//добавление пациента в списокButton2Click(Sender: TObject);//вывод списка пациентовButton3Click(Sender: TObject);//удаление из списка

Инструкция по работе с программой

При запуске программы появляется форма (рис. 1)

Рис. 1

Для добавления нового пациента в список нужно ввести в поля «ФИО» и «Год рождения» данные пациента, а также выделить курсором мыши название, отделения в которое направляется больной. Когда данные введены нажать на кнопку «добавить». Список при добавлении пациентов автоматически сортируется по алфавиту.

Для просмотра введенного списка пациентов нужно нажать кнопку «вывести список» . (рис. 2)

Рис.2

Для поиска и удаления пациента до нужно ввести его ФИО, год рождения и нажать на кнопку «удалить». Если пациент присутствует в списке появится сообщение (рис. 3)

Рис.3

И при нажатии на «ОК» появится сообщение (рис.4)

Рис.4

Если введенные данные не соответствуют ни одному пациенту , тогда появится сообщение (рис.5)

Рис.5

Проверить результат выполнения операции удаления можно снова нажав на кнопку «вывести список» (рис.6)

Рис.6


Заключение

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

Большинство современных языков программирования уже содержат встроенные средства для работы со списками , но тем не менее, полезно самому написать код для работы с ними, чтобы лучше понимать их внутреннее устройство для более эффективного использования.

база данный список информационный

Литература

Никита Культин «Delphi в задачах и примерах»  БХВ-Петербург 2003

Вирт Н. «Алгоритмы и структуры данных» Пер. с англ. - М.: Мир, 1989.


Приложение 1(листинг программного кода)

Unit1;

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls;= class(TForm): TEdit;: TEdit;: TButton;: TButton;: TButton;: TListBox;: TLabel;: TLabel;: TLabel;Button1Click(Sender: TObject);Button2Click(Sender: TObject);FormCreate(Sender: TObject);Button3Click(Sender: TObject);: TForm1;

{$R *.dfm}= ^TPacient; //указатель на тип Tpacient= record:string[20]; //ФИО:string[4]; //год рождения

vr:string[20]; //врач:TPPacient; //следующий элемент списка

end;: TPPacient; // голова спискаTForm1.Button1Click(Sender: TObject);: TPPacient; //новый узел списка: TPPacient; //текущий узел списка: TPPacient; //предыдущий( относительно curr) узел списка

begin(node); //создание нового элемента списка

node^.name:= Edit1.Text; //ФИО^.date:= Edit2.Text; //Год рождения^.vr:= ListBox1.Items[listBox1.ItemIndex];//врач

//добавление узла в список

//найдем подходящее место

curr:=head;:=NIL;(curr <> NIL) and (node.name > curr^.name) do

begin

// введенное значение больше текущего:= curr;:=curr^.next; // к следующему узлу

end;pre = NIL

// новый узел в начало списка

node^.next:=head;

head:=node;

// новый узел после pre, перед curr^.next:=pre^.next;^.next:=node;;.text:='';.text:='';.SetFocus;;TForm1.Button2Click(Sender: TObject);

var: TPPacient; // текущий элемент списка:integer; // длина (кол-во элементов) списка:string; // строковое представление списка

n:=0;:='';:=head;curr <> NIL n:=n+1;:=st+curr^.name+' '+curr^.date+' '+curr^.vr+#13;:=curr^.next;;n <> 0ShowMessage('Список пациентов: '#13+st)

else ShowMessage('В списке нет элементов.');

end;TForm1.FormCreate(Sender: TObject);:=NIL; // список пустой;

//удаление пациентовTForm1.Button3Click(Sender: TObject);:TPPacient; // текущий, проверяемый узел: TPPacient; // предыдущий узел:boolean; // TRUE - узел, который надо удалить, есть в списке

buttonSelected : Integer;head = NIL then('Список пустой!',mtError,[mbOk],0);;;:=head; // текущий узел - первый узел:=NIL; // предыдущего узла нет:=FALSE;

// найти узел, который надо удалить(curr <> NIL) and (not found) do(curr^.name = Edit1.Text) and (curr^.date = Edit2.Text)found:=TRUE // нужный узел найден// к следующему узлу:=curr;:=curr^.next;;;found then

// нужный узел найденMessageDlg('Пациент будет удален из списка!',

mtWarning,[mbOk,mbCancel],0) = mrOk{Exit}

// удаляем узелpre = NIL head:=curr^.next // удаляем первый узел списка

else pre^.next:=curr.next;(curr);('Узел' + #13 +

'ФИО:'+Edit1.Text + #13 +

Edit2.Text+' года рождения'+ #13 +

'удален из списка.',,[mbOk],0);Exit;// узла, который надо удалить, в списке нет

MessageDlg('Пациент' + #13 +

'ФИО:' + Edit1.Text + #13 +

Edit2.Text +' года рождения'+ #13 +

'в списке не найден.',

mtError,[mbOk],0);.Text:='';.Text:='';.SetFocus;

end;.


Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!