Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВМИиП - Лабораторный практикум на Visual C++ 20...doc
Скачиваний:
2
Добавлен:
13.08.2019
Размер:
650.75 Кб
Скачать

4. Блоки лабораторных работ по разделу «Объектно-

ориентированные методы программирования в

Windows»

4.1. Блок по теме «Создание Windows-приложений»

Цель блока - изучение этапов создания различных типов Windows-приложений в среде Visual C++ 2005.

lab1_1 «Консольные приложения»

Консольное приложение – это приложение, напоминающее DOS-программу, имеющее функцию main() и символьный интерфейс, управляемый клавишами клавиатуры.

Необходимость консольных приложений при программировании в Windows объясняется: переходом от MS-DOS к Windows; целесообразностью иметь в некоторых программах текстовый режим, а не графический интерфейс; необходимостью автономного тестирования фрагментов больших программ.

Цель работы - создание консольного приложения и изучение основных этапов разработки приложений.

Условие задачи:

Имеется класс spisok Выполнить автономное тестирование класса spisok.

Для этого надо выполнить следующие этапы:

- создать проект lab1_1 нового консольного приложения с файлом заголовков lab1_1.h и файлом кодов lab1_1.cpp;

- добавить в проект файл заголовков lab1_1.h с определением класса и подключить его к файлу кодов lab1_1.cpp;

- добавить в функцию _tmain() файла lab1_1.cpp фрагмент программы, содержащий вызовы тестируемых функций класса spisok.

Создание проекта консольного приложения

Выполнить этапы согласно п. 2.1 и ввести имя проекта lab1_1.

Создание и добавление исходных файлов в проект

Проект должен содержать файл заголовков lab1.h и файл кодов lab1.cpp. Для создания файла lab1.h выполнить следующие этапы:

- Выбрать команду Project->Add New Item. Появится диалоговое окно Add New Item lab1. В списке Categorie должно быть Visual C++ Code.

- Выбрать в списке Templates тип файла заголовков Header File (.h), ввести имя файла lab1_1.h и щелкнуть на кнопке Add. Появится пустое поле для ввода текста файла lab1.h.

- Ввести текст файла lab1.h и сохранить его.

Аналогично создать файл заголовков lab1_1.cpp, выполнив эти этапы. Только необходимо выбрать вкладку типа файла C/C++ Source File (файл кодов).

//файл заголовков lab1_1.h

#include <iostream> //старая библ. iostream.h заменена на

//пространство имен iostream

struct uzel

{

float nom;//элемент списка

uzel* sled; //указатель на следующий элемент списка

};

class spisok //определение класса список

{

private:

uzel* nach; // nach-указатель на начало списка

public:

spisok(){nach=NULL;} //конструктор

~spisok(){ud();} //деструктор

void dob(float d); //добавление элементов в список

void ud_nach(); //удаление элемента списка

void vvod(); //ввод всех элементов

void vyvod(); //вывод всех элементов

void ud(); //удаление списка

};

//файл кодов lab1_1.cpp

#include <stdafx.h>

using std::cout; //функции библ. ввода/вывода (iostream) cout и cin

using std::cin; //принадлежат пространству имен std

#include "lab1_1.h" //подключение файла заголовков

spisok obj; //объявление объекта класса

void spisok::dob (float d) //список вида стек, добавление – в начало

{ uzel* rab=new uzel; //списка

rab-> sled=nach; rab-> nom=d;

nach=rab;}

void spisok::ud_nach ()

{ uzel* rab=nach;

nach=nach->sled; delete rab;}

void spisok::vvod()

{ float d;

cout<<"Enter number (0-fine):";

for (;;)

{

cin>>d; if (d==0) break;

dob (d); } cout<<’\n’;}

void spisok::vyvod()

{ uzel* rab=nach;

while (rab!=NULL)

{cout<<rab->nom<<" -> ";

rab=rab-> sled;} cout<<’\n’;}

void spisok::ud()

