Курсовая: Программирование на языке высокого уровня - текст курсовой. Скачать бесплатно.
Банк рефератов, курсовых и дипломных работ. Много и бесплатно. # | Правила оформления работ | Добавить в избранное
 
 
   
Меню Меню Меню Меню Меню
   
Napishem.com Napishem.com Napishem.com

Курсовая

Программирование на языке высокого уровня

Банк рефератов / Программирование

Рубрики  Рубрики реферат банка

закрыть
Категория: Курсовая работа
Язык курсовой: Русский
Дата добавления:   
 
Скачать
Microsoft Word, 408 kb, скачать бесплатно
Обойти Антиплагиат
Повысьте уникальность файла до 80-100% здесь.
Промокод referatbank - cкидка 20%!

Узнайте стоимость написания уникальной работы

17 Министерство об разования и науки Р оссийской Федерации Казанский государственный технический университет имени А.Н.Туполева ------------------------------------------------------------------------------------------- Кафедра АСОИУ КУРСОВАЯ РАБОТА по дисциплине «П рограммирова ни е на языке выс окого уровня » Исполнитель: ст. гр. 24278 Мустафин Р.Г. Руководитель: ст. преп. Бикмурзина А.Р. Оценка_________________ Подпись________________ “___” _____________ ___20 13 г. АЛЬМЕТЬЕВСК 2013 СОДЕРЖАНИЕ 1. ЗАДАНИЕ 3 2. ОПИСАНИЕ ПРИМЕНЕНИЯ 3 2.1. Запуск программы 3 2.2. Входные данные 3 2.3. Выходные данные 3 2.4. Сообщения программы 4 3. ОПИСАНИЕ ПРОГРАММЫ 4 3.1. Метод решения задачи 4 3.2. Структура программы 5 3.3. Описание функций 5 3.3.1. main – главная функция 5 3.3.2. Autobus – список всех маршру тов автобуса 7 3.3.3. Trolleybus – список всех маршрутов тро л лейбуса 7 3.3.4. Taxi – список всех маршрутов маршрутного такси 7 3.3.5. Route – количество маршрутов из пункта А в пункт Б 7 3.3.6 . Way – номера маршрутов, время в пути для которого из А в Б мин имальное 10 ЛИТЕРАТУРА 11 Приложение 1. Текст програ ммы 1 2 Приложение 2. Пример входного файла patient . txt 14 Приложение 3. Результаты тестирования программы 15 1. ЗАДАНИЕ Дан файл, содержащий сведения о пациентах клиники. Каждая строка файла с одержит запись об одном пациенте. Структура записи файла: - фамилия и инициалы пациент а; - год рождения; - дата поступления; - диагноз. Написать программу, котор ая - выводит список пациентов, поступивших в заданный день; - выводит средний возраст пациентов; - записывает в новый файл список пациентов с заданным диагнозом. 2. ОПИСАНИЕ ПРИМЕНЕНИЯ 2.1. Запуск программы Запуск программы (файл patient . c ) можно выполнить из среды Turbo C 2.0 (или Borland C ++ 3.1), либо из командной строки MS DOS , введя patient . exe . 2.2. Входные данные Входные данные программы находятся в файле “ patient . txt ”. Число ст рок в файле - произвольное. Каждая строка содержит фамилию с инициалами (25 символов), год рождения (5 символов), дату поступления (9 символов) и диагноз ( до 40 символов). Пример строки файла: Анисимов Д.Г. 1961 12.05.04 инфарк т миокарда | 25 | 5 | 9 | <= 40 | Пример входного файла приведен в приложении 2. По запросу программы с клавиатуры необходимо ввести номер пункта меню (с м. раздел 2.3), дату поступления пациентов в виде “дд.мм.гг”, например, 05.09.04, имя выходного файла и диагноз. 2.3. Выходные данные Программа выводит на экран меню: ================================================================= Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход При выборе пункта 1 на экран выводится сообщение: Введите дату поступле ния в виде: дд.мм.гг После ввода даты, например 12.05.04, выводится результат в виде: № Фамилия И.О. Год рожд. Диагноз ---------------------------------------------------------------------------- 1. Анисимов Д.Г. 1961 пневмония 2. Хайрутдинов И.С. 1945 инфаркт миокарда 3. Галиева А.И. 1960 инсульт 4. Могилевский С.П. 1943 стенокардия Если ввести дату, которой нет в файле, выводится сообщение: Нет пациентов, поступивших в за данный день Примеры выходных данны х для остальных пунктов меню см. в приложении 3. 2.4. Сообщения программы Ниже приводится перечень возможных сообщений програм мы: 1. Файл patient . txt не найден 2. Выберите номер пункта меню: 3. Нужно вводить номер пункта от 1 до 4 4. Введите дату поступления в виде: дд.мм.гг 5. № Фамилия И.О. Год рожд. Диагноз 6. Нет пациентов, поступивших в заданный день 7. Средний возраст пациентов: 8. Файл patient . txt пустой 9. Введите имя выходного файла 10. Укажите диагноз 11. Нет пациентов с заданным диагнозом 12. Запись в файл завершена 1 3 . Для продолжения нажмите любую клавишу 3. ОПИСАНИЕ ПРОГРАММЫ 3.1. Метод решения задачи Задачу можно разбить на три отдельные подзадачи: 1. Поиск в файле записей, в которых дата поступления пациента в клинику совпадает с заданной датой , и вывод списка таких пациентов. 2. Последовательный просмотр записей файла, суммирование возрастов вс ех пациентов и определение количества всех пациентов, чтобы определить средний возраст. 3. Поиск во входном файле записей, в которых диагноз совпадает с заданным диагнозом, и вывод их в выходной файл. Каждая подзадача решаетс я методом линейного поиска (последовательного просмотра элементов таб лицы). Чтобы пользователь мог выбирать, какие подзадачи решать и в каком поряд ке, программа выводит на экран меню (см. раздел 2.3). 3.2. Структура программы Рис.1. Функциональная структура программы Программа состоит из пяти функций: главной функции main и четырех подпрограмм. Date – вывод пациентов, поступивших в зад анный день. MiddleAge - определение среднего во зраста пациентов. Diagnos - запись в новый файл списк а пациентов с заданным диагнозом . Age - определение возраста пац иента по году рождения. 3.3. Описание функций 3.3.1. main – главная функция Заголовок функции: int main () Значение функции: 0 – в случае успешного завершения; 1 – если входной файл не найден. Рабочие данные: f – указатель на структуру с информацие й о входном файле; n – номер пункта меню. 17 Рис.1. Блок-схема функции main () 3.3.2. Date – вывод пациентов, поступивших в зада нный день Заголовок функции: Структура записи файла: void Date (FILE *f) fio - фамилия и инициалы пациен та gr - год рождения Входные данные: data - дата поступления f - ссылка на входной файл diag - диагноз 17 Рис.2. Схема функции вывода списка пациентов, поступивши х в заданный день. 3.3.3. MiddleAge - определени е среднего возраста пациентов Заголовок функции : void MiddleAge(FILE *f) 17 17 Рис.3. Блок-схема функции определения среднего возраста пациентов. 3.3.4. Diagnos - запись в новый файл списка пациент ов с заданным диагнозом Заголовок функции : void Diagnos (FILE *fin) 17 Рис.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; Литература 1 . Хохлов Д.Г. Основы технологии модульного программиров ания. Учебное пособие. - Казань. Изд-во Казан. гос. техн. ун-та , 2005. - 63 с. 2 . Павлов ская Т.А. С/С++. Программирование на языке высокого уровня. - СПб: Питер, 2004г. - 461с. 3. Павловская Т.А., Щупак Ю.А. С/С++. Структурное программирование: Практикум. - СПб: Питер, 2002 г. - 240с. 4. Хохлов Д.Г. Структуры данных и комбинаторные алгоритмы. Учебное пособие. - Казань: Изд-во Казан. гос. техн. ун-та, 2005. - 102 с. 5. Хохлов Д.Г., Захарова З.Х. Практикум по структурам дан ных и комбинаторным алгоритмам: Учебное пособие.- Казань: Изд-во Казан. гос. техн. ун-та, 2005. - 48 с. 6. Бикмурзина А.Р. Лабораторны й практикум по программированию. - Казань: Изд-во Казан. г ос. техн. ун-та, 2000г. Приложение 1. Текст программы # include < stdio . h > #include #include #include #include #define DL_FIO 25 /* длина поля фамилии в файле */ #define DL_GR 5 /* длина поля года рождения */ #define DL_DATA 9 /* длина поля даты поступления */ #define DL_DIAG 40 /* макс. длина диагноза */ struct pacient /* структура записи входного файла */ char fio[DL_FIO]; /* фамилия и инициалы пациента */ char gr [DL_GR]; /* год рождения */ char data[DL_DATA]; /* дата поступления */ char diag[DL_DIAG+2]; /* диагноз + '\n' + '\0' */ ; /* прототипы функций */ void Date(FILE *f); void MiddleAge(FILE *f); void Diagnos(FILE *fin); int Age (char gr[DL_GR]); /*----------------------*/ /* главная функция */ /*----------------------*/ int main() FILE *f; /* ссылка на входной файл */ char n; /* номер пункта меню */ clrscr(); f= fopen("patient.txt", "r"); if (f==NULL) puts (" Файл patient.txt не найден "); getch(); return 1; do puts ("\n========================================================"); puts (" Выберите номер пункта меню :"); puts ("1 - вывод списка пациентов, поступивших в заданный день"); puts ("2 - определение среднего возраста пациентов"); puts ("3 - запись в новый файл сп иска пациентов с заданным диагнозом"); puts ("4 - выход "); puts(("------------------------------------------------------"); n = getche(); switch(n) case '1': Date(f); break; case '2': MiddleAge(f); break; case '3': Diagnos(f); break; case '4': break; default: puts("\nНужно вводить номер пункта от 1 до 4"); if (n!='4') puts("\nДля продолжения нажмите любую клавишу"); getch(); while (n != '4'); fclose(f); return 0; /*--------------------------------------*/ /* Функция вывода списка пациентов, */ /* поступивших в заданный день */ /*--------------------------------------*/ void Date (FILE *f) char zdata[DL_DATA]; /* заданная дата поступления */ int n=0; /* порядковый номер пациента в выводимом списке */ struct pacient tz; /* текущая запись файла */ puts ("\nВведите дату поступления в виде: дд.мм.гг"); gets (zdata); rewind(f); while ( ( char * ) fgets(&tz,sizeof(struct pacient),f) != NULL) if (strncmp(tz.data,zdata,DL_DATA-1) == 0 ) if (n==0) puts("№ Фамилия И . О . Г од рожд. Диагноз"); puts("--------------------------------------------------"); tz.gr[DL_GR - 1] = '\0'; printf ("%d. %s %s", ++n, tz.fio, tz.diag); if (n==0) puts ("\nНет пациентов, поступивших в заданный день"); /*-------------------------------------------------*/ /* функция определения среднего возраста пациентов */ /*-------------------------------------------------*/ void MiddleAge(FILE *f) struct pacient tz; /* текущая запи сь файла */ float s = 0; /* сумма возрастов всех пациентов */ int k = 0; /* количество пациентов в файле */ rewind (f); while (fgets(&tz,sizeof(struct pacient),f) != NULL) s += Age(tz.gr); k++; if (k) printf ("\n Средний возрас т пациентов :%.1f\ n",s/k); else puts ("\n Файл patient.txt пустой "); /*-----------------------------------------------*/ /* функция определения возраста по году рождения */ /*-----------------------------------------------*/ 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; /*------------------------------------------------*/ /* функция записи в новый файл списка пациентов */ /* с заданным диагнозом */ /*------------------------------------------------*/ void Diagnos(FILE *fin) char fname[13]; /* имя выходного файла */ FILE *fout; /* ссылка на выходной файл */ char zdiag[DL_DIAG+1]; /* заданный диагноз */ int net=1; /* признак того, что нет пациентов с заданным диагнозом */ struct pacient tz; /* текущая запись файла */ puts ("\nВведите имя выходного файла"); gets (fname); fout = fopen(fname,"w"); puts ("Укажите диагноз"); gets (zdiag); rewind(fin); while (fgets(&tz,sizeof(struct pacient),fin)) if (strstr(tz.diag,zdiag)) net=0; tz.data[DL_DATA-1] = '\n'; fwrite (&tz,sizeof(struct pacient) - DL_DIAG - 2,1,fout); fclose (fout); if (net) puts ("Нет пациентов с заданным диагнозом"); unlink ( fname ); /* удаление созданного файла */ else puts("Запись в файл завершена"); Приложение 2. Пример входного файла patient . txt Анисимов Д.Г. 1961 12.05.04 пневмония Хайрутдинов И.С. 1945 12.05.04 инфаркт миокарда Петрова Т.В. 1933 13.05.04 стенокардия Аксенов-Зварчук И.А. 1955 13.05.04 пневмония Галиева А.И. 1960 12.05.04 инсульт Сидоров. П.Е. 1956 14.05.04 язва желудка Хасанов И.Р. 1974 14.05.04 левосторонняя пневмония Харламов Ф.А. 1957 13.05.04 цирроз печени Иванов И.С. 1949 14.05.04 инфаркт миокарда Могилевский С.П. 1943 12.05.04 стенокардия Приложение 3. Результаты тестиро вания программы Тест 1 . Входного файла не т в текущем каталоге. Результат: Файл patient . txt не найден В следующих тестах используется файл из приложения 2. Тест 2 . ============================================================ Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход ------------------------------------------------------------------------------------ 1 Введите дату поступле ния в виде: дд.мм.гг 12.05.04 № Фамилия И.О. Год рожд. Диагноз ---------------------------------------------------------------------------- 1. Анисимов Д.Г. 1961 пневмония 2. Хайрутдинов И.С. 1945 инфаркт миокарда 3. Галиева А.И. 1960 инсульт 4. Могилевский С.П. 1943 стенокардия Для продолжения нажмите любую клавишу Тест 3 . ============================================================ Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход ------------------------------------------------------------------------------------ 1 Введите дату поступле ния в виде: дд.мм.гг 01.05.04 Нет пациентов, поступивши х в заданный день Для продолжения нажмите любую клавишу Тест 4 . ============================================================ Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход ------------------------------------------------------------------------------------ 2 Средний возраст пациентов: 50.7 Для продолжения нажмите любую клавишу Тест 5 . ============================================================ Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход ------------------------------------------------------------------------------------ 3 Введите имя выходного файла pnevmon . txt Укажите диагноз пневмония Запись в файл завершена Для продолжения нажмите любую клавишу Содержимое файла pnevmon . txt : Анисимов Д.Г. 1961 12.05.04 Аксенов-Зварчук И.А. 1955 13.05.04 Хасанов И.Р. 1974 14.05.04 Тест 6 . ============================================================ Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход ------------------------------------------------------------------------------------ 3 Введите имя выходного файла orvi . txt Укажите диагноз ОРВИ Нет пациентов с заданным диагнозом Для продолжения нажмите любую клавишу Тест 7 . Входной файл пустой ============================================================ Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход ------------------------------------------------------------------------------------ 2 Файл patient . txt пустой Для продолжения нажмите любую клавишу Тест 8 . Неверно выбран номер пункта меню ============================================================ Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход ------------------------------------------------------------------------------------ 6 Нужно вводить номер пункта от 1 до 4 Для продолжения нажмите любую клавишу ============================================================ Выберите номер пункта меню: 1 - вывод списка пациентов, поступивших в заданный день 2 - определение среднего возраста пациентов 3 - запись в новый файл списка пациентов с заданным диагнозом 4 - выход ------------------------------------------------------------------------------------ 4
1Авиация и космонавтика
2Архитектура и строительство
3Астрономия
 
