Исполнители
Безопасность заказов и сделок
Время на проверку работ
Войти

VIP! wroni  ЧАТ

Рейтинг : 2696
olga_1309 - автор студенческих работ

VIP! olga_1309  ЧАТ

Рейтинг : 21666
lesi555 - автор студенческих работ

VIP! lesi555  ЧАТ

Рейтинг : 17981
Помощь по экономическим и гуманитарным дисциплинам
Nata0610 - автор студенческих работ

VIP! Nata0610  ЧАТ

Рейтинг : 9450
Экономические дисциплины.
Студентам в помощь
VIP Исполнители
ВЫПОЛНИМ
Лента заказов

  • Заказать Работу
  • Готовые работы
    Заметки
    Библиотека
    Файлообменник
    Как сделать заказ
    Исполнители
    Магазин
    Новости
    Видео, ТВ и Радио
    Дисциплины
    Статьи, Опросы
    Форум
    Контакты
    Исполнители
  • Математические
  • Физика-Химия
  • Технические
  • Программирование
  • Гуманитарные
  • Экономические
  • Юридические
  • Иностранные языки
  • Другое, Разное
  • Статьи, Копирайтинг
  • Создание сайтов
  • Раскрутка сайтов
  • Дизайн, Графика
  • Аудио/Видео
  • Сообщения форума
    Поздравим всех!
    С наступающим Новым Годом !
    С 8 МАРТА МИЛЫХ ЖЕНЩИН!!!
    Как вы относитесь к help-s.ru ?
    Посмотрим, посмеёмся! ;)
    Помочь с самоваром.
    Electronics Workbench 5.12
    WebMoney или YAndex
    Объявления и Уведомления
    Крик души
    День рождения
  • Cегодня (2): Pavel_N , Анька-пулеметчица
  • Завтра: Presnetsov.Evgeniy 
  •  

    Лабораторная работа по С++

    ЛАБОРАТОРНЫЕ РАБОТЫ

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

    Лабораторная работа №1 UpdateData(false);

    Цель работы: создание диалогового приложения для выбора 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

    7.    С помощью ClassWizard добавите переменные m_listPages типа CListBox и m_strPageAddress типа CString, связав их со списком и полем ввода.
    8.    Создайте обработчики для всех добавленных кнопок и для кнопки «Применить».
    9.    В методе OnInitDialog установите строку "<Enter the page address>" в поле ввода, используя переменную m_strPageAddress, и очистите список методом ResetContent.
    10.     В методе OnAdd получите строку с поля ввода (UpdateData(<параметр>)), проверьте, не равна ли ее длина нулю. Если длина строки равна нулю, то выдать пользователю сообщение о некорректности ввода, в противном случае добавить строку в список (метод InsertString).
    11.     В методе OnRemove получите индекс выделенной строки списка (метод GetCurSel), проверьте, не равен ли индекс LB_ERR и если равен, то выдайте пользователю сообщение об ошибке, в противном случае удалите строку из списка адресов страниц (метод DeleteString).
    12.     Создайте обработчик на ON_LBN_SELCHANGE. В нем получите индекс выделенной строки, аналогично пункту 11, проверьте на равенство LB_ERR, установите выделенную строку списка в поле ввода, используя UpdateData(<параметр>).
    13.     В обработчике на OnOK сохраните полученные данные от пользователя, используя UpdateData(<параметр>).
    14.     Обработчик 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.    В классе вида, в методе OnInitialUpd ate закомментировать или удалить строку:
    Navigate2(_T("http://www.microsoft.com/visualc/"),NULL,NULL);.
    9.    В данной лабораторной работе будет использован класс CList для хранения списка страниц получаемого от диалогового окна. Для его использования необходимо подключить библиотеку #include <afxtempl.h>. Внести эту строку нужно в файл StdAfx.h перед //{{AFX_INSERT_LOCATION}}.
    10.     Модифицируем класс диалогового окна. В класс добавить поле CList<CString, CString> 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.


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

    void CSelectorDlg::SetList(CList<CString, CString> *pLstPages)
    {
        m_listPageAddress.RemoveAll();
        m_listPageAddress.AddTail(pLstPages);
    }
    void CSelectorDlg::GetList(CList<CString, CString> &lstPages)
    {
        lstPages.RemoveAll();
        lstPages.AddTail(&m_listPageAddress);
    }
    Метод SetList задает список. В качестве передаваемого параметра является указатель на объект класса CList. Перед тем как добавить список, нужно удалить старые значения. Для этого используется метод RemoveAll класса CList. Для добавления полученного списка используется все тот же метод AddTail, но только в качестве параметра передается не элемент списка (в данном случае строка), а указатель на список, полученный в качестве параметра метода SetList.
    Метод GetList аналогичен методу SetList. Но в нем мы очищаем список lstPages (входной параметр) и переносим в него список m_listPageAddress тем же методом AddTail.


    12.     Отредактировать класс вида. В классе вид добавить переменную m_selDlg  типа CSelectorDlg. Также добавить поле CList<CString, CString> m_listPages;. вызвать обработчик ID_FILE_SELECT. Установить список строк методом Se tList (созданным нами для диалогового окна). Отобразить окно методом DoModal. Сделать проверку на IDOK и при положительном результате создать курсор в виде «Песочные часы» созданием объекта класса CWaitCursor; получить от диалогового окна отредактированный список, созданным нами ранее методом GetList; с помощью метода Navigate2 отобразить выделенную страницу. В качестве параметра для Navigate2 передать переменную, связанную с полем ввода диалогового окна.
    Результат выполнения лабораторной работы должен быть аналогичным приведенному на рисунке 3:
    Рис. 3 – Вид работающего приложения
    для покупки работы нужно авторизоваться
    Для продолжения нажмите Войти, Регистрация


     
    Горящие заказы
    2 работы БЖД 6353
    контрольная автоматика
    Исполнителям
    olga_1309 Спасибо большое, быстро выполнена работа.  
    Egor_196 Подвел исполнитель. Работу не прислал. Кормит обещаниями. Зря потраченное время    
    Руслан63 Большое спасибо за проделанную работу!  
    DenisChigrev Денис, спасибо за всё! Справился  с работами в короткие сроки! Всё сделал качественно, вовремя, ещё раз спасибо, Вы-самый классный исполнитель!  
    Masha83 Большое спасибо! Буду рад продолжению сотрудничества!  
    Kramer Взялась за срочную работу, потом еще подтвердила, что пришлет ночью. В итоге работы нет и даже на сайт не зашла, чтобы что-то ответить((    
    _Любовь_ Благодарю за качественное выполнение заказа, буду рад работать с Вами еще!  
    c264 Большое спасибо за оперативное выполнение!  
    374818 Constантин Все кратко и по делу! Крутой дядька! Рекомендую!  
    tango Большое спасибо за работы!  
    Новые отзывы
    Программистам Дизайнерам Сайты Сервис Копирайтерам Файлообменики Заработок Социальная сеть Статистика
  • Советы и статьи
  • Основы программирования
  • Веб-программирование
  • Soft, программы
  • Статьи, Советы
  • Форум дизайнеров
  • Soft дизайнеров
  • С чего начать?
  • Создание сайтов
  • Раскрутка сайтов
  • CMS системы, магазины
  • Домены, Хостинг
  • Soft, программы
  • Безопасные сделки
  • Менеджеры
  • Личные авторы
  • Личные исполнители
  • CМС Уведомления
  • Email Уведомления
  • СМС пользователям
  • Емэйл и СМС Рассылки
  • Объявления Уведомления
  • Публикация картинок
  • Сокращение ссылок
  • Статьи и Советы
  • Seo
  • Soft, программы
  • Файлообменник бесплатный
  • Обзор файлообменников
  • Заработок на
    файлообменниках
  • Статьи и Советы
  • Облачные хранилища
  • Сайт помощи студентам
  • 2х уровневая реферальная
    программа
  • Удаленное создание заказов
  • Форум о Заработке
  • Статьи, советы
  • Фотогалерея
  • Видеогалерея
  • Лучшие
  • Пользователей: 334604
  • Исполнителей: 7632
  • Заказано работ: 374160
  • Выполнено на заказ: 132254
  • Готовых работ: 176581
  • В библиотеке:2439
  • Полная Статистика
  • решение задач по эконометрике лучше всех.
      Доклад   Диплом  Диссертация  Курсовая  Отчеты по практике  Контрольная  Реферат  Решение задач  Лабораторная  Презентация  Бизнес-планы  Эссе  Отзывы и рецензии   Монография   Чертежи   Перевод   Набор текста, формул   Онлайн