- •Программное обеспечение для учёта пациентов поликлиники
- •Оглавление
- •Введение
- •1 Описание основных теоретических принципов
- •2 Описание структур данных и алгоритмов, необходимых для реализации программного обеспечения
- •3 Блок-схема программы
- •4 Описание разработанного программного обеспечения
- •Заключение
- •Список использованной литературы
- •1. Лекционные материалы по языкам программирования за 1 семместр
- •2. Презентация по теме «Файлы.
- •Приложение а
3 Блок-схема программы
start
int a;
нет
да
1
нет
2
нет
да
да
Vvod();
end
нет
да
3
Vivod();
4
нет
да
Printf(“error”);
Sort();
Redact();
4 Описание разработанного программного обеспечения
Данная программа была разработана в среде “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;
}