
- •090900.62 Информационная безопасность
- •Введение
- •Теоретическая часть
- •Постановка задачи
- •1.3 Порядок выполнения работы
- •1.4 Контрольные вопросы
- •2 Лабораторная работа № 2. Массивы
- •2.1 Теоретическая часть
- •2.2 Постановка задачи
- •2.3 Порядок выполнения работы
- •2.4 Контрольные вопросы
- •3 Лабораторная работа № 3. Указатели
- •3.1 Теоретическая часть
- •3.2 Постановка задачи
- •3.3 Контрольные вопросы
- •4 Лабораторная работа № 4. Классы
- •4.1 Теоретическая часть
- •4.2 Задание
- •5 Лабораторная работа № 5. Программирование с использованием библиотеки mfc. Создание пунктов меню
- •6 Лабораторная работа № 6. Программирование с использованием библиотеки mfc. Панель инструментов
- •7 Лабораторная работа № 7. Программирование с использованием библиотеки mfc. Основы рисования
- •Список литературы
Теоретическая часть
Visual С++ 2010 является средой разработки программ для операционных систем семейства Windwos. Среда позволяет разрабатывать два принципиально отличающихся вида приложений: программы, которые выполняются на компьютере как «родные» (native); программы, выполняющиеся под управлением общеязыковой исполняющей среды (Common Language Runtime- CLR) Net Framework. В данных методических указания будут рассматриваться программы первого типа.
Среда Visual C++ позволяет создавать программы и компоненты различных типов, одним из простейших которых является консольные приложения (программы командной строки). Программы данного типа не используют графический интерфейс, а для взаимодействия с пользователем используются только клавиатура и экран. Выбор изучения именно консольного приложения обусловлен тем, что данная работа знакомит с языком С++ и средой Visual C++, поэтому нет необходимости перегружать работу особенностями приложений с графическим интерфейсом.
Приступим к разработке первого консольного приложения. Запустим среду программирования Visual С++. Создайте новый проект, выбрав пункт меню «Файл»-«Создать»-«Проект»(Shift+Ctrl+N).
Рисунок 1.1 – Создание нового проекта
Далее выберите шаблон «Консольное приложении Win32».
Рисунок 1.2 – Выбор шаблона консольного приложения
В поле «Имя» укажите название проекта, выберите папку для хранения файлов проекта и нажмите кнопку «OK». В следующем диалоговом окне нажмите «Готово».
Рисунок 1.3 – Обозреватель решений
В итоге у Вас на экране должны отображаться окно «Обозреватель решений» и содержимое файла «Lr1.cpp». Если файл Lr1.cpp не отображается, то дважды щелкните ЛК мыши на название файла в обозревателе решений. Для отображения номеров строк выберите пункт меню «Сервис»-«Параметры» и в появившемся окне выберите «Текстовый редактор»-«С/С++»-«Общие», затем поставьте галочку «Номера строк» в разделе «Показывать».
Автоматически созданная программа ничего не делает. Произведем модификацию исходного кода:
#include "stdafx.h"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
std::cout<<"Hello World!!\n";
return 0;
}
Разберем исходный код. В первой строке директива include добавляет к коду содержимое файла stdafx.h в то место, где она расположена. Директива #include <iostream> подключает библиотеку с базовыми операциями ввода-вывода. Далее идет описание функции _tmain. Программа может содержать большое количество функций, главной из которых является функция main. В данном примере функция обозначена как _tmain, что означает что используется кодировка Unicode.
Оператор std::cout осуществляет вывод на экран вывода строки.
Для сборки решения нажмите клавишу «F7». В результате в окне вывода должен появится текст следующего вида:
1>------ Построение начато: проект: Lr1, Конфигурация: Debug Win32 ------
1>Построение начато 02.09.2012 16:27:43.
1>InitializeBuildStatus:
1> Создание "Debug\Lr1.unsuccessfulbuild", так как было задано "AlwaysCreate".
1>ClCompile:
1> Для всех выходных данных обновления не требуется.
1> Lr1.cpp
1>ManifestResourceCompile:
1> Для всех выходных данных обновления не требуется.
1>Manifest:
1> Для всех выходных данных обновления не требуется.
1>LinkEmbedManifest:
1> Для всех выходных данных обновления не требуется.
1> Lr1.vcxproj -> D:\ASP\ООП\Лабораторная работа\C++\Lr1\Debug\Lr1.exe
1>FinalizeBuildStatus:
1> Файл "Debug\Lr1.unsuccessfulbuild" удаляется.
1> Обращение к "Debug\Lr1.lastbuildstate".
1>
1>Построение успешно завершено.
1>
1>Затраченное время: 00:00:01.61
========== Построение: успешно: 1, с ошибками: 0, без изменений: 0, пропущено: 0 ==========
Если в проекте присутствуют ошибки, то они сообщаются пометкой «error». В данном случае ошибки нет и построение выполнено успешно. В следующем примере показан результат построения, когда вместо оператора cout было написано cout1:
1>d:\asp\ооп\лабораторная работа\c++\lr1\lr1\lr1.cpp(10): error C2039: cout1: не является членом "std"
1>d:\asp\ооп\лабораторная работа\c++\lr1\lr1\lr1.cpp(10): error C2065: cout1: необъявленный идентификатор
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:00.69
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Скомпилированная программа находится в папке debug.
Для запуска программы нажмите клавиши «Ctrl+F5» .
Рисунок 1.4 – Результат выполнения программы
Усложним нашу программу. Пусть она рассчитывает площадь прямоугольника. Для этого нужно знать длину и ширину прямоугольника. Соответственно, объявим 3 переменные вещественного типа float: a,b, S. Для ввода данных воспользуемся оператором cin. Вариант программы представлен ниже:
#include "stdafx.h"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Rus"); //поддержка кириллицы
float a,b,S;
std::cout<<"Программ расчета площади прямоугольника!!!\n";
std::cout<<"Введите длину прямоугольника:";
std::cin>>a;
std::cout<<"Введите ширину прямоугольника:";
std::cin>>b;
S=a*b;
std::cout<<"Площадь прямоугольника равна:"<<S<<"\n";
return 0;
}
Обратите внимание, что для C++ имеет значение регистр букв, т.е. s и S это две разные переменные.
Для выполнения лабораторной работы понадобятся знание операторов цикла и условия.
Оператор while имеет следующий формат:
while ( выражение ) оператор
Выражение определяет условие повторения тела цикла, представленного простым или составным оператором. Выполнение оператора начинается с вычисления выражения. Если оно истинно (не равно false), выполняется оператор цикла.
Пример:
while (a<10)
{
a=a+1;
b=b*2;
}
Условный оператор if используется для разветвления процесса вычислений на два направления. Формат оператора:
i f ( выражение ) оператор_1; [else оператор_2;]
Сначала вычисляется выражение, которое может иметь арифметический тип или тип указателя. Если оно не равно нулю (имеет значение true), выполняется первый оператор, иначе — второй. После этого управление передается на оператор, следующий за условным.
Одна из ветвей может отсутствовать, логичнее опускать вторую ветвь вместе с ключевым словом еlse. Если в какой-либо ветви требуется выполнить несколько операторов, их необходимо заключить в блок, иначе компилятор не сможет понять, где заканчивается ветвление. Пример:
if (a!=0)
{
b=2;
c=23;
}
else d=2;
В работе предполагается осуществить запрос на продолжение цикла. Пользователь должен нажать клавишу «1» для продолжения цикла. Ниже приведен пример кода, реализующий данное действие:
char s=’1’;
while (s==’1’)
{
std::cin>>s;
}