4Безопасность жизнедеятельности
5Биология
 
6Военная кафедра, гражданская оборона
 
7География, экономическая география
8Геология и геодезия
9Государственное регулирование и налоги
 
10Естествознание
 
11Журналистика
 
12Законодательство и право
13Адвокатура
14Административное право
15Арбитражное процессуальное право
16Банковское право
17Государство и право
18Гражданское право и процесс
19Жилищное право
20Законодательство зарубежных стран
21Земельное право
22Конституционное право
23Конституционное право зарубежных стран
24Международное право
25Муниципальное право
26Налоговое право
27Римское право
28Семейное право
29Таможенное право
30Трудовое право
31Уголовное право и процесс
32Финансовое право
33Хозяйственное право
34Экологическое право
35Юриспруденция
36Иностранные языки
37Информатика, информационные технологии
38Базы данных
39Компьютерные сети
40Программирование
41Искусство и культура
42Краеведение
43Культурология
44Музыка
45История
46Биографии
47Историческая личность
 
48Литература
 
49Маркетинг и реклама
50Математика
51Медицина и здоровье
52Менеджмент
53Антикризисное управление
54Делопроизводство и документооборот
55Логистика
 
56Педагогика
57Политология
58Правоохранительные органы
59Криминалистика и криминология
60Прочее
61Психология
62Юридическая психология
 
