Разработка автоматизированной информационной системы "Регистратура поликлиники"

Назначение и условия применения программы. Анализ средств разработки. Логическая модель программы. Входные и выходные данные. Требования к информационной и программной совместимости. Условия эксплуатации и требования к параметрам технических средств.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 05.01.2018
Размер файла 1,9 M

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

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

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

ВВЕДЕНИЕ

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

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

В моём случае, я разрабатываю автоматизированную информационную систему «Регистратура поликлиники» на языке программирования С++. Эта простая программа обеспечивает стабильную работу поликлиники, упрощает запись ко врачам, работу медсестер: им больше не приходится всё писать в ручную или же искать карту пациента в архиве - всю работу выполняет автоматизированная информационная система:

· Поиск карты пациента;

· Запись;

· Создание новой карты;

· Хранение информации.

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

1. ОБЩИЙ РАЗДЕЛ

1.1 Системные требования

Минимальные требования к электронной вычислительной машине:

· Процессор: IntelCeleron или аналогичный AMD;

· Частота: 1500 МГЦ;

· Оперативная память: 512 Мб;

· Клавиатура и мышь.

Рекомендуемые требования к электронной вычислительной машине:

· Процессор: IntelIntelPentium ;

· Частота: 2000 MHz;

· Оперативная память: 1 ГБ;

· Клавиатура и мышь.

1.2 Характеристика системы программирования

1.2.1 Анализ средств разработки

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

Для начала подвергнем анализу наиболее популярные языки программирования:Java, C#, C++ и VisualBasic[DataStructures…, 1999].

Анализ языка программирования

Таблица 1.1 Парадигмы

Возможность

Язык

Java

C#

C++

VisualBasic

Императивная

+

+

+

+

Объектно-ориентированная

+

+

+

+

Рефлексивная

-/+

+/-

+/-

+/-

Обобщенное программирование

+

+

+

+

Логическая

-

-

-

-

Распределительная

+

-/+

+/-

-

· Императивная. Императивный язык описывает не задачу, а способ ее решения.

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

· Рефлексивная. Это возможность, предполагающая, что язык программирования может оперировать собственным кодов как данными.

· Обобщенное программирование. При написании алгоритмов есть возможность передавать им данные любых типов.

· Логическая. Программа является набором некоторых правил и фактов вывода в определенном логическом исчислении.

· Распределительная. Поддержка языком программирования возможности распараллеливания вычислений.

Таблица 1.2 Типизация

Возможность

Язык

Java

C#

C++

VisualBasic

Статическая типизация

+

+

+

+

Явная типизация

+

+

+

+

Неявное приведение типов без потери данных

-

+

+

+

Неявное приведение типов с потерей данных

-

-

+

+

Неявное приведение типов в неоднозначных ситуациях

-

+

+

+

Алиасы типов

-

+

+

-

Информация о типах в runtime

+

+

-/+

+

Информация о типах-параметрах в runtime

-

+

-/+

+

· Статическая типизация. Невозможность изменения типов в процессе выполнения после их объявления.

· Явная типизация. Параметры и типы переменных указываются явно.

· Неявное приведение типов без потери данных. Например, приведение числа с плавающей точкой к целому числу.

· Неявное приведение типов с потерей данных. Например, приведение целого числа к числу с плавающей точкой.

· Неявное приведение типов в неоднозначных ситуациях. Допустим, при попытке сложения числа 7 и строки «3» мы можем получить, как число 10, так и строку «73».

· Алиасы типов. Замена одного алиаса типа на другой, полностью эквивалентный ему, например, #typedefTYPE1 TYPE2.

· Информация о типах в runtime. Наличие возможности выяснить точный тип объекта в runtime.

Таблица 1.3 Компилятор-интерпретатор

Возможность

Язык

Java

C#

C++

Visual Basic

Open-source

+

+

+

+

Возможность компиляции

+

+

+

+

Bootstrapping

+

+

+

?

Многопоточная компиляция

+

-

+

+

Интерпретатор командной строки

-

-

+/-

+

Условная компиляция

-/+

+

+

+

· Open-sourceкомпилятор или интерпретатор. Эта возможность говорит о наличии полноценного open-sourceкомпилятора или интерпретатора.

· Возможность компиляции. Способность компилировать код в нативный или в byte-codс возможностью JIT компиляции.

· Bootstrapping. Это значит, что компилятор написан на том же языке, что и компилируется им.

· Многопоточная компиляция. Способность компилятора распараллеливать процесс сборки на несколько потоков при условии наличии таковых.

· Интерпретатор командной строки. Возможность вводить инструкции языка в командную строку с последующим незамедлительным их выполнением.

· Условная компиляция. Наличие возможности включения или отключения компиляции участка программного кода в зависимости от выполнения условий, например, в C++ это делается с помощью #if … #endif.

Таблица 1.4 Управление памятью

Возможность

Язык

Java

C#

C++

Visual Basic

Создание объектов на стеке

-

+

+

-

Неуправляемые указатели

-

+

+

-

Ручное управление памятью

-

+

+

-

Сборка мусора

+

+

-/+

+

· Объекты на стеке. Способность создавать экземпляры любого типа данных не «в куче», а на стеке.

· Неуправляемые указатели. Характерен прямой доступ к памяти и наличие адресной арифметики.

· Ручное управление памятью. Возможность оперировать с данными «в куче» посредством, например, операторов newи deleteв языке C++.

· Сборка мусора. Компилятор способен сам отслеживать неиспользуемые участи памяти в куче и освобождать их.

данные информационный программный логический

Таблица 1.5. Управление потоками вычислений

Возможность

Язык

Java

C#

C++

Visual Basic

Конструкция goto

-

+

+

+

Инструкция break без метки

+

+

+

+

