Пример разработки программы

Содержание

Слайд 2

ЗАДАНИЕ

Дан файл, содержащий сведения о пациентах клиники. Каждая строка файла содержит

ЗАДАНИЕ Дан файл, содержащий сведения о пациентах клиники. Каждая строка файла содержит
запись об одном пациенте. Структура записи файла:
- фамилия и инициалы пациента;
- год рождения;
- дата поступления;
- диагноз.
Написать программу, которая
- выводит список пациентов, поступивших в заданный день;
- выводит средний возраст пациентов;
- записывает в новый файл список пациентов с заданным диагнозом.

Слайд 3

Пример строки файла
Анисимов Д.Г. 1961 12.05.10 инфаркт миокарда
| 25 символов | 5

Пример строки файла Анисимов Д.Г. 1961 12.05.10 инфаркт миокарда | 25 символов
| 9 | <= 40 |

Слайд 4

Пример входного файла patient.txt

Анисимов Д.Г. 1961 12.05.10 пневмония
Хайрутдинов И.С. 1945 12.05.10 инфаркт

Пример входного файла patient.txt Анисимов Д.Г. 1961 12.05.10 пневмония Хайрутдинов И.С. 1945
миокарда
Петрова Т.В. 1933 13.05.10 стенокардия
Аксенов-Зварчук И.А.1955 13.05.10 пневмония
Галиева А.И. 1960 12.05.10 инсульт
Сидоров. П.Е. 1956 14.05.10 язва желудка
Хасанов И.Р. 1974 14.05.10 левосторонняя пневмония
Харламов Ф.А. 1957 13.05.10 цирроз печени
Иванов И.С. 1949 14.05.10 инфаркт миокарда
Могилевский С.П. 1943 12.05.10 стенокардия

Слайд 5

Выходные данные

Меню:
Выберите номер пункта меню:
1 - вывод списка пациентов, поступивших в заданный

Выходные данные Меню: Выберите номер пункта меню: 1 - вывод списка пациентов,
день
2 - определение среднего возраста пациентов
3 - запись в новый файл списка пациентов с заданным диагнозом
4 - выход

Слайд 6

При выборе пункта 1 на экран выводится сообщение:

Введите дату поступления в виде:

При выборе пункта 1 на экран выводится сообщение: Введите дату поступления в
дд.мм.гг
После ввода даты, например 12.05.10, выводится результат в виде:

Слайд 7

№ Фамилия И.О. Год рожд. Диагноз --------------------------------------------------------------------------

1. Анисимов Д.Г. 1961 пневмония
2. Хайрутдинов И.С. 1945 инфаркт

№ Фамилия И.О. Год рожд. Диагноз -------------------------------------------------------------------------- 1. Анисимов Д.Г. 1961 пневмония
миокарда
3. Галиева А.И. 1960 инсульт
4. Могилевский С.П. 1943 стенокардия

Слайд 8

Пример результата при выборе пункта 2

==================================================
Выберите номер пункта меню:
1 - вывод списка

Пример результата при выборе пункта 2 ================================================== Выберите номер пункта меню: 1
пациентов, поступивших в заданный день
2 - определение среднего возраста пациентов
3 - запись в новый файл списка пациентов с заданным диагнозом
4 - выход
------------------------------------------------------------------------------------
2
Средний возраст пациентов: 50.7

Слайд 9

Пример результата при выборе пункта 3

Введите имя выходного файла
pnevmon.txt
Укажите диагноз
пневмония
Запись в файл

Пример результата при выборе пункта 3 Введите имя выходного файла pnevmon.txt Укажите
завершена

Слайд 10

Файл pnevmon.txt:
Анисимов Д.Г. 1961 12.05.10
Аксенов-Зварчук И.А. 1955 13.05.10
Хасанов И.Р. 1974

Файл pnevmon.txt: Анисимов Д.Г. 1961 12.05.10 Аксенов-Зварчук И.А. 1955 13.05.10 Хасанов И.Р. 1974 14.05.10
14.05.10

Слайд 11

Функциональная структура программы

Функциональная структура программы

Слайд 12

Подпрограммы:

Date – вывод пациентов, поступивших в заданный день.
MiddleAge - определение среднего возраста

Подпрограммы: Date – вывод пациентов, поступивших в заданный день. MiddleAge - определение
пациентов.
Diagnos - запись в новый файл списка пациентов с заданным диагнозом.
Age - определение возраста пациента по году рождения.

