Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Выполнение и отладка приложения Win32 Console Application
В среде Visual Studio.NET предусмотрен интегрированный отладчик. Добавить точку останова (Breakpoint) можно, щелкнув мышью на левой серой полоске окна редактора кода. Повторный щелчок в этом же месте удаляет эту точку останова. Во время отладки приложения широко используются акселераторы - " горячие" клавиши (Shortcuts). Они обычно подразделяются на глобальные, действующие во всех окнах среды, и локальные, действующие в определенном контексте. В табл. 1 представлены " горячие" клавиши, используемые при выполнении и отладке приложений. Команды, выполняющие приложение, всегда предварительно проверяют, не изменялся ли исходный код приложения после последней компиляции. Другими словами, проверяется соответствие запускаемого исполнимого кода текущему исходному коду. Если исходный код был изменен, то перед выполнением приложения выполняется его компиляция и сборка. При отладке приложения акселератор F5 используется, если предварительно была установлена точка останова. В противном случае отладчик запускается по F10 или F11. Если отладчик запущен, можно выполнить программу до курсора, если в контекстном меню выбрать Run To Cursor или просто нажать клавишу Ctrl + F10. Если вы окажитесь внутри вызванного метода или другого блока, который не хотите отлаживать, можете выйти за его пределы, нажав Shift + F11. Для изменения текста программы или для повторного запуска выполнения программы необходимо сначала завершить работу отладчика. Рестарт выполнения автоматически завершает предыдущий сеанс работы с отладчиком.
Таблица1. Основные акселераторы среды разработки
Чтобы узнать значение переменной (во время очередного останова), задержите над ней указатель мыши. Кроме того, переменные, их значения и типы отображаются в окнах 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);
ОБОРУДОВАНИЕ Персональный компьютер: процессор с частотой 1, 6ГГц или выше, 1024 МБ ОЗУ, жесткий диск со скоростью 5400 об/мин, видеоадаптер с поддержкой DirectX 9 и с разрешением 1280 х 1024 (или более высоким), операционная система MS Windows 7, интегрированные среды разработки приложений Visual Studio 2010 и Visual Studio Team System 2008 с комплектами документации MSDN, каталог Tprog\Lab1, содержащий файл Labtprog1.doc (методические указания к данной лабораторной работе) и исходные файлы Add1.c, Add2.cpp, Add3.cpp, Add4.cs, не менее 200 Mб свободной памяти на логическом диске, содержащем каталог Tprog\Lab1.
ЗАДАНИЕ НА РАБОТУ
4.1 Ознакомиться с возможностями интегрированных систем разработки приложений MS Visual Studio.Net 2010 и Visual Studio Team System 2008. 4.2. Ознакомиться с перечнем и содержанием электронной документации, доступной из сред Visual Studio 2010 и Visual Studio Team System 2008. 4.3. Выполнить отладку приложений консольного типа на языках C, C++ и C# в средах Visual Studio Team System 2008 и Visual Studio 2010.
ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ 5.1. Проверить наличие на компьютере необходимого аппаратного оборудования и программного обеспечения, наличие 200 Мб свободной памяти на логическом диске, содержащем каталог Tprog\Lab1, наличие файла Labtprog1.doc и исходных файлов Add1.c, Add2.cpp, Add3.cpp, Add4.cs в каталоге Tprog\Lab1. 5.2. Создать личный каталог, в котором будут размещаться создаваемые во время лабораторной работы проекты. 5.3. Создать в личном каталоге пустой проект консольного приложения Add1 и добавить сначала в каталог Add1/Add1, а затем в проект (через окно Solution Explorer) файл Add1.c. Откомпилировать проект и выполнить приложение в автоматическом и пошаговом режимах. Ознакомиться с набором файлов, создаваемых при создании проекта, а затем при компиляции и компоновке приложения. Искусственно внести ошибку в программу и ознакомиться с сообщениями в окнах Error List и Output, а также с протоколом в файле BuildLog.htm в подкаталоге Debug проекта. 5.4. Ознакомиться с перечнем и содержанием электронной документации, доступной из среды MS Visual Studio 2010, используя список Filtered by окна Contents. По документации MSDN ознакомиться с имеющимися средствами решения проблемы deprecated-функций. 5.5. Экспериментально (посредством приложения Add1) проверить работоспособность существующих средств решения проблемы deprecated-функций. 5.6. Повторить выполнение пункта 5.3 для файлов Add2.cpp, Add3.cpp, Add4.cs. Ознакомиться с возможностями менеджеров проектов, классов, свойств при добавлении методов в классы. Проверить функциональные возможности интегрированной среды разработки, появившиеся в системе Visual Studio 2010. 5.7. Повторить выполнение пункта 5.3 для программы, предложенной преподавателем. Если при отладке возникают проблемы с устранением ошибок в программе, необходимо выделить ошибку в окне Error List и нажать клавишу F1. В появившемся окне документации MSDN будет приведены примеры исправления ошибки.
ОФОРМЛЕНИЕ ОТЧЕТА
Отчет должен содержать: · цель работы и индивидуальное задание; · перечень электронной документации, доступной из среды Visual Studio 2010; · проверенные варианты решения проблемы deprecated-функций; · ошибки в программах и выдаваемые при этом сообщения; · описание методов (methods) одного из классов, полученное из MSDN; · примеры окон Solution Explorer и Class View.
КОНТРОЛЬНЫЕ ВОПРОСЫ
7.1. Что такое SDK? Приведите примеры использования. 7.2. Перечислите окна, которые можно использовать в среде Visual Studio 2010? 7.3. Объясните назначение команд системы меню сред разработки Visual Studio 2010 и Visual Studio Team System 2008. 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.
Лабораторная работа № 2
Объектно-ориентированное программирование на управляемом и неуправляемом С++ в интегрированной среде Visual Studio 2010
ЦЕЛЬ И ЗАДАЧИ РАБОТЫ
Ознакомление с технологией создания и отладки объектно-ориентированных программ на управляемом (managed) и неуправляемом (unmanaged) языке С++ в интегрированной среде разработки приложений Visual Studio 2010.
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Язык С++ является гибридным языком, позволяющим при создании программ использовать как процедурное, так и объектно-ориентированное программирование (ООП). Известно, что одним из недостатков процедурных языков программирования является ограниченность их предопределенных типов данных. Например, если в программе необходимо выполнять сложение матриц, пользователь создает процедуру, например, с именем add, и будет обращаться к ней всякий раз, когда необходимо просуммировать массивы, например: call add(A, B, C, size); Решение той же задачи с использованием ООП заключается в создании нового (абстрактного) типа данных, например, matrix, для которого будет переопределен оператор сложения. В этом случае запись С=А+В решает задачу сложения матриц, причем используется форма записи, наиболее близкая к математической. В этой записи А, В и С - объекты типа (класса) matrix. Таким образом, создавая классы для конкретной предметной области, программист может адаптировать язык программирования под задачи этой предметной области. Для иллюстрации перехода от процедурного к объектно-ориентированному программированию рассмотрим процедурный и объектно-ориентированный варианты реализации такой структуры данных, как стек. Обычно стек позволяет выполнять операции push, pop, top, empty и full. Оператор push помещает значение в стек. Оператор pop считывает и удаляет значение из вершины стека. Оператор top считывает верхнее значение стека. Оператор empty проверяет, пуст ли стек. Оператор full проверяет, полон ли стек. Популярное:
|
Последнее изменение этой страницы: 2016-05-03; Просмотров: 858; Нарушение авторского права страницы