Вход

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

Курсовая работа* по программированию
Дата добавления: 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 - 2024