Лабораторная работа №4-5 создание приложения с диалоговым интерфейсом — КиберПедия 

Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьше­ния длины пробега и улучшения маневрирования ВС при...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Лабораторная работа №4-5 создание приложения с диалоговым интерфейсом

2017-05-16 334
Лабораторная работа №4-5 создание приложения с диалоговым интерфейсом 0.00 из 5.00 0 оценок
Заказать работу

 

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

 

Требуется разработать приветствие-диалог между двумя субъектами: пользователем и компьютером. Пользователь You здоровается с компьюте­ром.На первые два приветствия компьютер не отвечает. После третьей попытки он советует никогда не разговаривать с неизвестными и предлагает представиться. Пользователь называет себя,и компьютер любезно здоровается с ним.

Для реализации сценария приветствия необходимо использовать диалоговое окно с двумя командными кнопками:"Вы" и "Компьютер", соответствующие объектам - участникам диалога. Объекты должны иметь соответствующие окна редактирования, где будет появляться текст диалога. Пользователь инициирует диалог щелчком той или иной командной кнопки. Программа, реагируя на события, вызванные действиями пользователя,выдает соответствующие реплики в окнах редактировыания.На определенном этапе диалога пользователь сможет ввести свое имя в окно редактирования.

 

Задание 1.

Используя мастер приложений AppWizard,редактор ресурсов и мастер классов ClassWizard студии разработчика Visual C++, создать приложение, реализующее описанный выше сценарий приветствия.При создании приложения рекомендуется придерживаться следующего порядка деуствий:

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

2. Скомпелировать и запустить полученный остов Hello.Появившееся окно стартового приложения содержит раскрывающееся системное меню со стандартными элементами Move,Close и About, а также две командны е кнопки OK и Cancel и статический текст,информирующий о том,что в окно можно поместить элементы управления.

3. Открыть окно ресурсов проекта ипапку ресурсов Dialog.

4. Выделить ресурс с идентификатором IDD_HELLO_DIALOG,связанный с объектом класса ChelloDlg, который создал AppWizart от базового класса Cdialog библиотеки MFC.

5. Щелкнуть правой кнопкой и из контекстного меню Properties выбрать язык ресурса Russian.

6. Войти в редактор ресурсов, дважды щелкнув на идентификаторе IDD_HELLO_DIALOG. В окне редактора ресурсов появляется диалоговое окно приложения и две панели инструментов:одна с набором элементов управления, другая с элементами компановки в окне.

7. Выбрать из панели инструментов командную кнопку и разместить ее в окне приложения.

8. Щелкнуть по кнопке правой клавишей и в контекстном меню выбрать элемент Property.

9. На странице свойств командной кнопки в окне Caption заменить имя кнопки

10."Button1" на "Вы", а в окне ID- идентификотор "IDS_Button1" на "IDS_You".

11.Повторить пункты 7,8 и 9 для командной кнопки "Компьютер", связав сней идентификатор IDC_Comp.

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

13.Выбрать из панели инструментов элемент "Статический текст" и разместить его в окне приложения.

14.С помощью контекстного меню изменить свойство Caption, задав фразу "Поздоровайтесь коллеги!".

15.На панели инструментов выбрать окно редактирования и перенести в окно приложения.

16.С помощью контекстного меню в окне Caption набрать строку из символов подчеркивания, а в окне ID задать имя IDC_ED You.

17.Повторить пункты 14 и 15, задав в окне ID имя IDC_EDComp, а в окне Caption-строку из символов подчеркивания.

18.Используя инструменты компановки, разместить элементы управления на окне приложения с требованиями дизайна.

19.С помощью контекстного меню для окон редактирования отменить свойство AutoHScroll(автоматическая горизонтальная прокрутка) и установить свойство Multi-Line (многострочный).

20.Для просмотра диалогового окна при выполнении приложения включить тумблер слева на панели компановки.

21.На диалоговом окне приложения щелкнуть правой кнопкой мыши и из контекстного меню вызвать мастер классов ClassWizard.

22.На вкладке MessageMaps в окне ObjectIDS выбрать IDC_You.

23.В окне возможных сообщений для кнопки Messages выбрать сообщение BN_CLICED, которое возникает при щелчке правой кнопкой мыши.

24.Щелкнуть по кнопке Add Function, в результате чего ClassWizard предложит создать функцию обработки сообщению BN_CLICED с именем On You.

25.Щелкнуть по кнопке ОК и посмотреть остов функции OnYou.

26.Повторить пункты 21-24 для кнопки Компьютер, в результате чего будет создан остов функции OnComp.

27.Связать окно редактирования пользователя You с переменной класса CHelloDlg, выбрав в окне ClassWizard вкладку Member Variables и отметив идентификатор IDC_ED You, для которого указать имя переменной m_You в окне AddVariables.