63Радиоэлектроника
64Религия
 
65Сельское хозяйство и землепользование
66Социология
67Страхование
 
68Технологии
69Материаловедение
70Машиностроение
71Металлургия
72Транспорт
73Туризм
 
74Физика
75Физкультура и спорт
76Философия
 
77Химия
 
78Экология, охрана природы
79Экономика и финансы
80Анализ хозяйственной деятельности
81Банковское дело и кредитование
82Биржевое дело
83Бухгалтерский учет и аудит
84История экономических учений
85Международные отношения
86Предпринимательство, бизнес, микроэкономика
87Финансы
88Ценные бумаги и фондовый рынок
89Экономика предприятия
90Экономико-математическое моделирование
91Экономическая теория

 Анекдоты - это почти как рефераты, только короткие и смешные Следующий
- Подсудимый! Вам предоставляется последнее слово.
- А можно два самых последних?
- Можно.
- Заебали, блять!
Anekdot.ru

Узнайте стоимость курсовой, диплома, реферата на заказ.

Обратите внимание, курсовая по программированию "Программирование на языке высокого уровня", также как и все другие рефераты, курсовые, дипломные и другие работы вы можете скачать бесплатно.

Смотрите также:


Банк рефератов - РефератБанк.ру
© РефератБанк, 2002 - 2017
Рейтинг@Mail.ru