Разработка приложения с графическим интерфейсом пользователя. Курсовая. Кафедра Цифровые технологии и моделирование
Скачать 0.64 Mb.
|
СодержаниеВведение 3 1 Описание задания 4 1.1 Формирование требований к программному обеспечению 5 2 Теоретическая часть 5 2.1 Выбор и обоснование программных средств для разработки 5 3 Практическая часть 7 3.1 Диаграмма классов 7 3.2 Руководство пользователя 8 3.3 Тестирование программы 11 Заключение 13 Список использованных источников 14 Приложение. Листинг программы 15 Введение Информационная технология – это умение правильно работать с информацией, которое обеспечивается совокупностью программно-технических средств и приемов. Цель информационной технологии – это производство информации для ее анализа человеком и принятия на его основе решения по выполнению какого-либо действия. Современная информационная технология – это технология, основанная на: - повсеместном использовании ЭВМ и оргтехники (оргтехника – это разнообразные технические средства, используемых в целях механизации (замены ручных средств труда механизмами, машинами) и автоматизации управленческих и инженерно-технических работ; например, использование пишущих машинок, механизированных картотек, копировальных аппаратов, микрокалькуляторов и пр.); - активном участии пользователей в информационных процессах; - высоком уровне дружественного пользовательского интерфейса; - широком использовании пакетов прикладных программ общего и специального назначения; - возможности для пользователя доступа к базам данных и программам, в том числе и удаленным, благодаря локальным и глобальным компьютерным сетям; - анализе ситуаций при выработке и принятии управленческих решений с помощью автоматизированных рабочих мест специалистов; - применении систем искусственного интеллекта; - внедрении экспертных систем; - использовании телекоммуникации и др. Основными принципами современной информационной технологии являются: - интерактивный (диалоговый) режим работы с компьютером; - интегрированность (взаимосвязь) с другими программными продуктами; - гибкость процесса изменения как данных, так и постановок задач. [1] В рамках работы над курсовой работой необходимо создать приложение для вывода двух графиков заданных функций с записью данных в текстовый файл, чтением данных из файла и отображением в табличном виде на языке программирования C++, используя для этого среду разработки Visual Studio 2019. Курсовая работа предполагает выполнение задания повышенной сложности по проектированию, разработке и тестированию программного обеспечения, а также оформлению сопутствующей документации. Цель: разработать приложение с графическим интерфейсом пользователя. 1 Описание заданияРазработать (по вариантам) приложение для вывода двух графиков заданных функций с записью данных в текстовый файл, чтением данных из файла и отображением в табличном виде. Функция 1: . Функция 2: . 1.1 Формирование требований к программному обеспечению Исходя из задания, необходимо разработать (по вариантам) приложение для вывода двух графиков заданных функций с записью данных в текстовый файл, чтением данных из файла и отображением данных в табличном виде. Приложение должно обеспечивать: - корректный ввод, редактирование данных; - чтение и запись данных в текстовый файл; - интуитивно понятный интерфейс. 2 Теоретическая часть 2.1 Выбор и обоснование программных средств для разработки Разработка программы будет вестись с использованием программного продукта Visual Studio 2019. Для осуществления поставленных задач будет использоваться язык C++. С++ — это как Си, только с ООП [1. Строго говоря, это не совсем верно. Хотя C++ произошёл от Си, с тех пор оба языка изменились и стали совершенно разными. Вы можете писать на C++ без ООП и использовать ООП в Си. ООП — это скорее подход или методология, а не конкретная функциональность. Но в C++ однозначно больше возможностей для реализации принципов ООП.]. Что это значит? - можно работать с памятью на низком уровне; - нет «виртуальных машин» или фреймворков, которые занимаются, например, сборкой мусора или выделением памяти; - быстрое (иногда очень быстрое) выполнение кода по сравнению с более высокоуровневыми языками (Python, C#, Java и другими); - полный доступ к API операционной системы без обёрток (в которых может быть реализовано не всё). Но чем больше силы, тем больше ответственности. По сравнению с языками более высокого уровня, на С++ проще ошибиться. Причём так, что компилятор не подскажет и вы сразу не поймёте, в чём дело. C++ хорош для проектов, в которых важна производительность кода. Где применяется С++? В недавнем интервью по ссылке ниже создатель языка рассказал, что C++ используют практически во всех областях. Мы выделим три направления, в которых лучше всего раскрываются преимущества языка. 1) Оптимизация. Перепишите любой код с языка более высокого уровня на C++, чтобы программа работала быстрее. Так часто делают в сфере глубокого обучения и других алгоритмических областях, где важна скорость. Подход может выглядеть так: - пишу код на Python; - заставляю работать нейросеть, которая решит мою проблему; - переношу код на C++. Но это не всегда приносит пользу: иногда быстрая разработка важнее производительности, или выгода от переноса кода на C++ совсем незначительна. 2) Игры. В инди-играх обычно используются высокоуровневые языки и игровые движки (C# и Unity, Java и jMonkeyEngine), но на том же Unreal Engine можно создавать игры и на C++. Множество игр AAA-класса пишутся на C++ по нескольким причинам: - топовые игры надо хорошо оптимизировать, а С++ достаточно гибкий для этого. Но вместе с тем на нём удобно писать в ООП-стиле, не спускаясь до очень низкого уровня; - использование собственного движка для полного контроля любых игровых механик. Да, так делают не всегда, но часто — в основном из-за проблем с лицензиями и необходимостью делить прибыль с продаж; - кроссплатформенность: игра должна хорошо работать на всех поддерживаемых устройствах. Хотя многие движки по умолчанию предоставляют эту особенность, она не всегда эффективна: у кого-то игра может работать быстрее, а у кого-то медленнее. Код пишется так, чтобы оптимизировать компиляцию в бинарные файлы на разных платформах. 3) GPU-вычисления. Nvidia CUDA и OpenCL — две платформы, позволяющие запускать код C++ на графическом процессоре. GPU содержат сотни небольших вычислительных ядер, которые могут одновременно выполнять простые математические операции. Написав код для GPU, распараллеливающий сложные вычисления, можно добиться очень высокой производительности и скорости. C++ отлично подходит для этого. Среди возможных применений: - майнинг биткоинов: код на C++ помогает майнить быстрее; - обучение нейросетей: большинство библиотек Deep Learning используют C/C++ код на CUDA или OpenCL, чтобы нейросети обучались и работали быстрее. Однако многие функции доступны как на C++, так и на более высокоуровневых языках; - шейдеры для игр и графического ПО. Шейдеры — небольшие участки кода, параллельно запускающиеся на GPU и выполняющие сложные графические задачи (например, трассировку лучей). [2] Для любого разработчика важна среда разработки. От неё зависит скорость и удобство разработки. Visual Studio позволяет создавать приложения для различных ОС, мобильных платформ, веб-сайты и приложения. Отличительной особенностью встроенного редактора кода является удобная навигация, дружелюбный интерфейс. Расположение окон инструментов можно запомнить, создав макет экрана и перенести на другой компьютер. Присутствует подсветка разметки и быстрый переход с помощью полос прокрутки. Отладка доступна для всех приложений, даже если в них используется несколько языков программирования. Можно приостановить приложение и получить значения переменных на любом этапе. Для тестирования мобильных приложений доступен эмулятор Android. Для разработки игр встроена поддержка движка Unity. Автоматический анализ и рефакторинг кода осуществляется с помощью компилятора Roslyn. Преимущества и недостатки Visual Studio + поддержка множества языков программирования; + кроссплатформенность разработки; + встроенный контроль за выполнением многопоточного кода; + наличие бесплатной редакции Community; + запись происходящего во время отладки (функция IntelliTrace); - высокое потребление памяти; - лог-файлы занимают много места на диске. Основные возможности - редактирование, профилирование и отладка кода; - нумерация строк в редакторе; - поддержка языков Visual Basic, C#, C++, Java Script, HTML5, Python; - автоматическое завершение кода и подсказки; - рефакторинг и реструктуризация исходных текстов программ; - система скачиваемых расширений для дополнительных функций; - встроенные тесты производительности; - эмуляция мобильных платформ; - редактируемое меню внешних инструментов. [3] 3 Практическая часть 3.1 Диаграмма классов На рисунке 1 показана диаграмма классов программы. Рисунок 1 – Диаграмма классов Класс Form1 предназначен запуск приложения, создание объекта - формы для ввода, отображения данных в окне программы, сохранении и загрузки данных в текстовый файл. 3.2 Руководство пользователя Приложение позволяет рассчитать значения некоторой заданной функции и отобразить её на графике. После запуска программы появится главное окно (рисунок 2). Пользователь может вводить границы диапазонов значений для функции (a1, a2), выбирать функцию для отображения её на графике (с помощью радиокнопок). Для построения графика функции необходимо ввести a1, a2, xmin, xmax. После этого нажать на кнопку Построить график. По итогу отобразится график выбранной функции. Кроме того, в таблице отобразятся текущие значения x и y. Также в программе реализованы функции для записи значений функции в файл и их чтении из файла. Рисунок 2 – Главное окно программы Введём в текстовые поля данные для начального и конечного значения x, выберем функцию , и нажмём на кнопку Построить график (рисунок 3). Рисунок 3 – График функции Введём в текстовые поля данные для начального и конечного значения x, выберем и нажмём на кнопку Построить график (рисунок 4). Рисунок 4 – График функции Нажмём на кнопку Записать в файл (рисунок 5). Рисунок 5 – Сохранение данных в текстовый файл После нажатия на кнопку Сохранить данные, данные из таблицы и название функции сохранятся в текстовый файл Data.txt (рисунок 6). Рисунок 6 – Функция и её значения в текстовом файле 3.3 Тестирование программы Тестирование – процесс исследования, испытания программного продукта, имеющий своей целью проверку соответствия между реальным поведением программы и её ожидаемым поведением на конечном наборе тестов, выбранных определённым образом. В процессе работы программа должна вычислять и показывать значения функции на каждой итерации аргумента. Проведем тестирование программы. Для предотвращения некорректного ввода a1, a2, ввод в соответствующие текстовые поля ограничен вводом целых чисел. Также для текстовых полей убраны клавишы быстрого доступа и контекстное меню. При чтении некорректных данных из файла будет показано следующее окно с сообщением об ошибке (рисунок 7). Рисунок 7 – Чтение данных из файла с ошибкой В процессе тестирования программы было выяснено, что она полностью соответствует всем предъявляемым требованиям, были выявлены и устранены небольшие недочеты и ошибки, остальные ошибки и доработки будут представлены в следующей версии программы. Заключение В соответствии с индивидуальным заданием был осуществлен сбор, анализ, систематизация информации по теме задания и его непосредственное выполнение. Была достигнута цель разработки, а именно, разработано приложение для вывода двух графиков заданных функций с записью данных в текстовый файл, чтением данных из файла и отображением в табличном виде. Кроме того, по окончании выполнения курсовой работы были закреплены знания по языку программирования C++, а также получены навыки по реализации различных задач при помощи Visual Studio 2019. Также были реализованы следующие задачи: 1. Проведен анализ предметной области, осуществлен обзор существующего ПО в рассматриваемой предметной области. 2. Разработан алгоритм работы программы. 3. Проработана структура программы, разработаны модули, каждый из которых выполняет одну из заявленных функций. 4. Выбраны инструменты, средства для достижения поставленной цели, определена среда, в которой было создано приложение и язык, на котором был написан код приложения. 5. Написан основной код программы и коды всех сопутствующих функций. 6. Разработан удобный для пользователя интерфейс программы. 7. Разработано руководство пользователя, руководство программиста, обозначены системные требования. 8. Выполнено тестирование приложения, в ходе которого были выявлены и устранены небольшие недочеты и ошибки, остальные ошибки и доработки будут представлены в следующей версии программы. Список использованных источников grodno.by [Электронный ресурс]. – URL: https://slonimsmc.grodno.by/infotex/p8aa1.html. tproger.ru [Электронный ресурс]. – URL: https://tproger.ru/articles/what-cpp-is-good-for/. win10soft.ru [Электронный ресурс]. – URL: https://win10soft.ru/169-visual-studio.html. MSDN – сеть разработчиков Майкрософт [Электронный ресурс]. – URL: https://msdn.microsoft.com/ru-ru/. Ашарина, И.В. Основы программирования на языках С и С++: Курс лекций для высших учебных заведений / И.В. Ашарина. — М.: Гор. линия-Телеком, 2012. — 208 c. Страуструп, Б. Язык программирования C++: Специальное издание / Б. Страуструп; Пер. с англ. Н.Н. Мартынов. — М.: БИНОМ, 2012. — 1136 c. Страуступ, Б. Язык программирования С++. Специальное издание / Б. Страуступ. — М.: Бином, 2015. — 1136 c. Фридман, А.Л. Основы объектно-ориентированного программирования на языке Си++ / А.Л. Фридман. — М.: Гор. линия-Телеком, 2012. — 234 c. Бьянкуцци, Ф. Пионеры программирования. Диалоги с создателями наиболее популярных языков программирования / Ф. Бьянкуцци, Ш. Уорден. — М.: Символ, 2011. — 608 c. Васильев, А. Программирование на C++ в примерах и задачах / А. Васильев. — М.: Эксмо, 2018. — 368 c. Лафоре, Р. Объектно-ориентированное программирование в С++ / Р. Лафоре. — М.: Питер, 2019. — 928 c. Доусон, М. Изучаем C++ через программирование игр / М. Доусон. — М.: Питер, 2021. — 352 c. Васильев, А.Н. Программирование на C в примерах и задачах / А. Н. Васильев. — М.: Эксмо, 2019. — 560 c. Керниган, Б., Ритчи Д. Язык программирования C / Б. Керниган, Д. Ритчи. — М.: Вильямс, 2019. — 288 c. Спрол, А. Думай как программист. Креативный подход к созданию кода. C++ версия / А. Спрол. — М.: Эксмо, 2018. — 272 c. Приложение. Листинг программы #pragma once #include #include #include #include namespace Task |