Введение
На самых ранних стадиях развития информационных технологий использовались списки – набитые на перфокарте и написанные на магнитной ленте. Компьютерные технологии усовершенствовались, изменились объемы памяти, изменился внешний вид, компьютеры стали доступны для населения. По мере развития вычислительной техники возникали разные методики программирования. С развитием техники появился машинный язык, с помощью которого программист мог задавать команды. На каждом этапе создавался новый подход к возникающим вопросам, который помогал программистам работать с растущей сложностью запросов к программам. В наше время происходит массовая компьютеризация, на место людей приходят компьютеры, они стоят рядом с человеком, помогая с расчетами и хранением данных. По мере внедрения компьютеров в жизнь человека, программирование этих самых компьютеров стало проблемой, т.к. не было еще удобной и доступной системы хранения и обработки данных.
Такой системой стала база данных. Базой данных является представленная в объективной форме совокупность самостоятельных материалов, систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины.
Проектирование и разработка базы данных требуют и искусства, и умения. Понимание пользовательских требований и перевод их в эффективный проект базы данных можно назвать творческим процессам. Преобразование этих проектов в физические базы данных с помощью функционально полных и высокопроизводительных приложений – инженерный процесс.
1.Анализ характеристик объекта компьютеризации
Предметная область курсового проекта — регистрация больных в поликлинике. Использование баз данных для данного вида задач является оптимальным решением, т.к. при использовании баз данных скорость поиска сводится к минимуму. Задача данной курсовой работы – написание программы, которая могла бы выполнять ряд действий, необходимых для работы с базой данных. А именно: осуществлять поиск элементов, редактирование элементов, добавление и просмотр компонентов базы данных. Целью курсовой работы является закрепление знаний по разработке алгоритмов и написанию программ с помощью структурного программирования. А это значит, что программа будет выполняться пошагово, а основной блок программы будет содержать несколько вызовов функций. При этом начальную информацию программа будет брать из готового текстового файла.
Подобная база данных очень удобна для работы в поликлинике, т.к. в одно и то же время хранит информацию и о посещениях больного больницы, и о самом больном. При этом при желании пользователь может, выбрав определенный пункт меню, работать как с первой таблицей, так и со второй.
Для правильной работы базы данных необходимо правильно связать две таблицы, таким образом, чтобы при изменении одной из них автоматически изменялась и другая. При всем этом необходимо, чтобы программа была достаточно доступной для пользователя и не требовала дополнительных качеств компьютера, чтобы ее можно было установить в современных поликлиниках, и после короткого инструктажа сотрудников запустить эту систему.
Такая система просто необходима современным поликлиникам, ведь время, потраченное на поиск информации в написанном виде, могло быть сохранено, а количество сотрудников, занимающихся трудоемкой и бессмысленной работой, уменьшено в несколько раз.
Также стоит заметить, что разделение базы данных на две части делает работу еще более удобной, т.к. на запрос пользователя выводит только необходимую ему информацию, а не загромождает экран множеством ненужных пока записей. При необходимости эти записи будут выведены на экран, но до этого они остаются невидимыми. В письменном виде это является невозможным, т.к. создание нескольких картотек, содержащих связную информацию, неудобно, гораздо проще записывать все данные в один журнал, что является неудобным способом экономии времени.
2. Постановка задачи
Задача курсовой работы заключается в разработке структур данных, алгоритмов и программного обеспечения системы управления базой данных. В процессе выполнения курсовой работы студент должен использовать полученные знания по дисциплинам: «Алгоритмы и структуры данных», «Программирование и алгоритмические языки», «Программное обеспечение ЭВМ».
Программный продукт работы с Базой данных должен быть написана на языке программирования С++ и реализован в программе MicrosoftVisualStudio(Visual Studio– линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств).
Программа, написанная в рамках данной курсовой работы должна выполнять несколько функций. Необходимо запрограммировать ввод и редактирование данных, добавление новых данных, поиск данных, сортировку данных, обработку информации по запросу с выводом на экран.
Во-первых, т.к. необходимо создать базу данных, программа должна брать информацию из текстового файла. Также программа должна содержать по меньшей мере одну заранее подготовленную структуру. Желательно, чтобы структур было две и более, причем они должны быть связаны друг с другом таким образом, чтобы пользователь мог работать в первой и во второй, как по-очереди, так и одновременно. Также она должна выполнять несколько действий со структурами: добавление записи в базу данных, удаление записи структуры, редактирование структуры по выбору пользователя. У пользователя должна быть возможность просматривать списки базы данных во время работы программы, должен осуществляться поиск по одному из критериев структуры, и сортировка по какому-либо пункту. Выход из программы должен быть произведен только по запросу пользователя.
Для выполнения каждой из функций в тексте программы желательно использование действий с функцией. Т.е. для выполнения пункта добавления в тексте программы должна существовать функция добавления, для выполнения удаления или редактирования в тексте должны быть функции удаления или редактирования. Результат программа должна выводить в отдельный файл, созданный заранее. Также пользователь после всех изменения в программе может при очередном возвращении в меню выбрать пункт «Просмотр» и на экран выведется измененная им база данных.
3. Синтез структур данных
Практическая часть курсовой работы, кроме основной задачи, будет содержать два текстовых файла с данными таблиц.
Для создания структур данных к курсовой работе были взяты наиболее востребуемые критерии в области медицины и обслуживания больных. Программа будет работать с двумя таблицами, связанными между собой связью один-ко-многим. Первая, основная таблица, будет состоять из шести столбцов: номер записи, фамилия больного, диагноз, специализация лечащего врача, фамилия врача, дата поступления. Вторая таблица содержит дополнительную информацию о пациентах. В нее входят такие поля: номер пациента, фамилия, имя, отчество, дата рождения, улица проживания, рост и вес.
Первая таблица имеет название «журнал посещений», а вторая – «картотека», т.к. в ней будут храниться личные данные пациентов. Входными данными являются структуры, в которые входят переменные типа char и int. Основная работа по обработке данных состоит в обработке строк.
Первая структура включает в себя данные, наиболее часто используемые, те, которые необходимо записывать сразу при поступлении больного в поликлинику. Данные же второй таблицы также часто используются в записи больных, а это: дата рождения, улица проживания, ФИО и т.д.
Журнал посещений имеет вид:
1 Petrov gripp terapevt Nesterov 04.03.10
2 Visokovckiy dermatit terapevt Nesterov 04.03.10
3 Lynina pylpa terapevt Nesterov 04.03.10
4 Kovalchuk alergia terapevt Nesterov 04.03.10
5 Petrov infecsia terapevt Gifrit 05.03.10
6 Visokovckiy bechenctvo terapevt Gifrit 05.03.10
7 Petrov boli_v_serse terapevt Nesterov 05.03.10
8 Lynina vospalenie_legkih terapevt Nesterov 05.03.10
9 Kovalchuk bessonica terapevt Nesterov 05.03.10
10 Kovalchuk prostuda terapevt Nesterov 06.03.10
11 Petrov perelom_ryki hirurg Fimina 06.03.10
12 Kovalchuk otravlenie terapevt Gifrit 06.03.10
13 Petrov konuktivit terapevt Nesterov 06.03.10
14 Visokovckiy ochog hirurg Fimina 06.03.10
15 Petrov alergia terapevt Gifrit 07.03.10
16 Lynina prostuda terapevt Nesterov 07.03.10
17 Lynina apendisit hirurg Fimina 07.03.10
Структура данных, соответствующая этому файлу имеет вид:
struct Boln
{
int nomer; //номер пациента по порядку
char familia [41];//фамилия пациента
char diagnos [41];//диагноз
char vrach [41];//специализация лечащего врача
char famimlia_vracha [41];//фамилия лечащего врача
char data_post [10];//дата поступления пациента в поликлинику
};
Файл «Картотека» содержит следующие записи:
1 Petrov Vasiliy Ivanovich 14.03.1984 Romachkova 175 75
2 Visokovckiy Nikolay Pavlovich 12.02.1980 Cheremyshkina 180 80
3 Lynina Anastasia Vasilievna 13.11.1982 Ivaskina 175 60
4 Kovalchuk Roman Petrovach 21.06.1986 Agronoma 170 75
Структура, соответствующая данной таблице имеет вид:
struct Name
{
int nomer; //номер пациента по порядку –PAGE_BREAK–
char familia [41]; //фамилия пациента
char imia [31]; //имя пациента
char itchestvo [41]; //отчество пациента
char data_rogd [11]; //дата рождения пациента
char ylisa [41]; //улица проживания пациента
int ves; //вес пациента
int rost; //рост пациента
};
4. Разработка алгоритмов системы
4.1 Выбор языка
В течение последних десятилетий компьютерная технология развивалась поразительными темпами. Сейчас переносной компьютер может хранить больше информации и производить вычисления быстрее, чем большая ЭВМ тридцать лет назад. Языки программирования также претерпели значительную эволюцию. Изменения, возможно, были не столь впечатляющими, зато очень важными. Появление более мощных компьютеров вызывало к жизни более объемные и сложные программы, которые в свою очередь, высвечивали новые проблемы области управления программами, а также их сопровождения.
В 70-е годы человечество вошло в эпоху структурного программирования, которое помогло навести порядок. Язык. С предоставил в распоряжение программиста инструменты, необходимые для структурного программирования, а также обеспечил создание компактных, быстро работающих программ и возможность адресации аппаратных средств. Эти свойства помогли языку С стать господствующим языком программирования в 80-е годы. В то же время появилась и новая модель программирования – объектно-ориентированное, или ООП.
Объектно-ориентированное программирование предлагает новый подход к решению задачи создания программ больших размеров. В отличие от процедурного программирования, где главное внимание уделяется алгоритмам, в ООП основной акцент делается на данных. При использовании ООП проблему решают не с помощью процедурного подхода, заложенного в языке, а приспосабливают язык для решения этой проблемы. Одним из преимуществ языка С++ является то, что он наиболее приспособлен для ООП.
Обобщенное программирование – это еще одна парадигма программирования, поддерживаемая языком С++. Назначение обобщенного программирования такое же, как и ООП, — упростить повторное использование кодов программ и методов абстрагирования общих понятий. Однако, в то время как в ООП основное внимание уделяется данным, в обобщенном программировании упор делается на алгоритмы и у него другая область применения. Обобщенное программирование – это создание кода программы, независимого от типа данных, т.е. можно один раз написать функцию для обобщенного типа данных и затем использовать ее для разнообразных реальных типов данных. Это обеспечивается с помощью шаблонов языка С++.
Язык С++, так же как и С, является детищем компании Bell Laboratories. Страуструп создал этот язык в начале 80-х годов. По его собственным словам, «язык С++ был разработан главным образом так, чтобы мне и моим друзьям не приходилось программировать на ассемблере, С или различных современных языках высокого уровня. Его главное назначение состояло в следующем: сделать так, чтобы отдельным программистам было легче и приятнее писать хорошие программы».
Страуструпа больше заботила эффективность языка. С++, а не следование какой-либо философии или стилю программирования: реальные потребности программирования – вещь куда более важная, чем теоретическая чистота определения свойств языка. В качестве базового для С++ Страуструп выбрал язык С, так как С был кратким, хорошо подходил для системного программирования, был широко доступен. Страуструп добавил в язык С элементы ООП и обобщенного программирования, не изменяя при этом существенно сам язык С.
4.2 Алгоритмы системы
При запуске программы пользователю будет предоставлена возможность выбора одного из восьми действий с списками (добавить, удалить из журнала посетителей, удалить из картотеки, редактировать, просмотреть, найти, редактировать, выйти из программы). Это меню будет высвечиваться каждый раз после выполнения действия, т.е. если пользователь выберет пункт «добавить» и введет данные пациента перед ним снова высветятся те же пункты меню и он сможет снова выбрать желаемое действие. Этот процесс будет выполнятся до тех пор, пока пользователь не выберет пункт главного меню «Выход».
Алгоритм работы программы зависит от выбора пользователя. Рассмотрим каждый вариант ответа пользователя и реакцию программы:
При выборе пользователем пункта 1, пользователь добавляет информацию о пациенте. При этом пользователь изначально вводит данные в таблицу посещений. После нажатия подтверждения выбора, экран перед пользователем очистится, и высветится приглашение ввести данные о пациенте (см. рис. 4.1).
Рисунок 4.1 – Алгоритм добавления новых данных
Если в главном меню выбран пункт 2, т.е. пользователь высказал свое желание удалить запись из журнала посещаемости. После осуществления выбора на экране высвечивается полный, нумерованный список посещений. Для продолжения пользователь выбирает номер записи, которую необходимо удалить (см. рис. 4.2.).
Рисунок 4.2 – Алгоритм удаления записи из журнала посещений
При выборе пункта 3, удаление из картотеки, выполняется более сложный алгоритм удаления. Удаляя запись о пациенте из картотеки пользователь автоматически удаляет все записи о нем и из журнала посещений. При выборе данного пункта перед пользователем высветятся данные картотеки, тоже пронумерованные, и пользователю необходимо только выбрать номер удаляемого пациента (см. рис. 4.3).
Рисунок 4.3 – Алгоритм удаления данных из картотеки
При выборе 4-ого пункта происходит редактирование данных. При этом перед пользователем будет поставлен выбор – редактирование информации из первой либо из второй таблицы он желает осуществить (из журнала посетителей или из картотеки). В зависимости от выбора пользователя перед ним высветятся либо данные картотеки либо данные журнала посетителей и пользователь выберет номер редактируемой записи… При этом все данные выбранной строки удаляются и пользователь заново введет все данные о пациенте в выбранную таблицу (см. рис. 4.4).
Рисунок 4.4 – Алгоритм редактирования данных
При выборе пункта просмотра пользователю будут предложены два варианта – просмотр списка посещений либо просмотр картотеки. Выбранная таблица высветится на экране (см. рис. 4.5).
Рисунок 4.5 – Алгоритм просмотра данных
При выборе пользователем пункта меню поиска по фамилии пользователю необходимо ввести фамилию искомого пациента. При этом на экране высветятся сначала данные из картотеки, а потом – все записи из Журнала посещений, содержащие его фамилию (см. рис. 4.6).
Рисунок 4.6 – Алгоритм поиска по фамилии
Выход. При выборе этого пункта пользователем будет осуществлен выход из программы (см. рис. 4.8).
Рисунок 4.8 – алгоритм выхода из программы
5. РЕЗУЛЬТАТЫ КОМПЛЕКСНОГО ТЕСТИРОВАНИЯ
При запуске программы высветится окно с главным меню (см. рис. 5.1), в котором пользователю необходимо указать номер действия, которое он желает осуществить.
Для добавления записи необходимо выбрать в главном меню пункт 1. При этом пользователю будет предложено ввести данные о больном в картотеку (см. рис. 5.2).
Данные о новом пациенте записаны в журнал посещений.
Для быстрого просмотра таблиц в главном меню необходимо нажать цифру 5. После ввода пользователю будут предложен просмотр двух таблиц: просмотр списка посещений и просмотр картотеки (см. рис. 5.4).
В зависимости от выбранного варианта будет показана либо таблица посещений (см. рис. 5.5), либо картотека (см. рис. 5.6).
При работе с базами данных пользователю необходимо быстро найти все данные о каком-либо пациенте. Программа, составленная для данного курсовой работы, содержит функцию поиска по фамилии (см. рис. 5.7). Таким образом, введя только фамилию искомого пациента пользователь получит все данные о пациенте взятые из обеих таблиц. При этом данные из картотеки будут на первом месте, а за ними следуют данные из списка посещений, нумерация останется той же, что и в таблицах (см. рис. 5.8).
Для удаления записи из журнала посещений в главном меню необходимо нажать цифру 2. После этого на экране будут показаны все записи журнала посещений (см. рис. 5.9). Пользователю останется только выбрать запись, которую он хочет удалить. Для проверки правильности действия необходимо просмотреть измененную таблицу.
Для удаления из картотеки в главном меню необходимо выбрать третий пункт, тогда на экране высветятся все данные картотеки (см. рис.5. 10). Пользователь также выбирает строчку для удаления. После выполнения этого действия данные о больном будут удалены не только из картотеки но и из списка посещений, т.е. данных об удаленном больном не останется.
Если данные были введены неверно, в любой момент из можно изменить благодаря функции редактирования. Для этого в главном меню необходимо выбрать цифру 4. Пользователю будет предложен выбор, какую таблицу редактировать: журнал посещений либо картотеку.
При выборе редактирования журнала посещений, пользователю будут выведены данные из выбранной таблицы, после чего он введет номер редактируемой записи (см. рис. 5.11). После этого на экране появятся пустые поля с заголовками столбцов таблицы журнала посещений. При этом новые данные пользователь сохраняет в строку номер которой он ввел ранее (см. .12).
При выборе пользователем данных картотеки, ему будут выведены на экран записи выбранной таблицы и предложена запись для редактирования (см. рис. 5.13). После этого пользователь введет заново данные выбранной строки (см. рис. 5.14).
Для выхода из программы необходимо выбрать цифру 8. После этого будет осуществлен моментальный выход из программы.
ВЫВОД
Результатом выполнения курсовой работы является рабочая программа, связывающая две таблицы. Недостатком этой программы является тот факт, что для многих служащих в поликлинике язык С++ и работа на нем являются неизвестной сферой, а значит в больнице должен работать также и специалист по этим вопросам, чтобы в случае неполадки устранить ее в короткий срок. Для решения этой проблемы была разработана специальная программа Access, более понятная сотрудникам, которая не нуждается в специально обученных людях. Эта программа создана на основе логики языка С++, но имеет другой внешний вид, более удобный и понятный. Она создана специально для работы с базами данных, и в нее встроены некоторые функции, которые в С++ необходимо описывать отдельно.
Преимуществами программы курсовой работы являются: быстродействие, понятность программного кода, а также связь между двумя отдельными таблицами.
Дальнейшими усовершенствованиями программы может быть создание дружественного интерфейса в стиле Windowsприложений, расширение функциональности программного продукта.
ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА
Динман М.И. С++. Освой на примерах. – СПб.: БХВ-Петербург, 2006. – 384 с.
Липпман С. Основы программирования на С++. – М.: Издательский дом «Вильямс», 2002. –256с.
Либерти Дж. Освой самостоятельно С++ за 24 часа. – М.: Издательский дом «Вильямс», 2007. –448с.
Прата С. Язык программирования C. Лекции и упражнения / Пер. с англ. – М.: Издательский дом «Вильямс», 2006. – 960 с.
Павловская Т.А. C/C++. Учебник. – СПб.: Питер, 2001.– 464 с.