Инструкция break с меткой

+

-

-

+

Поддержка try/catch

+

+

+

+

Ленивые вычисления

-

-/+

+

-

· Конструкция goto. Подразумевает возможность безусловного перехода к метке.

· Инструкция breakбез метки. Безусловный выход из ближайшего цикла.

· Инструкция breakс меткой. Поддержка безусловного выхода из цикла, помеченного меткой.

· Поддержка try/catch. Наличие возможности обрабатывать исключения с помощью конструкции try/catch.

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

Таблица 1.6. Типы и структуры данных

Возможность

Язык

Java

C#

C++

Visual Basic

Кортежи

-

+/-

+/-

+/-

Многомерные массивы

+/-

+

+

+

Динамические массивы

+/-

+/-

+

+

Ассоциативные массивы

+/-

+

+

+

Контроль границ массивов

+

+

+/-

+

Цикл foreach

+

+

+

+

Целые числа произвольной длины

+

+

-

+

Целые числа с контролем границ

-

-

-

-

· Кортежи. Способность компилятора вернуть из метода кортеж. Кортеж - это неименованный тип данных, содержащий безымянные поля произвольного типа.

· Многомерные массивы. Наличие в языке возможности создавать многомерные массивы, например, array[N][M].

· Динамические массивы. Наличие в языке возможности создавать массивы, которые способны изменять свой размер в процессе выполнения программного кода.

· Ассоциативные массивы. Это так называемыеhash-таблицы.

· Цикл foreach. Наличие в языке конструкции, благодаря которой существует возможность перебора всех элементов коллекции.

· Наличие поддержки длинной целочисленной арифметики.

· Целые числа с контролем границ. Определение типа чисел с заданным диапазоном, например, intrange [-77, 69], и при попытке присвоения переменной rangeзначения, выходящего за границы, происходила бы ошибка.

Таблица 1.7 Объектно-ориентированные возможности

Возможность

Язык

Java

C#

C++

Visual Basic

Интерфейсы

+

+

+

+

Мультиметоды

-

-/+

-/+

-

Переименование членов при наследовании

-

-

-/+

-

Множественное наследование

-

-

+

-

· Интерфейсы. Наличие синтаксической и семантической конструкций в программном коде, обеспечивающая специфицирование услуг, предоставляемых классом.

· Множественное наследование. Способность при создании класса наследоваться от нескольких, что позволяет производному классу содержать в себе функционал базовых классов.

Таблица 8. Функциональные возможности

Возможность

Язык

Java

C#

C++

Visual Basic

First class function

-

+

+

?

Анонимные функции

-

+

+

+

Лексические замыкания

+

+

+

+

Частичное применение

-

?

+/-

?

Каррирование

-

+

+/-

-

· Firstclassfunction или объекты первого класса. В контексте определенного языка это названия сущностей, способных передаваться в качестве параметра, быть полученными при выполнении функции или быть присвоенными переменной.

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

· Лексическое замыкание. Наличие в функции ссылки на переменную, объявленную вне тела функции и не переданную в нее в качестве параметра.

Таблица 1.9 Прочие свойства

Возможность

Язык

Java

C#

C++

VisualBasic

Макросы

-

-

+

+

Шаблоны

+

+

+

+

Поддержка Unicodeв идентификаторах

+

+

+

+

Перегрузка функций

+

+

+

+

Динамические переменные

+

+

+

+

Значение параметров по умолчанию

-

+

+

+

Локальные функции

+/-

+/-

+

+/-

Наличие библиотек для работы с графикой

+

+

+

+

· Макросы. Наличие макросистемы, обрабатывающей код программы до ее компиляции или выполнения.

· Шаблоны. Наличие возможности создания обобщенных классов для расширения функционала. Например, в C++ это template классы.

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

· Динамические переменные. Способность языка создавать в нем переменные «в куче».

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

· Наличие библиотек для работы с графикой. Возможность использовать функционал таких библиотек как: OpenGL, WebGL, OpenML, DirectX.

Исходя из приведенных сравнительных характеристик можно сказать, что по своей универсальности при написании программного обеспечения языку C++ нету равных. Считается, что при реализации программного продукта нужно отталкиваться от поставленной цели, и для этого в наибольшей степени подходят два языка: C++ и Java. Они оба обладают возможностью распараллеливания вычислений и созданием хорошего графического интерфейса, хотя в Javaдля этого требуется значительно больше оперативной памяти, что склоняет выбор не в его пользу. Также, в отличии от языка C++, Javaне поддерживает прямой доступ к памяти компьютера и ленивые вычисления, что сильно увеличило бы объем кода. Помимо прочего C++ обладает более хорошей типизацией данных.

1.2.2 Описание среды программирования

Чтобы создавать различные программы от простых до сложно-структурированных,необходимы 3 вещи:

1. Язык программирования, в нашем случаи С++;

2. Умение программировать, то есть его талант и знание языка;

3. Среда программирования. Её мы и рассмотрим.

QtCreator -- кроссплатформенная свободная IDE для разработки на С, С++ и QML. РазработанаTrolltech (Digia) для работы с фреймворком Qt. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса как с использованием QtWidgets, так и QML.

Основная задача QtCreator -- упростить разработку приложения с помощью фреймворка Qt на разных платформах. Поэтому среди возможностей, присущих любой среде разработки, есть и специфичные, такие как отладка приложений на QML и отображение в отладчике данных из контейнеров Qt, встроенный дизайнер интерфейсов как на QML, так и на QtWidgets.

QtCreator поддерживает системы сборки qmake, cmake, autotools, с версии 2.7 qbs. Для проектов, созданных под другими системами, может использоваться в качестве редактора исходных кодов. Есть возможность редактирования этапов сборки проекта.

