Задания курсовых работ

Задания с верхней границей оценки «5»
5.1 Игра «Мозаика» с поддержкой пользовательских изображений и размеров сетки.
5.2 Программа для чтения RSS-лент с возможностью задания пользовательских каналов и периодичности их обновления
5.3 Сетевая игра «Морской бой».
5.4 Программа для многопоточного поиска файлов по маске на наличие текста
5.5 Сетевая карточная игра «21». Игроков может быть больше двух. Банкиром может быть сервер.
5.6 P2P-чат с ведением истории сообщений и поддержкой восстановления истории диалога через сеть от собеседника
5.7 Игра «Сапер» с поддержкой пользовательских настроек размеров поля, количества мин, режима ограниченного времени игры.
5.8 P2P-чат с возможностью передачи файлов между клиентами
5.9 Сетевая игра «Виселица». Первый игрок задумывает слово. Это должно быть существующее слово, и игрок должен быть уверен, что другой игрок знает это слово и знаком с его написанием. Он изображает ряд пустых мест, необходимых для написания слова. Игра начинается, когда второй игрок предлагает букву, которая может входить в это слово. Если он угадывает, первый игрок пишет ее в нужном незаполненном месте. Если в слове такой буквы нет, он пишет эту букву в стороне и начинает рисовать виселицу. Противник продолжает отгадывать буквы до тех пор, пока не отгадает все слово. За каждый неправильный ответ первый игрок добавляет одну часть к рисунку. Если туловище нарисовано раньше, чем противник может угадать слово, первый игрок побеждает. Если противник отгадывает слово правильно до того, как туловище нарисовано полностью, побеждает он, и тогда наступает его черед задумать слово. Слово должно существовать, описание загаданного слово пишется первым игроком в специальном окне. Сервер ведет журналирование игр.
5.10 Реализовать шифрование и дешифрование Цезаря, Вижнера и Энигма для различных расширений текстовых файлов на выбор пользователя.
5.11 Сетевая игра «Лабиринт с предметами» для двух игроков, каждый из которых одновременно является ведущим и исследователем, с поддержкой пользовательских настроек размеров поля. У каждого игрока есть свое поле размером 10х10. Удобно использовать обозначения клеток как в игре Морской бой (по горизонтали – буквы, по вертикали – числа). На одном поле чертиться свой лабиринт, по которому будет ходить соперник. Второе, пока пустое, поле – лабиринт соперника, по которому ходит сам игрок. На нем отмечаются разведанные в процессе игры объекты лабиринта противника. Цель – вынести клад из чужого лабиринта быстрее, чем соперник вынесет клад из твоего. Между клетками могут находиться стены, которые, собственно, лабиринт и образуют. Кроме этого, весь лабиринт по периметру также огражден стеной, которая называется «стена лабиринта». В лабиринте может быть: 1 Капкан, 4 Ямы, 4 Выхода из ям (каждой яме однозначно соответствует один выход), 3 Ложных клада, 1 Настоящий клад, 4 Выхода из лабиринта с каждой стороны. Кроме того, каждый участник в начале игры имеет 3 гранаты. После того как игрок переместился на новую клетку, противник сообщает ему о том, что на новой клетке находится (а на одной клетке может находиться только один объект). Это могут быть (с примерами обозначения): 1 - капкан («K»). Попуск трех ходов. Т.е. пока Вы выбираетесь из капкана (корректнее — ловушки), противник совершает четыре хода, после чего Вы опять можете перемещаться. Наличие у противника костыля позволяет ему совершить восемь ходов. Если Вы попали в капкан будучи перед этим ранены арбалетом, противник делает лишь четыре хода (перманентный пропуск ходов не работает, т.к. Вы все равно не двигаетесь). Капкан срабатывает каждый раз, когда игрок посещает клетку с ним. 2 - Вы попали в яму № 1, 2, 3 или 4. («1,2,3,4») – мгновенное перемещение (тем же ходом) на клетку «Выход из ямы № 1, 2, 3 или 4» («I,II,III,IV») соответственно. Координаты выхода игроку не сообщаются. Он продолжает игру от клетки с выходом из ямы и сам определяет свое местоположение по косвенным признакам. Если игрок попал на клетку «выход из ямы» не падая в саму яму а просто «набрел», ему сообщается об этом. Теперь, упав в яму с этим номером, он будет знать, где появится. 3 - Вы нашли клад. Ложный («О») или истинный («Х»), можно узнать только выйдя из лабиринта. Для выхода из лабиринта можно воспользоваться любым из выходов, которые имеются по одному с каждой стороны или пробить новый, воспользовавшись гранатой. (Впрочем, можно условиться, что стены лабиринта гранаты не берут, хотя при этом тратятся). Игроку, который в свой ход вышел из лабиринта (случайно или преднамеренно), сообщается, что он вышел из лабиринта. Если при этом у него на руках клад, сообщается и какой это клад: ложный или настоящий. Лабиринт должен составляться таким образом, чтобы можно было посетить каждую клетку и выйти из лабиринта без применения гранат, начав игру из любой точки. Нельзя строить ловушки: когда игрок, попав в яму, выходит из нее в замкнутое пространство, из которого не может выбраться без применения гранат. Капкан может стоять где угодно.
5.12 Игра «Ханойская башня». Есть 1 пирамидка с дисками разного размера, и еще 2 пустые пирамидки. Надо переместить диски с одной пирамидки на другую. Количество дисков выбирается пользователем (может быть 3,4,5 или 6). При переносе учитывать ограничения: за раз переносится только 1 диск; можно брать один из верхних кругов любой башни и переносить на любой из соседних стержней; элемент меньшего размера должен покрывать крупный. Количество ходов необходимо подсчитывать.
5.13 Сетевая карточная игра «Рыба». Целью игры является избавление от всех своих карт. Первый сдатчик определяется жребием, далее игроки сдают карты по очереди. Колода тщательно тасуется, снимается и каждому игроку сдается: если игроков двое или трое - по 7 карт; четверо или пятеро - по 5 карт. Оставшаяся колода карт кладется в закрытом виде по центру стола. После того как игроки получили карты, они их раскладывают по группам одинакового достоинства, не показывая их никому. Первый ход принадлежит игроку слева от сдатчика. Игрок просит у других участников игры карту того же достоинства, что он собирает. Если у игроков не оказывается такой карты, то игрок берет карту из колоды, говорит: "рыба" и ход переходит к следующему игроку по часовой стрелке. Следующий игрок ходит по вышеуказанным правилам. Игрок, который собрал 4 карты одного достоинства, кладет их перед собой в открытом виде. Побеждает игрок, который не имеет карт, кроме карт собранных в группы. Если игру заканчивают одновременно 2 игрока, то выигрывает игрок, у которого больше групп карт. Если количество групп карт одинаково, то выигрывает последний игрок по часовой стрелке. Подсказка: Динамическая библиотека Cards.dll содержит изображения игральных карт, которые используются во многих играх Windows. Вы можете использовать эту DLL в Ваших проектах приложений для отображения карт. Преимущество использования этой библиотеки DLL в Ваших приложениях – экономия места, так как эта библиотека уже находится в операционной системе Windows XP. Для Windows 7 нужно эту библиотеку DLL положить в папку с проектом или папку Windows.
5.14 Игра «чет-нечет». Два игрока, «нечетный» и «четный», по очереди ставят единицы и нули в незанятые позиции поля N на N (размер поля задается пользователем). Каждый из игроков может ставить 1 или 0 в произвольную свободную позицию, тем самым занимая ее. Игра продолжается до заполнения всех позиций. После этого суммируются числа вдоль каждой строки, каждого столбца и главных диагоналей. Число нечетных сумм сравнивается с числом четных сумм. Если «Число нечетных сумм > Числа четных сумм», выигрывает «нечетный»; иначе выигрывает «четный»; если числа равны, результат считается ничейным. Второй игрок может быть сервером.
15 Сетевая карточная игра «Ведьма». Если играют от 2 до 6 игроков, то берут колоду из 32 карт (от туза до семерок), если более шести - 52 карты. Сервер раздает все карты по очереди справа налево. После этого каждый, начиная слева от сдатчика, вытаскивает одну карту у соседа справа. После этого все игроки сбрасывают с рук по две карты парами (два короля, две восьмерки и т.п.), масть значения не имеет. Сбрасывать нельзя лишь ведьму, ее представляет пиковая дама. В ходе обмена картами и их сброса эта роковая дама неоднократно может сменить свою жертву. В конце игры у проигравшего остаются на руках две дамы - ведьма и какая-либо другая дама из трех других. Подсказка: Динамическая библиотека Cards.dll содержит изображения игральных карт, которые используются во многих играх Windows. Вы можете использовать эту DLL в Ваших проектах приложений для отображения карт. Преимущество использования этой библиотеки DLL в Ваших приложениях – экономия места, так как эта библиотека уже находится в операционной системе Windows XP. Для Windows 7 нужно эту библиотеку DLL положить в папку с проектом или папку Windows.
5.16 Игра «Баллисты» с возможностью в свой ход переместить баллисту. В разных концах экрана расположены две баллисты, принадлежащие разным игрокам. Игроки ходят по очереди. Ход заключается в выборе массы камня для баллисты, начальной скорости камня и угла между вектором начальной скорости и горизонтом. По этим данным программа должна произвести расчет траектории полета камня и смоделировать полет на экране. Игра заканчивается, когда один из камней попадет в баллисту противника.
5.17 Сетевая игра «Крестики-нолики» с поддержкой пользовательских настроек размеров поля. Игра заканчивается, когда один из играющих выигрывает или если поле заканчивается. Выигрывает тот, кому удается выстроить пять своих знаков по одной линии, прямой или диагональной. Второй игрок может быть сервером.
5.18 Игра «2 лисы и 20 кур». В начале игрок выбирает за кого играть – за лис или кур. За противоположную сторону должен играть компьютер. На поле размещаются 2 лисы и 20 кур. Куры могут перемещаться на один шаг вверх, влево или вправо, но не назад и не по диагонали. Лисы также могут перемещаться только на один шаг, но также и вверх — как вниз, влево и вправо. Лиса может съесть курицу — как в игре в шашки: если в горизонтальном или вертикальном направлении за курицей на один шаг следует свободное поле, то лиса перепрыгивает через курицу и берет ее. Лисы всегда обязаны есть и, когда у них есть выбор, — они обязаны осуществлять наиболее длинное поедание. Если два приема пищи имеют одинаковую длину, осуществляется один из них — по выбору лисы. Партнеры играют по очереди, причем куры начинают. Они выигрывают партию, если девяти из них удается занять 9 полей, образующих верхний квадрат игры. Лисы выигрывают, если им удается съесть 12 кур, так как тогда оставшихся кур недостаточно, чтобы занять 9 верхних полей.
5.19 Сетевая игра «Балда». Игровое поле представляет из себя таблицу из N x N клеток. N – Величина, выбираемая пользователем. В центральный горизонтальный ряд ставится произвольное слово. Необходимо, чтобы количество пустых клеток в начале игры было чётным, чтобы у обоих игроков получилось одинаковое количество слов. Во время своего хода игрок должен подставить на игровое поле букву так, чтобы она располагалась в клетке, смежной уже заполненным клеткам по горизонтали или по вертикали. Иными словами, слева, справа, сверху или снизу относительно уже заполненных клеток. После этого необходимо составить слово с использованием установленной буквы. При этом действуют следующие правила: Слово должно составляться переходом по смежным клеткам, расположенным под прямыми углами относительно друг друга; Слово должно существовать в словарях; Слова в одной игре повторяться не могут (Запрещается написание слова в случае, если оно уже читается на поле, даже если оно не было составлено ни одним из играющих); Слово должно являться нарицательным именем существительным в начальной форме; В слове должна быть использована поставленная на поле буква; Чем длиннее слово, тем больше очков игрок получает (одна буква — одно очко). Игра заканчивается тогда, когда будут заполнены все клетки.
5.20 Сетевая игра «Футбол». Размер поля задается пользователем. Играют двое человек. Игра начинается в центральной точке поля. Ворота расположены на противоположных концах и имеют размеры, заданные пользователем. Ход — ломаная состоящая из трех отрезков каждый из которых — диагональ или сторона клетки. Пересекать линии и касаться их нельзя. Если игрок не может сделать очередной ход, то противник пробивает штрафной: прямую линию в шесть клеток (по вертикали, горизонтали или диагонали). Если после штрафного мяч остановился на уже проведенной линии, или игрок не может сделать ход, то пробивается еще один штрафной. Играют до первого гола. Второй игрок может быть сервером.
5.21 Сетевая игра «4 в ряд». Смысл этой игры состоит в том, чтобы поместить четыре фишки в прямой ряд вертикально, горизонтально или по диагонали. Игра играется на квадратной доске 8x8 и начинается с пустой доски. Оба игрока помещают свои фишки (за ход одна фишка) на доску. Правило в том, что фишки всегда "падают". Это означает, что фишка может быть помещена или на нижнем ряду или на другом ряду над другой фишкой в той же колонке. Игра заканчивается, если одно из следующих условий выполнено: Один игрок помещает четыре или больше фишек в прямой ряд вертикально, горизонтально или по диагонали (этот игрок выигрывает игру), или все клетки доски заняты и ни один игрок, не выполняет предыдущее условие победы (игра заканчивается ничьей). Второй игрок может быть сервером.
5.22 Сетевая игра «Война вирусов». Игра для двоих на поле NхN, «вирусы» обозначает крестиками (у каждого игрока свой цвет или фигура). За ход выставляется три «вируса». Начинают свое размножение вирусы из противоположных угловых клеток поля. Выставить «вирус» можно только рядом с другим своим «живым вирусом». Если рядом оказывается «вирус» противника то его можно съесть, закрасив клетку в свой цвет. Вторично эту клетку «пересъесть» противник уже не может. Такие образования называются «крепостями». Если «крепость» прикасается хоть к одному живому вирусу своего цвета, то от нее можно дальше в любом месте создавать новые «вирусы» или есть противника. Целью игры является полное уничтожение живых сил противника. Если обоим сторонам удается спрятать своих живых вирусов за крепостью из съеденных вирусов противника игра заканчивается ничьей. Второй игрок может быть сервером.
Задания с верхней границей оценки «4»
4.1 Создать класс «Конвейер сборки машины», в результате работы которого мы можем получить: мотоцикл, квадроцикл и легковую машину. Использовать паттерн «Строитель». Результат создания транспорта и все их характеристики (цвет, цена, тип двигателя, объем двигателя, год выпуска, марка, модель, размеры, требования к топливу, тип рулевого управления, расход топлива по городу, объем багажника) записываются в выходные файлы по типу транспорта «motorbike», «quadbike», «car». Также пользователь может загрузить ранее созданные мотоциклы, или машины, или квадроциклы из соответствующего файла.
4.2 Создать парк транспорта, который может включать в себя легковые машины, грузовые машины и трамваи. Пользователь может выбирать, какие машины необходимо добавить в парк (все виды транспорта имеют индивидуальныехарактеристики, например: цвет, цена, объем двигателя, номер маршрута, год производства, год запуска в эксплуатацию, тип топлива, число пассажиров, объем груза), и в каком количестве. Использовать паттерн «Абстрактная фабрика». Результат создания машин и их характеристики записываются в выходной файл, разделенный по типам транспорта. Пользователь может загрузить парк транспорта из файла.
4.3 Создать систему запросов «Сайт → Магазин → Склад». Товар, который интересует клиента, – компьютерные игры, которые имеют ряд характеристик: название, жанр, год выпуска, платформа (ПК, Xbox, PS), требования к платформе, разработчик, количество. Пользователь использует сайт для нахождения интересующего товара, затем запрос отправляется в магазин, затем на склад. Использовать паттерн «Цепочка обязанностей». Данные о товаре для сайта, магазина и склада берутся из внешних входных файлов «site», «shop» и «warehouse» соответственно.
4.4 Создать класс «Легковая машина». При создании легковой машины клиент может получить: ВАЗ, Kia, Nissan, Toyota. Машины обладают характеристиками: цвет, тип двигателя, объем двигателя, габариты, год выпуска, число дверей, модель, марка шин, объем багажника. ВАЗ отличается наличием возможности установки багажника на крышу. Kia отличается возможностью установки подогрева зеркал заднего вида. Nissan отличается установкой подогрева сидений. Toyota отличается установкой АКПП. Использовать паттерн «Строитель». Результат создания машины и их характеристики записываются в отдельные выходные файлы «vaz», «kia», «nissan», «toyota». Пользователь может загрузить все данные о ранее созданных машинах из файлов.
4.5 Создать класс «Олимпийские игры». Клиент выбирает за какую страну-участницу болеть. Участники из России, Канады, Франции, Финляндии и Японии участвуют во всех зимних видах олимпийского спорта: биатлон, скелетон, конькобежный спорт, фигурное катание. Из внешнего файла загружаются данные по каждому спортсмену: ФИО, страна, сила, ловкость, удача, выносливость. Во время соревнования по каждому виду спорта вычисляется какой спортсмен какое место занял. Во время игр клиент наблюдает за соревнованиями и по результатам узнает, какая страна какое место заняла; выводится сообщение выиграла ли текущее соревнование выбранная страна. По суммарным результатам всех соревнований сообщается - выиграл клиент или нет. Использовать паттерн «Наблюдатель» для реализации клиента. Результаты всех игр записываются в выходной файл.
4.6 Создать класс «Военная техника». В результате использования класса мы можем получить: боевой танк, бронетранспортер, боевой робот, гаубица, истребитель, рассматривается техника для двух стран – Россия и США. Различный набор характеристик (мощность, дальность, тип оружия, калибр, метод передвижения (воздух, земля, вода), год производства, количество, боевая масса, экипаж (число человек)) пользователь задает через входной файл (или набор входных файлов по типу создаваемой военной техники) или через консоль. Использовать паттерн «Абстрактная фабрика». Результат создания техники и все их характеристики записываются в выходной файл.
4.7 Создать систему запросов «Сайт → Магазины (3 штуки) → Склад». Товар, который интересует клиента – путеводители по разным городам и странам, которые имеют ряд характеристик: название, издательство, год, число страниц, наличие фотографий, наличие карты, переплет, формат, автор, количество. Пользователь использует сайт для нахождения интересующего товара, затем запрос отправляется в магазины, затем на склад. Использовать паттерн «Цепочка обязанностей». Данные о товаре для сайта, магазинов и склада берутся из внешних входных файлов «site», «shop1», «shop2», «shop3» и «warehouse» соответственно.
4.8 Создать класс «Большой теннис», участники соревнований характеризуются: страна, ФИО, год рождения, количество побед, а также случайным образом задаются скорость и удача каждому спортсмену в скачках на каждый забег. Первые четыре параметра и количество участников задаются из внешнего файла, также пользователь может добавить спортсмена через консоль. Клиент выбирает, за каким спортсменом наблюдать. Во время игры клиент наблюдает за соревнованиями и по результатам узнает, какой спортсмен какое место занял; выводится сообщение выиграл ли текущий матч выбранный спортсмен. По суммарным результатам пяти матчей сообщается - выиграл клиент или нет. Использовать паттерн «Наблюдатель» для реализации клиента. Результаты всех соревнований и характеристики спортсменов записываются в выходной файл. Если запускается новое соревнование, то должен быть создан другой выходной файл.
4.9 Создать класс «Конвейер сборки летательных аппаратов», в результате работы которого мы можем получить: пассажирский самолет, боевой самолет, вертолет, квадрокоптер. Использовать паттерн «Строитель». Результат создания летательных аппаратов и все их характеристики (военный или гражданский, тип военного аппарата, тип гражданского аппарата, взлетная масса, тип двигателей, число двигателей, количество крыльев, расположение крыльев, тип шасси, скорость полета, по типу взлета и посадки, способ управления, экипаж (число человек), год производства, тип вооружения) записываются в разные выходные файлы, разделенные по типу летательного аппарата. Пользователь может вводить данные из консоли и загружать из файлов.
4.10 Создать систему запросов «Салон → База данных дилера Hyundai → Производство Hyundai». Клиент посещает салон и запрашивает конкретную машину. Машины характеризуются следующими свойствами: модель, год выпуска, цвет, объем двигателя, АКПП или МКПП, мощность двигателя, топливный бак, расход топлива, габариты, подогрев руля, ABS, EDS, система навигации, бортовой компьютер, подогрев сидений, багажник на крышу, количество подушек безопасности. Пользователь использует салон для нахождения интересующего товара, затем запрос отправляется в базу данных дилера, затем на производство. Использовать паттерн «Цепочка обязанностей». Данные о товаре для салона, дилера и производства берутся из внешних входных файлов «salon», «dealer», «manufacture» соответственно.
4.11 Создать сборник марок, который может включать в себя марки реальных государств и виртуальных государств. Пользователь может выбирать, какие марки необходимо добавить в сборник (характеристики марок: к какому государству относятся, назначение, по характеру эмитента, форма, материал), и в каком количестве. Использовать паттерн «Абстрактная фабрика». Результат создания сборника марок и их характеристики записываются в выходной файл, разделенный по типам марок – реальное государство или нет. Пользователь может загрузить сборник марок из файла.
4.12 Создать класс «Ипподром», клиент ставит на выбор на одну из нескольких лошадей, которые характеризуются: порода, кличка, год рождения, количество побед, а также случайным образом задаются скорости каждой лошади в скачках на каждый забег. Первые три параметра и количество лошадей задаются из внешнего файла. Во время скачек клиент наблюдает за бегами и по результатам узнает, какая лошадь какое место заняла; выводится сообщение выиграла ли текущий забег выбранная лошадь. По суммарным результатам пяти забегов сообщается - выиграл клиент или нет. Использовать паттерн «Наблюдатель» для реализации клиента. Результаты всех скачек и характеристики лошадей записываются в выходной файл. Если после пяти забегов будет сделаны новые ставки, то должен быть создан другой выходной файл и так далее.
4.13 Создать систему запросов «Болезнь → Регистрация → Терапевт → Специализированный врач (5)». Специализированный врач – это хирург, окулист, аллерголог, дерматолог, кардиолог. Клиента интересует лечение болезни, с которой он обратился в поликлинику, болезнь имеет ряд симптомов: депигментация кожи, головокружение, красные глаза, слезоточивость, сухие глаза, вялость, головная боль, жар, кровотечение из носа, повышенная температура, боль в груди, кашель, одышка, хрипы в груди и пр. Пользователь использует регистратуру для нахождения терапевта, затем терапевт, на основе симптомов, если это не по его направлению, назначает посетить одного из специализированных врачей. Использовать паттерн «Цепочка обязанностей». Данные о болезнях, которые лечат врачи берутся из внешних входных файлов «therapist», «surgeon», «oculist», «allergist», «dermatologist» и «cardiologist» соответственно.
4.14 Создать порт кораблей, который может включать в себя гражданские и боевые корабли. Пользователь может выбирать, какие корабли необходимо добавить в порт (корабли имеют характеристики: тип, класс, является ли кораблем специального назначения (какой именно), габариты, район плавания, тип энергетической установки, водоизмещение, вместимость, экипаж, пассажиры, скорость), и в каком количестве из консоли или загружать из файла. Использовать паттерн «Абстрактная фабрика». Результат создания порта записывается в выходной файл, разделенный по типам кораблей.
4.15 Создать подписку на журналы. Журналы доступные для подписки: TopGear, National Geographic,People,BusinessWeek, PROСпорт,Forbes. Каждый журнал имеет одновременно несколько выпусков, каждый из которых характеризуется: наименование, тема выпуска, дата выпуска, номер журнала, краткое содержание (текст). Для каждого вида журнала создается входной файл, который содержит в себе всю информацию по всем выпускам. Файлы во врмя работы программы обновляются пользователем. Данные из файлов обновляются в программе каждые 30 секунд. Пользователь выбирает, на какие журналы желает подписаться. Как только появляется свежий выпуск – пользователь получает данные. Использовать паттерн «Наблюдатель» для реализации клиента. У пользователя формируется выходной файл, в котором хранятся все данные обо всех журналах, которые он получил.
4.16 Создать систему запросов «Касса → Поезд → Самолет». Пользователя интересует покупка билета, которая сопровождается требованиями: дата, стоимость, пункт назначения. Пользователь использует кассу для нахождения подходящего транспорта. Касса обращается сначала к билетам поездов, если доступных вариантов нет, то к билетам самолетов. Использовать паттерн «Цепочка обязанностей». Данные о доступных днях, маршрутах и стоимости для поезда и самолета берутся из внешних входных файлов «train», «plane» соответственно. Все купленные билеты сохраняются в выходном файле.
4.17 Реализовать два алгоритма обхода графа – в ширину (BFS) и глубину (DFS). Оба алгоритма должны иметь один интерфейс. Использовать паттерн «Стратегия». Граф необходимо представить отдельным классом, как и каждый из алгоритмов обхода. Граф может хранить любые данные, а не только числа.
Задания с верхней границей оценки «3»
3.1 Реализовать алгоритмы поиска кратчайшего маршрута в графе (Флойда-Уоршелла, Дейкстры). Граф задается матрицей смежности через входной файл. Не использовать STL библиотеку.
3.2 Реализовать проход графа в ширину и проход графа в глубину. Граф задается матрицей инцидентности через входной файл. Не использовать STL библиотеку.
3.3 Реализовать быструю сортировку, рандомную быструю сортировку, сортировку слиянием, сортировку выбором, сортировку подсчетом на массиве, который хранит тип данных, выбираемый пользователем. Провести сравнение времени, требуемого для проведения каждой сортировки для разных типов хранимых данных.
3.4 Напишите программу, реализующую игру «Угадай число» для четырехзначных чисел. Правила следующие: играют двое; один задумывает число, второй – угадывает. На каждом шаге угадывающий делает предположение, а задумавший число – говорит, сколько цифр числа угаданы и сколько из угаданных цифр занимают правильные позиции в числе. Например, если загадано число 1725 и выдвинуто предположение, что задумано число 1523, то угаданы две цифры (5 и 2) и одна из них (2) занимает верную позицию. Загаданные числа хранятся в отдельном файле. Программа должна позволять формировать новый входной текстовый файл на основании введенных пользователем данных. Во второй отдельный файл необходимо писать всю хронику всех игр. Пример вывода на экран и в выходной файл: ПК загадал четырехзначное число. Ваш вариант -> 1238 Угадано: 0. На своих местах: 0. Ваш вариант -> 5498 Угадано: 2. На своих местах: 1. … ****Вы Угадали!**** Нажмите 1 для повторной игры, и 2 для выхода из программы.
3.5 Напишите программу, которая преобразовывает текст из входного текстового файла в азбуку Морзе и наоборот. Полученный текст сохраняется в отдельный файл.
3.6 Написать функцию, которая решает квадратные уравнения. Уравнения хранятся в текстовом файле. Необходимо к каждому уравнению в текстовом файле дописать решение. Программа должна позволять формировать новый входной текстовый файл на основании введенных пользователем данных.
3.7 Разработать программу для обработки матриц. Программа должна выполнять следующие действия: суммы, вычитания, умножения двух матриц. Матрицы должны храниться в двух разных файлах. То есть, при запуске программы, необходимо считать из файлов две матрицы и уже после этого производить вычисления. Результат вывести на экран и в отдельный файл.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: