Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

«Разработка программ с графическим интерфейсом на С++»

Содержание:

Введение

Программирование занимает одну из значительных ниш в современном мире. Нынешнее программирование многогранно и используется в таких важных сферах как строительство, бизнес и экономика, медицина, биология и физика и не только. Большой процент физического труда в промышленности заменен на машинный и роботизированный труд, который управляется посредством программного обеспечения, что обеспечивает существенный прирост скорости, точности операций и эффективности производства. Такое богатство разнообразия применений обеспечивается солидным выбором языков программирования, у каждого из которых есть свои плюсы и минусы.

В данной курсовой работе дадим определения основным понятия программирования, рассмотрим языки программирования, историю развития, структуру программ, структуру программ C++. Рассмотрим разработку программ с графическим интерфейсом на С++ и реализуем на практике.

ГЛАВА 1 ТЕОРЕТИЧЕСКАЯ ЧАСТЬ

Основные понятия программирования

Программирование - это раздел информатики, изучающий методы и приемы составления программ для компьютеров. Кроме того, программирование - это подготовка задачи к решению ее на компьютере.

Алгоритм - точный набор инструкций, которые необходимо выполнить для решения поставленной задачи за конечное число шагов.

Программа - это последовательность команд, понятных компьютеру.

Команда – элементарное предписание, предусматривающее выполнение какого-либо действия.

Операторы – действия, предписываемые командой.

Программа записывается в виде символов, к числу которых относятся латинские и русские буквы, цифры, знаки препинания и знаки операций.

Программа – данные, их описание и алгоритм, записанный на языке программирования.

Язык программирования – формализованный язык для написания программ. Все языки программирования являются искусственными, в них синтаксис и семантика строго определены.

Языки программирования. Историю развития

Языки программирования – это искусственные языки записи алгоритмов для исполнения их на ЭВМ. Программирование (кодирование) -составление программы по заданному алгоритму.

Языки программирования представляют собой изобразительные средства, предназначенные для непосредственной реализации алгоритма на

вычислительной машине. С помощью языков программирования пишется программный код, организованный в виде программы, программного модуля

или отдельного метода, входящего в объект. Программный код преобразуется в машинный язык, который понимается и выполняется вычислительной машиной.

Языки программирования разделяются на две основные категории: языки высокого уровня и языки низкого уровня:

Язык низкого уровня - это язык программирования, предназначенный для определенного типа компьютера и отражающий его внутренний машинный код; языки низкого уровня часто называют машинно-ориентированными языками. Их сложно конвертировать для использования на компьютерах с разными центральными процессорами, а также довольно сложно изучать, поскольку для этого требуется хорошо знать принципы внутренней работы компьютера.

К языкам самого низкого уровня относят машинные языки. Их относят к первому поколению языков программирования. Вскоре после них появились языки второго поколения — так называемые «языки ассемблера»

Язык высокого уровня - это язык программирования, предназначенный для удовлетворения требований программиста; он не зависит от внутренних машинных кодов компьютера любого типа. Языки высокого уровня используют для решения проблем и поэтому их часто называют проблемно-ориентированными языками. В большинстве случаев языки высокого уровня порождают машинный код большего размера и исполняются медленнее. Однако, некоторые языки высокого уровня для алгоритмически и структурно сложных программ могут давать заметное преимущество в эффективности, уступая низкоуровневым лишь на небольших и простых программах. Иначе говоря, потенциальная эффективность языка меняется с повышением его «уровня» нелинейно и вообще неоднозначно. Однако, скорость разработки и трудоёмкость модификации, устойчивость и другие показатели качества в сложных системах оказываются гораздо важнее предельно возможной скорости исполнения — они обеспечивают различие между программой, что работает, и той, что нет — так что экономически более целесообразна эволюция аппаратного обеспечения (исполнение большего числа инструкций в единицу времени) и методов оптимизирующей компиляции (более того, последние десятилетия эволюция аппаратного обеспечения движется в направлении поддержки методов оптимизирующей компиляции для языков высокого уровня). К примеру, автоматическая сборка мусора, присутствующая в большинстве высокоуровневых языков программирования, считается одним из важнейших улучшений, благотворно повлиявших на скорость разработки

