С++ лабы
.pdfМИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
Бийский технологический институт (филиал)
федерального государственного бюджетного образовательного учреждения высшего профессионального образования «Алтайский государственный технический университет
им. И.И. Ползунова»
А.И. Сидоренко, Е.В. Сыпин
ПРОГРАММИРОВАНИЕ НА С++ В СРЕДЕ WINDOWS
Методические рекомендации к выполнению лабораторных работ для студентов направления подготовки
09.03.02 (230400.62) «Информационные системы и технологии»
Бийск Издательство Алтайского государственного технического
университета им. И.И. Ползунова
2015
УДК 004.45(076)
Рецензент: Г.С. Ломакин, к. т. н., профессор кафедры ИУС БТИ АлтГТУ
Сидоренко, А.И.
Программирование на C++ в среде Windows: методические рекомендации к выполнению лабораторных работ для студентов направления подготовки 09.03.02 (230400.62) «Информационные системы и технологии» / А.И. Сидоренко, Е.В. Сыпин; Алт. гос. техн. ун-т, БТИ. – Бийск: Изд-во Алт. гос. техн. ун-та, 2015. –
46 с.
В методических рекомендациях приведены задания к лабораторным работам по курсу «Программирование на С++ в среде Windows» и необходимая справочная информация для выполнения этих заданий.
УДК 004.45(076)
Рассмотрены и одобрены на заседании кафедры МСИА.
Протокол № 19 от 06.02.2015 г.
© Сидоренко А.И., Сыпин Е.В., 2015
© БТИ АлтГТУ, 2015
|
СОДЕРЖАНИЕ |
|
Введение ....................................................................................................... |
4 |
|
1 |
Базовые типы данных и ввод-вывод. Арифметические операции и |
|
математические функции языка С++ ......................................................... |
5 |
|
|
1.1 Теоретическая часть .......................................................................... |
5 |
|
1.2 Варианты заданий к лабораторной работе .................................... |
14 |
2 |
Функции................................................................................................... |
16 |
|
2.1 Теоретическая часть ........................................................................ |
16 |
|
2.2 Варианты заданий к лабораторной работе .................................... |
19 |
3 |
Указатели................................................................................................. |
21 |
|
3.1 Теоретическая часть ........................................................................ |
21 |
|
3.2 Варианты заданий к лабораторной работе .................................... |
23 |
4 |
Объекты и классы ................................................................................... |
24 |
|
4.1 Теоретическая часть ........................................................................ |
25 |
|
4.2 Варианты заданий к лабораторной работе .................................... |
27 |
5 |
Перегрузка операторов........................................................................... |
29 |
|
5.1 Теоретическая часть ........................................................................ |
29 |
|
5.2 Варианты заданий к лабораторной работе .................................... |
32 |
6 |
Наследование. Виртуальные функции.................................................. |
33 |
|
6.1 Теоретическая часть ........................................................................ |
33 |
|
6.2 Варианты заданий к лабораторной работе .................................... |
37 |
7 |
Шаблоны функций и классов ................................................................ |
41 |
|
7.1 Теоретическая часть ........................................................................ |
41 |
|
7.2 Варианты заданий к лабораторной работе .................................... |
42 |
8 Требования к отчёту о лабораторной работе ....................................... |
43 |
|
Список рекомендуемой литературы ........................................................ |
45 |
3
ВВЕДЕНИЕ
Всоответствии с требованиями ФГОС ВПО направления подготовки 230400.62 «Информационные системы и технологии» и требованиями к результатам освоения дисциплины «Программирование на С++ в среде Windows» студенты должны уметь профессионально пользоваться компьютерной техникой и современными программными продуктами для проектирования базовых и прикладных информационных технологий и владеть навыками разработки средств автоматизированного проектирования информационных технологий.
При разработке современных крупных программных комплексов широко используется объектно-ориентированное проектирование. Принципы объектно-ориентированного программирования были основополагающими при разработке языка C++, поэтому синтаксис и принципы разработки C++ определяют суть объектноориентированного программирования. Язык C++ предназначен для разработки высокопроизводительного программного обеспечения и чрезвычайно популярен среди программистов. При этом он обеспечивает концептуальный фундамент, на который опираются другие языки программирования. Язык С++ можно назвать универсальным языком программирования, поскольку практически все профессиональные программисты на том или ином уровне знакомы с C++. Изучение C++ позволяет приобрести фундаментальные знания, которые позволят освоить любые аспекты современного программирования.
Входе выполнения лабораторных работ студенты будут ознакомлены с основными элементами языка C++ и получат практические навыки использования объектно-ориентированного подхода при разработке приложений в среде Windows.
4
1 БАЗОВЫЕ ТИПЫ ДАННЫХ И ВВОД-ВЫВОД. АРИФМЕТИЧЕСКИЕ ОПЕРАЦИИ И МАТЕМАТИЧЕСКИЕ ФУНКЦИИ ЯЗЫКА С++
Цель работы: освоить работу в среде разработки Visual Studio 2010 и основные элементы языка C++.
Задачи:
–освоить процесс создания и компиляции нового проекта в среде
Visual Studio 2010;
–изучить основные типы данных и инструкции управления языка
C++;
–изучить арифметические операции и математические функции языка C++;
–реализовать программу в соответствии с заданием на лабораторную работу.
1.1 Теоретическая часть 1.1.1 Создание нового проекта
Для создания нового проекта в среде разработки Visual Studio 2010 необходимо выбрать пункт «Создать проект…» на Начальной странице или выбрать пункт меню Файл/Создать/Проект. Внешний вид окна «Создать проект» представлен на рисунке 1.
Рисунок 1 – Внешний вид окна «Создать проект»
5
В данном окне необходимо указать тип создаваемого проекта – Консольное приложение Windows. Далее необходимо указать имя и расположение проекта и нажать кнопку «ОК».
После этого в Мастере приложений Win32 установить галочку «Пустой проект», как показано на рисунке 2, и нажать кнопку «Готово».
Рисунок 2 – Внешний вид окна мастера приложений Win32
Следующий шаг – создание файла исходного кода. Для этого в Обозревателе решений (Вид/Обозреватель решений) щелкнуть правой кнопкой мыши по строке Файлы исходного кода и выбрать пункт
Добавить/Создать элемент. В появившемся окне «Добавление ново-
го элемента» (рисунок 3) выбрать тип создаваемого элемента – Файл C++ (.cpp), ввести имя и нажать кнопку «Добавить».
Рисунок 3 – Внешний вид окна «Добавление нового элемента»
6
В появившемся окне пишется исходный код приложения. Для компиляции приложения используется команда Отладка/Начать отладку. Для пошаговой отладки используется механизм точки останова
(Отладка/Точка останова).
1.1.2 Основные элементы C++-программы
Минимальная программа, написанная на языке C++, выглядит следующим образом:
int main ()
{
}
С функции main () начинается выполнение любой C++- программы, независимо от расположения этой функции в исходном тексте программы. Данная функция не может быть переименована, и при ее отсутствии в исходном коде компилятор выдаст ошибку. Ключевое слово int (сокращение от слова integer), стоящее перед именем main (), означает тип данных для значения, возвращаемого функцией main (). Фигурные скобки {} являются операторными скобками (аналог begin и end в языке Pascal).
Функция main () часто завершается строкой return 0;
При ее выполнении функция main() возвращает вызывающему процессу (в роли которого обычно выступает операционная система) значение 0. Для большинства операционных систем нулевое значение, которое возвращает эта функция, свидетельствует о нормальном завершении работы программы. Другие значения могут означать завершение программы в связи с какой-нибудь ошибкой. Слово return относится к числу ключевых и используется для возврата значения из функции.
В языке C++ определен ряд заголовков (header), которые обычно содержат информацию, необходимую для программы. Данные заголовки представляют собой внешний исходный файл, помещаемый компилятором в начало программы с помощью директивы #include.
Для поддержки C++-системы ввода-вывода используется заголовок <iostream>. Некоторые другие заголовки, использование которых может понадобиться при выполнении лабораторных работ, приведены в таблице 1.1.
Таблица 1.1 – Стандартные заголовочные файлы языка C++
Название |
Описание |
cctype |
Содержит прототипы функций для обработки символов |
(ctype.h) |
|
7
cmath |
Содержит прототипы математических функций |
(math.h) |
|
cstdlib |
Содержит функции для преобразования чисел в текст, |
(stdlib.h) |
выделения памяти, генерации случайных чисел и дру- |
|
гих функций-утилит |
cstring |
Заголовочный файл для работы со строками |
(string.h) |
|
ctime |
Заголовочный файл для работы с датой и временем |
|
|
new |
Реализует операторы new и delete, а также другие |
|
функции и типы, составляющие основу работы с памя- |
|
тью в C++ |
Для вывода данных на консоль и для ввода данных с клавиатуры используются встроенные идентификаторы cout и cin (составленные из частей слов console output и console input соответственно). Для использования указанных идентификаторов (а также всей библиотеки стандарта C++) необходимо указать компилятору используемое пространство имен. Делается это следующей строкой:
using namespace std;
Эта строка означает, что компилятор должен использовать пространство имен std. Пространство имен (namespace) создает декларативную область, в которой могут размещаться различные элементы программы. Пространство имен позволяет хранить одно множество имен относительно от другого. Другими словами, имена, объявленные в одном пространстве имен, не будут конфликтовать с такими же именами, объявленными в другом. Пространства имен позволяют упростить организацию больших программ. Ключевое слово using информирует компилятор об использовании заявленного пространства имен (в данном случае std). Именно в пространстве имен std объявлена вся библиотека стандарта C++.
Исходя из вышеизложенного, простейшая программа, рассчитывающая сумму двух целых чисел, введенных с клавиатуры будет иметь следующий вид:
#include <iostream> #include <locale> #include <conio.h> using namespace std;
int main ()
{
int x, y, z;
8
setlocale(LC_ALL, "rus"); cout << "Введите x: "; cin >> x;
cout << "Введите y: "; cin >> y;
z = x + y;
cout << "Сумма равна: " << z << endl; _getch();
return 0;
}
Выполнение строки setlocale(LC_ALL, "rus") в приведенном листинге предназначено для корректного отображения русских символов в консоли. Данная функция описана в заголовке <locale>. Функция _getch(), описанная в заголовочном файле <conio.h>, предназначена для считывания символа из консоли без использования буфера. В приведенной программе данная функция предназначена для ожидания нажатия любой клавиши перед завершением работы программы (чтобы можно было увидеть результат выполнения). При выполнении строки int x, y, z; объявляются локальные переменные для функции main () целочисленного типа. Основные типы данных, используемые в языке C++, приведены в таблице 1.2.
Таблица 1.2 – Основные типы данных
Тип |
Размер в битах |
Диапазон |
|
|
|
char |
8 |
–128–127 |
unsigned char |
8 |
0–255 |
int |
32 |
–2147483648–2147483647 |
unsigned int |
32 |
0–4294967295 |
short int |
16 |
–32768–32767 |
unsigned short int |
16 |
0–65535 |
long int |
32 |
–2147483648–2147483647 |
unsigned long int |
32 |
0–4294967295 |
float |
32 |
3,4Е–38–3,4Е+38 |
double |
64 |
1,7Е–308–1,7Е+308 |
long double |
80 |
3,4Е–4932–1,1Е+4932 |
В таблице 1.3 приведены арифметические и логические операто-
ры C++.
9
Таблица 1.3 – Арифметические и логические операторы C++
Арифметический оператор |
Действие |
+ |
Сложение |
- |
Вычитание, а также унарный минус |
* |
Умножение |
/ |
Деление |
% |
Деление по модулю |
-- |
Декремент |
++ |
Инкремент |
Операторы отношений |
Значение |
== |
Равно |
!= |
Не равно |
> |
Больше |
< |
Меньше |
>= |
Больше или равно |
<= |
Меньше или равно |
Логические операторы |
Значение |
&& |
И |
|| |
ИЛИ |
! |
НЕ |
В C++ любое ненулевое число оценивается как true, а нуль – как
false.
1.1.3 Инструкции управления C++
Существует три категории управляющих инструкций: инструк-
ции выбора (if, switch), итерационные инструкции (состоящие из for, while и do–while-циклов) и инструкций перехода (break, continue, return, goto).
Инструкция if позволяет сделать выбор между двумя выполняемыми ветвями программы и имеет следующий формат:
if (выражение)
{
последовательность инструкций
}
else
{
последовательность инструкций
}
Инструкция switch – это инструкция многонаправленного ветвления, которая позволяет выбрать одну из множества альтернатив:
switch (выражение) {
10