Среда разработки имеет графический интерфейс для следующих отладчиков: GDB, CDB и QML/JavaScript. В качестве отдельной опции реализовано отображение содержимого контейнеров, таких как QString, std::map и прочих. Поддерживаются следующие режимы отладки:

· простой для отладки локально запущенных приложений, таких как GUI приложения на Qt;

· терминал для отладки локально запущенных процессов, которым требуется консоль, обычно это приложения без GUI;

· подключённый для отладки локальных процессов, запущенных вне QtCreator;

· удалённый для отладки запущенных на другой машине процессов (используя gdbserver);

· ядро для отладки завершившихся аварийно процессов на Unix;

· Post-mortem для отладки завершившихся аварийно процессов на Windows;

· TRK для отладки процессов, запущенных на устройстве Symbian.

Рисунок 1.1 Окно редактора кода QtCreator

1.3 Требования к функциональным характеристикам

1.3.1 Функциональные и нефункциональные требования к программе

Функциональные требования к программе:

· Обеспечение хранения, добавления карт пациента;

· Поиск пациента в базе данных;

· Запись к врачу;

· Хранение данных расписаний врачей;

· Просмотр карт пациента, расписаний врачей;

· Сформирование талона.

Нефункциональные требования к программе:

· Меню программы;

· Интерфейс программы.

1.3.2 Требования к надежности

В требования к надежности включают:

· состав и количественные значения показателей надежности для системы в целом или ее подсистем;

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

· требования к надежности технических средств и программного обеспечения;

· требования к методам оценки и контроля показателей надежности на разных стадиях создания системы в соответствии с действующими нормативно-техническими документами.

1.3.3. Условия эксплуатации и требования к составу и параметрам технических средств

Условия эксплуатации программы совпадают с условиями эксплуатации по ЭВМ IBM PC. Программа должна быть рассчитана на непрофессионального пользователя.

Минимальные требования к электронной вычислительной машине:

· Процессор: IntelCeleron или аналогичный AMD;

· Частота: 1500 МГЦ;

· Оперативная память: 512 Мб;

· Клавиатура и мышь.

Рекомендуемые требования к Электронной вычислительной машине:

· Процессор: Intel Intel Pentium ;

· Частота: 2000 MHz;

· Оперативная память: 1 ГБ;

· Клавиатура и мышь.

1.3.4 Требования к информационной и программной совместимости

Операционная Система: windows 7;

Язык программирования: С++.

Требования к транспортировке и хранению:

Программа поставляется в электронном виде, а так же на диске.

Программная документация поставляется в электронном и печатном виде.

Специальные требования:

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

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

1.3.5 Требования к программной документации

Основными документами, регламентирующими разработку будущих программ, должны быть документы Единой Системы Программной Документации (ЕСПД): руководство системного программиста, руководство оператору, описание программы.

2. ТЕХНОЛОГИЧЕСКИЙ РАЗДЕЛ

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

2.1.1 Описательная модель задачи

Каждый человек когда-либо в своей жизни болел, и ему приходилось посещать поликлинику. Чтобы попасть к врачу, нужно сначала записаться к нему через регистратуру. Это порой занимает очень много времени. Раньше приходилось стоять в очереди целыми днями,теперь же, когда существуют автоматизированные информационные системы, мы можем создавать разные программы для улучшения, упрощения нашей жизни, как пример «Регистратура поликлиники».

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

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

2.1.2 Описание входной информации

Входной информацией программы являются данные пациента, которые будут введены во вкладке «Создание карты» и «Поиск». См. таблицу 2.1.

Таблица 2.1. Входная информация

Наименование

Идентификатор

Тип данных

Фамилия

surname

string

Имя

name

string

Год рождения

born

data

Адрес

address

string

Полис

polis

string

2.1.3 Описание выходной информации

После записи пациента к врачу выдается талон, в котором будет информация о ФИ пациента, кабинете, времени приема, ФИ врача. Также выходной информацией являются расписание врачей, просмотр карт пациента. См. таблицу 2.2.

Таблица 2.2 Выходная информация

Наименование

Идентификатор

Тип данных

Фамилия

surname

string

Имя

name

string

Год рождения

born

data

Адрес

address

string

Полис

polis

string

Фамилия врача

surname

string

Имя врача

name

string

Кабинет

kabinet

int

День приема

weeks

string

Время приема

day

int

2.1.4 Логическая модель задачи

Логическая модель задачи представлена на рисунке 2.1.

Рисунок 2.1 Логическая модель задачи

2.1.5 Требования к программе

Система должна сохранять работоспособность и обеспечивать восстановление своих функций при возникновении следующих внештатных ситуаций:

· при сбоях в системе электроснабжения аппаратной части, приводящих к перезагрузке ОС, восстановление программы должно происходить после перезапуска ОС и запуска исполняемого файла системы;

· при ошибках в работе аппаратных средств (кроме носителей данных и программ) восстановление функции системы возлагается на ОС;

· при ошибках, связанных с программным обеспечением (ОС и драйверы устройств), восстановление работоспособности возлагается на ОС.

Для защиты аппаратуры от бросков напряжения и коммутационных помех должны применяться сетевые фильтры.

В программной системе необходимо

В целях надежности системы она должна удовлетворять следующим требованиям:

· разработанная программа должна обладать средствами защиты от ошибочных действий пользователей;

· все ошибки должны отображаться с комментариями или подсказками по их устранению;

· гарантировать сохранность данных при сбоях в работе внешних устройств.

Для повышения надежности необходимо принять следующие меры:

· сконфигурировать аппаратные и программные средства в соответствии с техническими требованиями;

· периодически осуществлять резервное копирование информации;

· регулярно проверять целостность базы данных;

· поддерживать исправность оборудования.

2.2 Информационная модель программы