Историю развития:

1. Машинный язык (40-50 годы XX в.).

Программы на машинном языке – очень длинные последовательности единиц и нулей, являлись машинно зависимыми, т.е. для каждой ЭВМ необходимо было составлять свою программу.

2. Ассемблер (начало 50-ых годов XX в.).

Вместо 1 и 0 программисты теперь могли пользоваться операторами (MOV, ADD, SUB и т.д.), которые похожи на английские слова. Программы на ассемблере также являются машинно-зависимыми. Для преобразования в машинный код использовался компилятор (спец. программа – переводчик в машинный код).

3. Первые языки программирования высокого уровня.

С середины 50-ых гг. XX в. начали создавать первые языки программирования высокого уровня (high-levellanguage). Эти языки были Машино независимыми (не привязаны к определеному типу ЭВМ). Но для каждого языка были разработаны собственные компиляторы.

Примеры таких языков: FORTRAN (FORmulaTRANslator; 1954 г.) предназначен для научных и технических расчетов; COBOL (1959 г.) был предназначен в основном для коммерческих приложений (обрабатывал большие объемы нечисловых данных) – CommonBusiness-OrientedLanguage); язык BASIC (Beginner’sAllPurposeInstuctionCode – универсальный язык символьных инструкций для начинающих) (1964 г.)

4. Алгоритмические языки программирования.

С начала 80-ых г. XX в. начали создаваться языки программирования, которые позволили перейти к структурному программированию (использование операторов ветвления, выбора, цикла и практически отказ от частого использования операторов перехода (goto). К этим языкам относятся: язык Pascal (назван его создателем Никлаусом Виртом в честь великого физика Блеза Паскаля; 1970 г.); язык Си, позволяющий быстро и эффективно создавать программный код (1971 г.)

5. Языки объектно-ориентированного программирования

(90-ые г. XX в.). В основу этих языков положены программные объекты, которые объединяют данные и методы их обработки. В этих языках сохранялся алгоритмический стиль программирования. Для них были разработаны интегрированные среды программирования, позволяющие визуально конструировать графический интерфейс приложений:

язык С++ (1983 г.) - продолжение алгоритм. языка Си;

язык ObjectPascal (1989 г.) был создан на основе языка Pascal. После создания среды программирования – Delphi (1995 г.);

язык VisualBasic(1991 г.) был создан корпорацией Microsoft на основе языка Qbasic (1975 г.) для разработки приложений с графическим интерфейсом в среде ОС Windows.

6. Языки программирования для компьютерных сетей.

В 90-ые годы XX в. в связи с бурным развитием Интернета были созданы языки, обеспечивающие межплатформенную совместимость. На подключенных к Интернету компьютерах с различными ОС (Windows, Linux, MacOS и др.) могли выполняться одни и те же программы. Исходная программа компилируется в промежуточный код, который исполняется на компьютере встроенной в браузер виртуальной машиной:

язык Java- объектно-ориентированный язык был разработан фирмой SunMicrosystems для создания сетевого программного обеспечения (1995 г.);

язык JavaScript – язык сценариев Web-страниц (компания Netscape). (1995 г.).

7. Языки программирования на платформе .NET.

Интегрированная среда программирования VisualStudio .Net, разработанная корпорацией Microsoft, позволяет создавать приложения на различных языках объектно-ориентированного программирования, в том числе:

на языке Visual Basic .Net ( наоснове Visual Basic) - 2003 г.;

на языке VisualC# (С-шарп) – на основе языков С++ и J – 2003 г.;

на языке VisualJ# (J-шарп) – на основе Java и JavaScript – 2003 г.

8. Golang, Go - это язык программирования с открытым исходным, который был создан тремя сотрудниками Google и запущен в 2009 году. Go – это производная от популярных языков программирования, таких как C и Java, он предлагает краткие обозначения и стремится сохранить код более простым и читаемым. Разработчики языка, Роберт Гризмер, Роб Пайк и Кен Томпсон, сказали, что сложность C++ была их основным мотиватором. Этот простой язык программирования выполняет большинство своих задач только с помощью стандартной библиотеки. Сочетает в себе скорость динамических языков, таких как Python, и надежность C/C++, Go стал идеальным инструментом для создания распределенных систем с большим объемом данных.

9. Apple представила язык программирования Swift на 2014 WWDC как замену Objective-C. Он разработан простым по своей натуре, Swift фокусируется на скорости и безопасности. С момента своего запуска, Swift пользуется повышенным спросом и стал одним из самых востребованных языков программирования.

10. Rust был разработан Mozilla в 2014 году, и согласно опросу от StackOverflow в 2016 году, Rust был признан самым любимым языком программирования. Rust был разработан Mozilla в качестве альтернативы C++, он фокусируется на «производительности, параллелизме и безопасности памяти». Rust был создан с нуля, и в нем применяется современная архитектура языка программирования. Язык поддерживает большое число разработок и библиотек

11. Hack – ещё один язык, совсем недавно (в 2014 году) созданный IT-гигантом, на этот раз Facebook. За основу был взят PHP, но с улучшениями в области надёжности и быстродействя, обеспечиваемые статической типизацией. Собственно, главной рекламой и демонстрацией возможностей является сам Facebook с клиентской базой свыше миллиарда человек. И, как показывает практика, Hack Марка Цукерберга пока не подводит. Facebook сделал Hack языком с открытым исходным кодом, подлежащим компиляции на виртуальной машине HHVM. Удобство заключается в том, что HHVM работает с транслятором на базе HipHop, который в свою очередь «переваривает» и Hack, и PHP.

1.2. Основы структурного программирования

Структура – это объединение одного или нескольких объектов (переменных, массивов, указателей, других структур и т.д.) Как и массив, она представляет собой совокупность данных. Отличием является те, что к ее элементам необходимо обращаться по имени и что различные элементы структуры не обязательно должны принадлежать одному типу. Переменные, из которых состоит структура, называется членами. Члены структуры еще называются элементами или полями.

Когда объявляется структура, то определяется агрегатный тип, а не переменная. Пока не объявите переменную этого типа, то существовать она не будет.

Структурное программирование — методология разработки программного обеспечения, в основе которой лежит представление программы в виде иерархической структуры блоков. Предложена в 1970-х годах Э. Дейкстрой и др.

В основу структурного программирования как научной методологии разработки алгоритмов и программ заложен ряд принципов системного подхода:

1)программа должна составляться поэтапно небольшими шагами;

