Описание разработанного программного обеспечения

Министерство образования и науки Российской Федерации

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Алтайский государственный технический университет им. И.И. Ползунова»

 

 

Факультет: Информационных технологий

Кафедра: Вычислительные системы и информационная безопасность

 

Курсовая работа защищена с оценкой _________

Руководитель работы _________ Л.И. Сучкова

 «___» ____________ 2011 г.

 

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

Тема работы

 

 

Пояснительная записка

к курсовой работе по

дисциплине «Языки программирования»

 

                                   КР 090900.13.00 ПЗ___________________

обозначение документа

 

Студент группы ИБ-11                                                   М.Г. Неверов

Руководитель работы      профессор, к.т.н.         Л.И. Сучкова

 

БАРНАУЛ 2011

 

 


Учебная дисциплина: Языки программирования.

Студент: Неверов М.Г.

Группа: ИБ-11

Тема работы: Автоматизация учёта пациентов поликлиники

Дата выдачи задания: 01.11.2011 г.

Дата защиты: 26.12.2011 г.

Руководитель __________ профессор Л.И. Сучкова

 

 

                                                                      Оглавление

Введение. 4

1 Описание основных теоретических принципов. 4

2 Описание структур данных и алгоритмов, необходимых для реализации программного обеспечения………………………………………………………6

3 Блок-схема программы…………………………………………………………9

4 Описание разработанного программного обеспечения……………………..10

Заключение. 13

Список литературы……………………………….……………………………..14

Приложение А……………………………………………………………………15

 

 

 

Введение

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

разных медицинских учреждениях , так как данная программа упрощает запись данных о пациентах.

 

 

                                                                                                                               

 

 

Описание основных теоретических принципов

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

1)когда объем оперативной памяти недостаточен для хранения нужной информации.

2) когда программа должна пользоваться информацией сформированной другой программой и которая записана на диск.

3)когда для работы программы требуется ввод большого объема данных.

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

1)Открытие файла

2)Чтение из файла или запись в него

3)Закрытие файла.

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

текстовые, двоичные, структурирование. В данной программе мы использовали текстовый тип файлов.

Исходя из цели и темы задачи, было выведено задание: для предметной области из лабораторной работы №9 организовать хранение информации об объектах в файле. В программе предусмотреть создание файла.

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

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

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

1) строковая переменная (для хранения в ней нужной нам Мед.Группой),

2) переменная x(для указания пациента, которого нужно редактировать),

3) переменная length и её ссылка dl(для хранения номера положения).

 

struct p{

int l;//Номер пациента

char f[20];//Фамилия пациента

char i[10];//Имя пациента

char o[20];//Отчество пациента

 char date[20];//Дата рождения пациента

 char N[10];//Медицинский номер пациента

 char g[10];//Медицинская группа пациента

 char adress[20];//Адрес пациента

}p;

char s[10];//Для хранения нужной группы

int x;//для указания номера пациента

long length;//для хранения указателя

long& dl = length;//ссылка на length

 

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

void vvod(){

FILE* fp = fopen("my_file.txt","a");//Открываем файл в режиме добавления

printf("Enter number:");

scanf("%d",&p.l);

printf("Enter Familia:");

scanf("%s",p.f);

printf("Enter Imya:");

scanf("%s",p.i);

printf("Enter Otchestvo:");

scanf("%s",p.o);

printf("Enter date:");

scanf("%s",p.date);

printf("Enter Med.Number:");

scanf("%s",p.N);

printf("Enter Med.Group:");

scanf("%s",p.g);

printf("Enter adress:");

scanf("%s",p.adress);//Записываем данные в структуру p

fprintf(fp,"%d %s %s %s %s %s %s %s             \n",p.l,p.f,p.i,p.o,p.date,p.N,p.g,p.adress);//Записываем структуру в файл

printf("\n");

fclose(fp);}//Закрываем файл

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

void vivod(){

FILE* fp = fopen("my_file.txt","r");//Открываем файл в режиме чтения

do{

fscanf(fp,"%d %s %s %s %s %s %s %s\n",&p.l,p.f,p.i,p.o,p.date,p.N,p.g,p.adress);//Сканируем файл

printf("%d %s %s %s %s %s %s %s\n",p.l,p.f,p.i,p.o,p.date,p.N,p.g,p.adress);}//Выводим информацию о пациенте

while (!feof(fp));//Выполняем до конца файла

fclose(fp);}//Закрываем файл

 

 

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

 

void sort(){

FILE* fp = fopen("my_file.txt","r");//Открываем файл в режиме чтения

printf("Enter Sort.Med.Group:");

scanf("%s",s);//Вводим группу поиска

do{

fscanf(fp,"%d %s %s %s %s %s %s %s\n",&p.l,p.f,p.i,p.o,p.date,p.N,p.g,p.adress);

if((strcmp(p.g,s)==0))//сканируем пациента на наличие определённой группы

printf("Adress:%s\n",p.adress);}//Выводиим его эдрес на экран

while (!feof(fp));//выполняем до конца файла

fclose(fp);}

 

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

 

