- Разработка программного приложения для решения информационно-логических задач
- Проектирование программы, реализующей синтаксический анализ простой программы на языке С: этапы создания, алгоритм ее функционирования, структура, технология обработки информации. Описание программных модулей, интерфейс; выбор инструментальных средств.
- Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
- Введение
- Настоящий курсовой проект распространяется на разработку системы решения информационно-логических задач, предназначенной для решения указанных задач и хранения результатов.
- Широкий круг задач проектирования различного рода технических объектов, в том числе и компьютеров, относятся к классу информационно-логических задач. В настоящее время для решения таких задач используются приближенные методы и алгоритмы, которые требуют различных вычислительных ресурсов и обеспечивают разную точность решения.
- Создание системы позволит как оценить и исследовать отдельные методы и алгоритмы, так и сравнить их с точки зрения затрат вычислительных ресурсов и точности получаемых результатов.
- 1. Разработка технического задания на проектирование
- 1.1 Общая постановка задачи
- 1.2 Определение требований к программе
- 1.3 Предварительный выбор метода решения задачи
- 1.4.1 Требования к системе в целом
- Система должна обеспечивать корректное выполнение всех предусмотренных техническим заданием функций.
- Для актуализации информационного обеспечения системы необходим специалист, обладающий навыками работы с персональным компьютером.
- Для надежного функционирования системы необходима бесперебойная работа компьютеров в соответствии с правилами их эксплуатации. Правила эксплуатации системы соответствуют общим требованиям техники электробезопасности.
- Система не должна предъявлять специальных требований к эксплуатации и обслуживанию.
- К системе не предъявляются особые требования по сохранности информации при возникновении аварийных ситуаций.
- При разработке системы не должны приниматься проектные решения, которые могут в дальнейшем рассматриваться как объекты интеллектуальной собственности.
- Требования к техническому обеспечению определяются требованиями к программному обеспечению.
- 1.4.3 Требования к программному обеспечению
- 2. Проектирование программного приложения
- 2.1 Разработка технологии обработки информации
- 2.2 Разработка структуры и формы представления данных
- 2.3 Разработка алгоритма решения задачи
Разработка программного приложения для решения информационно-логических задач
Проектирование программы, реализующей синтаксический анализ простой программы на языке С: этапы создания, алгоритм ее функционирования, структура, технология обработки информации. Описание программных модулей, интерфейс; выбор инструментальных средств.
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Государственное образовательное учреждение высшего профессионального образования
Северо-Кавказский государственный технический университет»
Кафедра Информационных систем, электропривода и автоматики
Специальность 230201.65 — Информационные системы и технологии
к курсовому проекту по технологии программирования
Разработка программного приложения для решения информационно-логических задач
Автор проекта Бардиловский Р.С.
Руководитель проекта Д.В. Болдырев
Введение
Настоящий курсовой проект распространяется на разработку системы решения информационно-логических задач, предназначенной для решения указанных задач и хранения результатов.
Широкий круг задач проектирования различного рода технических объектов, в том числе и компьютеров, относятся к классу информационно-логических задач. В настоящее время для решения таких задач используются приближенные методы и алгоритмы, которые требуют различных вычислительных ресурсов и обеспечивают разную точность решения.
Создание системы позволит как оценить и исследовать отдельные методы и алгоритмы, так и сравнить их с точки зрения затрат вычислительных ресурсов и точности получаемых результатов.
1. Разработка технического задания на проектирование
1.1 Общая постановка задачи
Необходимо разработать программное приложение, выполняющее следующие функции:
синтаксический анализ простой программы на языке С;
форматирование текста программы на языке С.
Простая программа содержит переменные типа float, операторы if, while, do, логические и арифметические операции. Необходимо в каждой паре следующих друг за другом операторов А и В, с одинаковыми левыми частями, удалить оператор А, если его правая часть на совпадает с правой частью В.
1.2 Определение требований к программе
Программа должна обеспечивать возможность анализа простой программы и форматирования ее текста.
Результатом выполнения программы является вывод информации об ошибках, найденных при анализе программы и отформатированный текст программы.
Необходимо предусмотреть блокировку некорректных действий пользователей при работе с системой.
Требования к информационной и программной совместимости
Система должна работать под управлением операционной среды Windows’95 и выше
1.3 Предварительный выбор метода решения задачи
Для решения задачи синтаксического анализа был выбран метод Бэкуса-Наура
1.4.1 Требования к системе в целом
Система должна обеспечивать корректное выполнение всех предусмотренных техническим заданием функций.
Для актуализации информационного обеспечения системы необходим специалист, обладающий навыками работы с персональным компьютером.
Для надежного функционирования системы необходима бесперебойная работа компьютеров в соответствии с правилами их эксплуатации. Правила эксплуатации системы соответствуют общим требованиям техники электробезопасности.
Система не должна предъявлять специальных требований к эксплуатации и обслуживанию.
К системе не предъявляются особые требования по сохранности информации при возникновении аварийных ситуаций.
При разработке системы не должны приниматься проектные решения, которые могут в дальнейшем рассматриваться как объекты интеллектуальной собственности.
Требования к техническому обеспечению определяются требованиями к программному обеспечению.
1.4.3 Требования к программному обеспечению
Целью разработки программного обеспечения являются: сокращение времени обработки данных, минимизация затрат на разработку и дальнейшее сопровождение продуктов.
Для решения задачи будет использоваться Microsoft Visual Studio 2008. Для ее функционирования необходима операционная система не ниже Microsoft Windows XP.
При создании информационной системы главным критерием выбора программных средств разработки должны являться:
— скорость выполнения программы менее 1 секунды;
— возможность быстрого внесения изменений в программу;
— время создания разработанного программного обеспечения должно укладываться в график работы над проектом;
— наличие опыта разработки с использованием данного программного продукта;
2. Проектирование программного приложения
2.1 Разработка технологии обработки информации
Технология обработки информации определяет содержание этапов выполнения информационных операций. Она предусматривает следующие процедуры:
– получение первичной информации;
– обработка первичной информации с целью получения результатной информации;
Предполагается получение информации, содержащей требования к простой программе, на бумажных носителях. Возможно предоставление необходимых данных в устной форме. Первичная информация считывается из ранее сформированного файла данных.
Результатная информация выводится на экран в виде сообщений об ошибках. Распечатка результатов, согласно заданию, не требуется.
Структурная схема технологического процесса обработки информации показана на рисунке 1.
Размещено на http://www.allbest.ru/
Рисунок 1 — Технологический процесс обработки информации
2.2 Разработка структуры и формы представления данных
Основной единицей входной информации является простая программа, состоящая из следующих атрибутов:
Все приведенные атрибуты по смыслу должны быть строковыми переменными.
Для представления входных данных предлагается использовать список. Его описание приведено ниже.
static public List arrText = new List();
Для представления входной информации используется глобальная переменная arrText. Ее характеристики приведены в таблице 1.
Входные информационные объекты
Список, содержащий простую программу
Внутренние информационные объекты предполагается представлять с помощью переменных стандартных типов языка C#. Внутренние локальные переменные используются для хранения результатов промежуточных расчетов, в качестве счетчиков цикла, сумматоров и т. п.
Выходные информационные объекты предполагается представлять с помощью переменных стандартных типов языка C#. Их характеристики приведены в таблице 2.
Выходные информационные объекты
Список, содержащий отформатированную простую программу
2.3 Разработка алгоритма решения задачи
Алгоритм главной программы Main() представлен на рисунке 2. После объявления глобальных переменных, программа начинает выполнять главную функцию Main(), в которой происходит открытие файла, запись информации из файла построчно в список, закрытие файла и вызов необходимых функции.
На рисунке 2 представлен алгоритм функции RemoveSpace(), которая убирает пробелы из текста. Так же он добавляет пробелы после основных операторов, а именно float, while, do, if, else. Для того, чтобы удалить все пробелы необходимо определить, есть ли они в данной строке. Организуется цикл, который перебирает все строки в списке. Далее проверяется условие наличия пробелов в строке, пока они присутствуют, будет повторяться цикл while. После обнаружения пробела в строке он заменяется отсутствием пробела. Для того, чтобы добавить пробел после операторов, необходимо определить, есть ли данное вхождение символов в данную строку. Если она обнаруживается, то заменяется на оператор с пробелом.
На рисунке 3 представлен алгоритм функции Split_String(). Функция выполняет разделение фигурных скобок таким образом, чтобы каждая скобка была на отдельной строке. Так как предполагается, что исходная программа простая, то разделение будет происходить из расчета, что на строке не больше одной скобки. Для разделения открывающихся фигурных скобок организуется цикл до конца списка. Производится проверка, если в строке оказывается открывающаяся фигурная скобка, то происходит деление строки на части, каждая часть записывается в свои элемент массива. Разделителем является <. После разделения исходная строка удаляется. Производится проверка, если первая часть содержит элементы, то они записываются в данную строку, и увеличивается индекс строки. В следующую строку записывается <. Далее так же производится проверка второй части и ее запись в случае существования. Для закрывающейся скобки и; производятся аналогичные действия.
На рисунке 4 представлен алгоритм функции Format_Text(), которая выполняет форматирование текста. организуется цикл до конца списка. При обнаружении знака “
На рисунке 5 представлен алгоритм функции Bracket(). Функция анализирует правильность расстановки скобок в главной программе. Организуется цикл до конца списка. Проверяется каждая строка на наличие скобок, при обнаружении открывающейся скобки переменная, соответствующая данному виду скобок увеличивается на 1, при обнаружении закрывающейся — уменьшается на 1. Далее производится сравнение переменных с 0, и если какое-либо условие не выполняется, то выдается ошибка.
На рисунке 6 представлен алгоритм функции Del(). Данная функция выполняет удаление одного из двух одинаковых операторов. Организуется цикл до конца списка. Производится сравнение, если на двух соседних строках обнаруживается операции присваивания, то далее производится сравнение левых частей. При выполнении условии, первая операция удаляется из списка.
На рисунке 7 представлен алгоритм функции Operator(). Данная функция выполняет анализ операторов, таких как if, else, while, do. Организуется цикл до конца списка. Далее начинается проверка, если в строке находится подстрока “do”, начинается проверка фигурных скобок. Находится открывающаяся скобка, если ее нет, выдается ошибка. Если условие выполняется, то находится оператор while, после чего происходит проверка закрывающейся скобки на предыдущей строчке. Если она не обнаруживается, выдается ошибка. Далее происходит проверка оператора while. Находятся круглые скобки, проверяется, есть ли между ними выражение. Если выражения нет, выдается ошибка. Иначе происходит проверка выражения. Для оператора if и else алгоритм анализа происходит аналогично.
Рисунок 1 — Алгоритм главной функции
Рисунок 2 — Алгоритм функции RemoveSpace()
синтаксический программа модуль интерфейс
Рисунок 3 — Алгоритм функции Split_String()
Рисунок 4 — Алгоритм функции Format_Text()
Рисунок 5 — Алгоритм функции Bracket()
Рисунок 6 — Алгоритм функции Del()