2)размер шага определяется количеством решений, применяемых программистом на этом шаге;

3)сложная задача должна разбиваться на простые, легко воспринимаемые блоки, каждый из которых имеет один вход и один выход;

4)логика алгоритма и программы должна опираться на минимальное число достаточно простых базовых управляющих структур.

Структурированная программа представляет собой композицию из последовательных или вложенных друг в друга блоков с одним входом и одним выходом каждый, причем размеры этих блоков могут доходить до уровня отдельных операторов языка.

Важной вехой на пути признания методов структурного программирования явился 1975-й год, когда Д. Кемени и Т. Курц, авторы языка "Бейсик", ввели в него структурные возможности и практически выбросили оператор GOTO. В настоящее время имеется уже несколько языков высокого уровня, основанных на принципах структурного программирования (Паскаль, Модула, Ада, Си).

Подпрограмма является важным элементом структурного программирования. Изначально подпрограммы появились как средство оптимизации программ по объёму занимаемой памяти — они позволили не повторять в программе идентичные блоки кода, а описывать их однократно и вызывать по мере необходимости. К настоящему времени данная функция подпрограмм стала вспомогательной, главное их назначение — структуризация программы с целью удобства её понимания и сопровождения.

Выделение набора действий в подпрограмму и вызов её по мере необходимости позволяет логически выделить целостную подзадачу, имеющую типовое решение. Такое действие имеет ещё одно (помимо экономии памяти) преимущество перед повторением однотипных действий. Любое изменение (исправление ошибки, оптимизация, расширение функциональности), сделанное в подпрограмме, автоматически отражается на всех её вызовах, в то время как при дублировании каждое изменение необходимо вносить в каждое вхождение изменяемого кода.

