Открытие проекта, над которым вы работали ранее.




СОДЕРЖАНИЕ

Предисловие. 4

Лабораторная работа №1. Интегрированная среда разработки Microsoft Visual Studio. Программирование алгоритмов линейной структуры.. 5

Лабораторная работа №2. Программирование алгоритмов разветвляющейся структуры в языке C++.. 60

Лабораторная работа №3. Организация циклических вычислений в языке C++ 93

Лабораторная работа №4. Одномерные массивы в языке C++.. 137

Лабораторная работа №5. Указатели и ссылки в языке C++.. 162

Лабораторная работа №6. Двумерные массивы в языке C++.. 206

Лабораторная работа №7. Функции и перегрузка в языке C++.. 249

Лабораторная работа №8. Строки и файлы в языке C++.. 311

Лабораторная работа №9. Структуры в языке C++.. 352

Лабораторная работа №10. Классы в языке C++.. 387

Список рекомендуемой литературы.. 459

 

 

 

 

Предисловие

 

Данный лабораторный практикум предназначен для привития студентам навыков и умений разработки консольных приложений на языке C++ с использованием структурного и объектно-ориентированного подходов.

Основная цель лабораторного практикума - помочь студентам закрепить знания, полученные на лекционных занятиях и овладеть навыками структурного и объектно-ориентированного программирования при разработке приложений на языке C++ в среде Microsoft Visual Studio.

В процессе выполнения заданий студенты рассмотрят процесс создания модульных программ, элемен­ты теории модульного программирования, объектно-ориентированный подход к проектиро­ванию и разработке программ, объектные типы данных и переменные объектного типа, основные принципы объектно-ориентированного программирования (инкапсуляцию, наследова­ние, полиморфизм), а также освоят интерфейс среды разработки приложений Microsoft Visual C++.NET. Вопросы, изученные в ходе выполнения лабораторных работ, помогут студентам освоить основные принципы разработки приложений на объектно-ориентированном языке C++, что будет являться основой для дальнейшего изучения как языков и технологий программирования, так и систем управления базами данных.

 

 

Лабораторная работа №1.
Интегрированная среда разработки Microsoft Visual Studio.
Программирование алгоритмов линейной структуры

 

Цель работы и содержание: изучение возможностей среды разработки Microsoft Visual Studio, разработка консольных приложений в среде Microsoft Visual Studio, приобретение навыков программирования линейных процессов, основы отладки программ в среде Microsoft Visual Studio. Освоить технологию программирования линейных алгоритмов на языке C++, функции ввода/вывода данных, оператора присваивания.

Ход работы

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

Язык программирования C++(читается «си плюс плюс») был разработан на основе языка C(Си) Бьярном Страуструпом в 1972 году. На первых этапах разработки язык носил условное название «Си с классами», а позже Рик Маскитти придумал название «C++», что образно отразило происхождение этого нового языка от языка C. Язык C++ является расширением языка C, поэтому программы, написанные на языке C, могут обрабатываться компилятором языка C++. Язык C++ был создан, чтобы улучшить язык C, поддержать абстракцию данных и обеспечить объектно-ориентированное программирование (ООП).

С++ - это язык программирования общего назначения, хорошо известный своей эффективностью, экономичностью, и переносимостью. Указанные преимущества C++ обеспечивают хорошее качество разработки почти любого вида программного продукта. Использование C++ в качестве инструментального языка позволяет получать быстрые и компактные программы. Во многих случаях программы, написанные на C++, сравнимы по скорости с программами, написанными на языке Ассемблера.

Основные элементы среды разработки Microsoft Visual Studio. Integrated Development Environment (интегрированная среда разработки), или, со­кращенно, IDE - это программный продукт, объединяющий текстовый редактор, компилятор, отладчик и справочную систему.

Любая программа, создаваемая в среде Visual C++.NET, даже такая простая, как «Hello, World!», всегда оформляется как отдельный проект (project). Проект - это набор взаимосвязанных исходных файлов и, возможно, включаемых (заголовочных) файлов, компиляция и компоновка которых позволяет создать исполняемую про­грамму. Рабочая область может содержать любое ко­личество различных проектов, сгруппированных вместе для согласованной разра­ботки: от отдельного приложения до библиотеки функций или целого программ­ного пакета. Очевидно, что для решения наших учебных задач каждая программа будет воплощаться в виде одного проекта, поэтому рабочая область проекта у нас всегда будет содержать ровно один проект.

Запуск IDE. Типы приложений. Вызов Visual C++.NET осуществляется или через меню Пуск ► Программы ► Microsoft Visual Studio ► Microsoft Visual Studio, или щелчком мышью по пиктограмме с соответствующим именем.

После запуска Microsoft Visual Studio появляется главное окно программы, показанное на рисунке 1.1. (В зависимости от настроек для вашего рабочего стола Microsoft Visual Studio его вид может несколько отличаться от показанного на рисунке 1.1.

Рисунок 1.1 - IDE Micro­soft Visual Studio

 

На самом деле главное окно (рабочий стол) Visual C++ принадлежит сту­дии разработчика Microsoft Developer Studio - интегрированной среде, общей для Visual C++, Visual J#, Visual Basic, Visual C# и некоторых других про­дуктов. Рабочий стол Visual C++ включает в себя три окна.

1. Окно Project Workspace (окно рабочей области) предназначено для оказания помощи при написании и сопровождении больших многофайловых программ. Пока что оно закрыто, но после создания нового проекта (или загрузки сохраненно­го ранее проекта) одна из вкладок этого окна будет содержать список файлов проекта.

2. Окно Editor (окно редактора) используется для ввода и проверки исходного кода.

3. Окно Output (окно вывода) служит для вывода сообщений о ходе компиляции, сбор­ки и выполнения программы. В частности, сообщения о возникающих ошибках появляются именно в этом окне.

Под заголовком главного окна, как и во всех Windows-приложениях, находится строка меню. Назначение команд меню и кнопок панелей инструментов мы будем рассматривать по мере необходимости, разбирая основные приемы работы в IDE. Для кнопок панелей инструментов предусмотрена удобная контекстная помощь: если навести курсор мыши на кнопку и задержать, то всплывет подсказка с назначением кнопки.

Microsoft Developer Studio позволяет строить проекты разных типов, ориентированные на различные сферы применения. Так как эта студия спроектирована на Windows-платформе, то почти все типы проектов являются оконными Windows-приложе­ниями с соответствующим графическим интерфейсом. В то же время разработчики Microsoft Developer Studio предусмотрели работу и с так называемыми консольными прило­жениями. При запуске консольного приложения операционная система создает так называемое консольное окно, через которое идет весь ввод-вывод программы. Внеш­не это напоминает работу в операционной системе MS DOS или других операци­онных системах в режиме командной строки.

Создание нового проекта. Для создания нового проекта типа «консольное приложение» выполните следу­ющие действия:

− выберите в строке меню главного окна команду File ► New...

− в открывшемся диалоговом окне New выберите вкладку Projects:

 

Рисунок 1.2 - Создание консольного проекта С++ в Microsoft Visual Studio

 

- выберите тип Win32 Console Application;

- введите имя проекта в текстовом поле Project Name, например First;

- введите имя каталога размещения файлов проекта в текстовом поле Location (если указанный вами каталог отсутствует, то он будет создан автоматически);

- щелкните левой кнопкой мыши на кнопке ОК.

 

Рисунок 1.3 - Окно приветствия при создании консольного проекта
в Visual C++

 

- После щелчка запускается так называемый мастер приложений Application Wizard, который открывает диалоговое окно Win32 Console Application с предложением определиться, какой подтип консольного приложения вам требуется создать.

- Установите опции проекта согласно рисунка 1.4.

- Щелкните на кнопке Finish.

 

Рисунок 1.4 - Опции консольного проекта Microsoft Visual C++

 

- После щелчка появится окно New Project Information со спецификациями проекта и информацией о каталоге, в котором будет размещен создаваемый проект. Щелкните на кнопке ОК.

Допустим, что в качестве Project Name вы ввели имя First. Тогда после выполнен­ных шагов вы увидите на экране примерно то, что показано на рисунке 1.5.

 

Рисунок 1.5 - Результат работы мастера создания консольного проекта
в Visual C++

 

Прежде чем продолжать работу, свернем временно главное окно Visual C++ на панель задач и заглянем в папку First, созданную мастером приложений для наше­го проекта, а точнее - для нашей рабочей области. Там находятся файлы First.dsw, First.dsp, First.opt, First.ncb, а также папку Debug (или Release - в зависимости от конфигурации проекта). Дадим краткое описание каждого из файлов:

- First.dsw - файл рабочей области проекта, используемый внутри интегрирован­ной среды разработки. Он объединяет всю информацию о проектах, входящих в данную рабочую область.

- First.dsp - проектный файл, используемый для построения (building) отдель­ного проекта или подпроекта.

- First.opt - файл, содержащий опции рабочей области проекта. Благодаря этому файлу при каждом открытии рабочей области проекта все параметры Developer Studio, выбранные во время последнего сеанса работы с данной рабочей областью, будут восстановлены.

- First.ncb - служебный файл. Он создается компилятором и содержит информацию, которая используется в инструменте интегрированной среды под названием ClassView. Панель ClassView находится в окне Project Workspace и показывает все классы C++, для которых доступны определения в рамках данного проекта, а также все элементы этих классов.

- Debug - папка, в которую будут помещаться файлы, формируемые компилятором и сборщиком. Из этих файлов нас будет интересовать, в общем-то, только один - исполняемый файл, имеющий расширение.ехе.

Развернем главное окно Visual C++ с открытой рабочей областью First, чтобы продолжить работу по созданию нашей первой программы. Первое, что бро­сается в глаза - окно Project Workspace «оживилось», в нем появились две вклад­ки: Class View и File View. С вкладкой Class View в ближайшее время мы работать не будем, поэтому щелчком мыши переключимся на вкладку File View. Она предназ­начена для просмотра списка файлов проекта. Откроем список First files, щелкнув мышью на значке «+». Появится дерево списка файлов, содержащее пиктограммы трех папок: Source Files, Header Files, Resource Files. Так как в консольных приложе­ниях файлы ресурсов не используются, то про последнюю папку сразу забудем. Попробуем заглянуть (щелчком мыши) в первые две папки. Попытка окажется неудачной - папки пусты. Это и неудивительно: ведь мы выбрали в качестве под­типа консольного приложения пустой проект - опцию An empty project. Так что наполнение проекта конкретным содержанием у нас еще впереди.

Добавление к проекту файлов с исходным кодом. Рассмотрим две ситуации:

- добавление существующего файла,

- создание ново­го файла.

Добавление существующего файла. В этом случае файл с исходным кодом (пусть это будет файл first.cpp) уже подготовлен ранее в каком-то текстовом редакторе. Продолжение должно быть следующим:

- Скопируйте исходный файл (first.cpp) в папку рабочей области проекта (в дан­ном случае - First).

- Вернитесь к списку First files в окне Project Workspace вашего проекта и щелкните правой кнопкой мыши на папке Source Files.

- В появившемся контекстном меню щелчком мыши выберите команду добавле­ния файлов Add Files to Folder....

- В открывшемся диалоговом окне Insert Files... выберите нужный файл (first.cpp) и щелкните на кнопке ОК.

Добавление нового файла. В этом случае необходимо выполнить следующие действия:

- Выберите в строке меню главного окна команду File ► New.... В результате от­кроется диалоговое окно New.

- На вкладке Files:

1) выберите тип файла (в данном случае: C++ Source File);