28.В окне AddVariables задать категорию переменной Control и тип Cedit, в результате ClassWizard создаст переменную m_You типа CEdit в классе ChelloDlg.

29.Повторить пункты 26 и 27 для окна редактирования IDC_EDComp, используя имя m_Comp той же категории и того же типа.

30.Открыть папку HelloClasses и найти в классе CHelloDlg переменные m_You и m_Comp.

31.Закрыть папку HelloClasses и щелкнуть правой кнопкой мыши.

32.В контекстном меню выбрать элемент AddVariables и задать в диалоговом окне имя переменной Count для подсчета числа щелчков по кнопке Компьютер, а также ее тип VINT и статус protected.

33.Повторить пункт 31 для задания переменной InviteDone, определяющей статус компьютера и имеющий тип BOOL в разделе protected.

34.Выбрать в классе ChelloDlg метод OnInitDialog и добавить в него код для инициализации переменных::

Count= 0;

InviteDone=False;

34.Выбрать обработчик OnYou и дополнить его кодом: switch (++Count)

{ case 1: //-первый щелчок:

m_You. SetWindowText("Привет компьютер!"); break; case 2: //-второй щелчок:

m_You. SetWindowText("Компьютер,проснись!"); break;

 

Есенбек А. И.

case 3: //-третий щелчок:

m_You.SetWindowText("Поздоровайся,наконец!"); break;

}

35.Выбрать обработчик OnComp и дополнить его кодом:

CString s1="Совет дня: Никогда не разговаривайте с неизвестними!

Ваше имя,пожалуйста.", s2="";

if(Count >=3) if(! InviteDone)

{m_Comp.SetWindowText(s1); m_You. SetWindowText("") InviteDone=TRUEelse

{ m_You.GetWindowText(s2); if(s2= =" ") s2="люди"; m_Comp.SetWindowText("Здравствуйте," + s2+"Всегда рад с вами

работать!"); m_You. SetWindowText("");

}

36.Скомпилировать программу и запустиь на исполнение, а затем реализовать сценарий диалога. 37.изучить детальную структуру программы, запустив броузер классов с помощью команды Tools/Browse/BaseClasses and Members, а также включив окно просмотра классов проекта с помощью кнопки Class View.

 

Задание2.

Создать приложение с использованием динамичкского обмена данных, обеспечиваемого API-функцией UpdateData(Bool), выполнив следующие изменения в обработчиках сообщений: Заменить код функции обработки OnYou на новый код: switch (++Count) { case 1: m_You= "Привет компьютер!";

UpdateData(FALSE);//-ввод в окно; break; case 2: m_You= "Компьютер,проснись!";

UpdateData(FALSE); //-повторный ввод; break;

case 3: m_You= "Поздоровайся,наконец!";

UpdateData(FALSE); //-последний ввод; break; default: UpdateData(TRUE);//-чтение из окна;

}

2.Заменить код функции обработки OnComp на новый код: CString s1="Совет дня: Никогда не разговаривайте с неизвестними! Ваше имя,пожалуйста.", s2;

if(Count >=3) if(!InviteDone) {m_Comp =s1; m_You= " "; InviteDone=TRUE; UpdateData(FALSE);

} else

UpdateData(TRUE); if{ m_You= =" ") m_You="люди";

m_Comp("Здравствуйте," + m_You +"Всегда рад с Вами работать!");

m_You=" ";

UpdateData(FALSE);

} 3.Для переменных m_You и m_Comp выбрать категорию Value и тип Cstring;

Это приведет к тому, что мастер классов ClassWizard создаст остов класса с другим механизмом ввода/вывода, обеспечиваемом функцией UpdateData(Bool),

причем значение FALSE параметра этой функции обеспечивает передачу из всех связанных строковых переменных в соответствующие окна редактирования, а значения TRUE- обратную передачу. 4.Добавить в определение метода OnInitDialog инициализацию строковых переменных: m_You=" "; m_Comp=" ";

5.Скомпелировать программу и проверить работоспособность приложения.

Задание 3. Используя динамический обмен данными, создать приложение для ввода/вывода структур и массивов.

Контрольные вопросы.

1. Объясните, какие коды создал мастер ClassWisard для обработки

сообщений о нажатии кнопок "Вы" и "Компьютер". 2.Поясните процедуру связывания переменных класса с сокнами редактирования.

3.Поясните процедуру связывания строковых переменных с окнами редактирования и действия, выполняемые функцией UpdateData(Bool), при динамическом обмене данных.

4.Перечислите все функции которые используются при динамическом обмене.

5.Объясните возможности броузера классов и назовите условие, при котором его можно включить в работу.


Поделиться с друзьями:

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...

Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.021 с.