Таблица 2.3. Структура таблиц базы данных

Сущность

Пациенты

Ключ

Id_Пациента

Атрибуты

ФИ

Дата рождения

Адрес

Полис

Сущность

Специалисты

Ключ

Id_Доктора

Атрибуты

ФИ

Специальность

Время приема

Район

Сущность

Время приема

Атрибуты

Понедельник

Вторник

Среда

Четверг

Пятница

Между таблицами «Специалисты» и «Время приема» существует связь один-ко-многим.

Информационную модель программы можно посмотреть на рисунке 2.2.

Рисунок 2.2 Информационная модель базы данных

2.3 Логическая модель программы

Логическую структуру программы можно посмотреть на рисунке 2.3.

Рисунок 2.3 Логическая модель программы

2.4 Тестирование программы

№ Операции

Действие пользователя

Реакция программы

1

Нажата кнопка «Запись пациента», но время приема не было выбрано.

2

Нажата кнопка «Создать», но не все поля были заполнены.

3

Нажата кнопка «Поиск», но все поля были пусты.

2.5 Анализ результатов тестирования

После тестирования программы видно, что программа выполняет все свои функциональные требования:

· Хранит, добавляет карты пациента;

· Ищет карту в базе данных;

· Записывает к врачу;

· Хранит данные расписаний врачей;

· Выводит данные карт пациента, расписаний врачей;

· Формирует талон.

А также программа имеет меню и понятный для пользователя интерфейс. Также была найдена надежность программы по формуле, которая имеет вид:

Для тестирования программного обеспечения, разработанного в курсовом проекте, осуществлено 100 прогонов и только два из них закончился отказом.

R=1-2/100=0.98

Надежность программы составляет 98%.

3. РУКОВОДСТВО ПО ПОЛЬЗОВАНИЮ ПРОГРАММЫ

3.1 Руководство программиста

3.1.1 Назначение и условия применения программы

Программа предназначена для упрощения работы регистратуры поликлиники.

Эта программа позволяет посмотреть расписание врачей, создать карту пациента, а также записать пациента к доступным врачам.

Для использования этого ПО необходим персональный компьютер с установленной ОС Windows не ниже Windows 7, мышь, клавиатура, монитор, MS Word для печати талона.

3.1.2 Характеристики программы

Данная программа представляет собой графическое приложение с несколькими вкладками. Состоит из исполняемого файла «Registra.exe» и XML файлы о пациентах и врачах. В файле «patients.xml» хранятся данные о пациентах, а в «doctors.xml» данные о врачах.

Файл «doctors.xml» можно открыть и изменить данные о времени приема врача. В файле «patients.xml» можно изменить все данные о пациентах.

3.1.3 Обращение к программе

ПО сначала нужно установить с помощью инсталлятора, где нужно выполнить пару простых шагов.

Программу можно запустить двумя способами:

· Перейти в корневую папку, где хранится программа, и запустить исполняемый файл «Registra.exe»;

· Кликнуть по ярлыку, который создает на рабочем столе после установки.

3.1.4 Входные и выходные данные

Входным файлом являются «doctors.xml» и «patients.xml». А также в приложение можно внести эти входные данные:

· Имя пациента;

· Фамилия;

· Дата рождения;

· Полис;

· Его адрес.

Выходной информацией программы является талон на прием к лечащему врачу. В талоне указаны эти данные:

· ФИ пациента;

· Дата и время приема;

· ФИ врача;

· Кабинет;

3.1.5 Сообщения

При установке программы будут сообщения:

· Выбор пути для установки;

· Соглашение с условиями пользования;

· Выбор мест, где будут ярлыки программы.

3.2 Руководство пользователя

3.2.1 Назначения программы

Эта программа создана для записи больных к врачам. Ею будут пользоваться работники поликлиники для быстрой и удобной записи к врачу и поиска карты пациента.

«Регистратура поликлиники» позволяет посмотреть расписание врачей, создать, также записать пациента к доступным врачам.

3.2.2 Условия выполнения программы

Минимальные требования к электронной вычислительной машине:

· Процессор: IntelCeleron или аналогичный AMD;

· Частота: 1500 МГЦ;

· Оперативная память: 512 Мб;

· Клавиатура и мышь.

Рекомендуемые требования к Электронной вычислительной машине:

· Процессор: IntelIntelPentium ;

· Частота: 2000 MHz;

· Оперативная память: 1 ГБ;

· Клавиатура и мышь.

3.2.3 Выполнение программы

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

· Посмотреть расписание врачей;

· Создать карту;

· Записаться к врачу;

· Провести поиск;

· Выйти из программы.

Рисунок 3.1 Меню программы

Если открыть вкладку расписание врачей, то увидите специальности, затем нужно выбрать кабинет, после чего будет показано доступное время записи к врачу (см. рис. 3.3). Если выбрать другой день и поле выбора времени пусто, значит в этот день врач не принимает людей. Показано на рис. 3.2.

Рисунок 3.2 Недоступное время

Рисунок 3.3 Расписание врачей

Если хотите создать новую карту пациента, то необходимо открыть вкладку «Создание карты», там нужно ввести все данные о пациенте, нажать кнопку «Создать» и подтвердить свое действие (см. рисунок 3.4).

Рисунок 3.4 Создание карты

Для поиска нужно знать хотя бы ФИ или полис. Далее ввести данные в поля (см. рис. 3.5). После чего нажать «поиск». После успешного поиска, выбрать просмотр карты, где вас направят во вкладку «Карты» с данными о найденном пациенте.

Рисунок 3.5 Поиск

Чтобы записать кого-то к врачу, нужно выбрать пациента, затем выбрать специальность, врача, день приема и время приема. Потом нажать на кнопку «Выбрать» и после этого «Записать пациента» (см. рис. 3.7). После всех процедур будет сформулирован талон в Word, которого можно будет распечатать.

