База данных поликлиники
Разработка информационной системы с применением динамических структур данных. Назначение и область применения разрабатываемой программы по регистрации больных в поликлинике. Структурная схема фрагмента информационной системы, таблица имен и списков.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 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Выявление сущностей и связей, атрибутов сущностей и назначение первичных ключей при разработке базы данных. Реляционная модель данных. Описание стадий жизненного цикла информационной системы: анализ, проектирование, реализация, внедрение, сопровождение.
курсовая работа [152,2 K], добавлен 11.05.2014Разработка информационной базы данных для поликлиники, которая поможет пользователю найти информацию о любом сотруднике или пациенте. Функциональная структура предметной области. Диаграмма потоков данных (DFD-диаграмма). Поддержка целостности данных.
курсовая работа [6,7 M], добавлен 17.09.2014Выбор методологии проектирования и разработка информационной системы "Расчёт зарплаты" для предприятия ОАО РТП "Авторемонтник". Архитектурное проектирование базы данных информационной системы и разработка её интерфейса. Тестирование программного модуля.
дипломная работа [2,3 M], добавлен 25.05.2014