2) в текстовом поле File Name введите нужное имя файла (в данном случае: first.cpp);

3) флажок Add to project должен быть включен;

4) щелкните на кнопке ОК.

Многофайловые проекты. В многофайловых проектах обычно присутствуют заголовочные файлы - они создаются/добавляются после щелчка правой кнопкой мыши на пиктограмме папки Header Files в окне Project Workspace; при этом на вкладке Files диалогового окна New выбирается тип файла C/C++ Header File, а при вводе имени файла используется расширение.h.

Папки Source Files и Header Files, пиктограммы которых вы видите в окне Project Workspace, на самом деле физически не существуют, то есть все файлы помещаются в основную папку рабочей области проекта, имя которой было задано при создании проекта в окне Project Name.

Компиляция, компоновка и выполнение проекта. Эти операции могут быть выполнены или через меню Build главного окна. Опишем кратко основные команды меню Build:

- Compile - компиляция выбранного файла. Результаты компиляции выводятся в окно Output.

- Build - компоновка проекта. Компилируются все файлы, в которых произошли изменения с момента последней компоновки. После компиляции происходит сборка (link) всех объектных модулей, включая библиотечные, в результирующий исполняемый файл. Сообщения об ошибках компоновки выводятся в окно Output. Если обе фазы компоновки завершились без ошибок, то созданный исполняемый файл с расширением.ехе может быть запущен на выполнение.