Рисунок 3.6 Сформулированный талон

Рисунок 3.7 Запись

3.2.4 Сообщение пользователю

В программе есть два вида сообщений:

1. Информационное сообщение;

2. Сообщение с выбором.

Пример: Если не выбрано время приема, но нажата кнопка «Записать пациента», то выводиться следующее:

Если найден пациент:

Если хотите выйти из программы:

И т.д.

ЗАКЛЮЧЕНИЕ

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

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

Программа «Регистратура поликлиники» очень проста для понимания, имеется простой интерфейс. Требуются минимальные знания ПК от пользователя.

При разработке ПО были изучены интернет статьи о работе с файлам «XML», а так же учебники по языку программирования С++.

Могу выделить некоторые недостатки моей программы:

· Сложно работать с большими данными, т.к. я использовал «XML» файлы для хранения данных;

· Расписание врачей нужно изменять в программном уровне.

Достоинства программы:

· Поддерживает полноэкранный режим;

· Простой интерфейс.

В дальнейшем буду добавлять такие функции:

· Изменение данных карты;

· Изменение расписаний врачей в пользовательском уровне;

· Вход пользователя с логином и паролем.

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

Стандарты

1. ГОСТ 7.32. - 2001. Система стандартов по информации, библиотечному и издательскому делу. Отчет о научно-исследовательской работе. Структура и правила оформления. - М.: ИПК Издательство стандартов, 2001. - 21с.

2. ГОСТ 7.82 -2001. Библиографическая запись. Библиографическое описание электронных ресурсов. Общее требования и правила составления - М.: ИПК Издательство стандартов, 2001. - 21 с.

3. Единая система программной документации. - М.: СТАНДАРТИНФОРМ, 2005.

4. Васильев А.Н. Самоучитель С++ с примерами и задачами. Книга + CD. СПб.: Наука и техника, 2010. - 480 с.

5. Шлее Макс.Qt 5.3.Профессиональное программирование на C++. Книга CD. - СПб.: БХВ-Петербург, 2015. -- 928 с.

ПРИЛОЖЕНИЕ А

Модуль «kursach1.pro»

#-------------------------------------------------

#

# Project created by QtCreator 2017-10-31T22:47:55

#

#-------------------------------------------------

QT += core gui

QT += xml

QT += axcontainer

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = kursach1

TEMPLATE = app

SOURCES += main.cpp\

kurs1.cpp

HEADERS += kurs1.h

FORMS += kurs1.ui

Модуль «kurs1.h»

#ifndef KURS1_H

#define KURS1_H

#include <QMainWindow>

#include <QDialog>

#include <QString>

#include <QDateTime>

#include <QTime>

#include <QDomDocument>

namespaceUi {

class kurs1;

}

class kurs1 : public QMainWindow

{

Q_OBJECT

public:

explicit kurs1(QWidget *parent = 0);

~kurs1();

QStringListElements(QDomElement root, QStringtagname, QString attribute);

private slots:

voidon_pushButton_clicked();

void on_pushButton_2_clicked();

void on_pushButton_9_clicked();

voidon_tabWidget_tabBarClicked(int index, intIndexPatient);

void on_pushButton_10_clicked();

void on_pushButton_13_clicked();

void on_pushButton_3_clicked();

void on_pushButton_6_clicked();

void on_pushButton_12_clicked();

void on_pushButton_14_clicked();

void on_comboBox_4_activated(int index);

void on_comboBox_5_activated(int index);

void on_comboBox_7_activated(int index);

void on_comboBox_9_activated(int index);

void on_pushButton_11_clicked();

void on_pushButton_16_clicked();

voidon_checkBox_clicked(bool checked);

void on_checkBox_4_clicked(bool checked);

void on_checkBox_2_clicked(bool checked);

void on_checkBox_3_clicked(bool checked);

void on_pushButton_15_clicked();

void on_pushButton_4_clicked();

void on_pushButton_17_clicked();

void on_pushButton_7_clicked();

private:

Ui::kurs1 *ui;

QString Filename, filedoctors;

voidWriteFile();

voidAppFile();

voidSearchValue();

voidDeleteEnd();

voidActived();

void Print();

};

#endif // KURS1_H

Модуль «kurs1.cpp»

#include "kurs1.h"

#include "ui_kurs1.h"

#include <QMessageBox>

#include <QDebug>

#include <QFile>

#include <QTextStream>

#include <QtCore>

#include <QtXml>

#include <QString>

#include <QDate>

#include <QAxObject>

kurs1::kurs1(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::kurs1)

{

ui->setupUi(this);

Filename="C:\\Qt\\proekty\\7outt-work\\patients.xml";

filedoctors="C:\\Qt\\proekty\\7outt-work\\doctors.xml";

Actived();

on_tabWidget_tabBarClicked(1,0);

}

kurs1::~kurs1()

{

deleteui;

}

// индекспациента

QVariantindexpat;

intnumberPatient=0,searchindex;

intnumm,chekchek=0, max;

QStringkabinet,Pname,Psurname,Dname,Ppolis,Dday,Dtime;//глобальныепеременныедляпечати

void kurs1::on_pushButton_clicked()

{

ui->tabWidget->setCurrentIndex(1);// переходнадругуювкладку

on_tabWidget_tabBarClicked(1,numberPatient);

}

void kurs1::on_pushButton_2_clicked()

{

ui->tabWidget->setCurrentIndex(3);

}

void kurs1::on_tabWidget_tabBarClicked(intindex,intindexPatient)

