С++ является языком программирования общего назначения. Естественная для него область применения - системное программирование, понимаемое в широком смысле этого слова.
C++ — чрезвычайно мощный язык, содержащий средства создания эффективных программ практически любого назначения, от низкоуровневых утилит и драйверов до сложных программных комплексов самого различного назначения. В частности:
- Поддерживаются различные стили и технологии программирования, включая традиционное директивное программирование, ООП, обобщённое программирование, метапрограммирование (шаблоны, макросы).
- Предсказуемое выполнение программ является важным достоинством для построения систем реального времени. Весь код, неявно генерируемый компилятором для реализации языковых возможностей (например, при преобразовании переменной к другому типу), определён в стандарте. Также строго определены места программы, в которых этот код выполняется. Это даёт возможность замерять или рассчитывать время реакции программы на внешнее событие.
- Автоматический вызов деструкторов объектов при их уничтожении, причём в порядке, обратном вызову конструкторов. Это упрощает (достаточно объявить переменную) и делает более надёжным освобождение ресурсов (память, файлы, семафоры и т. п.), а также позволяет гарантированно выполнять переходы состояний программы, не обязательно связанные с освобождением ресурсов (например, запись в журнал).
- Пользовательские функции-операторы позволяют кратко и ёмко записывать выражения над пользовательскими типами в естественной алгебраической форме.
- Язык поддерживает понятия физической (const) и логической (mutable) константности. Это делает программу надёжнее, так как позволяет компилятору, например, диагностировать ошибочные попытки изменения значения переменной. Объявление константности даёт программисту, читающему текст программы дополнительное представление о правильном использовании классов и функций, а также может являться подсказкой для оптимизации. Перегрузка функций-членов по признаку константности позволяет определять изнутри объекта цели вызова метода (константный для чтения, неконстантный для изменения). Объявление mutable позволяет сохранять логическую константность при использовании кэшей и ленивых вычислений.
- Используя шаблоны, возможно создавать обобщённые контейнеры и алгоритмы для разных типов данных, а также специализировать и вычислять на этапе компиляции.
- Возможность имитации расширения языка для поддержки парадигм, которые не поддерживаются компиляторами напрямую. Например, библиотека Boost.Bind позволяет связывать аргументы функций.
- Возможность создания встроенных предметно-ориентированных языков программирования. Такой подход использует, например библиотека Boost.Spirit, позволяющая задавать EBNF-грамматику парсеров прямо в коде C++.
- Используя шаблоны и множественное наследование можно имитировать классы-примеси и комбинаторную параметризацию библиотек. Такой подход применён в библиотеке Loki, класс SmartPrt которой позволяет, управляя всего несколькими параметрами времени компиляции, сгенерировать около 300 видов «умных указателей» для управления ресурсами.
- Кроссплатформенность: стандарт языка накладывает минимальные требования на ЭВМ для запуска скомпилированных программ. Для определения реальных свойств системы выполнения в стандартной библиотеке присутствуют соответствующие возможности (например, std::numeric_limits <T>). Доступны компиляторы для большого количества платформ, на языке C++ разрабатывают программы для самых различных платформ и систем.
- Эффективность. Язык спроектирован так, чтобы дать программисту максимальный контроль над всеми аспектами структуры и порядка исполнения программы. Ни одна из языковых возможностей, приводящая к дополнительным накладным расходам, не является обязательной для использования — при необходимости язык позволяет обеспечить максимальную эффективность программы.
- Имеется возможность работы на низком уровне с памятью, адресами.
- Высокая совместимость с языком Си, позволяющая использовать весь существующий Си-код (код на Си может быть с минимальными переделками скомпилирован компилятором C++; библиотеки, написанные на Си.
Рабочий проект
Общие сведения
Среда функционирования:
Microsoft Visual Studio – это новая разработка компании Microsoft, позволяющая создавать приложения, работающие на платформе.net. Особенность этой платформы заключается в широком наборе сервисов, которые доступны в различных языках программирования. При этом сервисы реализуются в виде промежуточного кода, который не зависит от базовой архитектуры. Едва ли не главной целью создания такой платформы было оснащение разработчиков специальными сервисно-ориентированными приложениями, которые могли бы работать на любой платформе, начиная от персонального компьютера и заканчивая мобильным устройством.
Microsoft Visual Studio объединяет в себе огромное количество функций, позволяющих осуществлять разработки для Windows всех версий, в том числе и 8, Интернета, SharePoint, различных мобильных устройств и облачных технологий. В Visual Studio реализуется новая среда разработчика, благодаря которой создавать приложения стало проще. Microsoft Visual Studio - это обновленная и упрощенная программная среда, для которой характерна высокая производительность, причем она не зависит от особенностей оборудования.
Каждая новая версия программы состоит из новейших инструментов и технологий, позволяющих разрабатывать приложения с учетом особенностей и положительных моментов современных платформ. Например, Visual Studio 2013 может поддерживать более ранние версии, в том числе Windows XP и Windows Server 2003. При этом разработчикам открыта дорога к созданию новых и модернизации уже существующих приложений, предназначенных для ранних версий ОС Windows. Стоит отметить, что в процессе использования поддерживаемых системой вариантов исходные файлы, проекты и решения в программе Visual Studio будут работоспособными, но исходный код может нуждаться в изменениях.
Visual Studio 2015 представляет собой передовую программу, которая дает возможность любым по размеру командам осуществлять проектирование и создание привлекательных приложений. Благодаря инструментам гибкого планирования можно внедрять методы последовательной разработки и применяться гибкие методологии в темпе, удобном для пользователя.
С помощью расширенных средств моделирования, обнаружения и проектирования можно максимально полно описать систему, которая позволит наиболее удачно реализовать конкретную концепцию архитектуры.
Запуск программы:
Для запуска программы необходимо либо правой кнопкой мыши кликнуть по ярлыку программы Microsoft Visual Studio 2015 (рис.2) и выбрать «Открыть», либо дважды кликнуть по нему левой кнопкой мыши.
Рисунок 2-Ярлык программы Microsoft Visual Studio 2015
В ответ на это действие откроется начальная страница (рис.3).
Рисунок 3 - Начальная страница программы Microsoft Visual Studio 2015
Далее нажимаем «Создать проект» и появляется следующее окно, которое показано на рисунке 4.
Рисунок 4 – Создание проекта
Даём имя новому проекту «КурсоваяООП» и указываем его расположение. В меню слева выбираем «Visual C++», затем «Win32». Посередине окна выбираем «Консольное приложение Win32». Нажимаем «ок».
В следующем окне нажимаем «Далее», в «Мастере приложений Win32» (рис.5) выделяем пункт «Пустой проект» и нажимаем «Готово» (рис.6).
Рисунок 5 - Мастер приложений Win32
Рисунок 6 – Мастер приложений Win32 –Параметры приложения
После этого открывается окно (рис.7). В обозревателе решений создаем файл «Kadr.h» в «Заголовочных файлах» (рис.8) и файлы «Kadr.cpp» и «Proekt.cpp» в «Файлах исходного кода» (рис.9, рис.10).
Рисунок 7 – Окно создания проекта
Рисунок 8 – Добавление нового элемента – Заголовочный файл (Kadr.h)
Рисунок 9 – Добавление нового элемента –Файл С++ (Kadr.cpp)
Рисунок 10 – Добавление нового элемента –Файл С++ (Proekt.cpp)
Далее начинаем работать над программным кодом в среде программирования Visual Studio 2015 (рис.11)
Рисунок 11 – Среда программирования Visual Studio 2015
Способ инсталляции:
Копирование исполняемого файла программы на нужный носитель.
Требования к По и к ТО:
Поддерживаемые операционные системы:
- Windows 8.1 (x86 и x64)
- Windows 8 (x86 и x64)
- Windows 7 SP1 (x86 и x64)
- Windows Server 2012 R2 (x64)
- Windows Server 2012 (x64)
- Windows Server 2008 R2 SP1 (x64)
-
Требования к оборудованию:
- Процессор с частотой 1,6 ГГц или более мощный
- 1 ГБ ОЗУ (1,5 ГБ при использовании виртуальной машины)
- 20 ГБ свободного дискового пространства
- Жесткий диск со скоростью вращения 5400 об/мин
- Видеоадаптер с поддержкой DirectX 9; минимально допустимое разрешение экрана — 1024 x 768
Дополнительные требования:
- Internet Explorer 10
- Обязательна установка KB2883200 (доступно через Центр обновления Windows)
- Для разработки под Windows Phone:
1) Разработка для Windows Phone 8.0 требует наличия Windows 8.1 (64-разрядной версии) или более новой версии
2) Разработка для Windows Phone 8.1 требует наличия Windows 8.1 (32-разрядной версии) или более новой версии
3) Для эмуляторов Windows Phone требуется выпуск Windows 8.1 Профессиональная (64-разрядная версия) или выше, а также процессор с поддержкой Client Hyper-V и преобразования адресов второго уровня (SLAT)
Если ваш компьютер отвечает требованиям к операционной системе, но не соответствует требованиям к оборудованию для работы с эмуляторами Windows Phone, вы сможете установить и запустить средства разработки для Windows Phone. Однако эмуляторы Windows Phone 8.0 и 8.1 не будут функционировать, и вам понадобится устройство для развертывания и тестирования приложений Windows Phone.
Укрупненный алгоритм
Классы
В данном проекте реализован класс:
Kadr{};
В структуру класса входят следующие переменные:
int id - порядковый номер;
string fio – ФИО кадра;
string birthday – дата рождения кадра;
string adres – адрес проживания кадра;
int telefon – номер мобильного телефона кадра.
Методы, рассмотренные в проекте:
void show ();// метод вывода информации на экран
void dobavlenie();// метод заполнения новыми данными
void poisk(string mesto);// метод поиска данных
izFile();// метод считывания/записи информации из/на файл (-а)
Конструкторы:
Kadr(){}//пустой конструктор
Kadr(int id, string fio, string birthday, string adres, int telefon)// содержательный конструктор
Деструктор:
~Kadr();
Модули
Исходный текст программы размещается в 3 модулях:
- Kadr.h – заголовочный файл
- Kadr.cpp – файл класса Kadr, используется для описания методов
- Proekt.cpp – основной файл класса Kadr с методом main()