void redact()

{printf("Search number:");

scanf("%d",&x);//Вводим номер искомого пациента

FILE* fp=fopen("my_file.txt","r+");//Открываем файл в режиме чтения и записи

do {

fscanf(fp,"%d %s %s %s %s %s %s %s\n",&p.l,p.f,p.i,p.o,p.date,p.N,p.g,p.adress);//Ищем в файле пациента с определённым номером

if(p.l==(x-1))

{dl = ftell(fp);}}//Если пациент найден, запомнить номер позиции

while(!feof(fp));

fseek(fp,dl,SEEK_SET);//Устанавливаем указатель на начало записи редактируемого пациента

printf("Enter number:");

scanf("%d",&p.l);

printf("Enter Familia:");

scanf("%s",p.f);

printf("Enter Imya:");

scanf("%s",p.i);

printf("Enter Otchestvo:");

scanf("%s",p.o);

printf("Enter date:");

scanf("%s",p.date);

printf("Enter Med.Number:");

scanf("%s",p.N);

printf("Enter Med.Group:");

scanf("%s",p.g);

printf("Enter adress:");

scanf("%s",p.adress);

fprintf(fp,"%d %s %s %s %s %s %s %s",p.l,p.f,p.i,p.o,p.date,p.N,p.g,p.adress);//Вводим новые данные

fclose(fp);}//Закрываем файл

 

 

Создаём меню выбора в программе используя оператор цикла switch.

int _tmain

(int argc, _TCHAR* argv[])

{int a;//Вводим переменную выбора

printf("Select Action from the list\n1-add new patient in file\n2-show all patiens from file\n3-show adress of patients certain group\n4-redact patient whith number:[]\n0-exit program\n");//Информация о выборе

do{//Создаём цикл до введения 0

printf("Action:");

scanf("%d",&a);//Вводим необходимое действие

switch (a){//Оператор цикла switch

case 1:{vvod();}break;//Если 1, то выполняем добавление пациента

case 2:{vivod();}break;//Если 2, то выводим всез пациентов из файла на экран

case 3:{sort();}break;//Если 3, выводим адреса пациентов определённой группы

case 4:{redact();}break;//Если 4, редактируем запись пациента с определённым номером

default:{printf("Error, Try again\n");}break;//Если введённое число не из диапазона [0;4], то вывести на экран ошибку

}}

while(a!=0);//Если 0, завершить программу

return 0;

}

Блок-схема программы

int a;
нет
       start


                                                             

              да                                                  

2
нет
да
нет
1


нет
                      да                                       
end
Vvod();

                                      да                   

4
нет
Vivod();
3


Printf(“error”);  
                                                   да   
Redact();
Sort();


Описание разработанного программного обеспечения

Данная программа была разработана в среде “Microsoft Visual C++ 2008”.

Интерфейс программы состоит из меню, в котором пользователь выбирает необходимое действие, которое выполняется программой.

Рисунок 1 – интерфейс программы.

 

При выборе «1», в файл добавляется новый пациент.

Рисунок 2 – добавление в файл

При выборе «2», выводится содержимое файла.

Рисунок 3 – вывод содержимого файла

При выборе «3» , происходит вывод адресов пациентов определённой мед.группы.

Рисунок 4 – сортировка данных

При выборе «4», мы редактируем запись пациента с определённым номером.

Рисунок 5 – изменение данных в файле

При выборе «0», программа завершит свою работу.

 

 

Заключение

Эта программа является примером использования файлового ввода-вывода на языке C++. Также данная программа, после небольшой доработки  связанной с интерфейсом, может быть использована в медицинских учреждениях, где необходим учёт данных о пациенте.

 

 


Список использованной литературы

1. Лекционные материалы по языкам программирования за 1 семместр

2. Презентация по теме «Файлы.

3. Мартынов, Н.Н. С++ для начинающих: учебное пособие/ Н.Н. Мартынов и др. –М.: Кудриц-пресс, 2007.-207 стр.

Приложение А

// Kursach.cpp: определяет точку входа для консольного приложения.

//

 

#include "stdafx.h"

#include "conio.h"

#include "string.h"

 

struct p{

int l;//Номер пациента

char f[20];//Фамилия пациента

char i[10];//Имя пациента

char o[20];//Отчество пациента

 char date[20];//Дата рождения пациента

 char N[10];//Медицинский номер пациента

 char g[10];//Медицинская группа пациента

 char adress[20];//Адрес пациента

}p;

char s[10];//Для хранения нужной группы

int x;//для указания номера пациента

long length;//для хранения указателя

long& dl = length;//ссылка на length

     