{

QStringfio, name, address,polis,bornStr;

QDateborn;

if(index==1) {// если открыта вторая вкладка

QDomDocument document;

QFilefile(Filename);

if(!file.open(QIODevice::ReadOnly|QIODevice::Text))

{

qDebug()<<"failed";

}

else

{

if(!document.setContent(&file))

{

qDebug()<<"failed to load";

}

file.close();

}

QDomElement root=document.firstChildElement();

QDomNodeList books=root.elementsByTagName("Patient");

max=books.count();

//ищем по тегу и получаем его значение

QDomNodebooknode=books.at(numberPatient);// индекспацинта

if(booknode.isElement())

{

QDomElement book=booknode.toElement();

fio=ListElements(book,"fio","name");// забираемфио

name=ListElements(book,"name","name");

address=ListElements(book,"address","value");

polis=ListElements(book,"polis","value");

bornStr=ListElements(book,"born","value");

}

QDate born=QDate::fromString(bornStr,"yyyy.MM.dd");//переобразование

indexpat=numberPatient;//переобразуем индекс в вариант

ui->dateEdit->setDate(born);

ui->lineEdit_2->setText(indexpat.toString()); // index

ui->lineEdit_3->setText(fio); // выводфио

ui->lineEdit_4->setText(name); // выводимя

ui->lineEdit_5->setText(address); // выводадреса

ui->lineEdit_6->setText(polis); // вывод polis

}

ui->lineEdit->setText(indexpat.toString()); //выбранныйпациенткод

ui->lineEdit_7->setText(indexpat.toString());

Pname=ui->lineEdit_4->text();

Psurname=ui->lineEdit_3->text();

Ppolis=ui->lineEdit_6->text();

}

// находимзначениятега

QString kurs1::ListElements(QDomElement root, QStringtagname, QString attribute)

{

QDomNodeList items=root.elementsByTagName(tagname);

for (inti=0; i<items.count();i++)

{

QDomNodeitemnode= items.at(i);

if(itemnode.isElement())

{

QDomElementitemele=itemnode.toElement();

return itemele.attribute(attribute); //возрващаетатрибуттега

}

}

}

void kurs1::on_pushButton_10_clicked()//следующаязапись

{ if(indexpat<(max-1)){

numberPatient++;

on_tabWidget_tabBarClicked(1, numberPatient);

}

}

void kurs1::on_pushButton_9_clicked()//предудующаязапись

{ if(indexpat>0){

numberPatient--;

on_tabWidget_tabBarClicked(1, numberPatient);

}

}

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

void kurs1::WriteFile()

{

QMessageBoxmsgBox;

msgBox.setWindowTitle("Внимание");

numm++;// следующий код пациента

QDomDocumentxml;

QDomElement root1=xml.createElement("Patient");

root1.setAttribute("id",QString::number(numm));

xml.appendChild(root1);

QDomElement node=xml.createElement("name");

node.setAttribute("name",ui->lineEdit_12->text());

root1.appendChild(node);

QDomElement node1=xml.createElement("fio");

node1.setAttribute("name",ui->lineEdit_13->text());

root1.appendChild(node1);

QDomElement node12=xml.createElement("address");

node12.setAttribute("value",ui->lineEdit_14->text());

root1.appendChild(node12);

QDomElement node13=xml.createElement("born");

node13.setAttribute("value",ui->dateEdit_2->date().toString("yyyy.MM.dd"));

root1.appendChild(node13);

QDomElement node14=xml.createElement("polis");

node14.setAttribute("value",ui->lineEdit_15->text());

root1.appendChild(node14);

QFilefile1(Filename);

if(!file1.open(QIODevice::Append|QIODevice::Text))

{

qDebug()<<"failed";

}

else

{

QTextStreamstream(&file1);

stream<<xml.toString();

stream<<"</Patients>";

file1.close();

}

msgBox.setText("Пациентуспешнодобавлен! ");

msgBox.exec();

}

//поискпациента

void kurs1::SearchValue()

{

QString polis, fio,name;

intchek=0;

QMessageBoxmsgBox;

msgBox.setWindowTitle("Внимание");

QDomDocument document;

QFilefile(Filename);

if(!file.open(QIODevice::ReadOnly|QIODevice::Text))

{

qDebug()<<"failed";

}

else

{

if(!document.setContent(&file))

{

qDebug()<<"failed to load";

}

file.close();

}

QDomElement root=document.firstChildElement();

QDomNodeList patients=root.elementsByTagName("Patient");

if(ui->lineEdit_8->text().isEmpty()&&ui->lineEdit_9->text().isEmpty()&&ui->lineEdit_10->text().isEmpty())

{

msgBox.setText("Поляпусты! ");

msgBox.exec();

} else {

// Ищемпополису

if(!ui->lineEdit_10->text().isEmpty()){

for (inti=0; i<patients.count();i++){

QDomNodebooknode=patients.at(i);// индекспацинта

if(booknode.isElement())

{

QDomElement book=booknode.toElement();

polis=ListElements(book,"polis","value");

if (polis==ui->lineEdit_10->text()){

chek=1;

searchindex=i;

break;}

}

} //ищемпоФИ

} if(!ui->lineEdit_8->text().isEmpty()&&!ui->lineEdit_9->text().isEmpty()){

for (inti=0; i<patients.count();i++){

QDomNodebooknode=patients.at(i);// индекспацинта

if(booknode.isElement())

{

QDomElement book=booknode.toElement();

name=ListElements(book,"name","name");

fio=ListElements(book,"fio","name");

if (name==ui->lineEdit_8->text()&&fio==ui->lineEdit_9->text()){

chek=1;

searchindex=i;

break;}

}

}

}

if(chek==1){ // еслинайденпациент

numberPatient=searchindex;

msgBox.setWindowTitle("Картанайдена!");

msgBox.setInformativeText("Ок - Посмотретькарту\nCancel - остаться");

msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);

msgBox.setIcon(QMessageBox::Information);

msgBox.setDefaultButton(QMessageBox::Ok);

int res = msgBox.exec();

if (res == QMessageBox::Ok) //нажатакнопка Ok

{

ui->tabWidget->setCurrentIndex(1);// переходнадругуювкладку

on_tabWidget_tabBarClicked(1,searchindex);

}

}

else{

msgBox.setText("Пациент не найден! ");

msgBox.exec();

}

}

}

