Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая (Восстановлен).docx
Скачиваний:
6
Добавлен:
24.12.2018
Размер:
147.72 Кб
Скачать

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;

}