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

Разработка информационной системы с применением динамических структур данных. Назначение и область применения разрабатываемой программы по регистрации больных в поликлинике. Структурная схема фрагмента информационной системы, таблица имен и списков.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 05.12.2013
Размер файла 325,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru

Содержание

Задание

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

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

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

Таблица имён

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

Заключение

Литература

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

Задание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рис. Список.

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

Добавление

Сортировка

Поиск

Удаление

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

Таблица имён

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

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

TPacient = record

name:string[20]; //ФИО

date:string[4]; //год рождения

vr:string[20]; //врач

next:TPPacient; //следующий элемент списка

head: TPPacient; // голова списка

node: TPPacient; //новый узел списка

curr: TPPacient; //текущий узел списка

pre: TPPacient; //предыдущий( относительно curr) узел списка

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

node^.name:= Edit1.Text; //ФИО

node^.date:= Edit2.Text; //Год рождения

node^.vr:= ListBox1.Items[listBox1.ItemIndex];//врач

procedure Button1Click(Sender: TObject);//добавление пациента в список

procedure Button2Click(Sender: TObject);//вывод списка пациентов

procedure Button3Click(Sender: TObject);//удаление из списка

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

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

Рис. 1

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

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

Рис.2

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

Рис.3

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

Рис.4

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

Рис.5

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

Рис.6

Заключение

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

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

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

Литература

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

Джулиан М. Бакнелл «Фундаментальные алгоритмы и структуры данных в Delphi» DiaSoft Москва 2003

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

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

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Edit2: TEdit;

Button1: TButton;

Button2: TButton;

Button3: TButton;

ListBox1: TListBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure Button3Click(Sender: TObject);

var

Form1: TForm1;

implementation

{$R *.dfm}

type

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

TPacient = record

name:string[20]; //ФИО

date:string[4]; //год рождения

vr:string[20]; //врач

next:TPPacient; //следующий элемент списка

end;

var

head: TPPacient; // голова списка

procedure TForm1.Button1Click(Sender: TObject);

var

node: TPPacient; //новый узел списка

curr: TPPacient; //текущий узел списка

pre: TPPacient; //предыдущий( относительно curr) узел списка

begin

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

node^.name:= Edit1.Text; //ФИО

node^.date:= Edit2.Text; //Год рождения

node^.vr:= ListBox1.Items[listBox1.ItemIndex];//врач

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

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

curr:=head;

pre:=NIL;

while (curr <> NIL) and (node.name > curr^.name) do

begin

// введенное значение больше текущего

pre:= curr;

curr:=curr^.next; // к следующему узлу

end;

if pre = NIL

then

begin

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

node^.next:=head;

head:=node;

end

else

begin

// новый узел после pre, перед curr

node^.next:=pre^.next;

pre^.next:=node;

end;

Edit1.text:='';

Edit2.text:='';

Edit1.SetFocus;

end;

procedure TForm1.Button2Click(Sender: TObject);

var

curr: TPPacient; // текущий элемент списка

n:integer; // длина (кол-во элементов) списка

st:string; // строковое представление списка

begin

n:=0;

st:='';

curr:=head;

while curr <> NIL

do

begin n:=n+1;

st:=st+curr^.name+' '+curr^.date+' '+curr^.vr+#13;

curr:=curr^.next;

end;

if n <> 0

then ShowMessage('Список пациентов: '#13+st)

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

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

head:=NIL; // список пустой

end;

//удаление пациентов

procedure TForm1.Button3Click(Sender: TObject);

var

curr:TPPacient; // текущий, проверяемый узел

pre: TPPacient; // предыдущий узел

found:boolean; // TRUE - узел, который надо удалить, есть в списке

buttonSelected : Integer;

begin

if head = NIL then

begin

MessageDlg('Список пустой!',mtError,[mbOk],0);

Exit;

end;

curr:=head; // текущий узел - первый узел

pre:=NIL; // предыдущего узла нет

found:=FALSE;

// найти узел, который надо удалить

while (curr <> NIL) and (not found) do

begin

if (curr^.name = Edit1.Text) and (curr^.date = Edit2.Text)

then found:=TRUE // нужный узел найден

else // к следующему узлу

begin

pre:=curr;

curr:=curr^.next;

end;

end;

if found then

begin

// нужный узел найден

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

mtWarning,[mbOk,mbCancel],0) = mrOk

then {Exit}

begin

// удаляем узел

if pre = NIL

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

else pre^.next:=curr.next;

Dispose(curr);

MessageDlg('Узел' + #13 +

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

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

'удален из списка.',

mtInformation,[mbOk],0);

end

else Exit;

end

else // узла, который надо удалить, в списке нет

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

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

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

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

mtError,[mbOk],0);

Edit1.Text:='';

Edit1.Text:='';

Edit1.SetFocus;

end;

end.

Размещено на Allbest.ru


Подобные документы

  • Анализ характеристик объекта компьютеризации. Разработка структур данных, алгоритмов и программного обеспечения системы управления базой данных. Особенности синтеза структур данных. Разработка алгоритмов системы и оценка результатов тестирования.

    курсовая работа [37,0 K], добавлен 07.12.2010

  • Создание информационной системы учета стран, поставляющих продукты в крупные фирмы. Схема данных и ее описание. Создание таблиц программы. Проектирование базы данных. Главная кнопочная форма. Рисунки структур запросов для отчетов в режиме конструктора.

    курсовая работа [2,9 M], добавлен 04.02.2013

  • Выбор инструментальной среды для разработки базы данных. Подсистема сбора, обработки и загрузки данных. Укрупненный алгоритм разрабатываемой информационной системы. Формирование области запросов базы, интерфейс ввода и редактирования входных данных.

    курсовая работа [2,2 M], добавлен 25.12.2012

  • Создание структуры базы данных. Таблица реквизитов входных данных информационной системы "Видеобиблиотека". Процессы, составляющие действие в базе данных. Формирование ведомостей с использованием MS Excel. Использование интегрированной среды Delphi.

    курсовая работа [455,8 K], добавлен 05.01.2013

  • Разработка информационной системы для предметной области с использованием заданных структур данных. Создание и проверка базы данных, которая позволяет вводить информацию, хранить её в файле, осуществлять поиск, модификацию, сортировку и удаление данных.

    курсовая работа [240,0 K], добавлен 29.03.2016

  • Разработка модуля регистрации абонентов для информационной системы предприятия "Библиотека". Структура базы данных. Взаимодействие клиентов с БД и клиентов друг с другом. Форма регистрации, сохранение данных. Основные сущности данного приложения.

    курсовая работа [991,4 K], добавлен 18.06.2015

  • Хранение и обработка данных. Компоненты системы баз данных. Физическая структура данных. Создание таблиц в MS Access. Загрузка данных, запросы к базе данных. Разработка информационной системы с применением системы управления базами данных MS Access.

    курсовая работа [694,0 K], добавлен 17.12.2016

  • Разработка информационной базы данных для поликлиники, которая поможет пользователю найти информацию о любом сотруднике или пациенте. Функциональная структура предметной области. Диаграмма потоков данных (DFD-диаграмма). Поддержка целостности данных.

    курсовая работа [6,7 M], добавлен 17.09.2014

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

    курсовая работа [152,2 K], добавлен 11.05.2014

  • Выбор методологии проектирования и разработка информационной системы "Расчёт зарплаты" для предприятия ОАО РТП "Авторемонтник". Архитектурное проектирование базы данных информационной системы и разработка её интерфейса. Тестирование программного модуля.

    дипломная работа [2,3 M], добавлен 25.05.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.