//удаляем полседнюю строку

void kurs1::DeleteEnd()

{

intsizef;

QDomDocument document;

QFilefile(Filename);

QByteArraydata; // Создаем объект класса QByteArray, куда мы будем считывать данные

if (!file.open(QIODevice::ReadOnly)) // Проверяем, возможно ли открыть наш файл для чтения

qDebug()<<"ошибка чтения";

data = file.readAll(); //считываем все данные с файла в объект data

file.close();

document.setContent(&file);

sizef=data.size();

data.replace(sizef-12,12,"");

//получаюкол-вопациентов

QDomElement root=document.firstChildElement();

QDomNodeList patients=root.elementsByTagName("Patient");

numm= patients.count()-1;

file.close();

if(!file.open(QIODevice::WriteOnly))

{

qDebug()<<"failed";

}

else

{

QTextStreamstream(&file);

stream<<QString(data);

file.close();

}

}

void kurs1::Actived()

{

ui->comboBox_4->addItem("Понедельник");

ui->comboBox_4->addItem("Вторник");

ui->comboBox_4->addItem("Среда");

ui->comboBox_4->addItem("Четверг");

ui->comboBox_4->addItem("Пятница");

ui->comboBox_5->addItem("Понедельник");

ui->comboBox_5->addItem("Вторник");

ui->comboBox_5->addItem("Среда");

ui->comboBox_5->addItem("Четверг");

ui->comboBox_5->addItem("Пятница");

ui->comboBox_7->addItem("Понедельник");

ui->comboBox_7->addItem("Вторник");

ui->comboBox_7->addItem("Среда");

ui->comboBox_7->addItem("Четверг");

ui->comboBox_7->addItem("Пятница");

ui->comboBox_9->addItem("Понедельник");

ui->comboBox_9->addItem("Вторник");

ui->comboBox_9->addItem("Среда");

ui->comboBox_9->addItem("Четверг");

ui->comboBox_9->addItem("Пятница");

}

void kurs1::Print()

{

QAxObject* WordApplication=new QAxObject("Word.Application"); // Создаюинтерфейск MSWord

QAxObject* WordDocuments = WordApplication->querySubObject( "Documents()" );

WordDocuments = WordDocuments->querySubObject( "Add()" ); // Создаюновыйдокумент

QAxObject* Range = WordDocuments->querySubObject("Range()");

Range->dynamicCall("SetRange(int, int)",0,100);

Range->querySubObject("Text","Врач: "+Dname+" "+kabinet);

Range->dynamicCall("insertParagraphAfter()");// новыйабзац

QAxObject* Range1 = WordDocuments->querySubObject("Range()");

Range1->dynamicCall("SetRange(int, int)",101,200);

Range1->querySubObject("Text","ФИпациента: "+Pname+" "+Psurname+". Полиспациента:"+Ppolis);

Range->dynamicCall("insertParagraphAfter()");

QAxObject* Range2 = WordDocuments->querySubObject("Range()");

Range2->dynamicCall("SetRange(int, int)",201,300);

Range2->querySubObject("Text","Датаприема: "+Dday+" "+Dtime+":00");

WordApplication->setProperty("Visible", true); // Делаем Word видимым

}

int time[5];

voidpartime(QString times){ //раскладываемвремя

intbuf;

buf=times.toInt();

time[0]=buf/100000000;

time[1]=(buf%100000000)/1000000;

time[2]=(buf%1000000)/10000;

time[3]=(buf%10000)/100;

time[4]=(buf%100);

}

void kurs1::on_pushButton_13_clicked() //поиск

{

SearchValue();

}

//переход к вкладке создания карты

void kurs1::on_pushButton_3_clicked()

{

ui->tabWidget->setCurrentIndex(4);

}

void kurs1::on_pushButton_6_clicked()

{

QMessageBoxmsgBox;

msgBox.setWindowTitle("Внимание!");

if(ui->lineEdit_12->text().isEmpty()||ui->lineEdit_13->text().isEmpty()||ui->lineEdit_14->text().isEmpty()||ui->lineEdit_15->text().isEmpty())

{

msgBox.setText("Заполните все поля! ");

msgBox.exec();

} else {

msgBox.setInformativeText("Ок - Добавнить новую карту\nCancel - отмена");

msgBox.setStandardButtons(QMessageBox::Ok | QMessageBox::Cancel);

msgBox.setIcon(QMessageBox::Information);

msgBox.setDefaultButton(QMessageBox::Ok);

intres = msgBox.exec();

if (res == QMessageBox::Ok) //нажатакнопкаOk

{

DeleteEnd();

WriteFile();

}

}

}

void kurs1::on_pushButton_12_clicked()

{

ui->lineEdit_12->setText("");

ui->lineEdit_13->setText("");

ui->lineEdit_14->setText("");

ui->lineEdit_15->setText("");

}

void kurs1::on_pushButton_14_clicked()

{

ui->lineEdit_8->setText("");

ui->lineEdit_9->setText("");

ui->lineEdit_10->setText("");

}

void kurs1::on_comboBox_4_activated(int index)// первыйдоктор

