ТГУ – Лабораторная работа – ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

Лабораторная работа № 1
Инструментальные системы Microsoft для разработки программного
обеспечения
1. ЦЕЛЬ И ЗАДАЧИ РАБОТЫ
Ознакомление с инструментальными системами и технологией создания и отладки
простейших процедурных и объектно-ориентированных программ на языках С, С++ и С#
в интегрированных средах разработки приложений (integrated development environment,
IDE) Microsoft Visual Studio.
2. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Интегрированная среда разработки приложений Microsoft Visual Studio является
удобной средой для разработки как консольных приложений, так и приложений MS
Windows, имеющих стандартный графический интерфейс, известный также как GUI-
интерфейс (GUI – Graphic User Interface).
Инструментальная система Visual Studio Team System 2008
С появлением в линейке средств разработки программного продукта
инструментальной системы под названием Visual Studio 2005 Team System компания
Microsoft вышла за рамки базового процесса разработки – редактирование,
компилирование, отладка и предложила набор инструментов, ранее доступных только от
сторонних производителей. Средства, включенные в состав Microsoft Visual Studio 2005
Team System, предназначены для более ранних шагов цикла разработки, таких как дизайн
и архитектура, а также шагов, выполняемых после непосредственной разработки –
тестирование и развертывание. Включение подобных средств в состав Visual Studio 2005
позволят использовать его на всех этапах создания программного продукта.
Очередная версия этой системы – Visual Studio Team System 2008 (рис. 1)
продолжает развитие семейства продуктов для управления всем жизненным циклом
создания приложений и содержит новые и улучшенные средства, процессы и руководства,
которое помогут улучшить совместную командную работу и сделать ее более
эффективной. Инструменты, входящие в состав Visual Studio Team System 2008,
позволяют наладить более эффективные коммуникации между членами проектной группы
и заказчиками, наладить эффективную совместную работу, обеспечить ожидаемое
заказчиками качество кода, используя расширенные средства контроля качества, получить
представление об активностях в рамках проекта и приоритетах, которые позволят
принимать решения, основываясь на данных, предоставляемых в реальном времени.
Задача любой формализованной методологии проектирования программного
обеспечения – структурировать сам процесс разработки. В частности, любая методология
определяет роли в программном проекте. Наиболее часто используются следующие роли:
■ Архитектор отвечает за высокоуровневую структуру приложения, требования,
ключевые технологии для реализации, взаимодействие приложения с другими
приложениями, инфраструктурой и т. п.
■ Разработчик занимается написанием и отладкой кода. Предыдущие версии
Visual Studio, а также продукты, входящие в состав Visual Studio 2008 – Visual
Studio Standard Edition и Visual Studio 2008 Professional Edition предназначаются, в
первую очередь, для этой роли.
■ Тестировщик отвечает за обнаружение ошибок, их исправление; должен
убедиться в том, что приложение соответствует изначальным требованиям
(функциональным и нефункциональным).
■ Разработчик баз данных занимается разработкой приложений, использующих
базы данных (работа со схемой базы данных, создание хранимых процедур и т. п.).
■ Менеджер проекта отвечает за ведение проекта, проектный офис, метрики,
сроки и т. п.
Важно отметить, что каждая роль не обязательно соответствует наличию
физического члена команды. В небольших проектах возможно совмещение ролей. Тем не
менее, даже если один человек выполняет несколько ролей, для выполнения каждой
задачи он использует разные средства.
Может быть интересно
Задача Team Foundation Server – обеспечить инфраструктуру для совместной
работы и обмена информацией между группами архитекторов, разработчиков,
тестировщиков и менеджеров проекта. Клиентским компонентом является Team
Foundation Client, который входит в состав всех продуктов семейства Team Edition, а
также может использоваться продуктами Microsoft (Excel, Project) или продуктами других
производителей.
Visual Studio Team System 2008 – это продукт, который призван облегчить задачи,
выполняемые каждой из перечисленных выше ролей. В состав продукта входят четыре т.
н. ролевых издания, построенных поверх Visual Studio 2008 Professional Edition –
Architecture Edition, Development Edition, Database Edition (это издание впервые
появилось в Visual Studio Team System 2008) и Test Edition – вместе эти издания
называются Team Suite, а также серверный продукт, обеспечивающий совместную работу
над проектами (совместный доступ к ресурсам, контроль версий, порталы на базе
SharePoint, отчеты, слежение за элементами проекта и т. п.) – Team Foundation Server.
В основе Visual Studio 2008 Team System находится серверное приложение под
названием Team Foundation Server, состоящее из базы данных на SQL Server
(используемой для хранения проектных данных) и компонентов среднего уровня на базе
Windows Server 2003, ASP.NET и Windows SharePoint Services. Основные компоненты
Team Foundation Server показаны на рис. 2
Как видно из рис. 2, компоненты Team Foundation Server отвечают за управление
требованиями, слежение за элементами проекта, обеспечивают автоматизацию сборки
проекта, генерацию отчетов, а также интеграцию с другими подсистемами продуктов
семейства Team System.
В состав Team Foundation входят средства создания проектов (Project Creation
Wizard) с возможностью выбора шаблонов (по умолчанию используется шаблон MSF For
Agile Development), задания итераций, отчетов, контроля версий, адреса проектного
портала и т. п., средства контроля версий, пришедшие на смену Visual SourceSafe и
рассчитанные на объемные проекты с большим числом разработчиков. В процессе работы
над проектом собирается большой объем информации (для этих целей служит SQL
Server).
Эти данные могут быть отображены с помощью более чем 50 типов отчетов (на
базе SQL Reporting Services), входящих в состав продукта (например, Work Item History –
Record-Count, TransitionCount, RemainingWork, CompletedWork, BaselineWork, Code Churn
– TotalLines, LinesAdded, Lines-Modified, LinesDeleted, Test Results – TotalTests, TestsFailed,
AverageDuration и т. д.) и опубликованы на портале проекта (Project Portal на основе
Windows SharePoint Services или Microsoft Office SharePoint Server 2007) через
соответствующие веб-компоненты.
Проектная деятельность может вестись согласно определенным методологиям. В
состав продукта входит поддержка двух методологий Microsoft – MSF For Agile
Development и MSF For CMMI Process Improvement. Также поддерживается
“классическая” методология Microsoft Solutions Framework. Помимо этого можно
использовать методологии сторонних поставщиков или создавать собственные,
отражающие подходы к созданию продуктов, сформированные внутри конкретной
компании.
В Visual Studio 2008 Team Foundation пополнился рядом новых возможностей, а
также получил ряд улучшений в существующих компонентах.
Team Foundation Build – средство для управляемой сборки проектов. Теперь
описания процесса сборки (Build Definitions) заменяют типы сборки (Build Types) из
Microsoft Visual Studio 2005 Team System. В отличие от типов сборки, описания процесса
сборки могут быть изменены в Team Explorer. Помимо этого из пользовательского
интерфейса можно остановить выполняющуюся сборку и полностью удалить
завершенный процесс. Также при создании нового описания процесса сборки или
редактировании существующего можно установить триггер для процесса сборки. Можно
использовать сборку по требованию, многократную сборку и интеграцию, при которой
каждое освобождение (check-in) кода приводит к запуску процесса сборки. Также можно
задать время ожидания между выполнениями сборок при многократных сборках. В Visual
Studio 2008 Team Foundation Server появился ряд новых свойств для настройки процесса
сборки, включая возможность настройки сборок для кода на С++. В состав Team
Foundation Build входит ряд новых шаблонов, которые можно использовать для создания
собственных процессов сборки.
Team Foundation Source Control – это входящее в состав Team Foundation
средство контроля версий. В Visual Studio 2008 появились следующие возможности:
■ Полное удаление файлов (команда Destroy), находящихся под управлением
системы контроля версий.
■ Автоматическое получение самой последней версии файла при выполнении
операции check-out.
■ Возможность аннотирования исходных файлов – построчный просмотр
внесенных изменений, а также даты внесения этих изменений.
■ Возможность сравнения двух папок на сервере, двух локальных папок или папки
на сервере с папкой на локальном компьютере с использованием контроля версий.
Пользователь получает информацию о различиях – отсутствующих файлах, файлах, в
которые были внесены добавления, удаления, а также о конфликтах между файлами в
разных папках.
Team Foundation Work Item Tracking – это механизм слежения за элементами
проекта. В Visual Studio 2008 появились существенные улучшения при отслеживании
элементов проекта под большими нагрузками. По сравнению с Team Foundation Server
2005, пропускная способность увеличилась вдвое, существенно снизилось время,
требуемое для завершения отдельных операций и снизилось потребление процессорных
ресурсов сервера, на котором располагается слой базы данных Team Foundation Server.
Масштабируемость Team Foundation Server 2008 также была увеличена – так что время
отклика для большинства операций слежения существенно сократилось, даже при
высоких нагрузках на сервер. Это особенно заметно при работе проектных команд,
состоящих из более чем 500 чел. Таким образом крупные компании могут использовать
больше проектных элементов и следить за ними на существующих серверных
конфигурациях, работающих под управлением Team Foundation Server 2008.
Управление Team Foundation Server – в новой версии сервера добавление
большого числа пользователей не приводит к задержкам в работе и другим связанным с
этим проблемам. Тогда как число поддерживаемых пользователей не изменилось,
скорость синхронизации пользователей между Active Directory и Team Foundation Server
существенно повысилась.
Как мы отметили выше, Team Foundation служит в качестве основы для работы
различных участников проекта – менеджеров, архитекторов, разработчиков и
тестировщиков, организации обмена информацией между ними. Для каждой конкретной
роли – архитектора, разработчика, разработчика и администратора баз данных,
тестировщика предлагается специализированная, ролевая версия Team System, которую
мы и рассмотрим ниже.
Инструментальная система Visual Studio 2010
Система Visual Studio 2010 доступна в пяти основных версиях:
Express (бесплатная версия);
Professional;
Professional with MSDN;
Premium with MSDN;
Ultimate with MSDN.
Интегрированная среда разработки (IDE) системы Visual Studio 2010 (VS2010)
выглядит значительно переработанной по сравнению с предыдущими версиями, что
обусловлено тем, что большая часть ее переписана с использованием технологии Windows
Presentation Foundation (WPF) и управляемого кода. Сдвиг в сторону WPF позволил
Microsoft внести в IDE-среду ряд серьезных дополнений, а также открыл возможности
настройки среды с использованием нового каркаса управляемого расширения Managed
Extensibility Framework (MEF).
Отметим, что данная версия Visual Studio по-прежнему остается 32-разрядной и в
ближайшее время Microsoft не планирует разработку 64-разрядной версии.
В систему Visual Studio 2010 были введены следующие важные изменения:
поддержка нескольких экранов (мониторов) и возможность перетаскивания
окон за пределы IDE-среды;
средство IntelliSense работает в 2-5 раз быстрее, чем в предыдущих версиях;
улучшена читабельность текста, введена возможность изменения его размера.
Система VS2010 предлагает улучшенную поддержку различных версий .NET
(функция “multi-targeting”). Как и в предыдущих версиях, диалоговое окно создания
проекта содержит раскрывающееся меню, позволяющее выбрать версию каркаса
(платформы .NET), на которую нацелено создаваемое приложение. После того, как выбор
сделан, Visual Studio отфильтрует типы проектов, которые можно создавать для
выбранной версии .NET. Отметим, что указать целевую версию .NET можно также в окне
свойств проекта. В версии VS2010 окна Toolbox (Инструменты) и Properties (Свойства)
фильтруют свое содержимое, отображая только ту функциональность, которая доступна в
выбранной целевой версии.
Средство IntelliSense
Средство IntelliSense в VS2010 работает с использованием частичного
сопоставления строк. Например, если набрать слово build, Visual Studio отобразит и
StringBuilder, и UrlBuilder. Это может оказаться очень полезным, если вы не помните
точно название свойства или имя типа. Но эта возможность может стать и препятствием
на вашем пути. Предположим, например, что есть приложение, в котором имеется класс
по имени TigerCage, а теперь требуется создать класс Tiger, причем решено
воспользоваться новыми средствами генерации классов VS2010. Как только вы начнете
набирать Tiger, средство IntelliSense вмешается и исправит на TigerCage.
Чтобы разрешить эту проблему, теперь IntelliSense может работать в двух режимах:
стандартном и в режиме «сначала использовать» (consume-first). Режим consume-first
предотвращает автоматическое завершение ввода средством IntelliSense имени типа или
члена, который еще не был определен. Для переключения между стандартном режимом и
режимом consume-first служит комбинация клавиш <Ctrl+Alt+пробел>.
Средство IntelliSense в VS2010 также поддерживает поиск на основе
капитализации. Поскольку имена всех типов .NET представлены в стиле Pascal, можно
просто вводить только заглавные буквы типа. Например, ввод SB вернет среди прочих тип
StringBuilder.
Масштабирование содержимого окна редактора
Поскольку большая часть IDE-среды написана на WPF, было нетрудно добавить в
редактор кода такую функциональность, как возможность масштабирования (Zoom). Для
этого нажмите клавишу <Ctrl> и с помощью колесика мыши увеличивайте или
уменьшайте масштаб отображения. Это средство можно применять в презентациях и
просмотрах кода, например, для облегчения навигации по большому фрагменту кода.
Навигатор интегрированной среды разработки
Visual Studio предоставляет возможность перемещаться между открытыми окнами
без помощи мыши. Это позволяет не снимать пальцы с клавиатуры и может увеличить
производительность. Среды VS2008\VS2010 предоставляют здесь несколько вариантов.
Первый – это обычная комбинация клавиш операционной системы. Предположим, что у
вас есть в интегрированной среде несколько открытых окон с кодом. Для перемещения по
ним вперед (слева направо) вы можете использовать комбинацию клавиш <Ctrl>+<->
(знак “минус”). Так происходит при стандартных настройках интегрированной среды
разработки. Для перехода в обратном направлении (справо налево) вы можете
использовать комбинацию клавиш <Ctrl>+<Shift>+<->.
Аналогичных результатов вы можете добиться путем использования нового в
VS2008 визуального средства, которое называется навигатором (Navigator). Этот
инструмент похож на нажатие комбинации клавиш <Alt>+<Tab> операционной системы
Windows, которая позволяет делать быстрый переход между приложениями. Для доступа
к навигатору нужно использовать комбинацию клавиш <Ctrl>+<Tab> (и
<Ctrl>+<Shift>+<Tab>). Она служит для того, чтобы открыть диалоговое окно и
перемещаться по открытым окнам с кодом и инструментами разработки. Обратите
внимание, что в центре окна перечислены активные файлы.
Вы можете получить доступ к навигатору и напрямую при помощи клавиш
<Alt>+<F7>. При этом появится окно навигатора с выбранным списком окон активных
инструментов. Вы можете перемещаться между списками при помощи клавиш <→> и
<←>.
Выделение ссылок
Выделение ссылок (Highlight References) позволяет осуществлять быструю
навигацию по различным экземплярам вызова одного и то же метода внутри файла.
Например,если необходимо пройти по всем вызовам метода DoSomething, просто
щелкните на тексте имени вызова метода (выделять имя не понадобится) и вы
обнаружите, что IDE-среда отметила все остальные вызовы DoSomething в том же файле
светло-серым фоном. Для перехода к следующему вызову метода DoSomething нажмите
комбинацию клавиш <Ctrl+Shift+стрелка вниз>, а для перехода к предыдущему –
<Ctrl+Shift+стрелка вверх>.
Выделение прямоугольных областей текста
Выделение прямоугольных областей текста (Box Selection) позволяет быстро
проводить одно и то же изменение во множестве строк кода. Поместите курсор туда, где
необходимо внести изменение, и затем, удерживая клавиши <Shift> и <Alt> в сочетании с
клавишами стрелок, создайте прямоугольник, в котором будет применено изменение.
После этого введите изменение, и оно будет применено ко всем выделенным строкам.
Средство Box Selection может использоваться, например, для рефакторинга уровня
доступа множества переменных класса с private на public за один прием.
Генерация кода
Замечательным свойством VS2008 была возможность ввода имени нового метода,
который еще не существует, и создания IDE-средой заготовки (stub) для этого метода. Для
этого нужно ввести имя метода, нажать <Ctrl+.> и выбрать опцию Generate method stub
(Сгенерировать заготовку метода). В VS2010 эта функциональность расширена, позволяя
аналогичным образом создавать классы, структуры, интерфейсы и перечисления. Это
замечательное средство, применяемое в начале создания приложения, и оно особенно
полезно в случае применения стиля разработки, управляемой тестами (test-driven
development – TDD).
Точки останова
VS2010 позволяет экспортировать, импортировать и помечать точки останова. Это
средство можно использовать как для совместной работы нескольких разработчиков над
проектом, так и для быстрого возврата к прежним настройкам отладчика. Обратите
внимание, что экспортированный файл содержит точки останова, привязанные к номерам
строк, поэтому после модификации кода и импортирования точек останова они не будут
расположены корректно.
Для экспорта отдельной точки останова необходимо щелкнуть на ней правой
кнопкой мыши и выбрать в контекстном меню пункт Export (Экспортировать). Для
экспорта всех точек останова (либо соответствующих определенному критерию поиска)
выберите в меню пункт Debug->Windows->Breakpoints. В открывшемся окне Breakpoints
выберите опцию Export all breakpoints. Отметим, что с помощью этого окна точки
останова можно и импортировать.
VS2010 позволяет назначать метки точкам останова. Это может быть полезно для
связывания точки останова с определенной проблемой или для группирования точек
останова в окне Breakpoints. Чтобы пометить точку останова, щелкните на ней правой
кнопкой мыши и выберите в контекстном меню пункт Edit Labels (Редактировать метки).
В дальнейшем можно ввести новую метку для этой точки останова и повторно
использовать существующую метку для новой точки останова.
Создание специальных стартовых страниц
VS2010 позволяет настроить стартовую страницу, открываемую при
первоначальной загрузке интегрированной среды разработки. Посредством этой страницы
можно отображать такие элементы, как текущие ошибки, состояние последней сборки и
т.п. У пользователя alex на машине Windows 7 каталог стартовых страниц может
находиться в С:\Users\alex\Documents\Visual Studio10\StartPages. Рассмотрим
последовательность создания стартовых страниц.
1. Откройте проект StartPage.csproj и обратите внимание, что StartPage.xaml – это
стандартная страница XAML с некоторыми специфичными для Visual Studio
элементами управления для отображения таких элементов, как последние
открытые проекты.
2. Выполните простую модификацию, например, изменив некоторое текстовое
содержимое.
3. Сохраните файл под новым именем, скажем, CustomStartPage.xaml, в том же
каталоге.
Прежде чем можно будет воспользоваться новой стартовой страницей, ее следует
указать в опциях Visual Studio. Выберите в меню пункт Tools->Options (Сервис-
>Настройка) и затем новую стартовую страницу в раскрывающемся меню Custom Start
Page (Специальная стартовая страница).
После этого закройте среду Visual Studio и откройте ее снова. Новая стартовая
страница должна появиться при следующей загрузке Visual Studio.
Среда VS2010 позволяет производить намного более широкую настройку, чем
изменение стартовой страницы. Она была разработана изначально с прицелом на
расширяемость и настройку, поскольку:
экраны переписаны на WPF и управляемом коде;
API-интерфейс интегрированной среды разработки был подвергнут
рефакторингу для облегчения использования;
API-интерфейс интегрированной среды полностью документирован.
Многие области IDE-среды могут быть переопределены за счет создания
компонента MEF. В частности, VS2010 позволяет настраивать следующие области:
поля и линейки прокрутки;
теги;
оформление (элементы, рисуемые на поверхности редактора);
процессоры мыши;
обработчики перетаскивания;
опции;
средство IntelliSense и отладчик.
Перед тем, как можно будет провести любую из перечисленных настроек,
потребуется загрузить и установить комплект SDK Visual Studio.
Параллельные вычисления и поддержка многоядерности Windows 7
Параллельное программирование в VS2010 включает в себя Parallel LINQ и другие
расширения .NET, требующие поддержку параллельных вычислений, включая такие
операторы, как Parallel.For, которые используют System.Threading.Tasks.Task. Отметим,
что концепции Task также присутствуют в 10-ой версии языка C++ (версии С++ 0x),
которая поставляется с VS 2010. В случае с родным (native) кодом параллельная среда
выполнения (Concurrency Runtime, ConcRT) обладает знанием и способна работать с
<=256 ядрами; ConcRT также использует преимущества планирования
непривилегированного режима (User Mode Scheduling, UMS) потоков. Именно поэтому
любой вычислительный процесс, построенный на ConcRT, получает преимущество от
использования многоядерности. Другими словами, благодаря тому, что Parallel Pattern
Library (PPL) и Asynchronous Agents включены в состав Visual C++ 10 CRT и имеют в
своей основе ConcRT, любой вычислительный процесс, который вы построите на их
использовании, будет масштабироваться между 256 ядрами (конечно, вам все равно
придется писать код, однако масштабирование будет для вас автоматическим).
Для приложений на управляемом коде ситуация не такая радужная. Управление
потоком управляемого стека по умолчанию основывается на .NET ThreadPool
(System.Threading.ThreadPool). Он не использует API новых процессорных групп Windows
7, и потому не может автоматически использовать возможности Windows 7 к
масштабированию. Максимальное число процессов, которые может использовать
threadpool, равно 64. Однако вполне возможно написать дополнительный TaskScheduler,
который смог бы работать с более чем 64 процессами, и использовать остальную часть
библиотеки Task Parallel Library с этим специальным планировщиком.
Отметим, что основная масса инструментов для платформы .NET поставляется в
виде SDK (Software Development Kit) – набора утилит для разработки программного
обеспечения. Кроме этого, используются программы Add-In, не входящие в дистрибутивы
среды и SDK, но позволяющие расширить сервисные возможности среды.
Для начинающих программистов, студентов и непрофессиональных разработчиков
фирмой Microsoft бесплатно предоставляется (через Интернет) множество отдельных
продуктов (группа продуктов Express Edition), например, Visual C# 2010 Express Edition,
Visual C++ 2010 Express Edition, Visual Web Developer 2010 Express Edition, Microsoft SQL
Server 2008 Express Edition.
Создание консольного приложения на языке C
Самыми простыми с точки зрения пользовательского интерфейса являются
классические консольные приложения, то есть такие приложения, которые для ввода и
вывода информации используют консоль – т.е. дисплей, работающий в текстовом режиме.
Во времена, когда можно было работать в среде MS DOS, создание и отладка таких
программ выполнялась с использованием таких IDE, как BC 3.1. Взаимодействие с
консольным приложением в современных операционных системах происходит через
консольное окно – окно для работы с командной строкой. При работе с платформой .NET
это окно называется SDK Command Prompt.
Простейшая программа на языке C, выполняющая диалоговый ввод и вычисление
суммы двух целых чисел, имеет следующий вид:
// add1.c
#define _CRT_SECURE_NO_DEPRECATE 1
#include <stdio.h>
main ()
{ int x, y;
printf(“Input 2 numbers: “);
scanf (“%d%d”, &x, &y);
printf(“Summa = %d\n”, x+y);
// scanf (“%d”, &x);
}
В данной программе используется scanf() – не защищенная от переполнения
библиотечная функция языка C. Поэтому при ее компиляции будет выдаваться
предупреждение об использовании небезопасной (deprecated) функции. Проблема
deprecated-функций решается либо путем запрета выдачи данного вида сообщений (таким
образом подвергая опасности свое приложение), либо явно или неявно посредством
замены deprecated-функции на их безопасные аналоги, обычно имеющие суффикс “_s”.
Объявление
#define _CRT_SECURE_NO_DEPRECATE 1
относится к одному из перечисленных методов решения проблемы deprecated-функций.
Описание всех возможных способов работы с deprecated-функциями имеется в
документации MSDN, которая обычно устанавливается вместе с Visual Studio.NET и
доступна как Help (помощь) по “горячей клавише” F1.
Для того, чтобы создать консольное приложение на языке С, выберем в IDE-среде в
меню File следующую последовательность опций: New->Project-> Other Language ->Visual
C++ -> Win32 (рис. 3).
Выбираем шаблон Win32 Console Application и определяем имя проекта в поле
Name и местонахождение каталога с файлами проекта в поле Location. Отметим, что имя
проекта является одновременно и именем каталога и подкаталога, которые будут созданы
средой разработки. Например, если мы ввели имя проекта Add1 и местоположение
E:\User\Tprog\Lab1, то файлы проекта и подкаталог Debug будут находиться в каталоге
E:\User\Tprog\Lab1\Add1\Add1.
После нажатия OK в окне New Project появится окно Win32 Application Wizard, в
котором необходимо выбрать пункт Application Settings (рис. 4). В правой половине окна
(рис. 5) появится группа селективных кнопок Application Type для указания типа
приложения и две группы кнопок-переключателей. Для консольного проекта необходимо
выбрать селективную кнопку Console application и переключатель Empty Project, а затем
нажать кнопку Finish.
В интегрированной среде разработки Visual Studio.NET проекты логически
организуются в решения (solutions). После компиляции и линкования проекта мы
получаем исполнимый модуль, называемый сборкой (например, модуль библиотеки DLL).
Каждое решение состоит из одного или нескольких проектов. В свою очередь, каждый
проект может состоять из любого количества исходных файлов, ссылок на внешние
сборки (которые используются этим проектом) и прочих ресурсов, которые и образуют
приложение.
После создания пустого проекта Add1 в него необходимо добавить исходные
файлы программы. Для этого выполним копирование файла Add1.c в каталог проекта
(E:\User\Ber\2011\Add1\Add1 на рис. 3), а затем в окне менеджера проектов (Solution
Explorer) выделим имя проекта (Add1) или имя подраздела для исходных файлов (Source
Files) и в контекстном меню выберем пункты Add | Add Existing Item и укажем файл
E:\User\Ber\2011\Add1\Add1\Add1.c. После появления в проекте пиктограммы add1.c
выполним двойной клик на ней, загружая таким образом текст файла Add1.c в окно
редактора кода (рис. 6).
Отметим, что нажатие клавиши Del при выделенной пиктограмме файла приводит
к удалению файла из проекта, при этом файл удаляется и из каталога, в котором
располагаются файлы проекта.
Рис. 6. Основные окна среды Visual Studio.NET 2010
Если исходный файл отсутствует, то после создания пустого консольного проекта
Add1 выполняется следующая последовательность выбора опций: File->New-> File. После
выбора типа файла (например, .cpp), окно этого файла появляется в редакторе кода как
Sample1.cpp, а в меню File добавляется пункт “move Sample1.cpp into Add1” для
выполнения подключения этого файла к проекту приложения Add1. Это подключение
можно сделать сразу (для пустого файла), либо после ввода текста программы.
В среде Visual Studio.NET предусмотрена полная поддержка технологии
IntelliSense, “подсказывающей” вам в то время, когда вы набираете код, и предлагающей
закончить за вас начатую строку (вы выбираете один из предложенного набора вариантов
и нажимаете Enter).
Окно документации MSDN создается в виде окна Windows Internet Explorer при
первом нажатии F1 (рис. 7).
Рис. 7. Окно документации MSDN 2010
Выполнение и отладка приложения Win32 Console Application
В среде Visual Studio.NET предусмотрен интегрированный отладчик. Добавить
точку останова (Breakpoint) можно, щелкнув мышью на левой серой полоске окна
редактора кода. Повторный щелчок в этом же месте удаляет эту точку останова. Во время
отладки приложения широко используются акселераторы – “горячие” клавиши (Shortcuts).
Они обычно подразделяются на глобальные, действующие во всех окнах среды, и
локальные, действующие в определенном контексте. В табл. 1 представлены “горячие”
клавиши, используемые при выполнении и отладке приложений.
Команды, выполняющие приложение, всегда предварительно проверяют, не
изменялся ли исходный код приложения после последней компиляции. Другими словами,
проверяется соответствие запускаемого исполнимого кода текущему исходному коду.
Если исходный код был изменен, то перед выполнением приложения выполняется его
компиляция и сборка. При отладке приложения акселератор F5 используется, если
предварительно была установлена точка останова. В противном случае отладчик
запускается по F10 или F11. Если отладчик запущен, можно выполнить программу до
курсора, если в контекстном меню выбрать Run To Cursor или просто нажать клавишу
Ctrl + F10. Если вы окажитесь внутри вызванного метода или другого блока, который не
хотите отлаживать, можете выйти за его пределы, нажав Shift + F11. Для изменения
текста программы или для повторного запуска выполнения программы необходимо
сначала завершить работу отладчика. Рестарт выполнения автоматически завершает
предыдущий сеанс работы с отладчиком.
Чтобы узнать значение переменной (во время очередного останова), задержите над
ней указатель мыши. Кроме того, переменные, их значения и типы отображаются в окнах
Locals, Autos, Watch (для отображения, например, окна Autos необходимо выбрать Debug |
Windows | Autos). Если нас интересуют значения переменных, определенных в текущем
методе или фрагменте кода, представленном в окне редактора, перейдите в окно Locals.
Если вы хотите отслеживать значение конкретной переменной во время всего выполнения
программы, перейдите в окно Watch и введите там имя переменной. Кроме того, нужную
переменную можно просто перетащить мышью в окно Watch.
Создание и отладка консольного приложения на языке C++
Проект консольного приложения на языке С++ создается также, как и на языке С.
Пример простейшей программы на языке С++:
#include <iostream>
using namespace std;
int main()
{
cout << “Hello World!” << endl;
cin.get();
return 0;
}
В качестве более сложных примеров рассмотрим две версии программы для
диалогового ввода и суммирования двух целых чисел: программы add2.cpp и
add3.cpp.
В программе add2.cpp не создаются классы и объекты, но используются
встроенные глобальные объекты-потоки cin и cout и используются перегруженные
операции для потокового ввода и вывода. Программа состоит только из функции main и
является фактически процедурной программой, например:
// add2.cpp
#include <iostream>
using namespace std;
void main ()
{ int x, y;
cout << “Input 2 numbers: “;
cin >> x >> y;
cout << “Summa = ” << x+y << endl;
}
В программе add3.cpp создается класс calc, метод plus которого реализует
суммирование двух целых чисел (этот метод реализован только для иллюстрации
объектно-ориентированного подхода). В функции main создается объект obj класса
calc, метод plus которого и используется для суммирования введенных посредством
диалога чисел. Отметим, что в объектно-ориентированной программе add3.cpp
функция main не является методом, что характерно для С++, который не является языком
чистого объектно-ориентированного программирования (в отличие от языков C# и Java):
// add3.cpp
#include <iostream>
using namespace std;
class calc
{
public:
int plus(int a, int b)
{return a+b;}
};
void main ()
{ int x, y;
calc obj;
cout<<“Input 2 numbers: “;
cin>>x>>y;
cout<<“Summa = “<<obj.plus(x,y)<<endl;
}
В программе на С++ можно подключать и использовать различные библиотеки.
Например, в следующей программе используется функция sqrt() из математической
библиотеки:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float myFloat = 0.0f;
cout << “Enter a number. ENTER: “;
cin >> myFloat;
cout << “The square root of ” << myFloat << ” is ” << sqrt(myFloat)
<< endl;
cin.clear();
cin.sync();
cin.get();
return 0;
}
Создание и отладка консольных приложений на языке C#
Для того, чтобы создать консольное приложение на языке С#, выберем в меню File
следующую последовательность опций: New->Project-> Visual C# ->Windows-> Console
Application (рис. 8). После этого заменим автоматически созданный текст приложения в
окне редактора на следующий:
// add4.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace Add4
{
class InputOutput
{
static void Main(string[] args)
{
Console.WriteLine(“Please enter 2 numbers: “);
Console.Write(“x = “);
string str = Console.ReadLine();
int x = Int32.Parse(str);
Console.Write(“y = “);
str = Console.ReadLine();
int y = Int32.Parse(str);
x = x + y;
Console.WriteLine(“Сумма равна ” + x.ToString());
}
}
}
Здесь используются два различных метода объекта Console для вывода строки –
Write и WriteLine. Их различие в том, что Write не включает в конец вывода символ
перевода строки. Кроме этого, использование WriteLine в качестве последнего оператора
вывода в программе приводит к блокировке закрытия консольного окна до тех пор, пока
пользователь, после ознакомления с результатами вывода, не введет какой-либо символ.
Рис. 8. Окно проекта консольного приложения на языке C#
Точкой входа в приложение (в исполняемый файл) С# является статический метод
Main(), который должен находиться в классе. Только один класс может содержать этот
метод. Имя метода Main начинается с прописной буквы, а не со строчной, как принято в
C++. В этом методе начинается и заканчивается работа программы. Вы можете также
вызывать другие методы, скажем, для вывода текста, как в данном примере, или создавать
объекты и вызывать методы для них.
WriteLine – это статический метод объекта Console, а System – это пространство
имен (область видимости), в котором содержится объект Console. Пространство имен
импортируется в приложение посредством директивы
using System;
При отсутствии данного импорта потребуется указывать это пространство при
каждом использовании объекта Console, например
System.Console.WriteLine(“Please enter 2 numbers: “);
Таким образом, добавив директиву using для подключения пространства имен
System, вы сможете использовать его элементы без дополнительного уточнения. Отметим,
что в среде .NET существует огромное множество различных пространств имен.
Отметим, что последний оператор вывода в предыдущей программе может заменен
на следующий оператор форматного вывода:
Console.WriteLine(“Сумма равна {0}”, x.ToString());
Здесь оператор Console.WriteLine использует строку формата “Сумма равна {0}”.
Символы {0} заменяются на первую переменную из списка аргументов, следующего за
строкой формата.
На рис. 9 в окне проводника решений (Solution Explorer) показан состав проекта
Add4. В разделе References представлены используемые данным проектом ссылки. Если
данному проекту потребуется добавить ссылку, например, на библиотеку DLL, то укажем
эту библиотеку после выбора опций Project | Add Reference (проще воспользоваться
контекстным меню).
Рис. 9. Отладка приложения на языке C# в среде Visual Studio 2010
В следующем коде на языке C# можно выводить до трех переменных:
Console.WriteLine(“Hello {0} {1}, from {2}”, FirstName, LastName, City);
3. ОБОРУДОВАНИЕ
Персональный компьютер: процессор с частотой 1,6ГГц или выше, 1024 МБ ОЗУ,
жесткий диск со скоростью 5400 об/мин, видеоадаптер с поддержкой DirectX 9 и с
разрешением 1280 х 1024 (или более высоким), операционная система MS Windows 7/8,
интегрированные среды разработки приложений Visual Studio 2010/12/13 с комплектами
документации MSDN, каталог Oop\Lab1, содержащий файл Laboop1.doc (методические
указания к данной лабораторной работе) и исходные файлы Add1.c, Add2.cpp, Add3.cpp,
Add4.cs, не менее 200 Mб свободной памяти на логическом диске, содержащем каталог
Oop\Lab1.
4. ЗАДАНИЕ НА РАБОТУ
4.1 Ознакомиться с возможностями интегрированных систем разработки
приложений MS Visual Studio.Net 2010/12/13 и Visual Studio Team System 2008.
4.2. Ознакомиться с перечнем и содержанием электронной документации,
доступной из сред Visual Studio 2010/12/13.
4.3. Выполнить отладку приложений консольного типа на языках C, C++ и C# в
среде Visual Studio 2010/12/13.
5. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ
5.1. Проверить наличие на компьютере необходимого аппаратного оборудования и
программного обеспечения, наличие 200 Мб свободной памяти на логическом диске,
содержащем каталог Oop\Lab1, наличие файла Laboop1.doc и исходных файлов Add1.c,
Add2.cpp, Add3.cpp, Add4.cs в каталоге Oop\Lab1.
5.2. Создать личный каталог, в котором будут размещаться создаваемые во время
лабораторной работы проекты.
5.3. Создать в личном каталоге пустой проект консольного приложения Add1 и
добавить сначала в каталог Add1/Add1, а затем в проект (через окно Solution Explorer)
файл Add1.c. Откомпилировать проект и выполнить приложение в автоматическом и
пошаговом режимах. Ознакомиться с набором файлов, создаваемых при создании
проекта, а затем при компиляции и компоновке приложения. Искусственно внести ошибку
в программу и ознакомиться с сообщениями в окнах Error List и Output, а также с
протоколом в файле BuildLog.htm в подкаталоге Debug проекта.
5.4. Ознакомиться с перечнем и содержанием электронной документации,
доступной из среды MS Visual Studio 2010/12/13, используя список Filtered by окна
Contents. По документации MSDN ознакомиться с имеющимися средствами решения
проблемы deprecated-функций.
5.5. Экспериментально (посредством приложения Add1) проверить работо-
способность существующих средств решения проблемы deprecated-функций.
5.6. Повторить выполнение пункта 5.3 для файлов Add2.cpp, Add3.cpp, Add4.cs.
Ознакомиться с возможностями менеджеров проектов, классов, свойств при добавлении
методов в классы. Проверить функциональные возможности интегрированной среды
разработки, появившиеся в системе Visual Studio 2010/12/13.
5.7. Повторить выполнение пункта 5.3 для программы, предложенной
преподавателем. Если при отладке возникают проблемы с устранением ошибок в
программе, необходимо выделить ошибку в окне Error List и нажать клавишу F1. В
появившемся окне документации MSDN будет приведены примеры исправления ошибки.
6. ОФОРМЛЕНИЕ ОТЧЕТА
Отчет должен содержать:
цель работы и индивидуальное задание;
перечень электронной документации, доступной из среды Visual Studio 2010/12/13;
проверенные варианты решения проблемы deprecated-функций;
ошибки в программах и выдаваемые при этом сообщения;
описание методов (methods) одного из классов, полученное из MSDN;
примеры окон Solution Explorer и Class View.
7. КОНТРОЛЬНЫЕ ВОПРОСЫ
7.1. Что такое SDK? Приведите примеры использования.
7.2. Перечислите окна, которые можно использовать в среде Visual Studio
2010/12/13?
7.3. Объясните назначение команд системы меню сред разработки Visual Studio
2010/12/13.
7.4. Перечислите основные глобальные и локальные акселераторы сред
разработки?
7.5. Какая поддержка документов и приложений Microsoft Office предусмотрена?
7.6. Как изменяется меню главного окна после создания проекта, после добавления
файлов в проект, после запуска отладчика?
7.7. Как программируется форматный консольный вывод в языке C#?
7.8. Какие операции и методы класса string вы знаете?
7.9. Какие виды параметров имеются у методов в языке C#?
7.10. Как реализуется сокрытие текста методов и/или классов в окне редактора?
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
1. Пауэрс Л. Microsoft Visual Studio 2008 / Л. Пауэрс, М. Снелл: Пер. с англ. – СПб.:
БХВ-Петербург, 2009. – 1200 с.
2. Макки А. Введение в .NET 4.0 и Visual Studio 2010 для профессионалов: Пер. с
англ. – М.: ООО “И.Д. Вильямс”, 2010. – 416 с.
3. Нэш Т. C# 2010: ускоренный курс для профессионалов: Пер. с англ. – М.: ООО
“И.Д. Вильямс”, 2010. – 592 с.
4. Онлайн-учебник по C++. – URL:
http://en.wikiversity.org/wiki/Introduction_to_C%2B%2B. . Дата последнего обращения:
1.02.13.
5. Онлайн-учебник по C++. – URL: http://cplusplus.com/doc/tutorial/. Дата
последнего обращения: 1.02.13.
6. Онлайн-учебник по С/C++. – URL:
http://cplus.about.com/od/learning1/Learn_about_C_and_how_to_write_Programs_in_It.htm.
Дата последнего обращения: 1.02.13.
Здравствуйте. Скажите пожалуйста, планирую поступать в магистратуру на факультет Психологии « Психология личности»в РГГУ скажите пожалуйста, есть ли у вас, ответы на вступительные экзамены? так как, планирую, сделать акцент на бюджет. Спасибо.
Арсений, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Дистанционная помощь в защите ВКР
Анастасия, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Здравствуйте. Нужна срочно практическая часть вкр, третья глава. Скину похожие работы, на которые можно ориентироваться
Александр, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
вкр по теме: экологический туризм России : анализ состояния, проблемы и перспективы
Людмила, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Здравствуйте вы защищаете ВКР?
Ольга, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Написать магистерскую ВКР на тему «Совершенствование логистических бизнес-процессов на примере торговой компании». Не менее 100 страниц.
Миша, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Здравствуйте нужна работа Вкр
Лена, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.
Написать ВКР 3 раздела Тема строительство строительство жилого дома с применением каркасно-монолитных технологий Антиплагиат от 75% ПЗ и чертежи
Владимир, здравствуйте! Прошу Вас прислать всю необходимую информацию на почту info@otlichnici.ru и написать что необходимо выполнить. Я посмотрю описание к заданиям и подскажу вам по стоимости и срокам выполнения.