Лабораторные работы




Скачать 70.91 Kb.
НазваниеЛабораторные работы
Дата публикации24.03.2014
Размер70.91 Kb.
ТипЛабораторная работа
skachate.ru > Бухгалтерия > Лабораторная работа

Глава 4. Лабораторные работы


Лабораторный практикум состоит из двух взаимосвязанных работ. В результате выполнения лабораторных занятий необходимо создать приложение на базе диалога и архитектуры документ/вид – «мини браузер». В первой лабораторной работе вы создадите диалоговое приложение для выбора адреса страницы (*.html). Во второй работе вам необходимо будет создать приложение на базе архитектуры документ/вид, класс вида должен быть порожден от класса CHtmlView. В это приложение необходимо будет добавить класс, созданный в первой лабораторной работе, модифицировать его и изменить класс вида приложения.

Класс CHtmlView содержит ряд функций, позволяющих без труда «путешествовать» по сети Интернет. Как класс, CHtmlView инкапсулирует значительное количество функций броузера Internet Explorer. Приложение Internet Explorer может работать не только с web-страницами, оно понимает документы Word, Excel, PowerPoint и многие другие документы, которые понимают продукты фирмы Microsoft.
^

Лабораторная работа №1


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

Ход выполнения работы:

  1. Создайте проект на базе диалогового окна с именем Selector.

  2. В ResourceView раскройте пункт Dialog и в нем для IDD_SELECTOR_DIALOG задайте русский язык.

  3. Задайте размер окна 305x135.

  4. Создайте макет диалогового приложения, так как это приведено на рисунке 8.

  5. Измените имена идентификаторов следующим образом: для поля редактирования IDC_EDIT_PAGEADRESS, для списка – IDC_LIST_PAGES; кнопки: IDC_BUTTON_OPEN, ID_ADD, ID_REMOVE.

  6. Измените заголовки кнопок «Ok» и «Cancel» на «Применить» и «Отмена» соответственно.



Рис. 8 – Вид приложения Selector

  1. С помощью ClassWizard добавите переменные m_listPages типа CListBox и m_strPageAddress типа CString, связав их со списком и полем ввода.

  2. Создайте обработчики для всех добавленных кнопок и для кнопки «Применить».

  3. В методе OnInitDialog установите строку "" в поле ввода, используя переменную m_strPageAddress, и очистите список методом ResetContent.

  4. В методе OnAdd получите строку с поля ввода (UpdateData(<параметр>)), проверьте, не равна ли ее длина нулю. Если длина строки равна нулю, то выдать пользователю сообщение о некорректности ввода, в противном случае добавить строку в список (метод InsertString).

  5. В методе OnRemove получите индекс выделенной строки списка (метод GetCurSel), проверьте, не равен ли индекс LB_ERR и если равен, то выдайте пользователю сообщение об ошибке, в противном случае удалите строку из списка адресов страниц (метод DeleteString).

  6. Создайте обработчик на ON_LBN_SELCHANGE. В нем получите индекс выделенной строки, аналогично пункту 11, проверьте на равенство LB_ERR, установите выделенную строку списка в поле ввода, используя UpdateData(<параметр>).

  7. В обработчике на OnOK сохраните полученные данные от пользователя, используя UpdateData(<параметр>).

  8. Обработчик OnButtonOpen, должен вызываться по нажатию кнопки «Обзор». Он предназначен для того, чтобы пользователь не задавал адрес страницы вручную, а мог выбрать страницу из имеющихся на диске посредством стандартного диалога. Так как в теоретической части не было рассказано про это средство, то ниже приведен код этого обработчика:

void CSelectorDlg::OnButtonOpen()

{

CFileDialog dlg(TRUE, NULL, NULL,

^ OFN_FILEMUSTEXIST | OFN_HIDEREADONLY,

"Html pages (*.html)|*.html|All files (*.*)|*.*||");

if (dlg.DoModal() == IDOK)

{

m_strPageAddress = dlg.GetPathName();

UpdateData(FALSE);

}

}

В обработчике создаем объект класса CFileDialog. В качестве параметров передается множество параметров, необходимых для указания какие файлы мы будем обрабатывать, т.е. создаем фильтр для отображения файлов. После того как объект создан, вызываем так же, как и для простого диалога, DoModal. Если пользователь выбрал файл и нажал Ok («Открыть»), то получаем значение IDOK (которое и проверяем). Если мы получили IDOK, то переменной, отвечающей за поле ввода, присваиваем значение, содержащее полный путь к странице. После чего вызовом метода UpdateData(FALSE) устанавливаем это значение в поле ввода.

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



