Популярность этого языка обусловлена ещё и мощными визуальными средствами разработки интерфейса пользователя. Высокая производительность работы – ещё одно преимущество Visual C++.
В среде Visual C++ можно строить различные типы проектов. Такие проекты после их создания можно компилировать и запускать на исполнение. Фирма Microsoft разработала специальный инструментарий, облегчающий и ускоряющий создание проектов в среде Visual C++.
Рассмотрим некоторые типы проектов, которые можно создавать при помощи различных средств (мастеров проектов) Microsoft Visual C++:
MFC AppWizard (exe) – при помощи мастера приложений можно создать проект Windows-приложения которое имеет однодокументный, многодокументный или диалоговый интерфейс. Однодокументное приложеие может предоставлять пользователю в любой момент времени работать только с одним файлом. Многодокументное приложение, напротив, может одновременно представлять несколько документов, каждый в собственном окне. Пользовательский интерфейс диалогового приложения представляет собой единственное диалоговое окно.
MFC AppWizard (dll) – этот мастер приложений позволяет создать структуру DLL, основанную на MFC. При помощи него можно определить характеристики будующей DLL.
AppWizard ATL COM – это средство позволяет создать элемент управления ActiveX или сервер автоматизации, используя новую библиотеку шаблонов ActiveX (ActiveX Template Library - ATL). Опции этого мастера дают возможность выбрать активный сервер (DLL) или исполняемый внешний сервер (exe-файл).
Custom AppWizard – при помощи этого средства можно создать пользовательские мастера AppWizard. Пользовательский мастер может базироваться на стандартных мастерах для приложений MFC или DLL, а также на существующих проектах или содержать только определеямые разработчиком шаги.
DevStudio Add-in Wizard – мастер дополнений позволяет создавать дополнения к Visual Studio. Библиотека DLL расширений может поддерживать панели инструментов и реагировать на события Visual Studio.
MFC ActiveX ControlWizard - мастер элементов управления реализует процесс создания проекта, содержащего один или несколько элементов управления ActiveX, основанных на элементах управления MFC.
Win32 Application – этот мастер позволяет создать проект обычного Window-приложения. Проект создается незаполненным, файлы с исходным кодом в него следует добавлять вручную.
Win32 Console Application – мастер создания проекта консольного приложения. Консольная приложение – это программа, которая выполняется из командной cтроки окна DOS или Windows и не имеет графического интерфейса (окон). Проект консольного приложения создается пустым, предполагая добавление файлов исходного текста в него вручную.
Win32 Dynamic-Link Library – создание пустого проекта динамически подключаемой библиотеки. Установки компилятора и компоновщика будут настроены на создание DLL. Исходные файлы следует добавлять вручную.
Win32 Static Library – это средство создает пустой проект, предназначенный для генерации статической (объектной) библиотеки. Файлы с исходным кодом в него следует добавлять вручную [7].
Исходя из выше перечисленных функций языка VisualC++ можно с уверенностью сказать, что этот язык является сверхнадёжным и обладает обширными функциями, благодаря которым можно написать программы различной сложности.
4 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ
4.1 Описание алгоритма программы
Разработанная в ходе выполнения курсовой работы программа, состоит из двух функций. Алгоритм выполнения программы изображен на рисунке 4.1 [3].
Рисунок 4.1 – Алгоритм выполнения программы
4.2 Описаниеиспользованных програмних средств
Любая программа представляет собой последовательность инструкций в машинных кодах, которые управляют поведением определенного вычислительного устройства [4].
4.2.1 Структура программы
Все программы на языке С++ состоят из одной или нескольких функций. В любом случае программа должна содержать функцию main(), которая при выполнении программы вызывается первой. Определение функции main состоит из заголовка voidmain(), и последовательностиинструкций, заключённых в фигурные скобки. Слово void в заголовке говорит о том, что функция не должна вырабатывать и возвращать значение. Все программы должны иметь функцию с именем main.
Общий вид программы на языке С++ показан в следующем примере. Функции с именами fun1(),…,funn() определяются пользователем [2]. Пример:
подключение заголовочных файлов
объявление глобальных переменных
тип_возвращаемого_значения main(список_параметров)
{
последовательность операторов
}
тип_возвращаемого_значения fun1(список_параметров)
{
последовательность операторов
}
.
.
.
тип_возвращаемого_значения funn(список_параметров)
{
последовательность операторов
}
4.2.2 Заголовочные файлы
Любая программа на языке С++ содержит подключение заголовочных файлов с помощью директивы препроцессора #include<имя_заголовочного_файла.h>.
Директива #includeвынуждает компилятор считать и подставить в исходный файл с заданным именем. Это имя заключается в двойные или угловые скобки.
Кавычки и угловые скобки, в которых указываются имена включаемых файлов, определяют способ их поиска на жестком диске. Если имя файла содержится в угловых скобках, он должен находиться в каталоге, указанном компилятором. Если имя файла заключено в кавычки, как правило, его поиск выполняется в рабочем каталоге. Если файл не найден, то поиск повторяется так, будто имя файла содержалось в угловых скобках.
Например:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
В первом примере с помощью директивы #include подключают заголовок ввода-вывода <iostream.h>. Этот файл содержит информацию, необходимую, чтобы компилировать программу, которая использует cin и cout.
Во втором примере директивы #include подключают заголовок <iomanip.h>, который даёт указание препроцессору С++ включить в программу параметризованный манипулятор потока setw. Он предназначен для манипулирования выходными величинами на экране, например:
cout << setw(3)<<year
Обращение setw(3) определяет, что следующая выходная величина будет напечатана с шириной (размером) поля 3, т.е. её значение будет содержать по крайней мере 3 символьных позиции.
В третьем примере с помощью директивы #include подключают заголовок <conio.h>, который содержит функцию задержки экрана getch() [4].
4.2.3 Типы данных
В языке С++ существуют 5 типов данных: символ, целое число, число с плавающей запятой, число с плавающей запятой удвоенной точности и переменная, не имеющая значение. Им соответствуют следующие ключевые слова: char, int, float, double, void. Все другие типы данных в языке С++ создаются на основе элементарных типов, указанных выше. Размер переменных и диапазон их значений зависит от типа процессора и компилятора.
К пяти основным типам данных, определенных в языке С, язык С++ добавляет еще такой тип как bool.
Тип void используется для определения функции, не возвращающей никаких значений, либо для создания обобщенного указателя.
В таблице 1.1 приведен перечень базовых типов переменных и их размер [2,5].
Таблица 1.1
Базовые типы данных для ПК на базе платформы Іntel
Тип | Размер, байт | Значения |
Bool | 1 | true (1) или false(0) |
unsіgned short іnt | 2 | от 0 до 65 535 |
short іnt | 2 | от -32 768 до 32 767 |
unsіgned long іnt | 4 | от 0 до 4 294 967 295 |
long іnt | 4 | от -2 147 483 648 до 2 147 483 647 |
іnt (16 разрядов) | 2 | от -32 768 до 32 767 |
іnt (32 розряда) | 4 | от -2 147 483 648 до 2 147 483 647 |
unsіgned іnt (16 разрядов) | 2 | от 0 до 65 535 |
unsіgned іnt (32 розряда) | 4 | от 0 до 4 294 967 295 |
Char | 1 | от 0 до 256 |
Float | 4 | от 1.2е-38 к 3.4е38 |
Double | 8 | от 2.2е-308 к 1.8е308 |
long double | 10 | от 3.4е-4932 к 3.4е 4932 |
Voіd | 2 или 4 | - |
4.2.4 Переменные
Переменная – это имя ячейки памяти, которую можно использовать для хранения модифицируемого значения. Все переменные должны быть объявлены до своего использования.
Ниже приведен общий вид объявления переменной.
тип список_переменных;
Например:
inti,j;
При объявлении переменной ей можно присвоить начальное значение. Общий вид инициализации выглядит следующим образом:
тип имя_переменной = значение;
Например:
inta=0;
Глобальные и локальные статические переменные инициализируются только при запуске программы. Локальные переменные инициализируются каждый раз при входе в блок, где они описаны. Неинициализированные локальные переменные имеют неопределенное значение, пока к ним не будет применен оператор присваивания. Неинициализированные глобальные переменные и локальные статические переменные автоматически устанавливаются равными нулю [5].
Практически все символы можно вывести на печать, заключив их в одиночные кавычки. Однако некоторые символы, например, символ перехода на новую строку, невозможно ввести в строку с клавиатуры. Для этого в языке С/С+ + предусмотрены специальные управляющие символьные константы.
4.2.5 Идентификаторы
В языке С/С++ имена переменных, функций, меток и других объектов, определенных пользователем, называются идентификаторами. Идентификаторы могут состоять из одного или нескольких символов. Первый символ идентификатора должен быть буквой или символом подчеркивания, а следующие символы должны быть буквами, цифрами или символами подчеркивания.
В языке С++ нет ограничений на длину идентификаторов, и значащими считаются, по крайней мере, 1024 первых символа.
Символы, набранные в верхнем и нижнем регистре, различаются т. к. язык С/С++ чувствителен к регистру. Следовательно, iminImin, IMIN – это различные идентификаторы. Переменная с именем, например, а1 в языке С++ записывается как а1. В противном случае компилятор выдаст сообщение об ошибке.