{while (nach!=NULL)

ud_nach ();}

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

{ obj.vvod (); obj.vyvod ();

obj.ud_nach (); obj.vyvod ();

obj.ud (); obj.vyvod ();

}

Компиляция и выполнение приложения

Выбрать команду Build->Build lab1_1. Выполняется компиляция и компоновка программы. При наличии ошибок выполнить редактирование файлов и снова запустить на компиляцию.

Выбрать команду Debug ® Start Without Debugging - запуск на выполнении программы. На экране появляется окно MS-DOS и выводятся результаты программы. Строка Press Any Key to Continue позволяет увидеть результаты программы.

Закрытие, открытие, просмотр проекта

Visual Studio размещает файлы проекта lab1_1.h и lab1_1.cpp в папке проекта lab1_1, а объектные файлы - в подкаталоге Debug папки проекта lab1_1.

Для закрытия проекта надо выполнить команду File ->Close Solution. Появляется окно Start Page.

Для повторного открытия проекта выполнить этапы:

Выбрать команду File->Open Solution. Появится око Open Solution со списком проектов (папок). Выбрать папку необходимого проекта (lab1_1) и открыть её, нажав Open (или дважды щёлкнуть на папке). В окне Open Solution появляется содержимое выбранной папки.

- Выбрать exe-файл и открыть его. Открывается проект lab1_1.

Для просмотра проекта используется вкладки окна Solution Explorer: вкладка Class View – для просмотра классов; вкладка Solution Explorer – для просмотра файлов проекта; вкладка Resource View – для просмотра ресурсов.

lab1_2 «SDI-приложения»

SDI-приложение (Single Document Interface – однодокументный интерфейс) – это приложение, имеющее одновременно открытым только один документ;

Цель работы - создание SDI-приложения, которое создает окно и отображает в нем данные (строку “Ваше первое SDI-приложение!”).

Создание проекта SDI-приложения

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

Запустить Visual Studio 2005. Появится стартовая страница Start Page. Проверить вкладку Projects.

Щелкнуть на кнопке Create Project или выбрать команду File->New->Project. Появится диалоговое окно New Project.

Выбрать в списке Project Types папку Visual C++ MFC, а в списке Templates – MFC Application. Ввести имя проекта lab1_2 и проверить в поле Solution Name имя папки для хранения проекта (lab1_2).

Щелкнуть на кнопке OK. Появляется диалоговое окно MFC Application Wizard - lab1_2. Генератор приложений AppWizard потребует от пользователя выполнения 7 этапов (шагов) настройки создаваемого приложения.

Первая вкладка Overview позволяет выбрать вариант по умолчанию. Рассмотрим этапы настройки.

1-ый этап (вкладка Application Type) – это выбор количества окон приложения: Single Document, Multiple Document, Dialog based, Multiple top-lever documents В нашем примере надо выбрать Single Document. На всех остальных этапах можно выбрать настройки по умолчанию. В диалоговом окне имеются дополнительные переключатели и флажки. Флажок Document/View architecture support поддерживает концепцию Документ/Представление и должен быть установлен. В списке Resource language выбрать язык ресурсов – English (US). Переключатель Project Style установить в положение традиционного интерфейса – MFC standart. Следующий переключатель определяет выбор между динамически связываемой и статически связываемой библиотеками. Выбрать static.

2-ой этап (вкладка Compound Document Support) – варианты работ с составными документами: None – нет составных документов; Container – использование в приложении связанных или внедренных объектов; Mini-server – создание приложения, документы которого могут быть внедрены в другое приложение, но без автономного использования; Full-server – создание приложения, аналогичного предыдущему, и с автономным использованием; Container/Full server – создание приложения и контейнера и сервера.

3-ий этап (вкладка Document Template Strings) – выбор строковых шаблонов документа. Выбрать – по умолчанию.

4-ый этап (вкладка Database Support) – поддержка баз данных: None – поддержка баз данных не предусмотрена; Header files only – только файлы заголовков; Database view without file support – генерирование базы данных без поддержки файловых операций; Database view with file support – генерирование базы данных с поддержкой файловых операций. Выбрать – None.

5-ый этап (вкладка User Interface Features) – установка опций экстеръера пользовательского интерфейса. Выбрать по умолчанию.

6-ой этап (вкладка Advanced Features) - использование дополнительных параметров: контекстная справка, печать и предварительный просмотр, автоматизация, элементы управления ActiveX, почтовый интерфейс, сокеты Windows. Выбрать по умолчанию.

Последний этап (вкладка Generated Classes) – это подтверждение создаваемых классов и файлов. Щелкнуть на кнопке Finish. Выводится стартовая страница Start Page с открытым проектом.

Объявление объекта данных в классе документа

// lab1_2Doc.h

class CLab1_2Doc: public CDocument

{//

protected:

CLab1_2Doc ();

DECLARE_DYNCREATE (Clab1_2Doc)

CString Message; //объявление объекта класса CString

}

Класс CString содержит функции обработки строк: Compare() – сравнение двух строк; Format() – преобразование других типов в текст; оператор + - конкатенция; операторы >>,<< - ввод, вывод; и др.

Инициализация объекта в конструкторе класса

CLab1_2Doc :: CLab1_2Doc()

{

Message = “SDI-приложение!”;

}

Вывод данных на экран в классе представления

void CLab1_2View :: OnDraw (CDC* pDC)

{

CLab1_2Doc* pDoc = GetDocument ();//указатель на объект док.

ASSERT_VALID (pDoc); // макрос для проверки указат.

pDC -> TextOut ( 0, 0, pDoc -> Message);//функция класса CDC

}

Компиляция, запуск и тестирование приложения

Выбрать команду Build->Build lab1_2. Выполняется компиляция и компоновка программы. Выбрать команду Debug ® Start - запуск на выполнении программы. На экране появляется окно и выводятся результаты программы – строка “SDI-приложение!”.

Изменить размеры и положение окна, свернуть его в пиктограмму или развернуть на весь экран.

Выбрать команду File->Open и выбрать любой файл.

Установить указатель мыши на одной из пиктограмм панели инструментов и задержать его, чтобы посмотреть назначение.

Щелкнуть на пиктограмме Open, чтобы убедиться, что она тоже выполняет действия команды File->Open.

Выбрать команду Help->About. Выведется окно сообщения об авторских правах. Нажать OK окна сообщений.

Выбрать команду File->Exit. Приложение закроется.

Выбрать команду File->Close Solution. Проект закрыт.

lab1_3 «MDI-приложения»

MDI-приложение (Multiple Document Interface - многодокументный интерфейс) – это приложение, которое может одновременно иметь несколько открытых документов и иметь для одного документа несколько представлений;

Цель работы - создание MDI-приложения с несколькими документами и несколькими представлениями.

Создание проекта MDI-приложения

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

Запустить Visual Studio 2005. Появится стартовая страница Start Page. Проверить вкладку Projects.

Щелкнуть на кнопке Create Project или выбрать команду File->New->Project. Появится диалоговое окно New Project.

Выбрать в списке Project Types папку Visual C++ MFC, а в списке Templates – MFC Application. Ввести имя проекта lab1_3 и проверить в поле Solution Name имя папки для хранения проекта (lab1_3).

Щелкнуть на кнопке OK. Появляется диалоговое окно MFC Application Wizard - lab1_3. Генератор приложений AppWizard потребует от пользователя выполнения 7 этапов (шагов) настройки создаваемого приложения.

1-ый этап (вкладка Application Type) – это выбор количества окон приложения: Single Document, Multiple Document, Dialog based, Multiple top-lever documents В нашем примере надо выбрать Multiple Document. В диалоговом окне имеются дополнительные переключатели и флажки. Флажок Document/View architecture support поддерживает концепцию Документ/Представление и должен быть установлен. В списке Resource language выбрать язык ресурсов – English (US). Переключатель Project Style установить в положение традиционного интерфейса – MFC standart. Следующий переключатель определяет выбор между динамически связываемой и статически связываемой библиотеками. Выбрать static.

На всех остальных этапах можно выбрать настройки по умолчанию, щелкнув на кнопке Finish. Появится окно Start Page с открытым проектом. Для каждого нового документа автоматически создаются классы документа и представления.

Объявление объекта данных в классе документа

//Lab1_3Doc.h

class CLab1_3Doc:public Cdocument

{

public:

CString Message;

}

Инициализация объекта в конструкторе класса

CLab1_3Doc::CLab1_3Doc()

{

Message = “ MDI-приложение!”;

}

Вывод данных на экран в классе представления

void CLab1_3View::OnDraw(CDC* pDC)

{

CLab1_3Doc* pDoc = GetDocument();

ASSERT VALID(pDoc);

pDC->TextOut(0, 0, pDoc->Message);

}

Компиляция, запуск и тестирование приложения

Выбрать команду Build->Build lab1_3. Выполняется компиляция и компоновка программы. Выбрать команду Debug ® Start - запуск на выполнении программы. На экране появляется окно документа с именем lab1_31 (lab1_3 – имя проекта) и выводятся результаты программы – строка “MDI-приложение!”.

Выполнить команду File->New. Открывается окно нового документа lab1_32.

Выполнить команду Window->New Window. Будет создано для документа lab1_32 второе новое представление с именем lab1_32:2, а первое представление изменит имя с lab1_32 на lab1_32:1.

lab1_4 «Диалоговые приложения»

Диалоговое приложение – это приложение, не имеющее меню и не могущее сохранять и открывать файлы.

Цель работы – создание простого диалогового приложения.

При запуске приложения появится диалоговое окно со стандартными кнопками OK и Cancel. При щелчке на кнопках OK или Cancel диалоговое окно исчезнет.

Создание проекта диалогового приложения

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

Запустить Visual Studio 2005. Появится стартовая страница Start Page. Проверить вкладку Projects.

Щелкнуть на кнопке Create Project или выбрать команду File->New->Project. Появится диалоговое окно New Project.

Выбрать в списке Project Types папку Visual C++ MFC, а в списке Templates – MFC Application. Ввести имя проекта lab1_4 и проверить в поле Solution Name имя папки для хранения проекта (lab1_4).

Щелкнуть на кнопке OK. Появляется диалоговое окно MFC Application Wizard - lab1_4.

1-ый этап (вкладка Application Type) – это выбор количества окон приложения: Single Document, Multiple Document, Dialog based, Multiple top-lever documents В нашем примере надо выбрать Dialog based. В диалоговом окне имеются дополнительные переключатели и флажки. Флажок Document/View architecture support поддерживает концепцию Документ/Представление и должен быть установлен. В списке Resource language выбрать язык ресурсов – English (US). Переключатель Project Style установить в положение традиционного интерфейса – MFC standart. Следующий переключатель определяет выбор между динамически связываемой и статически связываемой библиотеками. Выбрать static.

На всех остальных этапах можно выбрать настройки по умолчанию, щелкнув на кнопке Finish. Появится окно Start Page с открытым проектом.

Компиляция, запуск и тестирование приложения

Выбрать команду Build->Build lab1_4. Выполняется компиляция и компоновка программы. Выбрать команду Debug ® Start - запуск на выполнении программы. На экране - главное диалоговое окно с надписью “TODO : Place dialog controls here”. Чтобы убрать надпись, надо щелкнуть на ней и нажать Delete. Щелкнуть на пиктограмме строки заголовка. Откроется меню, содержащее команды Переместить, Закрыть и About lab1_4. При щелчке на команде About lab1_4 выводится диалоговое окно с информацией о программе. Имеются две кнопки OK и Cancel. Если щелкнуть на кнопке, диалоговое окно исчезнет.