Рис. 9 – Окно приложения Selector в результате

выполнения выбора html страницы
^

Лабораторная работа №2


Цель работы: создание приложения на базе архитектуры документ/вид. Приложение должно получать данные (адреса html-страниц) с диалогового окна, созданного в первой лабораторной работе, и загружать выбранную страницу.

Работа будет заключаться в создании нового приложения, примером для которого может послужить Sample12 (см. учебное пособие) и модификация диалогового приложения, созданного на первой лабораторной работе.

Ход выполнения работы:

  1. Создать приложение на базе архитектуры документ / вид с именем Browser.

  2. Указать для класса вида базовый класс CHtmlView.

  3. После создания каркаса приложения перейти в редактор ресурсов, добавить диалоговое окно с идентификатором IDD_SELECTOR_DIALOG и заголовком Selector, поместить на шаблон диалога элементы управления, аналогичные лабораторной работе №1 и присвоить им такие же идентификаторы. Отредактировать меню следующим образом: удалить из пункта File все, кроме Exit и добавить в File пункт Select; в меню Edit удалить все, кроме Copy; остальные пункты меню оставить без изменения.

  4. Из лабораторной работы №1 (папка Selector) скопировать в папку Browser файлы SelectorDlg.cpp и SelectorDlg.h.

  5. Добавить скопированные файлы в пространство проекта. Для этого выполнить команду: Project -> Add To Project -> Files. В диалоге выбрать вышеуказанные файлы.

  6. Отредактировать файл SelectorDlg.cpp. Заменить строку #include "Selector.h" на #include "Browser.h". На этом частично редактирование закончено.

  7. Для пункта меню Select (идентификатор ID_FILE_SELECT) создать обработчик (в классе вида, а не рамки).

  8. В классе вида, в методе OnInitialUpdate закомментировать или удалить строку:

Navigate2(_T("http://www.microsoft.com/visualc/"),NULL,NULL);.

  1. В данной лабораторной работе будет использован класс CList для хранения списка страниц получаемого от диалогового окна. Для его использования необходимо подключить библиотеку #include . Внести эту строку нужно в файл StdAfx.h перед //{{AFX_INSERT_LOCATION}}.

  2. Модифицируем класс диалогового окна. В класс добавить поле CList m_listPageAddress; с модификатором private. Т.е. мы создали переменную списка строк, в которой будем хранить адреса страниц, занесенных пользователем.

Модифицируем метод OnInitDialog. Перед return TRUE нужно внести код, который будет отвечать за перенесения спис-ка строк в элемент управления «список». Для этого создаем переменную pos типа POSITION и присваиваем ей значение, полученное методом m_listPageAddress.GetHeadPosition();. Так мы получили начало списка. Далее «ПОКА pos» и в нем перенести список строк в элемент управления

(m_listPages.InsertString(0, m_listPageAddress.GetNext(pos));).

Модифицируем метод OnOK. Перед вызовом метода UpdateData нужно добавить код, отвечающий за перенос строк из элемента управления в список m_listPageAddress. Первым делом мы очищаем список строк методом RemoveAll. После чего получаем количество строк, находящихся в элементе управления «список» методом GetCount. Далее организовать цикл от нуля до количества строк в элементе управления. В цикле, используя метод GetText(i, strText), получаем значения каждой строки и переносим их список (m_listPageAddress), используя метод AddHead.

  1. Добавить к классу диалогового окна два метода для получения списка строк от диалогового окна и задания этого списка. Список строк будет храниться в классе вида и для перенесения его в диалоговое окно потребуется метод, позволяющий задавать список строк диалогового окна. Для возврата в класс вида отредактированного списка строк будет необходим метод получения списка строк диалогового окна. Ниже приведен код этих двух методов:

void CSelectorDlg::SetList(CList *pLstPages)

{

m_listPageAddress.RemoveAll();

m_listPageAddress.AddTail(pLstPages);

}

void CSelectorDlg::GetList(CList &lstPages)

{

lstPages.RemoveAll();

lstPages.AddTail(&m_listPageAddress);

}

