Вход

Разработка графических приложений на языках высокого уровня

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 373601
Дата создания 09 января 2018
Страниц 39
Мы сможем обработать ваш заказ (!) 23 декабря в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
1 400руб.
КУПИТЬ

Описание

Курсовая работа выполнена по всем требованиям для МТИ.
Уникальность работы более 85% по етхт.
По запросу могу дополнить или изменить.

...

Содержание

ВВЕДЕНИЕ 3
ГЛАВА 1. КЛЮЧЕВЫЕ АСПЕКТЫ ВЫСОКОУРОВНЕВЫХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ 5
1.1. Используемые концепции, понятия и определения 5
1.2. Ключевые парадигмы разработки в языках высокого уровня 7
Выводы по главе 1 12
ГЛАВА 2. АНАЛИЗ ПОПУЛЯРНЫХ НА ПРАКТИКЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ 13
2.1. Преимущества и особенности языка Python 13
2.2. Преимущества и особенности языка С++ 15
2.3. Преимущества и особенности языка С# 18
2.4. Преимущества и особенности языка Java 20
Выводы по главе 2 23
ГЛАВА 3. ОПИСАНИЕ ОСОБЕННОСТЕЙ РЕАЛИЗАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ПОМОЩЬЮ ЯЗЫКА PYTHON 24
3.1. Описание разрабатываемого проекта приложения 24
3.2. Описание интерфейсной составляющей программного приложения 28
Выводы по главе 3 34
ЗАКЛЮЧЕНИЕ 36
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 38

Введение

Объект исследования: специфика состава и практического применения современных высокоуровневых языков разработки программного обеспечения.
Предмет исследования: особенности создания программных продуктов на базе языка Python.
Цель работы заключается в расширении, закреплении и систематизации знаний по изучаемой дисциплине, путем проведения анализа высокоуровневых языков создания программных приложений, путем разработки программы средствами языка программирования Python и среды разработки PyCharm.

Фрагмент работы для ознакомления