- Rebuild All - то же, что и Build, но компилируются все файлы проекта независи­мо от того, были ли в них произведены изменения.

Если при компоновке многофайлового проекта посредством команды Build вы получаете сообщения об ошибках компиляции или сборки, которые вы не можете объяснить, то мы настоятельно рекомендуем вам воспользоваться командой Rebuild All.

- Execute - выполнение исполняемого файла, созданного в результате компоновки проекта.

Проблемы с вводом-выводом кириллицы. Работа в среде Visual C++ (в режиме консольных приложений) сопряжена с определенными неудобствами, вызванными различными стандартами кодировки символов кириллицы в операционных системах MS DOS и Windows. Весь ввод-вывод в консольном окне идет в кодировке стандарта ASCII, а текст в исходных файлах, набираемый в текстовом редакторе Visual C++, имеет кодировку в стан­дарте ANSI. Существует несколько способов нормального вывода строки, содержащей буквы русско­го алфавита:

1. Эту строку надо сначала «пропустить» через функцию CharToOem(), а уже потом отправлять на консольный вывод. Аналогично, если в программе есть кон­сольный ввод текста и этот текст в дальнейшем надо сохранять в документах (фай­лах) с кодировкой ANSI, то перед сохранением его надо «пропустить» через функ­цию OemToChar().С учетом сказанного выше можно предложить следующую адаптацию нашей первой программы:

 

#include "stdafx.h"

#include <iostream>

#include "conio.h"

#include "windows.h"

using namespace std;

int tmain(int argc, _TCHAR* argv[])

{

char buff[256];

CharToOemA("Добро пожаловать в С++", buff);

cout<< buff;

return 0;

}

 

2. Второй метод – с помощью функции setlocale(LC_ALL, "Russian"):

 

#include "stdafx.h"

#include <iostream>

#include "conio.h"

#include "windows.h"

using namespace std;

int tmain(int argc, _TCHAR* argv[])

{

setlocale(LC_ALL, "Russian");

cout<<"Добро пожаловать в С++"<< endl;

return 0;

}

 

3. И, наконец, третий способ – с помощью подключения библиотеки <locate>:

 

#include "stdafx.h"

#include <iostream>

#include "conio.h"

#include "windows.h"

#include <locate>

using namespace std;

int tmain(int argc, _TCHAR* argv[])

{

LOCATE LOC("Russian Russia");

cout<<"Добро пожаловать в С++"<< endl;

return 0;

}

Конфигурация проекта. Visual C++ позволяет строить проект либо в отладочной конфигурации (Win32 Debug), либо в выпускной конфигурации (Win32 Release). Мы рекомендуем вам всегда работать с проектами в отладочной конфигурации. Обычно она установле­на по умолчанию. Все же не мешает проверить, с какой конфигурацией на са­мом деле идет работа. Для этого выберите в меню Project пункт Settings... От­кроется диалоговое окно Project Settings. Проверьте, какое значение установлено в окне комбинированного списка Settings For:.. Если это не Win32 Debug, то переключитесь на нужное значение через команду меню Build ► Set Active Con­figuration...

