Курсовой проект по ВП.
Вариант №1. Задание на разработку
программы подсчёта вхождений лексем в тексте.
Общее
1 Программа предназначена для анализа частоты вхождений лексемы в текстах.
2 Программа отображает графически зависимость частоты вхождения лексемы от её позиции в перечне лексем, отсортированном по убыванию.
3 Программа сохраняет информацию о лексемах в базе данных.
Функции программы
1 Программа должна позволять создавать внутреннюю базу данных на основе анализа текстовых файлах в кодировках ANSI и OEM (использованных в MS-DOS и Windows). База данных должна сохраняться на диске между сеансами работы программы, т.е. она является кумулятивной.
2 Программа читает исходный файл, разделяет его на лексемы и определяет число вхождений каждой лексемы в файле. Затем эта информация суммируется с информацией, хранящейся в базе данных по предыдущим прочитанным файлам.
3 Программа предоставляет статистические отчёты (графики) проведённого анализа.
4 Под лексемами понимается слова английского или русского языка (с учётом регистра).
Интерфейс программы
1 Программа должна быть выполнена с использованием компилятора Visual C++ NET. По желанию разработчика может быть использована (рекомендуется) библиотека MFC.
2 Программа должна представлять собой приложение Windows c графическим интерфейсом пользователя, удовлетворяющим основным стандартам на пользовательский интерфейс.
3 Пользователь может указать, какие файлы необходимо добавить к базе данных, выбрав в соответствующем диалоговом окне один или несколько файлов. Программа должна проанализировать указанный файл(ы) и обновить информацию в базе данных.
4 По требованию пользователя программа выводит график зависимости частоты вхождений от порядкового номера в упорядоченном по убыванию частоты встреч списке лексем. То есть по оси Х откладывается лексема (без явного указания), а по оси Y её частота вхождений во всех текстах, прочитанных к данному моменту. Таким образом полученный график всегда будет невозрастающей функцией.
5 По требованию пользователя выводится сетка (поверхность), где оси X и Y полностью соответствуют описанию п. 3.4, а по оси Z делается срез частот при чтении очередного файла. Пользователь может указать, на сколько файлов в глубину строить поверхность.
6 По требованию пользователя программа выводит график зависимости количества лексем и количества уникальных лексем от числа прочитанных файлов.
7 На всех графиках при наведении мыши в участок графика показывается (в виде всплывающей подсказки) более полная информация о значении в данной точке.
4. Защита и сдача курсовой работы
Для защиты и сдачи курсовой работы необходимо оформить отчёт по курсовой работе, предоставить исходный текст программы и выполняемый модуль. Программы должны комплектоваться набором тестов или тестовых исходных данных, которые показывают правильность её функционирования при различных исходных данных. Если программа, установленная с помощью инсталляционного комплекта, не работает в отсутствии специфичных библиотек или среды разработки - это является ошибкой автора программы и соответствующим образом оценивается. Весь исходный код программы должен сопровождаться значимыми комментариями. Это означает, что любая последовательность строк, смысл которой неочевиден для читающего, должна быть прокомментирована.
5. Отчетность и требования к оформлению
Отчет должен быть представлен в виде файла формата MS Word и в виде распечатки на листах формата А4 с использованием шрифта Times New Roman Cyr 14.
Список литературных источников должен включать 10-20 наименований не более чем 5-7 летней давности.
До защиты курсового проекта необходимо сделать доклад на 5-10 минут, содержащий тему работы, исходные данные, рассмотренные методы решения, достигнутые в ходе работы результаты.
Курсовой проект по ЛОИ
Вариант №2. Задание на разработку обучающей программы
«Поиск подстроки в строке. Алгоритм Кнута, Морриса и Пратта»
Общее
1 Программа предназначена для наглядной демонстрации работы алгоритма поиска подстроки в строке с использованием алгоритма Кнута, Морриса и Пратта.
2 Основное назначение программы – визуализировать и пояснить принцип работы алгоритма.
Функции программы
1 Программа даёт возможность пользователю ввести строку текста и подстроку, которую требуется в ней найти.
2 При запуске программа автоматически предлагает один из пяти встроенных вариантов текстовой строки и строки поиска, пользователь может ввести свои значения для этих строк по желанию.
3 Программа показывает, как работает алгоритм Кнута, Морриса и Пратта. При этом на экране показывается каждая поисковая итерация.
4 Показывается расчёт величины сдвига (величина «D» по книге Н.Вирта) и её использование в алгоритме.
Интерфейс программы
1 Программа должна быть выполнена с использованием компилятора Visual C++ NET. По желанию разработчика может быть использована (рекомендуется) библиотека MFC.
2 Программа должна представлять собой приложение Windows c графическим интерфейсом пользователя, удовлетворяющим основным стандартам на пользовательский интерфейс.
3 Программа предоставляет пошаговый режим выполнения (пользователь нажимает клавишу для выполнения следующей итерации поиска) и автоматический режим, в котором выполнение происходит автоматически с указанной пользователем задержкой между итерациями.
4 На экране показывается:
- содержимое текстовой строки и искомой подстроки
- курсоры, показывающие сравниваемые символы,
· схема вычисления величины сдвига
5 Разработка внешнего вида интерфейса является задачей исполнителя.
4. Защита и сдача курсовой работы
Для защиты и сдачи курсовой работы необходимо оформить отчёт по курсовой работе, предоставить исходный текст программы и выполняемый модуль. Программы должны комплектоваться набором тестов или тестовых исходных данных, которые показывают правильность её функционирования при различных исходных данных. Если программа установленная с помощью инсталляционного комплекта не работает в отсутствии специфичных библиотек или среды разработки - это является ошибкой автора программы и соответствующим образом оценивается. Весь исходный код программы должен сопровождаться значимыми комментариями. Это означает, что любая последовательность строк, смысл которой неочевиден для читающего, должна быть прокоментирована.
5. Отчетность и требования к оформлению
Отчет должен быть представлен в виде файла формата MS Word и в виде распечатки на листах формата А4 с использованием шрифта Times New Roman Cyr 14.
Список литературных источников должен включать 10-20 наименований не более чем 5-7 летней давности.
До защиты курсового проекта необходимо сделать доклад на 5-10 минут, содержащий тему работы, исходные данные, рассмотренные методы решения, достигнутые в ходе работы результаты.
Курсовой проект по ЛОИ
Вариант №3. Задание на разработку обучающей программы
«Поиск подстроки в строке. Алгоритм Бойера - Мура»
Общее
1 Программа предназначена для наглядной демонстрации работы алгоритма поиска подстроки в строке с использованием алгоритма Бойера-Мура.
2 Основное назначение программы – визуализировать и пояснить принцип работы алгоритма.
Функции программы
1 Программа даёт возможность пользователю ввести строку текста и подстроку, которую требуется в ней найти.
2 При запуске программа автоматически предлагает один из пяти встроенных вариантов текстовой строки и строки поиска, пользователь может ввести свои значения для этих строк по желанию.
3 Программа показывает, как работает алгоритм Бойера-Мура. При этом на экране показывается каждая поисковая итерация.
Интерфейс программы
1 Программа должна быть выполнена с использованием компилятора Visual C++ NET. По желанию разработчика может быть использована (рекомендуется) библиотека MFC.
2 Программа должна представлять собой приложение Windows c графическим интерфейсом пользователя, удовлетворяющим основным стандартам на пользовательский интерфейс.
3 Программа предоставляет пошаговый режим выполнения (пользователь нажимает клавишу для выполнения следующей итерации поиска) и автоматический режим, в котором выполнение происходит автоматически с указанной пользователем задержкой между итерациями.
4 На экране показывается:
- содержимое текстовой строки и искомой подстроки
- курсоры, показывающие сравниваемые символы,
· схема вычисления величины сдвига
5 Разработка внешнего вида интерфейса является задачей исполнителя.
4. Защита и сдача курсовой работы
Для защиты и сдачи курсовой работы необходимо оформить отчёт по курсовой работе, предоставить исходный текст программы и выполняемый модуль. Программы должны комплектоваться набором тестов или тестовых исходных данных, которые показывают правильность её функционирования при различных исходных данных. Если программа установленная с помощью инсталляционного комплекта не работает в отсутствии специфичных библиотек или среды разработки - это является ошибкой автора программы и соответствующим образом оценивается. Весь исходный код программы должен сопровождаться значимыми комментариями. Это означает, что любая последовательность строк, смысл которой неочевиден для читающего, должна быть прокоментирована.
5. Отчетность и требования к оформлению
Отчет должен быть представлен в виде файла формата MS Word и в виде распечатки на листах формата А4 с использованием шрифта Times New Roman Cyr 14.
Список литературных источников должен включать 10-20 наименований не более чем 5-7 летней давности.
До защиты курсового проекта необходимо сделать доклад на 5-10 минут, содержащий тему работы, исходные данные, рассмотренные методы решения, достигнутые в ходе работы результаты.
Курсовой проект по ЛОИ
Вариант №4 Задание на разработку
программы генерации текста
Общее
1 Программа генерации текста предназначена для генерации произвольных текстов на основе анализа заданного набора текстов. Программа выявляет закономерности, присущие проанализированным текстам, и строит тексты, используя выявленные закономерности.
2 Выявление закономерностей и генерация текстов основываются на построении цепей Маркова.
3 Программа должна генерировать тексты по символам и по словам.
Интерфейс программы
1 Программа должна быть выполнена с использованием компилятора Visual C++ NET. По желанию разработчика может быть использована (рекомендуется) библиотека MFC.
2 Программа должна представлять собой приложение Windows c графическим интерфейсом пользователя, удовлетворяющим основным стандартам на пользовательский интерфейс.
3 Программа должна позволять создавать внутреннюю базу данных на основе анализа текстовых файлах в кодировках ANSI и OEM (использованных в MS-DOS и Windows). База данных должна сохраняться на диске между сеансами работы программы, т.е. она является кумулятивной.
4 Пользователь может указать, какие файлы необходимо добавить к базе данных, выбрав в соответствующем диалоговом окне один или несколько файлов. Программа должна проанализировать указанный файл(ы) и обновить информацию в базе данных.
5 Пользователь может указать (в меню приложения) глубину анализа цепочек при помещении их в базу данных.
6 Пользователь инициирует генерацию текста выбором соответствующего пункта меню. В результате появляется диалоговое окно настройки параметров,
Пользователь может указать:
- Тип генерируемого текста (по символам или по словам)
- Выбрать глубину анализа при построении текста
3. Указать размер требуемого текста (в символах или словах)
7 Пользователь может сохранить сгенерированный текст в виде текстового файла.
Цепи Маркова
1 Данный раздел показывает основную идеи, которая используется для генерации текстов на основе цепей Маркова и является неформальным описанием. За более детальной информацией рекомендую обратиться к специальной литературе.
2 Простейшим вариантом анализа текста является составление частотной таблицы – количества вхождений того или иного символа в тексте. На основании этой таблицы можно сгенерировать текст с той же частотой появления символов, что и оригинальный, если генерировать символы текста случайным образом с учётом весового коэффициента (числа вхождений) для каждой буквы.
3 Анализ на основе цепей Маркова подразумевает составление частотной таблицы появления не одной буквы, а цепочки букв. В зависимости от глубины анализа строится таблица частоты появления заданных цепочек. В результате построенная таблица отражает, с какой вероятностью данная буква (конечная в цепочке) появится после заданной последовательности букв. Таким образом создаётся контекст – вероятность появления буквы в генерируемом тексте зависит не только от того, насколько часто эта буква встречается в тексте, но и от того, насколько часто эта буква встречается (и встречается ли) после текста, который был до неё.
4 В случае генерации текста по словам, используется то же правило, что и для букв, но в качестве лексемы, то есть неделимой части при анализе используется слово, а не буква.
4. Защита и сдача курсовой работы
Для защиты и сдачи курсовой работы необходимо оформить отчёт по курсовой работе, предоставить исходный текст программы и выполняемый модуль. Программы должны комплектоваться набором тестов или тестовых исходных данных, которые показывают правильность её функционирования при различных исходных данных. Если программа установленная с помощью инсталляционного комплекта не работает в отсутствии специфичных библиотек или среды разработки - это является ошибкой автора программы и соответствующим образом оценивается. Весь исходный код программы должен сопровождаться значимыми комментариями. Это означает, что любая последовательность строк, смысл которой неочевиден для читающего, должна быть прокоментирована.
5. Отчетность и требования к оформлению
Отчет должен быть представлен в виде файла формата MS Word и в виде распечатки на листах формата А4 с использованием шрифта Times New Roman Cyr 14.
Список литературных источников должен включать 10-20 наименований не более чем 5-7 летней давности.
До защиты курсового проекта необходимо сделать доклад на 5-10 минут, содержащий тему работы, исходные данные, рассмотренные методы решения, достигнутые в ходе работы результаты.
Курсовой проект по ЛОИ
Вариант №5. Задание на разработку
программы определения принадлежности
текста определённой тематике
Общее
1 Программа предназначена для определения принадлежности текста определённой тематике на основе анализа частоты вхождений лексем в текстах.
2 Для каждого предложенного текста программа определяет частоту вхождения лексем в тексте.
3 Программа сохраняет информацию о лексемах в базе данных.
4 Программа сверяет полученную частоту вхождения лексем для данного текста с частотой вхождения лексем для определённых тематик в базе данных и делает предположение о принадлежности текста на основании корреляции частот в тексте и базе.
Функции программы
1 Программа должна позволять создавать внутреннюю базу данных на основе анализа текстовых файлах в кодировках ANSI и OEM (использованных в MS-DOS и Windows). База данных должна сохраняться на диске между сеансами работы программы, т.е. она является кумулятивной.
2 Программа читает исходный файл, разделяет его на лексемы и определяет число вхождений каждой лексемы в файле.
3 Программа делает предположение о принадлежности заданного текста определённой тематике, сравнивая частоты вхождения лексем с текстами, имеющимися в базе данных (на основе корреляции частот).
4 После подтверждения пользователя текст заносится в соответствующий раздел базы данных.
5 Под лексемами понимаются слова английского или русского языка (с учётом регистра).
Интерфейс программы
1 Программа должна быть выполнена с использованием компилятора Visual C++ NET. По желанию разработчика может быть использована (рекомендуется) библиотека MFC.
2 Программа должна представлять собой приложение Windows c графическим интерфейсом пользователя, удовлетворяющим основным стандартам на пользовательский интерфейс.
3 Пользователь может указать, какой файл необходимо добавить к базе данных, выбрав его в соответствующем диалоговом окне.
4 После анализа файла программа делает предположение о принадлежности определённой тематике и выводит эту информацию пользователю. Пользователю выводится список (в виде таблицы), отсортированный по убыванию вероятности принадлежности определённой тематике. В таблице выводятся два поля – название тематики и вероятность принадлежности текста данной тематике.
5 После того, как пользователь выбирает тематику, информация о частоте вхождения лексем добавляется в соответствующий раздел базы данных.
6 Программа предоставляет автоматический режим, в котором текст может быть автоматически причислен к определённой тематике (по наибольшей вероятности). В этом случае информация в базе данных дополняется автоматически и формируется протокол программы, в котором пишется какой файл и на основании какой вероятности был занесён в определённый раздел базы данных.
4. Защита и сдача курсовой работы
Для защиты и сдачи курсовой работы необходимо оформить отчёт по курсовой работе, предоставить исходный текст программы и выполняемый модуль. Программы должны комплектоваться набором тестов или тестовых исходных данных, которые показывают правильность её функционирования при различных исходных данных. Если программа установленная с помощью инсталляционного комплекта не работает в отсутствии специфичных библиотек или среды разработки - это является ошибкой автора программы и соответствующим образом оценивается. Весь исходный код программы должен сопровождаться значимыми комментариями. Это означает, что любая последовательность строк, смысл которой неочевиден для читающего, должна быть прокоментирована.
5. Отчетность и требования к оформлению
Отчет должен быть представлен в виде файла формата MS Word и в виде распечатки на листах формата А4 с использованием шрифта Times New Roman Cyr 14.
Список литературных источников должен включать 10-20 наименований не более чем 5-7 летней давности.
До защиты курсового проекта необходимо сделать доклад на 5-10 минут, содержащий тему работы, исходные данные, рассмотренные методы решения, достигнутые в ходе работы результаты.
Курсовой проект по ЛОИ.
Вариант №6. Задание на разработку
редактора свойств.
Общее
Назначение
1 Унифицированный формат файла свойств объекта используется для сохранения и загрузки свойств объектов, используемых в программном комплексе САПР.
При этом подразумевается, что сохранение должно производиться в формате, который может быть прочитан сторонним редактором (т.е. он не должен зависеть от конкретной программы).
2 Редактор свойств должен использоваться для редактирования свойств объекта посредством предоставляемого им пользовательского интерфейса.
Состав редактора
1 Редактор должен представлять собой динамически компонуемую библиотеку (dll), которая выполняет всю работу по представлению пользовательского интерфейса редактора свойств и редактирования данных.
2 Для использования в конечной программе пользователя должен быть предоставлен класс-обертка, позволяющий передавать данные в редактор свойств и получать информации об обновлении данных пользователем.
3 Редактор должен быть выполнен с использованием компилятора Visual C++ NET. По желанию разработчика может быть использована (рекомендуется) библиотека MFC. При желании разработчика использовать другой компилятор выбор должен быть мотивирован и согласован с заказчиком.
Структура описания данных
1 Данные должны быть представлены в формате XML.
Например, должно быть адекватное отображение для следующей структуры:
struct Vertex { float x,y,z; };
struct Triangle { Vertex v1,v2,v3; }
В этом случае структура данных может выглядеть следующим образом:
или
<STRUCT=Triangle>
<STRUCT=VERTEX NAME=v1>
<FIELD=x><10.0> <FIELD=y><10.0> <FIELD=z><10.0>
</STRUCT>
<STRUCT=VERTEX NAME=v2>
<FIELD=x><10.0> <FIELD=y><10.0> <FIELD=z><10.0>
</STRUCT>
<STRUCT=VERTEX NAME=v3>
<FIELD=x><10.0> <FIELD=y><10.0> <FIELD=z><10.0>
</STRUCT>
</STRUCT>
2 Структура должна быть достаточной для хранения базовых типов С++ и открытой для расширения. Пользователь должен иметь возможность описывать составные типы.
Интерфейс редактора
1 Редактор должен представлять собой таблицу, в которой указывается имя поля и его значение.
2 Для вложенных групп значений должна быть возможность «свернуть» записи таблицы. В этом случае вместо раскрытой группы остается ее имя и ставится знак “+”, символизирующий свернутую группу.
3 Внешний вид редактора при открытых группах должен быть таким, как в соответствующих редакторах свойств VC++ NET и Borland C++ Builder.
В данном случае символ “-“ перед именем группы означает, что информация, показанная в группе, может быть свернута.
4 Редактор должен иметь возможность информировать прикладную программу, использующую его об изменении значений параметров объекта.
5 Редактирование каждого типа данных в редакторе должно выполняться соответствующим этому типу видом обработки. Например, для числовых значений должно предлагаться редактирование числа, для имени файла – опциональная клавиша вызова диалога открытия файла.
6 Необходимо предоставить программисту, использующему редактор свойств, возможность задания собственных обработчиков для пользовательских типов – например, если задается цвет, то пользователь должен иметь возможность вызвать диалог выбора цвета.
7 Предоставить возможность открытия одновременно нескольких окон редактирования свойств различных объектов.
8 Предоставить режим, в котором пользователь сможет самостоятельно расширять структуру данных объекта заранее заданными библиотечными типами.
Например, для типа
struct Shape { int x, y; }
представленного как
<STRUCT=Shape >
<FIELD=x><10.0> <FIELD=y><10.0>
</STRUCT>
Пользователь в ходе редактирования свойств (непосредственно в редакторе) может добавить поле
struct Color { unsigned char r,g,b; }
В результате чего получится структура
<STRUCT=Shape >
<FIELD=x><10.0> <FIELD=y><10.0>
<STRUCT=Color >
<FIELD=r><0> <FIELD=g><0> <FIELD=b><0>
</STRUCT >
</STRUCT>
Рекомендации
1 Варианты интерфейсов свойств объектов можно посмотреть в Borland C++ Builder, Discreet 3D Max, Macromedia Flash, Macromedia Freehand и т.д.
2 Способы сохранения данных можно посмотреть в описании платформы NET.
5. Защита и сдача курсовой работы
Для защиты и сдачи курсовой работы необходимо оформить отчёт по курсовой работе, предоставить исходный текст программы и выполняемый модуль. Программы должны комплектоваться набором тестов или тестовых исходных данных, которые показывают правильность её функционирования при различных исходных данных. Если программа установленная с помощью инсталляционного комплекта не работает в отсутствии специфичных библиотек или среды разработки - это является ошибкой автора программы и соответствующим образом оценивается. Весь исходный код программы должен сопровождаться значимыми комментариями. Это означает, что любая последовательность строк, смысл которой неочевиден для читающего, должна быть прокоментирована.
6. Отчетность и требования к оформлению
Отчет должен быть представлен в виде файла формата MS Word и в виде распечатки на листах формата А4 с использованием шрифта Times New Roman Cyr 14.
Список литературных источников должен включать 10-20 наименований не более чем 5-7 летней давности.
До защиты курсового проекта необходимо сделать доклад на 5-10 минут, содержащий тему работы, исходные данные, рассмотренные методы решения, достигнутые в ходе работы результаты.
Курсовой проект по ЛОИ.
Вариант №7. Задание на разработку интерпретатора.
1. Общее
Назначение
1 Изучить методы построения грамматик языков программирования.
2 Получить практические навыки разработки интерпретаторов.
3 Получить практические навыки разделения программы на модули и построения межмодульных интерфейсов.
Задание
1 Разработать язык программирования, достаточный для выполнения простейших программ. Язык программирования должен позволять:
- линейное выполнение программы
- условные и безусловные переходы
- циклическое выполнение
- вычисление выражений
· базовый ввод-вывод
2 Описать грамматику разработанного языка.
3 Реализовать интерпретатор разработанного языка программирования.
4 Синтаксис разработанного языка может быть любым. Формат студент должен выбирать исходя из соображений удобства использования и реализации.
5 Дальнейший текст задания использует в качестве прототипа язык BASIC, и на примере синтаксиса этого языка программирования даются задания по реализации конкретных операторов.
Требования к программе
Интерпретатор должен быть выполнен с использованием компилятора Visual C++ NET. При желании разработчика использовать другой компилятор выбор должен быть мотивирован и согласован с заказчиком.
Операторы
1 Требуется реализовать следующие базовые операторы (выбор их названия и формата предоставляется разработчику).
2 Обеспечить оператор вычисления математических выражений.
3 Обеспечить оператор IF, позволяющий определять истинность условий.
4 Обеспечить оператор GOTO, позволяющий выполнять безусловный переход в определённую точку программы.
5 Обеспечить оператор FOR, позволяющий реализовать циклическое выполнение операторов программы.
6 Обеспечить операторы GOSUB/RETURN, позволяющие выполнить подпрограмму с возвратом в точку вызова.
7 Реализовать часть ELSE оператора IF, если разработанная модель языка позволяет это сделать.
8 Реализовать часть STEP оператора FOR, если разработанная модель языка позволяет это сделать.
9 Реализовать операторы DATA / READ, позволяющие читать данные из заранее заданного набора.
10 Реализовать строковый тип переменных и набор функций для работы с ними.
Ввод-вывод
1 Предоставить возможность вывода информации, полученной в ходе работы программы и текстовых приглашений для ввода информации.
2 Предоставить возможность ввода информации (цифровых значений), необходимых для работы пользовательской программы.
3 Реализовать поддержку работы с файлами (открытие, чтение, запись, закрытие).
4 Реализовать работу с массивами.
Содержание работы
Работа по содержанию состоит из следующих частей:
- выбор схемы организации данных в программе
- выбор алгоритма синтаксического анализа
- разработка ядра интерпретатора (конечного автомата)
- разработка интерфейса пользователя
- разработка тестовых программ
· документирование
Интерфейс пользователя
Выбор внешнего вида интерфейса пользователя остаётся за студентом.
Это может быть консольное приложение или приложение, использующее графический интерфейс пользователя (GUI).
Программа при запуске должна выводить подробную информацию о назначении программы, авторе, решаемой задаче и предоставляемых результатах.
Тестовый набор данных
1 Необходимо подготовить тестовый набор программ (не менее 5), для которых заранее известен результат. Они должны использовать все команды языка.
2 При выполнении работы на оценку «отлично» правильность выполнения тестовых программ должна проверяется при запуске программы автоматически. В этом случае по окончании теста программа должна выводить результат прохождения теста (успех или неудачу).