Создание консольного приложения для платформы Win32
ПРАКТИЧЕАСКАЯ РАБОТА № 1
Тема: Знакомство со средой Microsoft Visual Studio. Создание проекта типа Visual С++ консольного приложения для платформы Win32 в среде Microsoft Visual Studio. Выполнение отладки.
Цель: ознакомить с основными элементами среды программирования и получить навыки создания, построения и выполнения консольного приложения
ОТЧЕТ ДОЛЖЕН СОДЕРЖАТЬ
1. Тему, цель работы.
2. Условия задач, фотографии или листинги программ (главных исходных файлов проектов), фотографии экрана выполнения программ с заданными исходными данными.
3. Ответы на контрольные вопросы.
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
ОРГАНИЗАЦИЯ ВЫВОДА РУССКИХ БУКВ В КОНСОЛИ В VISUAL STUDIO 2008:
1 способ: необходимо ввести в теле главной функции оператор setlocale(LC_ALL, "RUS"). Например:
…
setlocale(LC_ALL, "RUS"); // или setlocale(0, "RUS");
cout << "Город";
…
Для локализации также можно подключить:
#include <locale>
2 способ:
1) Подключить заголовочный файл windows.h:
#include <windows.h>
2) В теле главной функции ввести операторы SetConsoleCP(1251) и SetConsoleOutputCP(1251). Например:
…
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
cout << "Город";
…
3) В консоли (окне вывода результатов выполнения программы) вызвать на заголовке окна контекстное меню ® Свойства ® выбрать на закладке Шрифт шрифт Lusida Console ® ОК ® в следующем окне выбрать Сохранить свойства для других окон с тем же именем.
ПРАКТИЧЕСКОЕ ЗАДАНИЕ
Задание 1
Создание консольного приложения для платформы Win32
(способ 1 – с использованием шаблона пустого проекта)
1. Создать в папке группы (или на личном диске) папку для сохранения программ на С++ по данной дисциплине.
1. Изучить теоретические сведения из файлов папки
"m:\DOPRAB\ Mat\1\Info_i_programming\2 semestr\Prakt_r1": Лекция (среда VC 6.0).doc, Осн.приемы работы в VS 2008.pdf, Sreda_VS2005ConsoleAppl.ppt
2. Создать в Visual Studio групповой проект Prakt1типаVisual С++ консольного приложения для платформы Win32и сохранить его в папке Prakt1,создать в групповом проекте (решении) пустой проект под именем Prakt1_1.
ДЕЙСТВИЯ:
1) Запустить Visual Studio.
2) Если программа на данном компьютере запускается в первый раз, то появится окно, в котором следует выбрать строку Параметры разработки Visual C++и нажать кнопку старта среды.
3) Выполнить команду Файл ® Создать ® Проект ®выбрать тип проекта Visual C++®выбрать подтипWin32 ®выбрать шаблон приложенияКонсольное приложение Win32 ® В списке Расположение выбрать папку студента для сохранения программ на С++ (например, D:\work\ivanov)® в поле Имя решения ввести Prakt1 (автоматически будет создан каталог с заданным именем решения) ® в поле Имя задать имя проекта (например, Prakt1_1).
ЗАМЕЧАНИЕ: Имя и Имя решения можно ввести разными, т.к. в одном решении (групповом проекте) может быть несколько проектов с разными именами.
ЗАМЕЧАНИЕ: при сохранении на сетевой диск для ввода расположения папки с решением (проектом) не использовать кнопку Обзор,а скопировать путь из программы-оболочки операционной системы.
4) Кнопка ОК ® Кнопка Далее.
5) В области Параметры приложения включить Пустой проект ® Готово
6) В Обозревателе решений в выпадающем списке проекта Prakt1_1 вызвать контекстное меню на строке Файлы исходного кода ® выбрать Добавить ® Создать элемент
7) В категории Visual C++ выбрать Код ® Файл С++ (.cpp) ® ввести имя файла, например, programm1
Или выбрать Visual C++ и затем Файл С++ (.cpp) и т.д.
- Получим заготовку проекта со структурой и исходным файлом - пустым:
- Ввести в исходном файле текст программы, разобранной на лекции, которая вычисляет объем цилиндра по радиусу и высоте, вводимых с клавиатуры. Полученный результат выводится на экран монитора. Комментарии (зеленый текст) можно не писать.
5.Для корректного вывода на экран символов русского алфавита добавить в главную функцию необходимые строки – в начале тела главной функции (см. теор. сведения.).
6.Выполнить компиляцию и сборку проекта командой Построение ® Построение решения (Build ® Build Solution)(или нажать клавишу F7).
ЗАМЕЧАНИЕ: на самом деле не запускается отдельно компиляция, а выполняется режим Откомпилировать и построить. Строить (или собирать) программу необходимо, если в программе имеется обращение к каким-то функциям, которые находятся не в самой программе, а в некоторой системной библиотеке среды программирования. Компилятор такие функции не включает в тело откомпилированной программы, а только указывает некоторую ссылку, что такую-то программу в этом месте надо подключить. Уточнением ссылок (т.е. разрешением ссылок) после компилятора занимается программа Построитель (Builder). Для ее вызова и необходимо выполнить команду Построение ® Построение решения(или нажать клавишу F7).
7. Убедиться в успешности компиляции и, если необходимо, исправить ошибки.
ДЕЙСТВИЯ:
1) В нижней области программы, в окне Вывод просмотреть результат компиляции. В случае отсутствия ошибок получим в окне следующие строки:
ЗАМЕЧАНИЕ: следующие действия выполнять в случае наличия ошибок.
2) Если есть строки со сведениями об ошибках, то выбрать верхнюю и дважды кликнуть на ней. При этом курсор в тексте исходного модуля установится слева от строки с ошибочным оператором.
ЗАМЕЧАНИЕ: Для иллюстрации: если, например, в тексте главного исходного файла закомментировать строку с директивой препроцессора на подключение заголовочного файла math.h (//#include <math.h>), то при компиляции получим ошибку:
3) Исправить первую ошибку и снова построить решение. Возможно, что остальные ошибки исчезнут. В противном случае повторять процедуру. Для получения справки об ошибке (например, названии функции) ее следует пометить в окне редактора кода и нажать клавишу F1.
8. Запустить на выполнение программу одним из способов:
1 Способ (с использованием Отладчика): выполнить команду Отладка (Build) ® Начать отладку (Build Prakt1_1)(или нажать функциональную клавишу F5,или кнопку ).
Отладка – это процесс поиска и исправления ошибок в программе, препятствующих корректной работе программы. Отладка программы является одним из наиболее важных и трудоемких этапов разработки. Выполнение программы в процессе отладки происходит строка за строкой.
ЗАМЕЧАНИЕ:
1) Если после внесения изменений в текст программы не было выполнено повторное построение, то на экране появится окно, в котором следует согласиться с построением проекта:
или
2) Если после ввода исходных данных окно с результатом не остается на экране, то необходимо написать перед оператором return 0 в теле главной функции (если такового нет, то концом тела главной функции (закрывающей фигурной скобкой)) следующие строки на выбор:
1 способ:
char p; // описать переменную символьного типа
cin>>p; // ввод значения переменной – при этом выполнение программы
// остановится и после просмотра результатов нужно нажать
// любую клавишу из алфавитно-цифрового блока
2 способ:
cin.get(); // оператор считывает информацию с клавиатуры – программа
cin.get(); // ожидает нажатия клавиши Enter – и после просмотра
// результатов нажать Enter для закрытия окна выполнения
3 способ
system(“pause”); // остановка выполнения программы (отладки) до нажатия
// любой клавиши
2 Способ (без использования Отладчика): выполнить команду Отладка ® Запуск без отладки (или нажать комбинацию клавиш Ctrl+F5).
ЗАМЕЧАНИЕ: В случае, если запуск без отладки был выполнен без получения предварительной успешной компиляции, на экране может появиться окно об ошибках построения. Следует выбрать Нети исправить ошибки, затем снова запустить на выполнение.
3 Способ (запуск исполнимого файла): открыть папку с проектом ® войти в каталог (Debug– скомпилированные файлы проекта), в котором сформировался после построения ехе–модуль (результат работы программы-построителя проекта, т. е. сохраненный откомпилированный файл) и запустить его.
ЗАМЕЧАНИЕ: Сохранить в буфере обмена окно выполнения для отчета по работе (Alt+PrintScreen) и вставить в файл отчета.
9. Протестировать программу, введя различные исходные данные.
10. Сохранить изменения в проекте: Файл (File) ® Сохранить все (Save All).
11. Закрыть групповой проект (решение): Файл (File) ® Закрыть решение (Close Solution).
12. Ознакомиться с содержимым папки решения Prakt1,в том числе папки проекта Prakt1_1.