Завершение работы над проектом. Можно выбрать меню File, пункт Close Workspace. А можно просто закрыть прило­жение Visual C++.

Открытие проекта, над которым вы работали ранее.

1. Способ первый:

- Запустите на выполнение Visual C++.

- Выберите меню File, пункт Open Workspace...

- В открывшемся диалоговом окне найдите папку с вашим проектом, а в ней найдите файл ProjectName.dsw.

- Откройте этот файл, щелкнув по нему мышью.

2. Способ второй:

- Запустите на выполнение Visual C++.

- Выберите меню File, наведите курсор мыши на пункт Recent Workspaces.

- Если в появившемся меню со списком последних файлов, с которыми шла работа, вы найдете интересующий вас файл ProjectName.dsw, то щелкните по нему мышью.

3. Способ третий:

- Не вызывая Visual C++, найдите папку с вашим проектом, а в ней - файл ProjectName.dsw.

- Щелкните мышью на файле ProjectName.dsw.

Встроенная справочная система. В IDE Visual С ++ имеется обширная справочная система, доступная через меню Help главного окна.

Кроме этого, очень удобно пользоваться интерактивной справкой: если вы нахо­дитесь в окне Editor, поставьте текстовый курсор на интересующий вас оператор или библиотечную функцию C++ и нажмите клавишу F1. Тотчас будет вызвана справочная система MSDN с предоставлением необходимой информации. Если запрошенный термин встречается в разных разделах MSDN, то сначала появится диалоговое окно «Найденные разделы». В списке разделов выберите тот, в кото­ром упоминается «Visual C++».

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

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

Чтобы задать точку прерывания перед некоторым оператором, необходимо установить перед ним текстовый курсор и нажать клавишу F9 или щелкнуть мышью на кнопке Insert/Remove Breakpoint на панели инструментов Build MiniBar. Точка прерывания обозначается в виде коричневого кружка на левом поле окна редактирования. Повторный щелчок на указанной кнопке снимает точку прерывания. В программе может быть несколько точек прерывания.

Выполнение программы до точки прерывания. Программа запускается в отладочном режиме с помощью команды Build ► Start Debug ► Go (или нажатием клавиши F5).

В результате код программы выполняется до строки, на которой установлена точ­ка прерывания. Затем программа останавливается и отображает в окне Editor ту часть кода, где находится точка прерывания, причем желтая стрелка на левом поле указывает на строку, которая будет выполняться на следующем шаге отладки.

Рисунок 1.6 - Запуск отладчика в Microsoft Visual C++

 

Среди различных команд этого меню особый интерес представляют команды Step Into (F11), Step Over (F10), Step Out (Shift+F11), Run To Cursor (Ctrl+F10) и Stop Debug­ging (Shift+F5).

Выбор последней команды (или нажатие комбинации клавиш Shift+F5) вызывает завершение работы с отладчиком.

Пошаговое выполнение программы. Нажимая клавишу F10, можно выполнять один оператор программы за другим.

Предположим, что при пошаговом выполнении программы вы дошли до строки, в которой вызывается некоторая функция func(). Если вы хотите пройти через код вызываемой функции, то надо нажать клавишу F11. Если же внутренняя рабо­та функции вас не интересует, а интересен только результат ее выполнения, то надо нажать клавишу F10.

Допустим, что вы вошли в код функции func(), нажав клавишу F11, но через не­сколько строк решили выйти из него, т.е. продолжить отладку после возврата из функции. В этом случае надо нажать клавиши Shift+F11.

Существует и другая возможность пропустить пошаговое выполнение некоторого куска программы: установите текстовый курсор в нужное место программы и нажмите клавиши Ctrl+F10.

Создание первой программы. Необходимо ввести в редакторе кода текст, представленный в листинге 1.1.

Листинг 1.1

 

#include “stdafx.h”

#include <iostream>

