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

ВВЕДЕНИЕ

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

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

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

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

· Запись;

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

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

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

ОБЩИЙ РАЗДЕЛ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Наименование Идентификатор Тип данных
Фамилия surname string
Имя name string
Год рождения born data
Адрес address string
Полис polis string

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

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

Характеристика системы программирования - student2.ru

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Характеристика системы программирования - student2.ru

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

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

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

№ Операции Действие пользователя Реакция программы
Нажата кнопка «Запись пациента», но время приема не было выбрано. Характеристика системы программирования - student2.ru
Нажата кнопка «Создать», но не все поля были заполнены. Характеристика системы программирования - student2.ru
Нажата кнопка «Поиск», но все поля были пусты. Характеристика системы программирования - student2.ru

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

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

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

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

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

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

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

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

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

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

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

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

· Фамилия;

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

· Полис;

· Его адрес.

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

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

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

· ФИ врача;

· Кабинет;

Сообщения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Характеристика системы программирования - student2.ru

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

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

Характеристика системы программирования - student2.ru

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

Характеристика системы программирования - student2.ru

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

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

Характеристика системы программирования - student2.ru

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

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

Характеристика системы программирования - student2.ru

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

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

Характеристика системы программирования - student2.ru

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

Характеристика системы программирования - student2.ru

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

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

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

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

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

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

Характеристика системы программирования - student2.ru

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

Характеристика системы программирования - student2.ru

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

Характеристика системы программирования - student2.ru

И т.д.

ЗАКЛЮЧЕНИЕ

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

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

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

При разработке ПО были изучены интернет статьи о работе с файлам «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 с.

Интернет-ресурсы

6. CppStudio: Работа с файлами в С++. - [Электронный ресурс] – Режим доступа: http://cppstudio.com/post/446

7. EVILEG: Qt/C++ - Урок 011. XML файлы в Qt - чтение и запись. - [Электронный ресурс] – Режим доступа: https://evileg.com/ru/post/74/

8. QtDocumentation: ActiveQt. - [Электронный ресурс] – Режим доступа: http://doc.qt.io/qt-5/activeqt-index.html

ПРИЛОЖЕНИЕ А

Модуль «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]));

time[i]=0;

}

}

void kurs1::on_comboBox_7_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(2);// индексдоктора

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_25->setText(name+" "+surname);

partime(day);

ui->comboBox_8->clear();

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

{

if(time[i]!=0)

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

time[i]=0;

}

}

void kurs1::on_comboBox_9_activated(int index)//4 ыйдоктор

{ 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(3);// индексдоктора

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_27->setText(name+" "+surname);

partime(day);

ui->comboBox_10->clear();

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

{

if(time[i]!=0)

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

time[i]=0;

}

}

void kurs1::on_pushButton_11_clicked()// кнопказаписькврачу 1

{

QMessageBoxmsgBox;

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

if(chekchek==0){

msgBox.setText("Времяневыбрано! ");

msgBox.exec();

}

else{

msgBox.setText("Пациентуспешнозаписан. Держиталон!");

msgBox.exec();

Print();

}

}

void kurs1::on_pushButton_16_clicked()

{

QMessageBoxmsgBox;

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

if(chekchek==0){

msgBox.setText("Времяневыбрано! ");

msgBox.exec();

}

else{

msgBox.setText("Пациентуспешнозаписан. Держиталон!");

msgBox.exec();

Print();

}

}

void kurs1::on_checkBox_clicked(bool checked) // еслинажата. надособратьинфудляпечати

{

QMessageBoxmsgBox;

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

if(ui->comboBox_3->itemText(0)!="" && checked==true){

Dday=ui->comboBox_4->itemText(ui->comboBox_4->currentIndex());

Dtime=ui->comboBox_3->itemText(ui->comboBox_3->currentIndex());

kabinet=ui->toolBox_3->itemText(0);

Dname=ui->label_15->text();

chekchek=1;

} else if(checked==true) {

msgBox.setText("Выберите доступное время! ");

msgBox.exec();

}

}

void kurs1::on_checkBox_4_clicked(bool checked)

{

QMessageBoxmsgBox;

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

if(ui->comboBox_5->itemText(0)!="" && checked==true){

Dday=ui->comboBox_6->itemText(ui->comboBox_6->currentIndex());

Dtime=ui->comboBox_5->itemText(ui->comboBox_5->currentIndex());

kabinet=ui->toolBox_3->itemText(1);

Dname=ui->label_23->text();

chekchek=1;

} else if(checked==true) {

msgBox.setText("Выберите доступное время! ");

msgBox.exec();

}

}

void kurs1::on_checkBox_2_clicked(bool checked)

{

QMessageBoxmsgBox;

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

if(ui->comboBox_8->itemText(0)!="" && checked==true){

Dday=ui->comboBox_7->itemText(ui->comboBox_7->currentIndex());

Dtime=ui->comboBox_8->itemText(ui->comboBox_8->currentIndex());

kabinet=ui->toolBox_4->itemText(0);

Dname=ui->label_25->text();

chekchek=1;

} else if(checked==true) {

msgBox.setText("Выберите доступное время! ");

msgBox.exec();

}

}

void kurs1::on_checkBox_3_clicked(bool checked)

{

QMessageBoxmsgBox;

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

if(ui->comboBox_10->itemText(0)!="" && checked==true){

Dday=ui->comboBox_9->itemText(ui->comboBox_9->currentIndex());

Dtime=ui->comboBox_10->itemText(ui->comboBox_10->currentIndex());

kabinet=ui->toolBox_5->itemText(0);

Dname=ui->label_27->text();

chekchek=1;

} else if(checked==true) {

msgBox.setText("Выберите доступное время! ");

msgBox.exec();

}

}

void kurs1::on_pushButton_15_clicked()

{

}

void kurs1::on_pushButton_4_clicked()

{

ui->tabWidget->setCurrentIndex(2);

}

void kurs1::on_pushButton_17_clicked()

{

QMessageBoxmsgBox;

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

if(chekchek==0){

msgBox.setText("Времяневыбрано! ");

msgBox.exec();

}

else{

msgBox.setText("Пациентуспешнозаписан. Держиталон!");

msgBox.exec();

Print();

}

}

void kurs1::on_pushButton_7_clicked()

{

QMessageBoxmsgBox;

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

{

qApp->exit();

}

}

Модуль «main.cpp»

#include "kurs1.h"#include <QApplication> #include <QTextCodec> int main(intargc, char *argv[]){ QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); //руссикйязыкQApplicationa(argc, argv); kurs1 w;w.show(); returna.exec();}

ПРИЛОЖЕНИЕ Б

На рисунках Б.1-Б.9 показаны содержимое слайдов презентации к защите курсового проекта.

Характеристика системы программирования - student2.ru

Рисунок Б.1

Характеристика системы программирования - student2.ru

Рисунок Б.2

Характеристика системы программирования - student2.ru

Рисунок Б.3

Характеристика системы программирования - student2.ru

Рисунок Б.4

Характеристика системы программирования - student2.ru

Рисунок Б.5

Характеристика системы программирования - student2.ru

Рисунок Б.6

Характеристика системы программирования - student2.ru

Рисунок Б.7

Характеристика системы программирования - student2.ru

Рисунок Б.8

Характеристика системы программирования - student2.ru

Рисунок Б.9

ВВЕДЕНИЕ

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

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

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

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

· Запись;

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

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

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

ОБЩИЙ РАЗДЕЛ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Анализ языка п

Наши рекомендации