+
Обучение из окружения
+
+
Толерантность к ошибкам и/или неверным входным сигналам
+
Re3
al -time-исполнен не
+
Естественно-языковое
взаимодействие
+
Агент также может выполнять действия: подавление, порождение и замена других агентов, активизация функций и сценария деятельности, запоминание активного состояния других агентов и др. Т.е. агент, будучи «активным объектом», формирующим свое поведение, находится на более высоком уровне сложности в сравнении с традиционными объектами в ООП.
Две базовые характеристики агента – целенаправленность и автономность отличать его от других объектов (подпрограмм, модулей и процедур).
Наличие целесообразности поведения агента требует, чтобы он обладал свойством реактивности.
Если он обладает знаниями о среде, собственных целях и вариантах их достижения, то агента называют когнитивным. В связи с этим может быть проведена граница между агентами [4].
Модель поведения агента в общем виде приведена на рисунке 2.
Рисунок 2 – Модель поведения агента в общем виде
Выводы по главе 1
В данном разделе был проведен анализ ключевых аспектов современных языков программирования высокого уровня. Освещены основные концепции, понятия и определения, описаны наиболее активно развивающиеся парадигмы разработки программного обеспечения – объектно-ориентированный и агентно-ориентированный подходы. Приведены основные элементы ООП и модель поведения агента.
ГЛАВА 2. АНАЛИЗ ПОПУЛЯРНЫХ НА ПРАКТИКЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ ВЫСОКОГО УРОВНЯ
2.1. Преимущества и особенности языка Python
Python это современный объектно-ориентированный язык с поддержкой динамической типизации, автоматического процесса управления памятью, высокоуровневых гибких структур данных (словари, кортежи, списки). Все объекты в Python подразделяются на атомарные и ссылочные. К первым относятся int, long, complex.
При присвоении подобного рода объектов происходит копирование их значений, а в ссылочных объектах осуществляется копирование лишь указателя на объект, поэтому обе переменные после выполнения операции присваивания используют одинаковое значение.
Python поддерживает создание классов, связи модулей, гибкую и удобную обработку исключительных ситуаций и многопоточные методы вычислений. Кроме ООП данный язык структурное, функциональное и аспектно-ориентированное программирование.
Python позволяет определять тип переменной на этапе исполнения программы. В связи с этим вместо присваивания переменной определенного значения более корректным является использование фразы «связывания определенного значения с конкретным именем». В языке поддерживаются такие встроенные типы данных как: бинарный, строковый, Unicode, целочисленный с произвольно заданной степень точности, число с плавающей запятой, и ряд других [7].
Из современных коллекций язык обладает поддержкой таких встроенных структур как: список, словарь, кортеж (модифицируемый список), множество и др. Следует отметить, что все значения, также как и в Ruby, являются объектами, причем это характерно и для функций, модулей, методов и классов.
Основной реализацией языка является интерпретатор CPython, который поддерживает значительное число актуальных операционных платформ. Данный инструмент распространяется под свободной лицензией, это обеспечивает его применение без ограничений в любых, даже пропиетарных, приложениях. Разработаны версии интерпретаторов для JVM, MSIL и ряда других.
Добавить в программный код новый тип можно путем написания нового класса или определения нового типа в специальном модуле расширения, который может быть разработан на другом языке. Система классов поддерживает полноценные механизмы множественного и единичного наследования, а также функции метапрограммирования. Возможным, также является прямое наследование от подавляющего большинства встроенных типов расширений.
Строки и кортежи, относящиеся к встроенным коллекциям, являются не изменяемыми, а словари и списки – переменными, их можно модифицировать динамически. Поэтому кортежи в данном языке работают существенно быстрее чем списки [10].
Преимущества языка следующие.
1. Интерпретируемость. Это позволяет существенно упростить и облегчить отладку программ, однако при этом теряется скорость выполнения приложения.
2. Динамическая типизация. Это повышает общую скорость разработки кода.
3. Гибкая поддержка модульности. Разработанный модуль может быть легко интегрирован в код произвольных приложений.
4. Наличие возможности разработки кода по парадигме ООП. Планирование структуры приложения становиться проще и удобнее.
5. Автоматическая «сборка мусора», т.е. освобождение разработчика от необходимости слежения за утечками памяти.
6. Поддержка большого количества модулей, интегрированных и сторонних. В ряде распространенных случаев для разработки программы достаточно просто найти готовые модули и должным образом их связать между собой. Это позволяет разработчику сосредоточить внимание на более высоком уровне разработки и проектирования, работая с готовыми элементами.
7. Кроссплатформенность. Это позволяет запускать программное приложения, написанное на языке Python, на практически любой операционной системе, где установлен интерпретатор языка нужной версии и сборки [16].
2.2. Преимущества и особенности языка С++
С++ в настоящее время считается одним из наиболее сложных и функциональных языков, которые применяются при разработке программных приложений в сфере коммерции. В последние годы степень востребованности языка несколько изменилась, по причине того, что стал активно развиваться язык Java, поэтому некоторые программисты перешли с С++ на Jаvа [1]. Эти языки имеют много общего, поэтому зная один из них досконально для разработчика не составит большого друга оперативно перейти на другой язык.
Отличия C++ от C:
объектно-ориентированное программирование через классы. C++ предоставляет— абстракцию, инкапсуляцию, наследование и полиморфизм;
обобщенное программирование через шаблоны функций и классов;
стандартная библиотека C++ состоит из стандартной библиотеки C и библиотеки шаблонов, которая предоставляет широкий набор контейнеров и алгоритмов;
вспомогательные типы данных;
обработка исключений;
виртуальные функции;
пространства имён;
встраиваемые функции;
перегрузка операторов;
перегрузка имён функций;
ссылки и операторы управления памятью [2].
В языке фактически отсутствуют элементарные операций и типы данных. В частности нет типа матрица с логической операцией обращения или элемента «строка» с поддержкой операций конкатенации. В случае, когда программисту необходимо использовать такие типы данных он способен самостоятельно инициализировать их в коде. Создание проекта на С++ в Code Blocks приведено на рисунке 3.
Рисунок 3 – Создание проекта на С++ в Code Blocks
С++ - это язык программирования, который включает в себя свойства низко-уровневых и высокоуровневых языков. Данный язык программирования используется для разработки разнообразного программного обеспечения [12].
Таким образом, процесс написания кода на С++ представляет собой процесс инициализации и описания логики взаимодействия нужных типов данных и операций. Следует отметить, что грамотно реализованный пользовательский тип данных отличен от встроенного лишь способом определения, а способ использования может остаться прежним.
В целом данный язык является программным средством широкого спектра действий, начиная от системного программирования и заканчивая разработкой распределенных и масштабируемых систем и приложений.
В процессе разработки языка первоочередной приоритет был поставлен на простоту и скорость работы. В связи с этим принципиальное значение было уделено вопросу совместимости с языком С, что явилось причиной использования большей части синтаксических конструкций [2].
C++ является своеобразным «предком» таких языков программирования, как C# и Java. Базой синтаксиса С++ является синтаксис языка С, программы написанные на этих языках поддерживаются и компилируются в своих компиляторах, хотя некоторые различия все таки есть.
Программа написанная на языке С++ состоит из функций. Каждый блок программы помещается в фигурные скобки {}. Функция main() – это главный блок приложения, написанного на языке С++. В круглых скобках записываются основные параметры.
Запись int main() сообщает о возвращении целочисленного значения. Если значение не возвращено, то это означает, что программа завершилась в аварийном режиме.
Для возвращения целочисленного значения перед завершением функции записывается строка return 0 [1]
В С++ существуют следующие типы данных [14]:
символьные;
целочисленные знаковые;
целочисленные без знаковые;
с плавающей точкой;
логический.
2.3. Преимущества и особенности языка С#
Данный язык изначально создавался с целью обеспечения компонентного программирования, поэтому в его ядро закладывались возможности повторной инициализации и интеграции разработанных программистов программных компонентов.
Преимущества языка: включает расширенную и гибкую поддержку событийно-ориентированного программирования, эффективно интегрируется с существующими продуктами от Microsoft. Главными недостатками языка является довольно сложный синтаксис и не высокая, в сравнении с С++, производительность.
Предлагаемые средства разработки ПО продукты позволяют оперативно и гибко разрабатывать различные типы приложений, в частности, согласно [8]:
консольные приложения;
приложения с графическим интерфейсом, на базе использования популярной среди разработчиков десктопных решений технологии Windows Forms;
веб-сайты, на базе использования ASP.net.
Особенностями данного языка являются:
язык создавался параллельно с технологией .Net, что позволило разработчикам интегрировать все необходимые механизмы обеспечение функциональных взаимосвязей фреймворка, в том числе FCL и CLR;
это полноценный объектно-ориентированным язык, причем даже примитивные типы данных языка представлены в качестве отдельных классов;
поддержка механизмов наследования, инкапсуляции и полиморфизма;
разработан на базе использования C и C ++, что позволило интегрировать наиболее функциональные возможности этих высокоуровневых языков программирования;
с помощью поддержки ряда фреймворков, выступающих в виде некой надстройки над операционной системой пользователя, разработчики C# могут использовать механизмы создания и работы с виртуальной машиной, аналогично существующим технологиям языка Java [17].
При этом существенно повышается эффективность и используемость программного кода. Это связано с тем, что исполнительная среда CLR позволяет обеспечить работу компилятора промежуточного уровня, что является более эффективным по сравнению с интерпретатором байт-кода в Java Virtual Machine.
Данный язык программирования реализует компонентно-ориентированный подход в программировании приложений, что позволяет снизить машинно-архитектурную зависимость полученного кода, благодаря чему достигается высокая степень переносимости и повторного использования кода.
Данные решения реализуются для всех платформ, которые поддерживаются вендором средств разработки Microsoft. К таким платформам относятся операционные системе Windows 7, 8, 10, Windows Mobile, операционная система в Xbox, а также осуществляется интеграция Microsoft Silverlight и Azure [4].
Отличия в реализации синтаксиса C# и Visual Basic приведены на рисунке 4.
Рисунок 4 - Отличия в реализации синтаксиса C# и Visual Basic
2.4. Преимущества и особенности языка Java
Java - это популярный высокоуровневый язык программирования, который был выпущен известной ИТ компанией Sun Microsystems еще в 1995 году.
В настоящее время разработкой языка Java занимается корпорация Oracle. Синтаксис данного языка во многом похож на язык C++, на котором Java и был изначально разработан [20].
Разрабатываемые Java приложения компилируются в отдельный байт-код (формат .class), который при выполнении интерпретируется JVM (виртуальной машиной Java) для конкретной аппаратно-программной платформы или операционной системы.
В Java была устранена возможность происхождения различных конфликтных ситуаций, по причине ошибок в коде программиста, а также обеспечена большая гибкость процесс разработки классов и объектов.
Java разрабатывался как кроссплатформенный язык разработки, он обладает меньшими возможностями для работы с аппаратным обеспечением на низком уровне.
Для обхода этого недостатка языка существуют механизмы интеграции отдельных модулей низкоуровневого управления, которые могут быть написаны на других языках (ассемблер, С++ и др.).
При создании Java изначально были сформулированы такие принципы:
синтаксис должен быть максимально простым, гибким, удобным и привычным пользователю-разработчику;
высокая производительность и безопасность процесса разработки и реализации исполняемых приложений;
кроссплатформенность по принципу “Once Write –Anywhere Use”;
поддержка масштабируемости и мультизадачности посредством возможности создания параллельных процессов и потоков [19].
Кроссплатформенность достигается путем компиляции изначального Java-кода (формат .java) в байт-код (.class), представляющего собой набор упрощенных команд. После этого разработанное приложение может быть выполнено на любой поддерживаемой платформе, т.е. на платформе, которая имеет установленную JVM, способную интерпретировать байткод в код, учитывающий специфику конкретной ОС и процессора. Архитектура Java окружения приведена на рисунке 5 [6].
Рисунок 5 – Архитектура Java окружения
Главным преимуществом использования байт-кода является портативность. Т.е. байт-код переносится на любую платформу и запускается без установки, достаточно просто наличие JVM. При этом, недостатком является необходимость выделения дополнительных вычислительных ресурсов на интерпретацию, т.е. мощности процессора и оперативной памяти задействуются в большем объеме. В связи с этим некоторые считают, что Java является достаточно медленным языком разработки.
В Java практически все структуры данных являются объектами. Исключением являются такие примитивные типы данных, как целочисленные (int), символы (char), логический тип данных (boolean) и др. Также, в Java все объекты являются производными от самого главного объекта (Object), который является их потомком, посредством которого обеспечивается их базовое поведение и все основные свойства.
В Java возможно единичное наследование, что позволяет исключить возникновение конфликтов между различными членами класса, которые могут быть наследованы от нескольких родителей, что затрудняет их однозначную идентификацию [13].
Выводы по главе 2
В данном разделе курсовой работы сделан акцент на проведении анализа популярных высокоуровневых языков программирования на практике современного рынка труда в сфере информационных технологий. Обозначены ключевые преимущества и особенности языков Python, C#, C++ и Java, приведены иллюстрации для наглядного отображения концепций архитектурного состава и интерфейса сред разработки данных средств разработки программного обеспечения.
ГЛАВА 3. ОПИСАНИЕ ОСОБЕННОСТЕЙ РЕАЛИЗАЦИИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ПОМОЩЬЮ ЯЗЫКА PYTHON
3.1. Описание разрабатываемого проекта приложения
В рамках данного раздела осуществляется разработка информационной системы координирования грузопотока в порту.
Такая система должна быть удобной в использовании, обладать интуитивно-доступным интерфейсом, не нуждаться в специальных средствах для выполнения функциональных операции. Основываясь на современных программных средствах, оптимальным является использование языка программирования Python с библиотекой PyQT. В качестве среды программной разработки используется PyCharm. Это позволит обеспечить высокую степень быстродействия приложения, его защищенность и соответствия конкретной специфики деятельности предприятия. Разработанная диаграмма классов приложения приведена на рисунке 6.
Рисунок 6 - Диаграмма классов программного обеспечения
Класс Main.py - главный класс программного обеспечения. Включает в себя сценариев выполнения элементов графического интерфейса, а также создание динамических событий. Такие события начинают свою работу во взаимодействии с элементами программного обеспечения.
Класс MainForm.py - выполняет построение интерфейса программного обеспечения. К элементам интерфейса относятся функциональные элементы (кнопки), графические элементы, текстовые элементы, окна ввода и вывода информации и прочее. Такой класс позволяет создавать графическое наполнение программного средства, и организовывать эргономичные элементы управления.
Класс InfoWidgetForm.py - класс отвечающий за вывод технической информации и справок. Позволяет добавить более удобной адаптации программного обеспечения при его использовании.
Класс SkladWidgetForm.py - позволяет отображать наборы элементов интерфейса окна технических работников. Благодаря такому классу, была разработана окна терминалов, наполнение окон информацией, окна текущих заказов на перегрузку, статус груза, а также технического описания на каждый груз.
Класс SkladWidgetCode.py - позволяет добавить к графическому класса, систему взаимодействия с пользователем. Такой класс делает возможным ввод и вывод информации в графические формы.
Класс PerebrosForm.py - класс который строит форму перегрузки, а также делает ее управляемой. Форма перегрузки построена из элементов списка, текстовых полей, а также информативных боксов для вывода информации о количестве груза.
Класс Form.py - позволяет выводить текстовую информацию в форму интерфейса.
Класс RegistrUser.py - строит окно регистрации и авторизации пользователя программного средства. Компонует элементы ввода и вывода информации.
Класс LoginUser.py - делает форму интерфейса активной, а также добавляет функциональное взаимодействие элементов.
Класс AddTovar.py - создает графическое окно добавления груза на склад. Для большего быстродействия программного средства, в классе разработан функцию управления графическими объектами.
Класс TehnikaWidgetForm.py - графическое окно технических средств порта.
Класс TehnikaWidgetCode.py - позволяет использовать систему управления графическим окном техники порта.
На этапе проектирования программного обеспечения, одним из ключевых этапов является разработка порядка работы системы. Он состоит из следующих процессов::
1. Подача заявления в порт - позволяет сформировать бланк-заявление от судовладельца, на выполнение перевалочных операций с разрешением на вход в порт. Такая заявление состоит из представлений нормативных документов, которые присутствуют в судовладельца, а также документов на груз.
2. Обработка заявления оператором - выполнение проверочных действий в отношении представленных документов. Такое решение не может быть автоматизировано, за счет сложности в выявлении подделки. Поэтому автоматизация этого процесса не является оптимальной. После подтверждения заказа от судовладельца, программная система позволяет выполнять следующие действия по перевалочных процессов.
3. Определение оптимального терминала - к основанию относится способ принятия решения, который анализирует технические характеристики судна, личности груза, а также количество груза. Это позволяет создать оптимальное решение, относительно терминала, на котором будут выполняться перегрузочные операции.
4. Проверка на возможность добавления в очередь - выполняет проверку даты и причала, на возможность перевалочных процессов. Такое решение автоматизирует большое количество организационных процессов, за счет построения многоуровневых проверок. Такая проверка включает в себя два конечных решения, при каждом из которых доступны различные возможные варианты.
5. Бронирование даты - используется после положительной проверки на возможность добавления в очередь. Фиксирует дату и причал по определенному судном. Для всех судов, причал становится недоступным на определенное время.
6. Подготовка необходимой техники - организует бронирование перевалочный техники, по типу груза. Во время такого бронирования, технические средства происходят недоступны другим причалам терминала, и сосредотачиваются на скоростное перевалки.
7. Расчет стоимости перевалки - позволяет определить финальную стоимость всех перевалочных процессов, к которым необходимо отнести портовые сборы, швартовку, работу техники, складов, открытой площадки, персонала и тому подобное.

Список литературы

1. Джосаттис Н.М. Стандартная библиотека C++. Справочное руководство. – М.: Вильямс, 2014. – 1136 c.
2. Дьюхерст С. C++. Священные знания. – СПб.: Символ-Плюс, 2012. – 231
3. Жилов Д.А. Теория информационных систем: опыт построения. – М.: Мир, 2013. –523 с.
4. Иванова Г.С. Основы программирования Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2012. – 303 с.
5. Касаткин В. Информатика и алгоритмы. – М.: Просвещение, 2014. – 167 с.

и еще 15 источников
Очень похожие работы
Найти ещё больше
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00489
© Рефератбанк, 2002 - 2024