using namespace std;

 

int _tmain(int argc, _TCHAR* argv[])

{

cout << “Hello, world!” << endl;

cout << “Press any key to stop the program…”;

return 0;

}

Рисунок 1.7 - Текст программы в Microsoft Visual C++

 

Это и есть наша первая программа на языке C++ в среде Visual С++. По традиции она выводит на экран надпись «Hello, World!» (Здравствуй, Мир!). Далее программа поясняет, что для ее завершения необходимо нажать какую-либо клавишу на клавиатуре.

Запустите программу на выполнение. Если вы все сделали правильно, на экране появится окно с соответствующими надписями. Чтобы закрыть это окно, нажмите любую клавишу на клавиатуре (рис. 1.8).

Рисунок 1.8 - Результаты работы программы

 

После того как программа завершилась, вы можете запустить ее еще раз тем же способом. Если между запусками в текст программы не были внесены изменения, то, запуская программу повторно, вы обнаружите, что запуск выполняется быстрее. Это происходит потому, что при первом запуске Visual C++ должен скомпилировать программу, то есть преобразовать ее исходный текст в исполни­мый машинный код.

Основные сведения о программах на языке C++. Состав языка С++:

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

Лексема или элементарная конструкция - это минимальная единица языка, имеющая самостоятельный смысл.

Выражение задает правило вычисления некоторого значения.

Оператор задает законченное описание некоторого действия.

Алфавит C++ включает:

- прописные и строчные латинские буквы и знак подчеркивания;

- арабские цифры от 0 до 9;

- специальные знаки: “ { }, | [ ] () + - / % *. \ ‘:? < = >! & # ~; ^

- пробельные символы: пробел, символы табуляции, символы перехода на но­вую строку.

Из символов алфавита формируются лексемы языка:

- идентификаторы;

- ключевые (зарезервированные) слова;

- знаки операций;

- константы;

- разделители (скобки, точка, запятая, пробельные символы).

Основная программная единица на языке C++ - это текстовый файл с названием имя.cpp, где cpp - это принятое расширение для программ на C++, а имя - определяется исходя из семантики разрабатываемой программы.

Текстовый файл с программой на C++ вначале обрабатывает препроцессор, который распознает команды (директивы) препроцессора (каждая такая команда начинается с символа «#») и выполняет их. Практически в каждой программе на C++ используется процессорная команда

 

#include <имя_включаемого_(заголовочного)_файла>

 

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

Таблица 1.1 - Типы заголовочных файлов

Заголовочный файл Назначение
assert.h Содержит декларации функций для диагностики программ
ctype.h Содержит декларации функций преобразования типов
errno.h Содержит описание кодов ошибок
floaf.h Содержит декларации математических функций для работы с вещественными числами одинарной точности
limits.h Содержит определение границ диапазона изменения значений переменных различных типов
locale.h Содержит функции для поддержки национальных стандартов
math.h Содержит декларации математический функций для работы с вещественными числами двойной точности
sefjmp.h Содержит декларации функций для осуществления межсегментных переходов (используется только в операционной системе MS-DOS)
stdarg.h Содержит макросы для работы с функциями с переменным числом аргументов
stdio.h Содержит декларации функций ввода-вывода в C++
stdlib.h Содержит декларации функций библиотеки времени исполнения (RTL - Runtime Library) C++
string.h Содержит декларации функций для работы с ASCIIZ строками
conio.h Содержит декларации функций консольного ввода-вывода (используется только в операционной системе MS-DOS)
time.h Содержит декларации функций для работы с датой/временем
dos.h Содержит декларации функций, используемые для обращения к сервисам DOS (используется только в операционной системе MS-DOS)
iostream.h Содержит объекты и классы потокового ввода-вывода

 

Программа на языке C++ состоит из функций, описаний и директив препроцессо­ра. Одна из функций должна иметь имя main() (либо WinMain, если программа пишется для операционной системы Windows).

Простейшее определение функции имеет следующий формат:

тип возвращаемого значения имя ([ параметры ])

{



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-21 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: