Структура описания данных

Курсовой проект по ВП.

Вариант №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 Пользователь инициирует генерацию текста выбором соответствующего пункта меню. В результате появляется диалоговое окно настройки параметров,

Пользователь может указать:

  1. Тип генерируемого текста (по символам или по словам)
  2. Выбрать глубину анализа при построении текста

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; }

В этом случае структура данных может выглядеть следующим образом:

или

2 Структура должна быть достаточной для хранения базовых типов С++ и открытой для расширения. Пользователь должен иметь возможность описывать составные типы.

Интерфейс редактора

1 Редактор должен представлять собой таблицу, в которой указывается имя поля и его значение.

2 Для вложенных групп значений должна быть возможность «свернуть» записи таблицы. В этом случае вместо раскрытой группы остается ее имя и ставится знак “+”, символизирующий свернутую группу.

3 Внешний вид редактора при открытых группах должен быть таким, как в соответствующих редакторах свойств VC++ NET и Borland C++ Builder.

Структура описания данных

В данном случае символ “-“ перед именем группы означает, что информация, показанная в группе, может быть свернута.

4 Редактор должен иметь возможность информировать прикладную программу, использующую его об изменении значений параметров объекта.

5 Редактирование каждого типа данных в редакторе должно выполняться соответствующим этому типу видом обработки. Например, для числовых значений должно предлагаться редактирование числа, для имени файла – опциональная клавиша вызова диалога открытия файла.

6 Необходимо предоставить программисту, использующему редактор свойств, возможность задания собственных обработчиков для пользовательских типов – например, если задается цвет, то пользователь должен иметь возможность вызвать диалог выбора цвета.

7 Предоставить возможность открытия одновременно нескольких окон редактирования свойств различных объектов.

8 Предоставить режим, в котором пользователь сможет самостоятельно расширять структуру данных объекта заранее заданными библиотечными типами.

Например, для типа

struct Shape { int x, y; }

представленного как

Пользователь в ходе редактирования свойств (непосредственно в редакторе) может добавить поле

struct Color { unsigned char r,g,b; }

В результате чего получится структура

Рекомендации

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 При выполнении работы на оценку «отлично» правильность выполнения тестовых программ должна проверяется при запуске программы автоматически. В этом случае по окончании теста программа должна выводить результат прохождения теста (успех или неудачу).

36 Функциональная организационная структура


Похожие статьи.

Понравилась статья? Поделиться с друзьями: