Вход

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

Курсовая работа по программированию
Дата добавления: 03 июня 2013
Язык курсовой: Русский
Word, rtf, 404 кб (архив zip, 44 кб)
Курсовую можно скачать бесплатно
Скачать
Данная работа не подходит - план Б:
Создаете заказ
Выбираете исполнителя
Готовый результат
Исполнители предлагают свои условия
Автор работает
Заказать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу
16 Министерство об разования и науки Р оссийской Федерации Казанский государственный технический университет имени А.Н.Туполева ------------------------------------------------------------------------------------------- Кафедра АСОИУ КУРСОВАЯ РАБОТА по дисциплине «П рограммирова ни е на языке выс окого уровня » Исполнитель: ст. гр. 24278 Мустафин Р.Г. Руководитель: ст. преп. Бикмурзина А.Р. Оценка_________________ Подпись________________ “___” _____________ ___20 13 г. АЛЬМЕТЬЕВСК 2013 СОДЕРЖАНИЕ 1. ЗАДАНИЕ 3 2. ОПИСАНИЕ ПРИМЕНЕНИЯ 4 2.1. Запуск программы 4 2.2. Входные данные 4 2.3 . Сообщения программы 4 3. ОПИСАНИЕ ПРОГРАММЫ 5 3. 1. Метод ре шения задачи 5 3.2. Структура программы 5 3.3. Описание функций 5 3.3.1. main – главная функция 5 3.3.2. F romToA – список маршрутов из пункта А или в пункт А 8 3.3.3. L ongA – номер самого д линного маршрута из А или в А 9 3.3.4. R outeA – количество маршрутов каждого вида транспорта, сле дующих из А или в А 10 ЛИТЕРАТУРА 11 Приложение 1. Текст програ ммы 1 2 Приложение 2. Пример входного файла route . txt 14 Приложение 3. Результа ты тестирования программы 1 4 1. ЗАДАНИЕ Дан файл, содержащий ин формацию о маршрутах городского транспорта. Структура записи файла: - номер маршрута; - вид транспорта (а - автобус, т – трамвай, м - маршрутное такси), - начальный пункт, - конечный пункт, - время в пути. Написать программу, выдающую - список всех маршрутов из пункта А или в пункт А; - номер самого длинного маршрута из А или в А; - количество маршрутов каждого вида тран спорта, следующих из А или в А. 2. ОПИСАНИЕ ПРИМЕНЕНИЯ 2.1. Запуск программы Запуск программы (файл variant 3 . c pp ) можно выполнить из среды Borland C ++ 3.1, либо из командной строки MS DOS , введя variant 3 . exe . 2.2. Входные данные Входные данные программы находятся в файле “ route . txt ”. Число стро к в файле - произвольное. Каждая строка содержит номер ма ршрута (2 символ а ), вид транспорта ( 1 символ), начальный пункт ( 1 символ) , конечный пункт (1 с имвол), и время в пути в минутах (до 90 символов). Данные мажду собой разделяются л юбым произвольным символом. Пример строки файла: 10,а,А,Б,180 Пример входного файла приведен в приложении 2. По запросу программы с клавиатуры необходимо ввести ном ер пункта меню (см. раздел 2.3) . 2.4. Сообщения программы Ниже приводится перечень возможных сообщений програм мы: 1. Файл route . txt не найден 2. Выберите номер пункта меню: 3. Нужно вводить номер пункта от 1 до 4 4. С писок всех маршрутов из пунк та А или в пункт А 5. Н омер самог о длинного маршрута из А или в А 6 . Маршрутов н е найдено 7 . Самый длинн ый маршрут из А или в А - номер %u, время в пути %u 8 . К оличество маршрутов каждого вида транспорта, следующих из А или в А 9 . К оличество автобусных маршрутов из А или в А - %u 10 . К оличество трамвайных маршрутов из А или в А - %u 11 . Количество маршрутов маршрутного такси из А или в А - %u 1 2 . Для продолжения нажмите любую клав ишу 3. ОПИСАНИЕ ПРОГРАММЫ 3.1. Метод решения задачи Задачу можно разбить на три отдельные подзадачи: 1. Поиск в файле записей, в которых пункт отпра вления или пункт назначения равен А; 2. Последовательный просмотр записей файла, отбор марш рутов из или в пункт А, поиск наиболее длинного маршрута; 3. Поиск во входном файле записей, количества маршрутов каждого вида транспорта, следующих из А или в А Каждая подзадача решаетс я методом линейного поиска (последовательного просмотра элементов таб лицы). Чтобы пользователь мог выбирать, какие подзадачи решать и в каком поряд ке, программа выводит на экран меню (см. раздел 2.3). 3.2. Структура программы Рис.1. Функциональная структура программы Программа состоит из четырех функций: г лавной функции main и четырех под программ. F romToA – список всех маршрутов из пункт а А или в пункт А . L ongA - номер самого длинно го маршрута из А или в А . R outeA - количество маршруто в каждого вида транспорта, следующих из А или в А . 3.3. Описание функций 3.3.1. main – главная функция Заголовок функции: int main () Значение функции: 0 – в случае успешного завершения; 1 – если входной файл не найден. Рабочие данные: f ile – указатель на структуру с информацией о входном файле; n – номер пункта меню. 16 Рис.1. Блок-схема функции main () 3.3.2. FromToA – список всех м аршрутов из пункта А или в пункт А Заголовок функции : void FromToA (FILE *f ile ) Входные данные : f ile - ссылка на входной файл 16 Рис.2. Блок-схема функции список всех маршрутов из пункта А или в пункт А 3.3.3. LongA - номер самого длинного маршрута из А или в А Заголовок функции : void LongA (FILE *f ile ) 16 16 Рис.3. Блок-схема функции номер само го длинного маршрута из А или в А . 3.3.4. RouteA - ко личество маршрутов каждого вида транспорта, следующих из А или в А Заголовок функции : void RouteA (FILE *file ) 16 Рис .4. Блок-с хема функции количество маршрутов ка ждого вида транспорта, следующих из А или в А . Литература 1 . Хохлов Д.Г. Основы технологии модульного программиров ания. Учебное пособие. - Казань. Изд-во Казан. гос. техн. ун-та , 2005. - 63 с. 2 . Павлов ская Т.А. С/С++. Программирование на языке высокого уровня. - СПб: Питер, 2004г. - 461с. 3. Павловская Т.А., Щупак Ю.А. С/С++. Структурное программирование: Практикум. - СПб: Питер, 2002 г. - 240с. 4. Хохлов Д.Г. Структуры данных и комбинаторные алгоритмы. Учебное пособие. - Казань: Изд-во Казан. гос. техн. ун-та, 2005. - 102 с. 5. Хохлов Д.Г., Захарова З.Х. Практикум по структурам дан ных и комбинаторным алгоритмам: Учебное пособие.- Казань: Изд-во Казан. гос. техн. ун-та, 2005. - 48 с. 6. Бикмурзина А.Р. Лабораторны й практикум по программированию. - Казань: Изд-во Казан. г ос. техн. ун-та, 2000г. Приложение 1. Текст программы # include < stdio . h > #include #include /* прототипы функций */ void FromToA(FILE *file); void LongA(FILE *file); void RouteA(FILE *file); /* Основная функция */ int main() char buffer[100]; // переменная для вход ных данных char n; // номер пункта меню FILE *file = fopen("route.txt", "r"); // открываем файл transport.txt if (file == NULL) // проверка на существ ование файла puts ("Файла route.txt не существует"); getch(); return 1; do clrscr(); // очистка экрана rewind(file); //указатель на начало файла puts ("Входные данные"); puts ("-----------------"); /* читаем данные из файла */ while (fgets (buffer, 100, file) != NULL) puts (buffer); rewind(file); // указатель на начало файла /* меню */ puts ("\n========================================================"); puts ("Выберите номер пункта меню:"); puts ("1 - список всех маршрутов из пункта А или в пункт А"); puts ("2 - номер самого длинного маршрута из А или в А"); puts ("3 - количество маршрутов каждого вида транспорта, следующих из А или в А"); puts ("4 - выход "); puts ("--------------------------------------------------------"); n = getche(); switch(n) case '1': FromToA(file); break; case '2': LongA(file); break; case '3': RouteA(file); break; case '4': break; default: puts("\nНужно вводить номер пункта от 1 до 4"); if (n!='4') puts("\nДля продолжения нажмите любую клавишу"); getch(); while (n != '4'); return 0; /* функция список всех маршрутов из пункта А или в пункт А */ void FromToA (FILE *file) puts (" - список всех маршрутов из пункта А или в пункт А"); puts ("-----------------"); char buffer[100]; while (fgets (buffer, 100, file) != NULL) if (buffer[5] == ' А ' || buffer[7] == ' А ') puts (buffer); /* функция номер самого длинного маршрута из А или в А */ void LongA (FILE *file) int maxTime = 0; // переменная для максимального времени int routeNum = 0; // переменная для номера маршрута puts (" - номер самого длинного маршрута из А или в А"); puts ("-----------------"); char buffer[100]; while (fgets (buffer, 100, file) != NULL) if (buffer[5] == ' А ' || buffer[7] == ' А ') if (maxTime < atoi(buffer+9)) maxTime = atoi(buffer+9); routeNum = atoi(buffer); if (maxTime == 0 && routeNum == 0) puts ("\n Маршрутов не найдено "); else printf ("\nСамый длинный маршрут из А или в А - номер %u, вре мя в пути %u мин.\n", routeNum, maxTime); /* функция количество маршрутов каждого вида транспорта, следующих из А и ли в А */ void RouteA (FILE *file) int a = 0; // счетчик автобусных маршрутов int t = 0; // счетчик трамвайных маршрутов int m = 0; // счетчик маршрутов такси puts (" - количество маршрутов каждого вида транспорта, следующих из А или в А "); puts ("-----------------"); char buffer[100]; while (fgets (buffer, 100, file) != NULL) if (buffer[5] == ' А ' || buffer[7] == ' А ') if (buffer[3] == ' а ') a++; else if (buffer[3] == ' т ') t++; else if (buffer[3] == ' м ') m++; printf ("Количество автобусных маршрутов из А или в А - %u\n", a); printf ("Количество трамвайных маршрутов из А или в А - %u\n", t); printf ("Количество маршрутов маршрутного такси из А или в А - %u\n", m); Прило жение 2. Пример входного файла route . txt 01 а А Б 060 02 т Б В 030 03 м В А 180 04 а Б А 060 05 т В Б 060 06 м А В 180 Приложение 3. Результаты тестиро вания программы Тест 1 . Входного файла не т в текущем каталоге. Результат: Файл route . txt не найден В следующих тестах используется файл из приложения 2. Тест 2 . Входные данные ----------------- 01 а А Б 060 02 т Б В 030 03 м В А 180 04 а Б А 060 05 т В Б 060 06 м А В 180 ======================================================== Выберите номер пункта меню: 1 - список всех маршрутов из пункта А или в пункт А 2 - номер самого длинного маршрута из А или в А 3 - количество маршрутов каждого вида транспорта, следующих из А или в А 4 - выход -------------------------------------------------------- 1 - список всех маршрутов из пункта А или в пункт А ----------------- 01 а А Б 060 03 м В А 180 04 а Б А 060 06 м А В 180 Для продолжения нажмите любую клавишу Тест 3 . Входные данные ----------------- 01 а А Б 060 02 т Б В 030 03 м В А 180 04 а Б А 060 05 т В Б 060 06 м А В 180 ======================================================== Выберите номер пункта меню: 1 - список всех маршрутов из пункта А или в пункт А 2 - номер самого длинного маршрута из А или в А 3 - количество маршрутов каждого вида транспорта, следующих из А или в А 4 - выход -------------------------------------------------------- 2 - номер самого длинного маршрута из А или в А ----------------- Самый длинный маршрут из А или в А - номер 3, время в пути 180 мин. Для продолжения нажмите любую клавишу Тест 4 . Входные данные ----------------- 01 а А Б 060 02 т Б В 030 03 м В А 180 04 а Б А 060 05 т В Б 060 06 м А В 180 ======================================================== Выберите номер пункта меню: 1 - список всех маршрутов из пункта А или в пункт А 2 - номер самого длинного маршрута из А или в А 3 - количество маршрутов каждого вида транспорта, следующих из А или в А 4 - выход -------------------------------------------------------- 3 - количество маршрутов каждого вида транспорта, следующих из А или в А ----------------- количество автобусных маршрутов из А или в А - 2 количество трамвайных маршрутов из А или в А - 0 количество маршрутов маршрутного такси из А или в А - 2 Для продолжения нажмите любую клавишу Тест 5 . Неверно выбран номер пункта меню Входные данные ----------------- 01 а А Б 060 02 т Б В 030 03 м В А 180 04 а Б А 060 05 т В Б 060 06 м А В 180 ======================================================== Выберите номер пункта меню: 1 - список всех маршрутов из пуекта А или в пункт А 2 - номер самого длинного маршрута из А или в А 3 - количество маршрутов каждого вида транспорта, следующих из А или в А 4 - выход -------------------------------------------------------- 6 Нужно вводить номер пункта от 1 до 4 Для продолжения нажмите любую клавишу
© Рефератбанк, 2002 - 2017