Даже в тех случаях, когда в подпрограмму выделяется однократно производимый набор действий, это оправдано, так как позволяет сократить размеры целостных блоков кода, составляющих программу, то есть сделать программу более понятной и обозримой.

Достоинства структурного программирования:

– повышается надежность программ (благодаря хорошему структурированию при проектировании, программа легко поддается тестированию и не создает проблем при отладке);

– повышается эффективность программ (структурирование программы позволяет легко находить и корректировать ошибки, а отдельные подпрограммы можно переделывать (модифицировать) независимо от других);

– уменьшается время и стоимость программной разработки;

– улучшается читабельность программ.

1.3. Типовая структура программы на С++

Программа C++ строится из отдельных блоков, называемых функциями. Как правило, программа разделяется на ряд крупных задач, а затем для выполнения этих задач разрабатываются отдельные функции.

Большинство программ на С++ имеют следующий вид:

раздел подключения заголовочных файлов

заголовок программы (функции)

{

тело функции

}

Заголовок программы

Программа C++ состоит из одного или более модулей, называемых функциями. Выполнение программы начинается с функции, имеющей имя main(), поэтому в программе обязательно должна присутствовать функция с таким именем. Если в программе нет такой функции, то нет и законченной программы; компилятор в этом случае указывает, что функция main() не была определена.

Описание такой функции выполняют в разделе заголовка программы и записывают в виде:

void main()

Важно учитывать тот факт, что компилятор С++ различает регистр символов. Поэтому, имя функции, набранное в другом регистре (например: Main() или MAIN()), будет распознаваться как неправильное.

Раздел подключения заголовочных файлов

При создании исполняемого кода программ C++, так же, как и в случае с программами С, используется препроцессор. Это программа, которая обрабатывает исходный файл перед основной компиляцией. Чтобы вызвать этот препроцессор, не надо делать ничего особенного. Он запускается автоматически при компиляции программы.

Каждая программа на С++ вначале имеет директиву вида:

#include < math.h>

Эта директива приводит к тому, что препроцессор добавляет в программу содержимое файла math. Это типичное для препроцессора действие: добавление или изменение текста в исходном коде перед компиляцией.

Директива #include приводит к тому, что содержимое файла math передается в компилятор вместе с содержимым исходного файла. В сущности, содержимое файла math заменяет в программе строку #include < math>. Исходный файл не изменяется, а объединенный файл, созданный из исходного файла и файла math, обрабатывается на следующем этапе компиляции.

Такие файлы, как math, называются файлами включения (поскольку они включаются в другие файлы) или заголовочными файлами (поскольку они включаются в начале файла). Компиляторы C++ поставляются со многими заголовочными файлами, каждый из которых поддерживает отдельное семейство программных средств. Заголовочные файлы в языке С по традиции имеют расширение h, это самый простой способ идентификации типа файла по его имени. Например, заголовочный файл math.h поддерживает различные математические функции языка С++.

Заголовочные файлы находятся в папке Include среды разработки Turbo C++. Если при запуске программы выдается ошибка, указывающая на отсутствие подключаемого заголовочного файла, то в среде Turbo C++ необходимо выполнить настройку. Для этого выполните команду Options – Directories, в поле Include Directoriesвведите ..\INCLUDE, а в поле Library Directories введите ..\LIB.

Тело функции

Тело функции содержит инструкции для компьютера, т.е. определяет то, что собственно делает функция.

Тело функции имеет следующий вид:

{

описание переменных;

операторы;

return;

}

Как видно тело функции заключается в фигурные скобки.

Оператор представляет собой инструкцию для компьютера. Чтобы понять исходный код, компилятор должен знать, когда заканчивается один оператор и начинается другой. В некоторых языках программирования используются разделители операторов. В языке Pascal один оператор от следующего отделяется точкой с запятой. В некоторых случаях точку с запятой в языке Pascal можно опускать, например, после оператора перед словом END, когда фактически не происходит разделение двух операторов. Но в языке C++, так же, как и в языке С, применяется скорее признак (указатель) конца, чем разделитель. Признак конца – это точка с запятой, которая отмечает конец оператора; она является скорее частью оператора, чем разделителем между операторами. Практический результат заключается в том, что в языке C++ никогда нельзя опускать точку с запятой.