Метод SetList задает список. В качестве передаваемого параметра является указатель на объект класса CList. Перед тем как добавить список, нужно удалить старые значения. Для этого используется метод RemoveAll класса CList. Для добавления полученного списка используется все тот же метод AddTail, но только в качестве параметра передается не элемент списка (в данном случае строка), а указатель на список, полученный в качестве параметра метода SetList.

Метод GetList аналогичен методу SetList. Но в нем мы очищаем список lstPages (входной параметр) и переносим в него список m_listPageAddress тем же методом AddTail.

  1. Отредактировать класс вида. В классе вид добавить переменную m_selDlg типа CSelectorDlg. Также добавить поле CList m_listPages;. вызвать обработчик ID_FILE_SELECT. Установить список строк методом SetList (созданным нами для диалогового окна). Отобразить окно методом DoModal. Сделать проверку на IDOK и при положительном результате создать курсор в виде «Песочные часы» созданием объекта класса CWaitCursor; получить от диалогового окна отредактированный список, созданным нами ранее методом GetList; с помощью метода Navigate2 отобразить выделенную страницу. В качестве параметра для Navigate2 передать переменную, связанную с полем ввода диалогового окна.

Результат выполнения лабораторной работы должен быть аналогичным приведенному на рисунке 3:

Рис. 3 – Вид работающего приложения

Заключение


Предлагаемые лабораторные работы сформулированы таким образом, чтобы учащийся закрепил знания, полученные при выполнении работ предложенных в пособии, а также получил практические навыки в визуальном программировании с использованием Visual C++ 6.0 и MFC.
^

Требования к оформлению отчета





        1. Наличие теоретической части. В этой части необходимо в файле WORD (оформляемым как отчет о проделанной работе) написать, какие разделы визуального программирования использованы при выполнении лабораторного практикума?

        2. ^ Наличие готового проекта с комментариями по тексту программ. В этой части задания необходимо расставить по телу программы комментарии, которые бы показали понимание основных операторов и действий, необходимых для работоспособности программы.

        3. В отчете необходимо указать, какие разделы MFC были использованы при написании программы и описать их функции.

        4. Приветствуется добавление изменений в проект в сторону усложнения (введения новых функций класса CHtmlView или других функций), не меняющее работоспособности создаваемого приложения в целом. Список использованной литературы.

        5. В итоге, необходимо предоставить исполняемый код (ехе файл), файлы проекта и файл отчета WORD.

Похожие:

Лабораторные работы iconСхемотехника ЭВМ лабораторные работы
...
Лабораторные работы iconЛабораторные работы для студентов заочной формы обучения (английский язык) Новосибирск 2011
Данные лабораторные работы адресованы студентам 1 и 2 курса всех специальностей заочного отделения нгуэу
Лабораторные работы iconН. И. Березина Лабораторные работы по курсу
Б48 Лабораторные работы по курсу «Объектно-ориентированное программирование: язык программирования C#» : Учебное пособие – М.: Издательский...
Лабораторные работы iconКонтрольная работа 2
Рекомендуется перед выполнением контрольной работы №2 выполнить лабораторные работы из файла
Лабораторные работы iconМетодические указания Лабораторные работы рекомендуется выполнять...
Лабораторные работы рекомендуется выполнять в том порядке, в котором они следуют, т е от «простого к сложному»
Лабораторные работы iconОсновы стандартизации и компьютерное делопроизводство выполняются...
Основы стандартизации и компьютерное делопроизводство (выполняются две лабораторные работы стр. 4 -14, сдаются на диске. При оформлении...
Лабораторные работы iconЗдравствуйте! Необходимо выполнить две эти лабораторные работы. Задания...
Здравствуйте! Необходимо выполнить две эти лабораторные работы. Задания по технологии программирования. Нужно выполнить на языке...
Лабораторные работы iconЛабораторные работы Цель лабораторных работ
Цель лабораторных работ – получение навыков работы при работе с пакетами прикладных программ необходимых при выполнении магистерской...
Лабораторные работы iconПримерный тематический план содержания дисциплины Процессы и аппараты...
Содержание учебного материала, лабораторные и практические работы, самостоятельная работа обучающихся
Лабораторные работы iconЛабораторные работы
Запятая, пошлем, оба, тридцать, дважды, впоследствии, статей, кто-либо, кофе, первый, выходя, летящий, создаю, мой, бирюзовый, праздники,...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2014
контакты
skachate.ru
Главная страница