{

chekchek=0;

QDomDocument document;

QFilefile(filedoctors);

if(!file.open(QIODevice::ReadOnly|QIODevice::Text))

{

qDebug()<<"failed";

}

else

{

if(!document.setContent(&file))

{

qDebug()<<"failed to load";

}

file.close();

}

QString day, name,surname;

QDomElement root=document.firstChildElement();

QDomNodeList books=root.elementsByTagName("Doctor");

QDomNodebooknode=books.at(0);// индексдоктора

if(booknode.isElement())

{

QDomElement book=booknode.toElement();

day=ListElements(book,"week","day"+QString::number(index+1));

name=ListElements(book,"name","value");// забираемфио

surname=ListElements(book,"surname","value");// забираемфио

}

ui->label_15->setText(name+" "+surname);

partime(day);

ui->comboBox_3->clear();

for(inti=0;i<5;i++)

{

if(time[i]!=0)

ui->comboBox_3->addItem(QString::number(time[i]));

time[i]=0;

}

}

void kurs1::on_comboBox_5_activated(int index) //второйдоктор

{

chekchek=0;

QDomDocument document;

QFilefile(filedoctors);

if(!file.open(QIODevice::ReadOnly|QIODevice::Text))

{

qDebug()<<"failed";

}

else

{

if(!document.setContent(&file))

{

qDebug()<<"failed to load";

}

file.close();

}

QString day, name,surname;

QDomElement root=document.firstChildElement();

QDomNodeList books=root.elementsByTagName("Doctor");

QDomNodebooknode=books.at(1);// индексдоктора

if(booknode.isElement())

{

QDomElement book=booknode.toElement();

day=ListElements(book,"week","day"+QString::number(index+1));

name=ListElements(book,"name","value");// забираемфио

surname=ListElements(book,"surname","value");// забираемфио

}

ui->label_23->setText(name+" "+surname);

partime(day);

ui->comboBox_6->clear();

for(inti=0;i<5;i++)

{

if(time[i]!=0)

ui->comboBox_6->addItem(QString::number(time[i]));


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

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

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

  • Назначение и цели создания системы. Требования к программе или программному изделию, к информационной и программной совместимости, к составу и параметрам технических средств. Алгоритм Rijndael. Назначение и условия применения программного продукта.

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

  • Требования к составу и параметрам технических средств, информационной и программной совместимости. Разработка функциональных моделей автоматизированной системы "Деятельность бетонно-растворного узла". Интерфейс Web-приложения, руководство пользователя.

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

  • Разработка программного продукта "2D-макет фильтра" для производства ООО ПК "ХимМаш". Назначение программы, требования к информационной и программной совместимости, параметрам технических средств. Проектирование архитектуры программного продукта.

    курсовая работа [1,3 M], добавлен 14.02.2016

  • Общие сведения об электронных учебниках, структура и функции. Обзор методов решения поставленной задачи и обоснование их выбора. Требования к информационной и программной совместимости, составу и параметрам технических средств. Характеристика программы.

    курсовая работа [3,0 M], добавлен 20.09.2014

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

    курсовая работа [371,5 K], добавлен 21.02.2012

  • Требования к функциональным характеристикам программы, составу и параметрам технических средств, программной совместимости. Особенности программирования в среде Access. Описание интерфейса программы, ввод и редактирование данных, добавление новых книг.

    курсовая работа [1,5 M], добавлен 17.11.2010

  • Анализ и выбор СУБД. Разработка программного комплекса для поликлиники, позволяющего повысить эффективность работы регистратуры за счет сокращения трудовых затрат, а также повышения качества работы. Требования к информационной и программной совместимости.

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

  • Наименование программы – база данных "Бутик FIRST", предназначена для ведения учёта товара, выдачи данных о поставщиках и поставляемых ими товарах. Требования к надежности. Условия эксплуатации. Требования к составу и параметрам технических средств.

    курсовая работа [22,3 K], добавлен 26.12.2010

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

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

  • Функциональное назначение и область применения программы "Локальный сетевой чат"; логическая структура, технические и программные средства. Требования к программе; характеристика, вызов и загрузка, входные и выходные данные, настройка, интерфейс.

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

  • Назначение и цели создания информационной системы. Характеристика объекта автоматизации. Реализация информационной системы "Medic", серверной части приложения. Требования к оперативному запоминающему устройству клиента. Выходные данные программы.

    дипломная работа [5,1 M], добавлен 29.06.2011

  • Требования к программе или программному продукту. Условия эксплуатации и требования к параметрам технических средств. Программное обеспечение, рекомендуемое для функционирования программы. Руководство системного программиста и настройка программы.

    отчет по практике [1,1 M], добавлен 22.07.2012

  • Функциональное и эксплуатационное назначение изделия, методологические ограничения. Требования к составу и параметрам технических средств. Описание алгоритма, входные и выходные данные. Стадии и этапы разработки, технико-экономическое обоснование.

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

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

    курсовая работа [403,9 K], добавлен 26.03.2015

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

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

  • Анализ создания информационной системы. Анализ существующих систем управления базами данных ремонтно-строительной фирмы. Требования к составу и параметрам технических средств. Структура программной системы. Описание входной и выходной информации.

    курсовая работа [409,9 K], добавлен 29.04.2015

  • Обоснование выбора средств разработки. Анализ предметной области. Сущность структурного подхода к разработке информационных систем. Требования к информационной и программной совместимости. Запросы к базе данных. Инфологическое проектирование системы.

    дипломная работа [1,6 M], добавлен 22.08.2016

  • Требования к программе, составу и параметрам технических средств. Основные элементы языка программирования. Инструкция на выполнение программы учета клиентов: вызов и загрузка, входные и выходные данные. Расчет себестоимости программного продукта.

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

  • Создание автоматизированной системы ведения оперативного учета на предприятии. Требования к составу и параметрам программно-технических средств. Выполнение программной части посредством интегрированной среды разработки MS Access с приложением Delphi.

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

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