Инструкция RETURN 0 указывает на завершение работы функции и возврат в вызывающую программу. В главной функции main() эту инструкцию можно не указывать.

В тексте программ допускается использовать комментарии. В языке C++ комментарии обозначаются двойной наклонной чертой (//). В программах C+ + можно использовать комментарии из языка С, которые заключены между символами /* и */.

Поскольку комментарий из языка С заканчивается не символом конца строки, а символом */, его можно продолжать на несколько строк. В программах можно использовать любой из этих двух видов комментариев или оба вместе.

1.4. Разработка программ с графическим интерфейсом на С++

Графический интерфейс

Большинство современных операционных систем позволяют пользователям использовать два типа интерфейсов: консольный и графический.

В консольном интерфейсе работа с компьютером осуществляется при помощи ввода текстовых команд. Первые операционные системы были рассчитаны исключительно на консольный интерфейс.

В графическом интерфейсе программы и данные представлены в виде графических элементов. Идея графического интерфейса возникла в корпорации Xerox. Идея возникла в 1970 году и была воплощена в компьютере Xerox Alto, который не получил широкого распространения. Позже свою реализацию графического интерфейса предложили фирмы Apple и Microsoft. После этого графический интерфейс получил широкое распространение и стал реализовываться во многих системах.

Первоначально графический интерфейс был ориентирован на мышь, но сейчас он успешно применяется в устройствах с сенсорными экранами.

Главным средством разработки ПО для MS Windows является MS Visual Studio [1]. Эта интегрированная среда разработки (IDE) позволяет разрабатывать ПО на разных языках программирования, но основными языками, конечно, являются C++ и C#. Для разработки интерфейса приложения имеются два основных средства — Windows Forms (WinForms) и Windows Presentation Foundation (WPF). Большая часть существующих приложений для MS Windows разработана с использованием WinForms, однако с появлением более современных версий ОС (MS Windows 7, 8), система WPF становится более популярной. Кроме того, последние версии MS Visual Studio позволяют использовать язык разметки HTML5 для построения интерфейсов, близких по стилю к нативным веб-приложениям.

ГЛАВА 2 ПРАКТИЧЕСКАЯ ЧАСТЬ

Разработка программ с графическим интерфейсом на С++ на практике

Открываем Microsoft Visual Studio. Файл  Создать  Проект

Шаблон Visual C++CLRПустой проект CLRВписываем имя проекта и ОК

В панели обозреватель на нашем проекте нажимаем ПКМДобавитьСоздать элемент

Visual C++UIФорма Windows FormsДобавить

Задаем имя для заголовка, меняем шрифт и размеры шрифта

Переносим на нашу форму элемент Label

И тоже задаем имя для заголовка, меняем шрифт и размеры шрифта

Для того что бы посмотреть, что у нас получилось необходимо нажать

“Локальный отладчик Windows”

Наше готовое тестовое окно

Заключение

В данной курсовой работе мы дали определение основным понятия программирования, рассмотрели языки программирования, историю развития, структуру программ, структуру программ на C++. Рассмотрели разработку программы с графическим интерфейсом на С++ и реализовали на практике. Познакомились со средой разработки Microsoft Visual C++.

Источники и литература

  1. Страуструп Б. Программирования C++ - Бином 2011
  2. Шлее М. Профессиональное программирование на C++ СПб.: БХВ-Петербург - 2015
  3. Г. Шилдт «Самоучитель С++» - СПб.:БХВ-Петербург. 2001.
  4. А. Мешков, Ю. Тихомиров «Visual C++ и MFC» - СПб.:БХВ-Петербург. 2002
  5. Карпов Б., Баранов Т. «С++: специальный справочник» - СПб.: Питер, 2001.
  6. Культин Н. «С/С++ в задачах и примерах» - СПб.:БХВ-Петербург, 2002.