Презентация курсовой работы.ppt
- Количество слайдов: 27
КУРСОВАЯ РАБОТА ПРИМЕР РАЗРАБОТКИ ПРОГРАММЫ 1
ЗАДАНИЕ l l l l 2 Дан файл, содержащий сведения о пациентах клиники. Каждая строка файла содержит запись об одном пациенте. Структура записи файла: - фамилия и инициалы пациента; - год рождения; - дата поступления; - диагноз. Написать программу, которая - выводит список пациентов, поступивших в заданный день; - выводит средний возраст пациентов; - записывает в новый файл список пациентов с заданным диагнозом.
Пример строки файла Анисимов Д. Г. | 25 3 1961 12. 05. 04 инфаркт миокарда | 5 | 9 | <= 40 |
Пример входного файла patient. txt l l l l l 4 Анисимов Д. Г. Хайрутдинов И. С. Петрова Т. В. Аксенов-Зварчук И. А. Галиева А. И. Сидоров. П. Е. Хасанов И. Р. Харламов Ф. А. Иванов И. С. Могилевский С. П. 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 стенокардия
Выходные данные Меню: Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход 5
При выборе пункта 1 на экран выводится сообщение: l l 6 Введите дату поступления в виде: дд. мм. гг После ввода даты, например 12. 05. 10, выводится результат в виде:
№ Фамилия И. О. Год рожд. Диагноз -------------------------------------1. 2. 3. 4. 7 Анисимов Д. Г. Хайрутдинов И. С. Галиева А. И. Могилевский С. П. 1961 1945 1960 1943 пневмония инфаркт миокарда инсульт стенокардия
Пример результата при выборе пункта 2 ========================= Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход ------------------------------------------2 Средний возраст пациентов: 50. 7 8
Пример результата при выборе пункта 3 Введите имя выходного файла pnevmon. txt Укажите диагноз пневмония Запись в файл завершена 9
Файл pnevmon. txt: Анисимов Д. Г. Аксенов-Зварчук И. А. Хасанов И. Р. 10 1961 12. 05. 10 1955 13. 05. 10 1974 14. 05. 10
Функциональная структура программы 11
Подпрограммы: l l 12 Date – вывод пациентов, поступивших в заданный день. Middle. Age - определение среднего возраста пациентов. Diagnos - запись в новый файл списка пациентов с заданным диагнозом. Age - определение возраста пациента по году рождения.
Поэтапная разработка программы 1 этап: Разработка функции main() 13
начало f =fopen(“ patient. txt. ”, “r” ) да Открытие файла patient. txt для чтения нет f = NULL вывод “Файл patient. txt не найден” возврат 1 14 c. 15 A
c. 14 A вывод меню Чтение номера пункта меню n n ‘ 1’ Date(f) ‘ 2’ Middle. Age(f) ‘ 3’ Diagnos(f) да n ≠ ’ 4’ нет закрытие файла 15 возврат 0
Главная функция программы: int main() { FILE *f; /* ссылка на входной файл */ char n; /* номер пункта меню */ clrscr(); f= fopen("patient. txt", "r"); if (f == NULL) { puts ("Файл patient. txt не найден"); getch(); return 1; } 16
do { puts ("n====================="); puts ("Выберите номер пункта меню: "); puts ("1 - вывод списка пациентов, поступивших в заданный день"); puts ("2 - определение среднего возраста пациентов"); puts ("3 - запись в новый файл списка пациентов с заданным диагнозом"); puts ("4 - выход"); puts ("--------------------------------------"); n = getche(); 17
switch (n) { case '1': Date(f); break; case '2': Middle. Age(f); break; case '3': Diagnos(f); break; case '4': break; default: puts("n. Нужно вводить номер пункта от 1 до 4"); } } while (n != '4'); fclose(f); return 0; } 18
Тестирование функции main() #include <stdio. h> #include <conio. h> /* прототипы функций */ void Date(FILE *f); void Middle. Age(FILE *f); void Diagnos(FILE *fin); 19
/* Гл. функция */ int main() {. . . puts (“Программа завершила работу”); getch(); return 0; } 20
/* Заглушки подпрограмм */ 21 void Date (FILE *f) { puts (“n Функция Date вызвана”); } void Middle. Age (FILE *f) { puts (“n Функция Middle. Age вызвана”); } void Diagnos (FILE *fin) { puts (“n Функция Diagnos вызвана”); }
Результаты тестирования l Тест 1. Входного файла нет в текущем каталоге. Результат: Файл patient. txt не найден 22
Тест 2. Входной файл есть в текущем каталоге Результат: ======================== Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход ------------------------------------------1 23 Функция Date вызвана
======================== Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход ------------------------------------------2 Функция Middle. Age вызвана 24
======================== Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход ------------------------------------------3 Функция Diagnos вызвана 25
======================== Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход ------------------------------------------5 Нужно вводить номер пункта от 1 до 4 26
======================== Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход ------------------------------------------4 Программа завершила работу 27
Презентация курсовой работы.ppt