хууууй. Курсовой проект Богданов М.В.. Разработка программ для решения математических задач с использованием численных методов по специальности
![]()
|
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РФ ФГБОУ ВО ПСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ КОЛЛЕДЖ ПСКОВГУ КУРСОВОЙ ПРОЕКТ ПМ.03 Участие в интеграции программных модулей МДК.03.01 Технология разработки программного обеспечения Тема: «Разработка программ для решения математических задач с использованием численных методов» по специальности 09.02.03 Программирование в компьютерных системах Обучающейся группы 0314-36ПО Богданова М.В. Проверил(а): Ушарнова Т.О. Оценка____________ Подпись___________ Псков 2022 СодержаниеВведение 3 1. Постановка задачи 3 Техническое задание 5 Введение 7 1.Основание для разработки 7 3. Требования к программе 7 4.Требования к программной документации 9 2. Разработка алгоритма и программы решаемой задачи 17 3.Разработка и программный код 21 4.Программная документация 25 4.1 Описание применения 26 Заключение 28 Экономическая часть 29 Список использованных источников информации 32 ВведениеЦелью данного курсового проекта является применение теоритических знаний о решении математических задач с использованием численных методов и умение разрабатывать программы. Так же в курсовом проекте используется: применение имеющихся знаний в построении алгоритмов и диаграмм, графиков на практике, необходимых в программной документации к проекту. Постановка задачиДля выполнения данной разработки необходимо реализовать программу для решения математических задач с использованием численных методов. С этой целью необходимо решить следующие задачи: Решение системы уравнений методом итераций; Вычисление приближенного значения интеграла по формуле, Симпсона (парабол); Решение нелинейного уравнения Ньютона (касательных); Разработка алгоритма метода; Описание алгоритма программы; Выбор инструментов проектирования; Выбор языка программирования; Составление блок-схемы, характеризующей работу программы; Выполнения кодирования и испытание программы; Выполнение решения средствами автоматизированной системы решения математических задач; Анализ полученного результата. Разработка программ должна выполняться как консольное приложение при использовании компиляторов MS Visual C#. Исходные коды разрабатываемого приложения должны быть преимущественно реализованы на языке программирования C#. Код приложения должен соответствовать принципам ООП, содержать комментарии и быть читаемым. Данная работа должна соответствовать требованиям к защите информации и программ: Р 50.1.053-2005 Информационные технологии. Основные термины и определения в области технической защиты информации; ГОСТ Р 51188-98 Защита информации. Испытания программных средств на наличие компьютерных вирусов. Типовое руководство; ГОСТ Р 50922-2006 Защита информации. Основные термины и определения; ГОСТ Р 51275-2006 Защита информации. Объект информатизации. Факторы, воздействующие на информацию. Общие положения. В данном задании необходимо в полной мере реализовать знания и навыки, касающиеся построения алгоритмов, написания программ и умение использования программы таких как MathCad. Министерство науки и высшего образования РФ Псковский государственный университет Колледж Псков ГУ Техническое заданиена разработку курсового проекта 09.02.03 «Программирование в компьютерных системах» МДК 03.01 Технология разработки программного обеспечения Тема: «Разработка программ для решения математических задач с использованием численных методов» Выполнил обучающийся Группы 0314-36ПО Богданов Матвей Владимирович Утвердила: Ушарнова Т.О. Псков 2022 Варианты заданий на курсовой проект (решение математических задач с использованием численных методов) Задача №1 Разработать алгоритм и составить программу решения системы уравнений методом Итераций. ![]() Задача №2 Разработать алгоритм и составить программу вычисления приближенного значения интеграла по формуле Парабол. ![]() Задача №3 Разработать алгоритм и составить программу решения нелинейного уравнения методом Ньютона. |
Стадии разработки | Этапы работ | Содержание работ |
Техническое задание | Обоснование необходимости разработки программы | Постановка задачи; Сбор исходных материалов; Выбор и обоснование критериев эффективности и качества разрабатываемой программы; Обоснование необходимости проведения научно-исследовательских работ. |
Научно-исследовательские работы | Определение структуры входных и выходных данных; Предварительный выбор методов решения задач; Обоснование целесообразности применения ранее разработанных программ; Определение требований к техническим средствам; Обоснование принципиальной возможности решения поставленной задачи. | |
Разработка и утверждение технического задания | Определение требований к программе; Разработка технико-экономического обоснования разработки программы; Определение стадий, этапов и сроков разработки программы и документации на нее; Выбор языков программирования; Определение необходимости проведения научно-исследовательских работ на последующих стадиях; Согласование и утверждение технического задания. | |
Эскизный проект | Разработка эскизного проекта | Предварительная разработка структуры входных и выходных данных; Уточнение методов решения задачи; Разработка общего описания алгоритма решения задачи; Разработка технико-экономического обоснования. |
Утверждение эскизного проекта | Разработка пояснительной записки; Согласование и утверждение эскизного проекта. | |
Технический проект | Разработка технического проекта | Уточнение структуры входных и выходных данных; Разработка алгоритма решения задачи; Определение формы представления входных и выходных данных; Определение семантики и синтаксиса языка; Разработка структуры программы; Окончательное определение конфигурации технических средств. |
Утверждение технического проекта | Разработка плана мероприятий по разработке и внедрению программ; Разработка пояснительной записки; Согласование и утверждение технического проекта. | |
Рабочий проект | Разработка программы | Программирование и отладка программы. |
Разработка программной документации | Разработка программных документов в соответствии с требованиями ГОСТ 19.101-77 | |
Испытание программы | Разработка, согласование и утверждение программы и методики испытаний; Проведение предварительных государственных, межведомственных, приемосдаточных и других видов испытаний; Корректировка программы и программной документации по результатам испытаний. | |
Внедрение | Подготовка и передача программы | Подготовка и передача программы и программной документации для сопровождения и (или) изготовления; Оформление и утверждение акта о передаче программы на сопровождение и (или) изготовление; Передача программы в фонд алгоритмов и программ. |
Таблица 4. Стадии и этапы разработки
Этапы разработки
Разработка должна быть проведена в 5 стадий:
разработка технического задания;
рабочее проектирование;
тестирование;
отладка;
внедрение.
Содержание работы по этапам
На этапе разработки технического задания должны быть выполнены следующие работы:
разработка задачи;
определение и уточнение требований к техническим средствам;
определение требований к программе;
определение стадий, этапов и сроков разработки программы и программной документации;
согласование и утверждение технического задания.
Создание алгоритмов работы всей программы, программных модулей и блоков. Работы можно выполнять в виде блок-схем.
На этапе разработки программного кода должны быть выполнены работы по программированию (кодированию) по созданным ранее алгоритмам.
На этапе разработки программной документации должна быть выполнена разработка программных документов в соответствии с требованиями к составу документации.
На этапе тестирования должны быть выполнены следующе работы:
разработка, согласование и утверждение методики испытаний;
проведение приемо-сдаточных испытаний.
На этапе отладки должны быть выполнены следующие работы:
устранение ошибок, найденных во время тестирования;
повторная проверка на наличие ошибок и их устранение, если таковые выявлены.
На этапе подготовки и передачи программы «заказчику» должна быть выполнена работа по подготовке и передаче программы и программной документации в эксплуатацию.
Виды испытаний
Приемо-сдаточные испытания должны проводиться на объекте «заказчика» в оговоренные сроки.
Приемо-сдаточные испытания программы должны проводиться согласно разработанной «исполнителем» и согласованной «заказчиком» программы и методики испытаний.
Ход проведения приемо-сдаточных испытаний «заказчик» и «исполнитель» документируют в протоколе проведения испыттаний.
2. Разработка алгоритма и программы решаемой задачи
2.1 Инструменты выполнения разработки
Для разработки программы выбираем программу Visual Studio. Основным языком программирования делаем C#.
Microsoft Visual Studio 2022 обеспечивает высокое качество кода на протяжении всего цикла жизни ПО, от проектирования до внедрения. С помощью Visual Studio 2022 можно собирать и анализировать информацию проще, чем когда бы то ни было раньше, возможно быстро создавать более безопасные, управляемые и надежные приложения.
Visual Studio 2022 продолжает традиции, заложенные предыдущими версиями продукта, и содержит множество новинок, предназначенных как для упрощения создания приложений для различных платформ отдельными, так и для повышения производительности всей проектной команды. Поэтому мною была выбрана именно эта среда разработки.
2. 2 Обоснование выбора средств разработки
C# - объектно-ориентированный язык программирования для платформы .NET. Он разработан в 2000 году Андерсом Хейлсбергом, Скоттом Вилтамутом и Питером Гольде под эгидой Microsoft Research. Основным постулатом С# является высказывание: «всякая сущность есть объект». Язык основан на строгой компонентной архитектуре и реализует передовые механизмы обеспечения безопасности кода.
C# - это полнофункциональный объектно-ориентированный язык, который поддерживает все три «столпа» объектно-ориентированного программирования: инкапсуляцию, наследование и полиморфизм. Он имеет прекрасную поддержку компонентов, надежен и устойчив благодаря использованию «сборки мусора», обработки исключений, безопасности типов.
Язык C# разрабатывался «с нуля» и вобрал в себя много полезных свойств таких языков, как C++, Java, Visual Basic, а также Pascal, Delphi и др. При этом необходимость обратной совместимости с предыдущими версиями отсутствовала, что позволило языку C# избежать многих отрицательных сторон своих предшественников.
2.3 Методы описания алгоритмов
Алгоритм – описанная на некотором языке точная конечная система правил, определяющая содержание и порядок действий над некоторыми объектами, строгое выполнение которых дает решение, поставленной задачи.
Существует несколько способов описания алгоритмов:
Словесное описание представляет структуру алгоритма на естественном языке.
Никаких правил составления словесного описания не существует. Запись алгоритма осуществляется в произвольной форме на естественном, например, русском языке. Этот способ описания не имеет широкого распространения, так как строго не формализуем; допускает неоднозначность толкования при описании некоторых действий; страдает многословностью.
Блок-схема – описание структуры алгоритма с помощью геометрических фигур с линиями-связями, показывающими порядок выполнения отдельных инструкций.
Этот способ имеет ряд преимуществ. Благодаря наглядности, он обеспечивает «читаемость» алгоритма и явно отображает порядок: выполнения отдельных команд. В блок-схеме каждой формальной конструкции соответствует определенная геометрическая фигура или связанная линиями совокупность фигур.
Рассмотрим некоторые основные конструкции, использующиеся для построения блок-схем (рис. 1).
![](711931_html_f8cc7d331726a5ea.png)
(1) Блок, характеризующий начало/конец алгоритма (для подпрограмм – вызов/возврат);
(2) Блок - процесс, предназначенный для описания отдельных действий;
(3) Блок - предопределенный процесс, предназначенный для обращения к вспомогательным алгоритмам (подпрограммам);
(4) Блок - ввода/вывода с неопределенного носителя;
(5) Блок - ввод с клавиатуры;
(6) Блок - вывод на монитор;
(7) Блок - вывод на печатающее устройство;
(8) Блок – решение (проверка условия или условный блок);
(9) Блок, описывающий блок с параметром;
(10) Блок – границы цикла, описывающий циклические процессы типа: «цикл с предусловием», «цикл с постусловием»;
Псевдокод – описание структуры алгоритма на естественном, частично формализованном языке, позволяющее выявить основные этапы решения задачи, перед точной его записью на языке программирования. В псевдокоде используются некоторые формальные конструкции и общепринятая математическая символика.
Строгих синтаксических правил для записи псевдокода не существует. Это облегчает запись алгоритма при проектировании и позволяет описать алгоритм, используя любой набор команд. Однако в псевдокоде обычно используются некоторые конструкции, присущие формальным языкам, что облегчает переход от псевдокода к записи алгоритма на языке программирования. Единого или формального определения псевдокода не существует, поэтому возможны различные псевдокоды, отличающиеся набором используемых слов и конструкций.
Разработка и программный код
Разработка программы для решения СЛАУ методом итераций (Рис.2)
Математическая модель решения методом итерация. (Рис. 1)
![](711931_html_3de1b1bc481e57d5.png)
Рис.1 Метод итераций
![](711931_html_222d80a5b4847b6d.jpg)
Рис.2 Код программы
Результат работы программы (Рис.3)
![](711931_html_370c20ca75e6d2fb.jpg)
Рис.3 Результат работы программы
Блок-схема (Рис.4)
![](711931_html_fda327ece5d0e513.jpg)
Рис.4 Блок-схема
Разработка программы для решения интеграла методом парабол (Рис. 5)
Математическая модель методом Симпсона (парабол). (Рис. 6)
![](711931_html_a186b5f75d40f9f1.png)
Рис. 6 Метод Симпсона(парабол).
![](711931_html_29ddd39bbd2d5af7.jpg)
Рис.5 Код программы
Результат работы программы (Рис.7)
![](711931_html_73b2d75dc22b8d83.jpg)
Рис.7 Результат работы программы
Проверка правильности решения (Рис.8)
![](711931_html_1f991a0a44178d2d.jpg)
Рис.8 Проверка правильности
Блок-схема (Рис.9)
![](711931_html_9a703e91aa95e090.png)
Рис.9 Блок-схема
Программная документация
В данном разделе курсового проекта содержится программная документация разработку программ для решения математических задач с использованием численных методов, разрабатываемого в рамках проектирования по ПМ 03 Участие в интеграции программных модулей МДК 03. 01. Технология разработки программного обеспечения.
4.1 Описание применения
1. Назначение программы
Приложение разрабатываемые в рамках проектирования по ПМ 03 Участие в интеграции программных модулей МДК 03. 01. Технология разработки программного обеспечения, задачей которых является разработка программы для решения математических задач с использованием численных методов методами Гаусса, 3/8 и хорд.
2. Условия применения
Приложение гарантирует стабильную работу на операционных системах – Windows 95/98/2000/ХР/Vista/7/8/10.
На других платформах программа не тестировалась, в таком случае, гарантии работы предоставить невозможно.
Определение задачи:
Определением задачи является задание на выполнение курсовой работы. Организация, утвердившая задание на разработку программного продукта Колледж Псков ГУ.
Наименование работы: «Разработка программы для решения математических задач с использованием численных методов».
Методы решения задачи
Решение задачи путем создания программ на базе операционной системы Windows, удовлетворяющего требованиям утвержденного технического здания.
Руководство пользователя:
Функциональное назначение программы:
Приложение, разрабатываемое в рамках проектирования по МДК 03.01 Технология разработки программного обеспечения, задачей которого является разработка программ для решения математических задач с использованием численных методов.
Эксплуатационное назначение программы:
Пользователем программ выступает любой человек, который будет решать математические задачи с использованием численных методов.
Минимальный состав программных средств:
Для корректной и стабильной работы программы от пользователя требуется установленнойе на устройстве операционные системы Windows 95/98/2000/XP/Vista/7/8/10.
CPU не ниже Pentium-133;
8 Mb оперативной памяти (желательно 32 Mb);
минимум 1Mb свободного дискового пространства;
1 Mb видеопамяти;
Операционная система Windows 95/98/2000/XP/Vista/7/8/10.
Требования к составу периферийных устройств:
клавиатура;
мышь.
Заключение
В данном курсовом проекте завершена разработка программ для решения математических задач с использованием численных методов таких как Гаусса, Зейделя или итераций.
Составлено техническое задание, где подробно описано назначение программы. Была написана программная документация на программный продукт.
Разработка произведена в точном соответствии с техническим заданием.
Данное программное обеспечение будет работать на персональных компьютерах с установленной операционной системой Windows, обусловлено это тем, что это самая распространенная операционная система.
Программное обеспечение получилось качественным и оптимизированным, то есть выполняет все требуемые функции и пригодное для эксплуатации. Программа стабильна и выполняет запанированные действия, и в то же время остается в работоспособной состоянии при незапланированных действиях. Программа имеет простой и удобной пользовательский интерфейс.
В соответствии с настоящим техническим заданием разработано программное обеспечение, позволяющее решать математические задачи с использованием численных методов.
Экономическая часть
![](711931_html_f48cc63d9b95db99.gif)
общие трудозатраты (в человеко-месяцах);
объем программы (в тысячах строках исходного кода -LOC);
стоимость разработки;
объем документации;
ошибки, обнаруженные в течение года эксплуатации;
количество людей, работавших над изделием;
срок разработки;
На основе этих данных обычно подсчитываются простые метрики для оценки производительности труда (KLOC/человеко-месяц) и качества изделия.
Метод LOC является оценочным методом (который надо принимать к сведению, но не опираться в оценках).
В зависимости от того, каким образом учитывается сходный код, выделяется основной показатель LOC:
Количество «физических» строк кода - LOC (используемые аббревиатуры LOC, SLOC, KLOC, KSLOC, DSLOC) - определяется как общее число строк исходного кода, включая комментарии и пустые строки (при измерении показателя на количество пустых строк, как правило, вводится ограничение – при подсчете учитывается число пустых строк, которое не превышает 25% общего числа строк в измеряемом блоке кода).
Для метрики SLOC существует большое число производных, призванных получить отдельные показатели проекта, основными среди которых являются:
число пустых строк;
число строк, содержащих комментарии;
процент комментариев (отношение строк кода к строкам комментария, производная метрика стилистики);
среднее число строк для функций (классов, файлов);
![](711931_html_51c07d543e88df0.gif)
Расчет метрик для проекта "Сортировка одномерных массивов" (LOC-метрики) | ||||||
Проект | Затраты (чел-мес) | Стоимость, тыс. $ | KLOC, тыс. LOC | Программная документация, стр. | Ошибки | Люди |
Сортировка одномерных массивов | 0,016 | 0,2 | 2 | 10 | 4 | 1 |
Метрики: | Значения | | | | | |
Производительность | 125,00 | | | | | |
Качество | 2,00 | | | | | |
Уд. стоимость | 0,10 | | | | | |
Документированность | 5,00 | | | | | |
Рисунок 9. Расчёт метрик
На основе таблицы вычисляются размерно-ориентированные метрики производительности качества проекта.
Формулы для расчета метрик:
Производительность =
![](711931_html_1e633e97999aa4a2.png)
![](711931_html_1e633e97999aa4a2.png)
Качество =
![](711931_html_21b24dd97a9e6a2.png)
![](711931_html_21b24dd97a9e6a2.png)
Удельная стоимость =
![](711931_html_ddb7c20d021cbf0d.png)
![](711931_html_ddb7c20d021cbf0d.png)
Д
![](711931_html_8a6c5f2fb8c5b881.png)
![](711931_html_8a6c5f2fb8c5b881.png)
После вычисления результаты будут равны:
![](711931_html_600f0ed5efe5964b.gif)
Качество = 21/1,2 = 17,5
Удельная стоимость = 0,3/1,2 = 0,25
Документированность = 9/1,2 = 7,5
Список использованных источников информации
ГОСТ 19.201-77 Единая система программной документации. Техническое задание. Требования к содержанию и оформлению;
ГОСТ 19.502-78 Единая система программной документации. Описание применения. Требования к содержанию и оформлению;
ГОСТ 19.503-79 Единая система программной документации. Руководство системного программиста. Требования к содержанию и оформлению;
ГОСТ 19.504-79 Единая система программной документации. Руководство программиста. Требования к содержанию и оформлению;
ГОСТ 19.505-79 Единая система программной документации. Руководство оператора. Требования к содержанию и оформлению;
ГОСТ 19.701-90 Единая система программной документации. Схемы алгоритмов, программ, данных и систем. Обозначения условные и правила выполнения;
Внуков А. А. Основы информационной безопасности: защита информации: учебное пособие для СПО/ А. А. Внуков – 2-е изд., испр. и доп. - М.: Издательство Юрайт, 2019. – 240с. – (Серия: Профессиональное образование).
Гагарина Л. Г., Кокорева Е. В., Виснадул Б. Д. Технология разработки программного обеспечения: учебное пособие под ред. Л. Г. Гагариной. – М: ИД «ФОРУМ»: ИНФРА- , 2014, 401 с. 8.
Ю. В. Романец П. А. Тимофеев, Ф. В. Шаньгин. Защита информации в компьютерных системах и сетях. / под ред. В. Ф. Шаньгина – М.: Радио и связь, 2001. – 376 с.
Галицкий А. В., Рябко С. Д., Шаньгин В. Ф. Защита информации в сети. М. «ДМК», 2004. – 616 с.