Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2011 / 2011 / Приложение 1. Пример отчета по курсовой работе.doc
Скачиваний:
29
Добавлен:
12.03.2015
Размер:
181 Кб
Скачать

3.3.4. Diagnos - запись в новый файл списка пациентов с заданным диагнозом

Заголовок функции:

void Diagnos (FILE *fin)

ввод диагноза zdiag;

net = 1

чтение строки вх. файла в структуру tz

Запись в выходной файл

tz. fio, tz.gz, tz.data

да

Рис.4. Схема функции записи в новый файл списка пациентов

с заданным диагнозом.

3.3.5. Age - определение возраста по году рождения

Заголовок функции:

int Age (char gr[DL_GR])

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

gr - год рождения.

Значение функции:

возраст.

Возраст пациента вычисляется как разность между текущим годом и годом рождения пациента. Для определения текущего года используются библиотечные функции, определенные в файле time.h . Функция time() позволяет получить текущую дату и время. Она возвращает ее в виде числа секунд, прошедших с полуночи 1 января 1970 года. Функция localtime() преобразует эту величину в стандартную структуру типа tm, который определен в том же файле time.h, и возвращает адрес этой структуры. Поле tm_year этой структуры содержит число лет, прошедших с 1900 года.

Текст функции:

int Age (char gr[DL_GR])

{

int igr = atoi(gr); /* преобразование года рождения в тип int */

long timer; /* число секунд, прошедших с начала 1970 года

до текущего момента */

int year; /* текущий год */

struct tm *t; /* указатель на структуру, содержащую текущую

дату и время */

timer = time (NULL); /* получение числа секунд, прошедших с начала 1970 года */

t = localtime(&timer);/* преобразование в структуру типа tm */

year = 1900+ t->tm_year; /* определение тек. года */

return year - igr;

}

4. Отладка программы

4.1. Проектирование тестов

4.2.1. Тесты черного ящика

Для проектирования тестов программы методами черного ящика [1] с помощью эквивалентного разбиения входных/выходных данных на области (классы) эквивалентности составлен список ситуаций, каждая из которых должна создаваться хотя бы одним тестом. Тестовые ситуации приведены в табл. 4.1, в скобках указаны их номера.

Таблица 4.1

Области входных/выходных данных тестов программы

Входное/выходное условие (значение)

"Правильные" классы эквивалентности

"Неправильные" ¦ классы эквивалентности

¦Номер пункта меню

1..4 (1)

<1 (2), >4 (3)

Входной файл

существует (4),

не существует (5)

¦Входной файл

Не пустой (6)

пустой (7)

Формат даты

Верный (8)

Не верный (9)

¦День

1..N (N зависит от месяца) (10)

<1 (11), >4 (12)

¦Месяц

1..12 (13)

<1 (14), >N (15)

Год

12 (14)

<>12 (15)

Для создания перечисленных тестовых ситуаций разработаны тесты, представленные в табл. 4.2. Входные и выходные данные тестов по возможности выбирались ближе к границам классов эквивалентности.

Таблица 4.2

Тесты черного ящика для отладки программы

Вход

Выход

Основные ситуации

1

Номер пункта меню n=10

Нужно вводить номер пункта от 1 до 4

3

2

Номер пункта меню n=4

Завершение программы

1