Описание разработанного программного обеспечения
Министерство образования и науки Российской Федерации
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
«Алтайский государственный технический университет им. И.И. Ползунова»
Факультет: Информационных технологий
Кафедра: Вычислительные системы и информационная безопасность
Курсовая работа защищена с оценкой _________
Руководитель работы _________ Л.И. Сучкова
«___» ____________ 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!