КУРСОВАЯ РАБОТА
ЗАДАНИЕ
Пример строки файла
Пример входного файла patient.txt
Выходные данные
При выборе пункта 1 на экран выводится сообщение:
№ Фамилия И.О. Год рожд. Диагноз --------------------------------------------------------------------------
Пример результата при выборе пункта 2
Пример результата при выборе пункта 3
Файл pnevmon.txt:
Функциональная структура программы
Подпрограммы:
Поэтапная разработка программы
Главная функция программы:
Тестирование функции main()
/* Гл. функция */
/* Заглушки подпрограмм */
Результаты тестирования
Тест 2. Входной файл есть в текущем каталоге
586.50K
Категория: ПрограммированиеПрограммирование

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

1. КУРСОВАЯ РАБОТА

ПРИМЕР РАЗРАБОТКИ
ПРОГРАММЫ
1

2. ЗАДАНИЕ

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

3. Пример строки файла

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

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

Анисимов Д.Г.
1961 12.05.10 пневмония
Хайрутдинов И.С.
1945 12.05.10 инфаркт миокарда
Петрова Т.В.
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 стенокардия
4

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

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

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

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

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

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

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

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

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

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

10. Файл pnevmon.txt:

Анисимов Д.Г.
Аксенов-Зварчук И.А.
Хасанов И.Р.
10
1961 12.05.10
1955 13.05.10
1974 14.05.10

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

11

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

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

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

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

14.

начало
ofstream f (" patient. txt ");
да
Открытие файла patient.txt
для чтения
нет
f=0
вывод “Файл
patient.txt
не найден”
возврат 1
14
c. 15
A

15.

c. 14
A
вывод меню
Чтение номера
пункта
меню n
n
‘1’
Date(f)
‘2’
MiddleAge(f)
‘3’
Diagnos(f)
да
n ≠ ’4’
нет
закрытие
файла
15
возврат 0

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

int main()
{
char n; /* номер пункта меню */
clrscr();
ofstream f (" patient. txt ");
if (!f.is_open())
{ cout<<"Файл patient.txt не найден";
getch();
return 1;
}
16

17.

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

18.

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

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

#include <stdio.h>
#include <conio.h>
/* прототипы функций */
void Date(ofstream &f);
void MiddleAge(ofstream &f);
void Diagnos(ofstream &f);
19

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

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

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

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

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

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

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

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

24.

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

25.

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

26.

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

27.

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

28.

28
struct pacient
/* структура записи
входного файла */
{
string fio; /* фамилия и инициалы
пациента */
string gr; /* год рождения */
string data;
/* дата поступления */
string diag; /* диагноз */
};
English     Русский Правила