Слайд 13

Поэтапная разработка программы

1 этап: Разработка функции main()

Поэтапная разработка программы 1 этап: Разработка функции main()

Слайд 16

Главная функция программы:

int main()
{
char n; /* номер пункта меню */
clrscr();
ofstream f

Главная функция программы: int main() { char n; /* номер пункта меню
(" patient. txt ");
if (!f.is_open())
{ cout<<"Файл patient.txt не найден";
getch();
return 1;
}

Слайд 17


do
{ cout<<"\n==========================================");
cout<< ("Выберите номер пункта меню:");
cout<< ("1 - вывод

do { cout cout cout cout cout cout cout n = getche();
списка пациентов, поступивших в заданный день");
cout<< ("2 - определение среднего возраста пациентов");
cout<<("3 - запись в новый файл списка пациентов с заданным диагнозом");
cout<< ("4 - выход");
cout<< ("----------------------------------------------------------------------------");
n = getche();

Слайд 18


switch (n)
{
case '1': Date(f); break;
case '2': MiddleAge(f);

switch (n) { case '1': Date(f); break; case '2': MiddleAge(f); break; case
break;
case '3': Diagnos(f); break;
case '4': break;
default: cout<<"\nНужно вводить номер пункта от 1 до 4";
}
}
while (n != '4');
f.close();
return 0;
}

Слайд 19

Тестирование функции main()

#include
#include
/* прототипы функций */
void Date(ofstream &f);
void MiddleAge(ofstream &f);
void

Тестирование функции main() #include #include /* прототипы функций */ void Date(ofstream &f);
Diagnos(ofstream &f);

Слайд 20

/* Гл. функция */

int main()
{
. . .
cout<<“Программа завершила работу”;
getch();
return 0;
}

/* Гл. функция */ int main() { . . . cout getch(); return 0; }

Слайд 21

/* Заглушки подпрограмм */

void Date (ofstream &f)
{ cout<<“\n Функция Date вызвана”;
}
void MiddleAge

/* Заглушки подпрограмм */ void Date (ofstream &f) { cout } void
(ofstream &f)
{ cout<<“\n Функция MiddleAge вызвана”;
}
void Diagnos (ofstream &f)
{ cout<< “\n Функция Diagnos вызвана”;
}

Слайд 22

Результаты тестирования

Тест 1. Входного файла нет в текущем каталоге.
Результат:
Файл patient.txt

Результаты тестирования Тест 1. Входного файла нет в текущем каталоге. Результат: Файл patient.txt не найден
не найден

Слайд 23

Тест 2. Входной файл есть в текущем каталоге

Результат:
================================================
Выберите номер пункта меню:
1 -

Тест 2. Входной файл есть в текущем каталоге Результат: ================================================ Выберите номер
вывод списка пациентов, поступивших в заданный день
2 - определение среднего возраста пациентов
3 - запись в новый файл списка пациентов с заданным диагнозом
4 - выход
------------------------------------------------------------------------------------
1
Функция Date вызвана

Слайд 24


================================================
Выберите номер пункта меню:
1 - вывод списка пациентов, поступивших в заданный

================================================ Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в
день
2 - определение среднего возраста пациентов
3 - запись в новый файл списка пациентов с заданным диагнозом
4 - выход
------------------------------------------------------------------------------------
2
Функция MiddleAge вызвана

Слайд 25


================================================ Выберите номер пункта меню:
1 - вывод списка пациентов, поступивших в

================================================ Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в
заданный день
2 - определение среднего возраста пациентов
3 - запись в новый файл списка пациентов с заданным диагнозом
4 - выход
------------------------------------------------------------------------------------
3
Функция Diagnos вызвана

Слайд 26


================================================ Выберите номер пункта меню:
1 - вывод списка пациентов, поступивших в

================================================ Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в
заданный день
2 - определение среднего возраста пациентов
3 - запись в новый файл списка пациентов с заданным диагнозом
4 - выход
------------------------------------------------------------------------------------
5
Нужно вводить номер пункта от 1 до 4

Слайд 27


================================================ Выберите номер пункта меню:
1 - вывод списка пациентов, поступивших в

================================================ Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в
заданный день
2 - определение среднего возраста пациентов
3 - запись в новый файл списка пациентов с заданным диагнозом
4 - выход
------------------------------------------------------------------------------------
4
Программа завершила работу