Борис Пахомов Санкт Петербург бхв петербург 2013 удк 004. 4 Ббк 32. 973. 26018. 2 П
Скачать 17.38 Mb.
|
Глава Общие сведения о среде Visual C++ 2011. Создание консольного приложения Глава Программы для работы с символьными данными Глава Работа с массивами данных Глава Создание и использование функций Глава Функции для работы с символьными строками Глава Дополнительные сведения о типах данных, операциях, выражениях и элементах управления Глава Работа с указателями и структурами данных Глава 8. Классы в С. Объектно- ориентированное программирование Глава 9. Вводи вывод в языках Си С ГЛАВА Общие сведения о среде Visual C++ 2011. Создание консольного приложения Общие положения Вам требуется решить некоторую задачу. С помощью компьютера, конечно. Например, рассчитать движение материальных ценностей по некоторому складу сколько чего было на данную дату, сколько чего поступило, сколько ушло, сколько осталось. С чего обычно начинают Ясно сразу, что если задачу надо решать на компьютере, то следовало бы ее решение как-то формализовать, те. алгоритм ее решения (набор последовательных действий, исполнение которых приводит к решению задачи) требуется привести к последовательности неких формальных действий, понятных потом машине (говорят, что надо построить машинный алгоритм решения задачи. Затем надо продумать форму общения (интерфейс того, кто станет решать эту задачу на компьютере пользователя) с самим компьютером, исходя из максимального удобства общения. Это чуть лине одна из главных трудностей проектирования решения задачи, ибо неудобство общения раздражает пользователя, который начинает совершать ошибки, что может привести, в конечном счете, к тому, что ваш проект просто будет отвергнут. Имеются еще некоторые шаги по подготовке к решению, номы их здесь опустим, т. к. это не наша проблема. Итак, мы изучили задачу, создали машинный алгоритм ее решения на компьютере, разработали интерфейс взаимодействия будущего пользователя с компьютером по решению данной задачи. А что дальше А дальше все эти разработки надо перевести на понятный компьютеру язык, те, как говорят, запрограммировать наши действия, составить машинную программу, которая представляет собой последовательность определенных команд, записанных на выбранном для решения задачи языке (алгоритмическом языке, как принято называть. Для решения конкретной задачи с учетом разработанного интерфейса подходит не всякий алгоритмический язык. Поэтому разработчику и надо выбирать подходящий к данной ситуации язык, который бы отвечал требованиям к решению задачи. И непросто обеспечивал бы ее программирование, но и отвечал бы еще множеству других условий позволял бы программисту быстро и надежно создавать программу, обеспечивал бы удобное сопровождение программы в период ее эксплуатации и т. д. 6 Часть I. Изучение языка С/С++ Когда программа написана на некотором алгоритмическом языке, она должна быть переведена в машинный язык, в язык, на котором работает компьютер, в его систему команд. Для этого существуют специальные программы, называемые компиляторами. Эти программы имеют параметры, задание которых позволяет компилятору создавать машинные программы в той или иной плоскости. Например, существуют параметры, позволяющие компилятору минимизировать размер памяти, которую станет занимать скомпилированная программа. Или, как мы будем рассматривать в данной книге, существует параметр, позволяющий компилятору создавать программы (часто говорят просто "коды, состоящие из так называемых управляемых или неуправляемых кодов. Параметры компилятора называют по- разному ключами, опциями. Но программу мало откомпилировать. Компилирование — это только первый этап создания машинной программы. Дело в том, что в общем случае, для решения конкретной задачи, те. реализации ее машинного алгоритма, требуется подключение неких стандартных библиотек, содержащих стандартные программы, которые разрабатываются один рази используются во многих алгоритмах. Например, перевод десятичных чисел в двоичные или шестнадцатеричные. Каждый программист, пишущий программу, не станет всякий раз заниматься этим переводом. Поэтому в подобных случаях разработчик программной среды, в рамках которой создается программный продукт (в нашем случае — это Visual Studio 2011), сам создает подобные библиотеки и поставляет их со средой разработки, которая содержит и компиляторы с разных языков среды в машинные коды. В свою очередь, и опытный программист может самостоятельно создавать такие библиотеки и включать их в общий перечень библиотек среды программирования, чтобы они в дальнейшем подключались автоматически к решению задач. Для этой цели среда поставляет специальные средства. Но вернемся к компиляции. Компилятор, просматривая программу (код, как говорят, переводит ее (код) в машинные команды. Ноне просто в набор команда формирует это все множество в виде отдельных (объектных) модулей. В каждом таком модуле создается своя таблица имен со ссылками на их месторасположение. То есть компилятор создает не исполняемый кода так называемый объектный код, содержащий неконкретные (как говорят "неразрешенные, те. неопределенные) ссылки. На этом его работа завершается. Чтобы получить исполняемый модуль, надо "разрешить, те. конкретизировать ссылки, сформированные компилятором с учетом конкретного размещения данного кода в выделенной для него памяти компьютера. Эту работу выполняет специальная программа, которая называется по-разному: редактор связей, компоновщик, линковщик, построитель. После работы этой программы получается набор машинных команд, готовых к исполнению на компьютере. В свете всего вышесказанного можно утверждать, что для того чтобы создать программу, требуется еще иметь средства ее компиляции и компоновки. Эти средства поставляются в рамках изучаемой нами среды MS Visual C++ 2011. То есть, прежде чем перейти к изучению собственно языка С/С++, надо познакомиться хотя бы в общих чертах с интерфейсом среды обработки данных MS Visual C++ 2011, что Глава 1. Общие сведения о среде Visual C++ 2011 . Создание консольного приложения бы иметь возможность сего помощью компилировать и строить исполняемые программы в рамках языка С/С++. Структура рабочего стола среды программирования Цель этой главы — продемонстрировать начальные элементы программирования на языке С/С++. Язык С+ является дальнейшим развитием языка С, поэтому все конструкции языка С поддерживаются в С. Однако в С+ появились новые возможности синтаксиса, не имеющиеся в С. Это мы увидим по мере рассмотрения материала. Чтобы построить программу на этом языке, нам надо воспользоваться средой программирования (ее английская аббревиатура — IDE: Integrated Development Environment), которая содержит средства создания программы, ее компиляции, отладки и запуска на выполнение. В этой связи рассмотрим кратко структуру этой среды, а точнее, ее интерфейс снами, пользователями. Интерфейс это аппарат, который позволяет удобно взаимодействовать пользователю со средой. После установки на своем компьютере среды Visual C++ 2011 она запускается на выполнение. Здесь следует отметить один момент. Среда Visual Studio 2011 Professional состоит из многих подсред, подразделов, каждый из которых нацелен функционально обрабатывать определенную область задач. Чтобы настроиться на работу с конкретным подразделом, разработчики предусмотрели для пользователя возможность выбора одной конкретной подсреды, с которой он станет работать после запуска основной среды. Когда пользователь выберет такую подсреду (в данном случае автор выбрал подсреду Visual C++), основная среда настраивается на выбранный подраздели пользователь получает к нему доступ. Адрес загрузки такой подсреды, как и при установке любой программы, попадает вменю кнопки Пуск, откуда вы можете ее загрузить, воспользовавшись командой главного меню Пуск | Программы. Для удобства дальнейшей работы с установленным программным продуктом следует мышью перетянуть его значок на линейку быстрого запуска программ, которая находится на рабочем столе операционной системы (обычно ее располагают в нижней части стола. Находящийся на этой линейке любой программный продукт запускается одинарным щелчком мыши на значке соответствующего продукта. Итак, загружаем наш продукт (для краткости в дальнейшем станем его называть VC++). На экране появится главное окно — рабочий стол, структуру которого мы и рассмотрим. Главное окно Общий вид окна показан на рис. 1.1. Этот формат интерфейса принят в среде по умолчанию и может быть всегда восстановлен через соответствующую опцию главного меню Windows | Reset Window Layout. 8 Часть I. Изучение языка С/С++ Рис. 1.1. Вид главного окна IDE после загрузки В верхней части окна расположена строка с командами главного меню среды команды File, Edit, ...) — это строка горизонтального меню. При вызове этих команд (их еще называют опциями, те. элементами выбора из нескольких значений) открываются так называемые выпадающие меню — это вертикальные меню, представляющие собой набор команд, располагающихся на экране сверху вниз. Пример такого меню показан на рис. 1.2. Ниже строки главного окна находятся кнопки быстрого вызова некоторых команд на исполнение. Все эти кнопки имеют всплывающие подсказки (надо навести курсор мыши на кнопку, немного подождать, после чего появится подсказка о том, для чего предназначена данная кнопка. Рядом с такими кнопками могут быть дополнительные кнопки для раскрытия списка значений основной кнопки. Так как все кнопки не помещаются в отведенное им место на рабочем столе, то они свернуты в небольшие полосы с кнопками их развертывания точно также, как это выполнено во всем известной программе Word (рис. 1.3). Вид главного окна, в свою очередь, изменяется при задании типа создаваемого приложения. С этим мы познакомимся, когда начнем создавать приложения. Глава 1. Общие сведения о среде Visual C++ 2011 . Создание консольного приложения Рис 1.2. Пример выпадающего меню Рис. 1.3. Кнопки быстрого вызова Некоторые замечания О рабочем столе Рабочий стол формируется из набора окон. Каждое окно — это обычное Windows- окно, имеющее стандартную заголовочную полосу в своей верхней части. За эту полосу можно окно перемещать с помощью протягивания мышью. У окон имеются свойства, которые открываются, если на заголовочной части щелкнуть правой кнопкой мыши. Перечень свойств окна Solution Explorer показан на рис. 1.4. Рис 1.4. Меню свойств окна Кстати сказать, стартовая страница, исключая главное меню и набор кнопок быстрого запуска, — это тоже обычное окно со своим набором свойств. Особенностью набора окон является возможность разбирать этот набор на подокна и группировать последние между собой в соответствии с желаниями пользователя. Для этого у каждого окна имеются определенные свойства. Чтобы лучше понять, 10 Часть I. Изучение языка С/С++ как работают некоторые свойства окон, введем такое понятие, как причаливание. По самому смыслу этого слова понятно, что объект, обладающий свойством причаливания, может по аналогии с морским или речным портом причаливать либо к берегу, либо к другому объекту. В нашем случае таким берегом является полоса стартовой страницы, содержащая главное меню и кнопки быстрого запуска. К ней могут причаливать другие окна, образуя у этого "берега" свои вкладки, как это делается в интернет-браузерах, когда открывается таили иная страница. Но причаливание окна может осуществляться и к другому окну или к группе окон, образующих из своих вкладок новый берег, когда одно или несколько окон занимают всю горизонтальную полосу страницы, а остальные окна располагаются в нижней полосе, образуя своими вкладками свой "берег причаливания. При этом окно, к которому причаливает другое окно, как бы захватывает, проглатывает причаливающее к нему окно, оставляя от последнего только вкладку с именем "проглоченного" окна, по которой можно открыть такое причалившее и "проглоченное" окно. Как визуально определить, захватится ли перемещаемое вами окно "берегом" или другим окном-объектом? Когда вы перемещаете по экрану окно, вы видите некие направляющие "кресты, возникающие на вашем пути и синие подсветки, всплывающие в некоторых областях перемещения. Кресты возникают по центру активной вкладки, через территорию которой вы перемещаетесь. Вкладка — это какое-то окно, причаленное к берегу или объекту. Синяя подсветка же появляется в момент, когда подсвеченная область готова захватить ваше перемещаемое окно, как только вы отпустите левую кнопку мыши. Подсветки возникают справа, слева, сверху, снизу у креста, показывая область размещения будущего захваченного объекта. Уточним, чтобы "вытащить" окно из какой-то группы, надо зацепиться мышью за его заголовок и начать протяжку окна. Если получилось так, что окна расположились горизонтально в несколько слоев (например, первый слой содержит вкладки двух окон, второй — двух окон, третий — одного окна, а вы хотите, чтобы все вкладки были водном слое, вытащите, ухватив мышью заголовок вкладки, окно в область, где оно не попадает на синее пространство, уменьшите мышью горизонтальный размер окна и снова вставьте окно (через его попадание в поле, в котором появится синяя подсветка) вместо его причаливания. Так поступите с каждым из окон во всех слоях, добиваясь, чтобы они по ширине заголовка помещались в при- чаливамый "берег. Если вы случайно закрыли какое-то окно (оно при этом, естественно, исчезло с экрана, следует найти его с помощью опций главного меню Windows и View, на которых надо просто щелкнуть мышью. Вот опции окна (открываются правой кнопкой мыши Float (плавающее. Такое окно можно перетягивать в любую часть рабочего стола. Оно имеет вид обычного окна. Подобное окно как бы отвязано от набора окон и может перемещаться мышью в любое место экрана. При этом, как только протяжка окна завершается (напомним, что протяжка — это захват окна за его заголовочную полосу мышью и удержание левой кнопки мыши в момент продвижения окна по экрану завершение протяжки — отпускание нажатой левой кнопки мыши, окно остается в том же месте, где оно находилось в момент завершения протяжки. Но так получается только тогда, когда окно в мо- Глава 1. Общие сведения о среде Visual C++ 2011 . Создание консольного приложения мент остановки не попало на поле синей подсветки, иначе окно захватится и причалит к области, определенной синей подсветкой Dock (причаливающее. Вспомните морское понятие "док" — место для причаливания судов. Это аналогия с нашим случаем. Окно, у которого выбрана подобная опция, моментально причалит к какому-то "берегу" (зависит от его местоположения в момент выбора опции Dock); Dock as Tabbed Document (причаливать в качестве вкладки к основному причалу рабочего стола — к группе опций главного меню. Как только мы выбираем эту опцию у какого-то окна, оно моментально причаливает к основному причалу и становится вкладкой, располагающейся первой слева. Таким способом можно переупорядочить последовательность вкладок, назначая каждой в заданном порядке рассматриваемое свойство окна. Пример показан на рис. 1.5. На риса приведен вид рабочего стола VC++, в котором четыре окна представлены в виде своих вкладок, расположенных под полем главного меню (в данном случае оно будет играть роль причала. С помощью опции View главного меню (View | Other Windows | Server Explorer) выбрано окно Server Explorer, которое появилось на экране и свойства которого показаны на рис. 1.5, б. Затем выбирается опция Dock as Tabbed Document. Окно моментально становится вкладкой того причала, который показан ранее на риса. В результате имеем вид уже пяти окон, приведенный на рис. 1.5, в Рис 1.5. Изменение рабочего стола VC++: а — первоначальный вид VC++ 12 Часть I. Изучение языка С/С++ б в Рис. 1.5. Изменение рабочего стола VC++: б — окно Server Explorer и его свойства- опции в — окно Server Explorer после выбора его свойства Dock as Tabbed Document Глава 1. Общие сведения о среде Visual C++ 2011 . Создание консольного приложения Auto Hide (автоматически исчезать. В этом случае окно автоматически "прячется" (причаливает) в качестве вкладки к ближайшей боковой стороне основного окна рабочего стола Hide (спрятать. При выборе этого свойства окно исчезает с экрана. Чтобы оно снова появилось, надо воспользоваться либо опцией View главного меню, либо соответствующей данному окну опцией Other Windows опции View. Все рассмотренные выше свойства надо хорошо понимать, чтобы манипулировать положением окон на рабочем столе, иначе может сложиться ситуация, когда на рабочем столе соберется множество окон, которые просто станут мешать работать. Их надо будет "разогнать" по боковым сторонам основного окна, а другие просто спрятать. Например, как установить справа сбоку основного окна рабочего стола окна Toolbox и Server Explorer? Предварительно надо щелкнуть мышью на вкладке окна, и оно появится на рабочем столе. Тогда у него можно увидеть его опции. У рассматриваемых окон надо выбрать (через правую кнопку мыши) свойство Dock (причаливание. Тогда в заглавной строке окна появится значок Auto Hide скрывать автоматически. Значок имеет вид вертикального полупроводника. Если на этом значке щелкнуть, то окно причалит к правой стороне главного окна среды и спрячется останется видно только его имя. О справочной системе Все всегда начинается с вопроса "А где посмотреть, как это делается" Ясно, что в справочной системе к программному продукту. Откроем опцию Help главного меню VC++ (рис. 1.6). Рис 1.6. Меню Help В рассматриваемой нами среде программирования VC++ предусмотрено использование справочной информации из двух источников из Интернета и из своего компьютера. Для этого справочную систему следует предварительно настроить на желаемый источник информации. Почему из двух источников Если иметь справку на своем компьютере, ее можно очень быстро загружать. Но за это надо платить приходится самому поддерживать 14 Часть I. Изучение языка С/С++ ее в актуальном состоянии. Для этого вменю служит опция |