Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Проектирование программного приложения ⇐ ПредыдущаяСтр 2 из 2
Разработка технологии обработки информации Имя файла, из которого будет осуществляться ввод информации задается аргументом командной строки. Предварительно выполняются: создание файла; заполнение его данными; размещение на носителе доступном для программы; разрешение доступа для чтения. Программа будет работать в не интерактивном режиме. Выходные данные будут записываться в стандартный поток ошибок. Структура технологического процесса обработки информации следующая: считать файл; удалить из файла все комментарии (сначала многострочные, затем однострочные); построчно разделить оставшийся текст в массив строк; осуществить синтаксический анализ каждой строки; проверить математические и логические операции в полученных подстроках. Необходимо использование соглашений: переменные типа int не могут сопровождаться необязательной инициализацией и при этом все переменные должны объявляться отдельно; массивы типа int не могут сопровождаться инициализацией, при этом они только одномерны; все конструкции языка разделяют произвольным числом пробелов и знаков табуляции, но при этом обязательно разделяются как минимум одним символом переноса строки; разрешено использование только строчных букв; многострочные комментарии не могут располагаться внутри других многострочных комментариев; При соблюдении всех вышеперечисленных требований программа будет признана синтаксически верной. Отформатированные исходные данные будут выведены в стандартный поток вывода. Синтаксические ошибки исходных данных будут выведены в стандартный поток ошибок с выводом сообщения о каждой найденной ошибке. Разработка структуры и формы представления данных Основной единицей входной информации является простая программа, состоящая из следующих атрибутов: Объявление переменных; Арифметические выражения; Логические выражения; Операторы; Функции ввода и вывода. Все приведенные атрибуты по смыслу должны быть строковыми переменными. Для представления входных данных предлагается использовать список. Его описание приведено ниже.public List< string> arrText = new List< string> (); Внутренние информационные объекты предполагается представлять с помощью переменных стандартных типов языка C#. Внутренние локальные переменные используются для хранения результатов промежуточных расчетов, в качестве счетчиков цикла, сумматоров и т. п.
Разработка алгоритма решения задачи Алгоритм решения задачи, построен по правилам определенным ГОСТ 19.701-90, ГОСТ 19.002-80, ГОСТ 19.003-80 выполнен в приложении1. Алгоритм решения программы будет состоять из двух частей: первая часть будет считывать файл, удалять из него комментарии, делить текст на строки и сравнивать его с различными масками, выделяя различные части строк, выводить текст программы в соответствии с правилами форматирования. Все ошибки, найденные на всех стадиях работы программы, будут выводиться на поток ошибок; вторая часть программы будет разделять поступившие данные на простейшие блоки, и обрабатывать их по отдельности. Разработка программы решения задачи Выбор инструментальных средств Выбран язык программирования С# так как в нем есть следующие преимущества, унаследованные от языка С: обозначения начала/конца блока кода фигурными скобками; обозначения, ассоциативность и приоритет большинства встроенных операций (присвоение, арифметические, логические, побитовые операции, операции увеличения/уменьшения, тернарная условная операция «?: »); синтаксис описания и использования переменных и функций (порядок «тип имя», использование модификаторов, обязательность скобок для функций, описание формальных параметров); наименования встроенных элементарных типов (кроме bool, в Java этот тип называется boolean); использование точки с запятой; синтаксис всех основных конструкций: условного оператора, циклов, оператора множественного выбора; отсутствие процедур (их заменяют функции типа void); Существуют также уникальные особенности, такие как: отдельное понятие именованной типизированной константы и ключевое слово const импортируется только сборка и при каждом использовании импортируемых статических имён требуется указывать класс можно использовать текстовые строки Разработка структуры программы Основной функцией программы является синтаксический анализ текста. Связь с другими программами осуществляется через аргументы командной строки для задания имени файла и стандартные потоки вывода и ошибок. Программа будет состоять из двух частей: первая часть будет считывать файл, удалять из него комментарии, делить текст на строки и сравнивать его с различными масками, выделяя различные части строк, выводить текст программы в соответствии с правилами форматирования. Все ошибки, найденные на всех стадиях работы программы, будут выводиться на поток ошибок; вторая часть программы будет разделять поступившие данные на простейшие блоки, и обрабатывать их по отдельности.
Проектирование программных модулей Все модули будут принимать один текстовый параметр, и обмениваться информацией через глобальные переменные. Для каждой части программы текстовые данные обрабатываются различным образом: для первой как имя файла, который следует считать и обработать; для второй как различные части информации, содержащиеся в этом файле, которые требуют дополнительной обработки
Проектирование программного интерфейса Диалог с пользователем будет осуществляться в пакетном режиме: запуск программы, с указанием файла для анализа; обработка информации, находящейся в этом файле; вывод оригинального кода; вывод форматированного кода; вывод списка ошибок. Программа будет выдавать пользователю список ошибок при их наличии. Возможны следующие сообщения об ошибке: о необъявленной переменной в выражении о нехватке операндов в строке и выражении о несвоевременном закрытии блока без оператора о несовпадении данной строки ни с одним из шаблонов о нахождении блока за пределами данной функции о недопустимости объявления переменной в данной строке о необъявленной переменой о недопустимости расположения else в данной позиции о недопустимости расположения while в данной позиции Обеспечение надежности программы В данной программе не предусматривается никаких специальных мер обеспечения надежности, т.к. нет ввода данных пользователем и нет условий, которые могут привести к ошибке.
Определение конфигурации технических средств
устройства ввода и вывода информации (клавиатура и монитор); процессор класса не ниже < http: //www.debian.org/ports/i386/> 386; объем оперативной памяти не менее 256 Мб; от 4 ГБ свободного места на жестком диске, для обеспечения запуска и работы программы; встроенный графический чип или видеоплата. Тестирование программы Общие сведения Главными данными является файл с информацией, который обладает следующими свойствами: использование одной библиотеки iostream; описание переменных типов int; следующие арифметические и логические выражения: + (сложение),! = (проверка на неравенства), = = (эквиваленция), = (присваивание), < (меньше), > (больше), - (вычитание), ++ (инкремент), -- (декремент), * (умножение); следующие операторы: if, else, for, do, while; одно строчные и многострочные комментарии; все конструкции языка разделяют произвольным числом пробелов и знаков табуляции; переменные типа int могут сопровождаться необязательной инициализацией, но при этом все переменные должны объявляться отдельно; алфавит программы состоит только из латинских букв, которые могут быть строчными, а также спецсимволов: умножение(*), деление(/), сложение(+), вычитание(-), пробел( ), символ табуляции( ), фигурные скобки { }. круглые скобки(), точка с запятой(; ), символ переноса строки и возврата каретки; каждый оператор должен сопровождаться «; »; комментарии не могут располагаться внутри других многострочных комментариев; Также для проверки работоспособности программы можно провести следующие действия: изменение входных параметров; проверка правильности расчетов пути; проверка правильности вывода расчетной информации на экран; вывод результатов. При соблюдении всех вышеперечисленных требований программа будет признана синтаксически верной.
|
Последнее изменение этой страницы: 2020-02-17; Просмотров: 131; Нарушение авторского права страницы