void vvod(){

FILE* fp = fopen("my_file.txt","a");//Открываем файл в режиме добавления

if(fp != NULL)

{

printf("Enter number:");

scanf("%d",&p.l);

printf("Enter Familia:");

scanf("%s",p.f);

printf("Enter Imya:");

scanf("%s",p.i);

printf("Enter Otchestvo:");

scanf("%s",p.o);

printf("Enter date:");

scanf("%s",p.date);

printf("Enter Med.Number:");

scanf("%s",p.N);

printf("Enter Med.Group:");

scanf("%s",p.g);

printf("Enter adress:");

scanf("%s",p.adress);//Записываем данные в структуру p

fprintf(fp,"%d %s %s %s %s %s %s %s             \n",p.l,p.f,p.i,p.o,p.date,p.N,p.g,p.adress);}//Записываем структуру в файл

else printf("Невозможно открыть файл на запись.\n");

fclose(fp);}//Закрываем файл

 

void vivod(){

FILE* fp = fopen("my_file.txt","r");//Открываем файл в режиме чтения

if(fp != NULL)

{    

do{

fscanf(fp,"%d %s %s %s %s %s %s %s\n",&p.l,p.f,p.i,p.o,p.date,p.N,p.g,p.adress);//Сканируем файл

printf("%d %s %s %s %s %s %s %s\n",p.l,p.f,p.i,p.o,p.date,p.N,p.g,p.adress);}//Выводим информацию о пациенте

while (!feof(fp));}//Выполняем до конца файла

else printf("Невозможно открыть файл на чтение\n");

fclose(fp);}//Закрываем файл

 

void sort(){

FILE* fp = fopen("my_file.txt","r");//Открываем файл в режиме чтения

if(fp != NULL)

{    

printf("Enter Sort.Med.Group:");

scanf("%s",s);//Вводим группу поиска

do{

 fscanf(fp,"%d %s %s %s %s %s %s %s\n",&p.l,p.f,p.i,p.o,p.date,p.N,p.g,p.adress);

 if((strcmp(p.g,s)==0))//сканируем пациента на наличие определённой группы

        printf("Adress:%s\n",p.adress);}//Выводиим его эдрес на экран

 while (!feof(fp));}//выполняем до конца файла

 else printf("Невозможно открыть файл на чтение\n");

 fclose(fp);}

 

void redact()

{printf("Search number:");

scanf("%d",&x);//Вводим номер искомого пациента

FILE* fp=fopen("my_file.txt","r+");//Открываем файл в режиме чтения и записи

if(fp != NULL)

{    

do {

fscanf(fp,"%d %s %s %s %s %s %s %s\n",&p.l,p.f,p.i,p.o,p.date,p.N,p.g,p.adress);//Ищем в файле пациента с определённым номером

if(p.l==(x-1))

{dl = ftell(fp);}}//Если пациент найден, запомнить номер позиции

while(!feof(fp));

fseek(fp,dl,SEEK_SET);//Устанавливаем указатель на начало записи редактируемого пациента

printf("Enter number:");

scanf("%d",&p.l);

printf("Enter Familia:");

scanf("%s",p.f);

printf("Enter Imya:");

scanf("%s",p.i);

printf("Enter Otchestvo:");

scanf("%s",p.o);

printf("Enter date:");

scanf("%s",p.date);

printf("Enter Med.Number:");

scanf("%s",p.N);

printf("Enter Med.Group:");

scanf("%s",p.g);

printf("Enter adress:");

scanf("%s",p.adress);

fprintf(fp,"%d %s %s %s %s %s %s %s",p.l,p.f,p.i,p.o,p.date,p.N,p.g,p.adress);}//Вводим новые данные

else printf("Невозможно открыть файл на чтение и запись\n");

fclose(fp);}//Закрываем файл

 

 

int _tmain

(int argc, _TCHAR* argv[])

{int a;//Вводим переменную выбора

printf("Select Action from the list\n1-add new patient in file\n2-show all patiens from file\n3-show adress of patients certain group\n4-redact patient whith number:[]\n0-exit program\n");//Информация о выборе

do{//Создаём цикл до введения 0

printf("\nAction:");

scanf("%d",&a);//Вводим необходимое действие

switch (a){

case 1:{vvod();}break;//Если 1, то выполняем добавление пациента

case 2:{vivod();}break;//Если 2, то выводим всез пациентов из файла на экран

case 3:{sort();}break;//Если 3, выводим адреса пациентов определённой группы

case 4:{redact();}break;//Если 4, редактируем запись пациента с определённым номером

default:{printf("Error, Try again\n");}break;//Если введённое число не из диапазона [0;4], то вывести на экран ошибку

}}

while(a!=0);//Если 0, завершить программу

return 0;

}

 


Дата добавления: 2018-02-18; просмотров: 218; Мы поможем в написании вашей работы!

Поделиться с друзьями:




Мы поможем в написании ваших работ!