- •Программное обеспечение для учёта пациентов поликлиники
- •Оглавление
- •Введение
- •1 Описание основных теоретических принципов
- •2 Описание структур данных и алгоритмов, необходимых для реализации программного обеспечения
- •3 Блок-схема программы
- •4 Описание разработанного программного обеспечения
- •Заключение
- •Список использованной литературы
- •1. Лекционные материалы по языкам программирования за 1 семместр
- •2. Презентация по теме «Файлы.
- •Приложение а
2 Описание структур данных и алгоритмов, необходимых для реализации программного обеспечения
Для реализации данной программы были использованы следующие структуры данных и алгоритмы:
Была создана глобальная структура 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;
}