Разработка приложения, позволяющего проводить тестирование по разделу "Логарифмы"

Проектирование Windows-приложения, которое позволяет проводить тестирование знаний по разделу математики "Логарифмы". Создание дополнительного класса диалоговых окон, нового пользовательского интерфейса программы. Требования к техническому обеспечению.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 02.07.2011
Размер файла 1,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Содержание

  • Введение
  • 1. Разработка приложений в Visual Studio 2008
  • 1.2 Новый пользовательский интерфейс
  • 1.3 Эффективная совместная работа в группе
  • 1.4 Microsoft .NET Framework 3.5
  • 1.5 Требования к системе
  • 1.6 Основы разработки Windows - приложений с использованием библиотеки MFC.
  • 1.7 Принцип действия
  • 1.8 Добавление кода в каркас приложения
  • 1.9 История
  • 2. Спецификация программы
    • 2.1 Описание программы
    • 2.2 Функциональное назначение
    • 2.3 Описание логической структуры приложения
    • 2.4 Требования к техническому обеспечению
    • 2.5 Установка и запуск программы
    • 2.6 Работа с приложением
    • 2.7 Входные данные
    • 2.8 Выходные данные
    • 2.9 Описание тестовых прогонов
  • Список используемой литературы
  • Приложения

Введение

Visual Studio 2008 (кодовое имя Orcas; внутренняя версия 9.0) -- выпущена 19 ноября 2007, одновременно с .NET Framework 3.5. Нацелена на создание приложений для ОС Windows Vista (но поддерживает и XP), Office 2007 и веб-приложений. Включает в себя LINQ, новые версии языков C# и Visual Basic. В студию не вошёл Visual J#. С 28 октября 2008 года впервые доступна версия на русском языке.

Visual Studio 2008 включает новые возможности, такие как наглядные средства разработки для более быстрой работы с .NET Framework 3.5, усовершенствованные средства разработки веб-приложений и улучшения языков, ускоряющие работу со всеми типами данных. В Visual Studio 2008 вы найдете все необходимые средства для создания ярких веб-приложений с поддержкой AJAX.

Вы сможете воспользоваться мощными клиентскими и серверными платформами для создания клиентских веб-приложений, выполняющихся во всех современных веб-обозревателях, легко интегрирующихся с серверными компонентами и имеющих полный доступ к службам приложений ASP.NET и платформе Майкрософт.

С помощью средств, включенных в состав Visual Studio 2008, можно создавать приложения для широкого спектра платформ -- от так называемых разумных устройств (smart personal objects) до сотовых телефонов, планшетных компьютеров и настольных компьютеров и серверов [1].

1. Разработка приложений в Visual Studio 2008

Для более быстрой разработки в Visual Studio 2008 улучшены функции работы с языками и данными. Например, с помощью LINQ вы, как индивидуальные разработчики можете создавать решения, выполняющие анализ данных.

В Visual Studio 2008 возможно ориентироваться на различные версии .NET Framework в одной и той же среде разработки. Можно создавать приложения для .NET Framework 2.0, 3.0 или 3.5, то есть поддерживать множество проектов в одной среде.

1.2 Новый пользовательский интерфейс

Visual Studio 2008 содержит новые средства разработки, облегчающие создание подключаемых приложений на самых современных платформах, включая веб-приложения, приложения для Windows Vista, Office 2007, SQL Server 2008 и Windows Server 2008. В области веб ASP.NET AJAX и другие новые технологии Visual Studio 2008 позволят быстро создавать высокоэффективные интерактивные веб-интерфейсы.

1.3 Эффективная совместная работа в группе

Visual Studio 2008 предлагает усовершенствованные средства, помогающие наладить совместную деятельность в группах, включая инструменты для объединения в процессе разработки специалистов по базам данных и дизайнеров [2].

1.4 Microsoft .NET Framework 3.5

пользовательский интерфейс программа логарифм

Платформа .NET обеспечивает быстрое создание подключаемых приложений с удобным пользовательским интерфейсом благодаря набору готовых программных модулей для решения типовых задач программирования. Подключаемые приложения, построенные на платформе .NET Framework, обеспечивают моделирование бизнес-процессов и интеграцию систем в разнородной среде. Вместе Visual Studio и .NET Framework снижают надобность в написании общего связующего кода, сокращая время разработки и позволяя сосредоточить усилия на решении бизнес-задач [3].

1.5 Требования к системе

Visual Studio 2008 может быть установлена на следующие операционные системы:

· Windows Vista (x86 и x64) -- все издания, за исключением Starter Edition;

· Windows XP (x86 и x64) с установленным пакетом обновлений Service Pack 2 или более поздней версии -- все издания, за исключением Starter Edition;

· Windows Server 2003 (x86 и x64) с установленным пакетом обновлений Service Pack 1 или более поздней версии;

· Windows Server 2003 R2 (x86 или x64) или более поздней версии;

· Windows Server 2008 (x86 и x64).

· Для установки Visual Studio 2008 потребуется компьютер со следующими характеристиками:

· процессор с частотой не ниже 1,6 ГГц;

· минимум 384 Мбайт оперативной памяти (768 Мбайт или более для работы под Windows Vista);

· 2,2 Гбайт свободного пространства на жестком диске со скоростью не менее 5400 об./мин;

· дисплей с разрешением не менее 1024x768;

· привод DVD

1.6 Основы разработки Windows - приложений с использованием библиотеки MFC.

Пакет Microsoft Foundation Classes (MFC) - библиотека на языке C++, разработанная Microsoft и призванная облегчить разработку GUI - приложений для Microsoft Windows путем использования богатого набора библиотечных классов [4].

1.7 Принцип действия

Библиотека MFC, как и её основной конкурент, Borland VCL, облегчает работу с GUI путем создания каркаса приложения - «скелетной» программы, автоматически создаваемой по заданному макету интерфейса и полностью берущий на себя рутинные действия по его обслуживанию (отработка оконных событий, пересылка данных между внутренними буферами элементов и переменными программы и т.п.). Программисту после генерации каркаса приложение необходимо только вписать код в места, где требуются специальные действия. Каркас должен иметь вполне определенную структуру, поэтому для его генерации и изменения в Visual С++ предусмотрены мастера.

Кроме того, MFC предоставляет объектно-ориентированный слой оберток (англ. wrappers) над множеством функций Windows API, делающий несколько более удобной работу с ними. Этот слой представляет множество встроенных в систему объектов (окна, виджеты, файлы и т.п.) в виде классов и опять же берет на себя рутинные действия вроде закрытия дескрипторов и выделения/освобождения памяти[5].

1.8 Добавление кода в каркас приложения

Добавление кода приложения к каркасу реализовано двумя способами. Первый использует механизм наследования: основные программные структуры каркаса представлены в виде классов наследуемых от библиотечных. В этих классах предусмотрено множество виртуальных функций вызываемых в определенный момент работы программы. Путем доопределения (в большинстве случаев необходимо вызвать функцию базового класса) этих функций программист может добавлять выполнение в эти моменты своего кода.

Второй способ используется для добавления обработчиков оконных событий. Мастер создает внутри каркасов классов, связанных с окнами, специальные массивы - карты (оконных) сообщений (англ. massage map), содержащие пары «ИД сообщения - указатель на обработчик». При добавленииудалении обработчика мастер вносит изменения в соответствующую карту сообщений[6].

1.9 История

Первая версия MFC была выпущена вместе с седьмой версией 16-разрядного компилятора языка C\C++ компании Microsoft 1992 году. Для тех, кто занимался разработкой приложений с использованием API-функций, пакет MFC обещал весьма значительное повышение производительности процесса программирования [7].

Одной из примечательных особенностей MFC является префикс «Afx», используемый в именах многих функций, макросов и названии стандартного заголовочного файла «stdafx.h». На ранней стадии разработки, то, что впоследствии стало называться MFC, имело название «Application Framework Extensions» и аббревиатуру «Afx». Решение изменить название на Microsoft Foundation Classes (MFC) было принято слишком поздно, чтобы менять упоминания Afx в коде.

Object Windows Library (OWL), разработанная компанией Borland для работы с собственным компилятором C++, была конкурирующим продуктом, представленным в тот же период. В конце концов Borland прекратила разработку OWL и приобрела краткосрочную лицензию на использование библиотек для работы с MFC, но так и не предложила полной поддержки MFC в своих продуктах. Позднее Borland выпустила VCL в качестве замены MFC [8].

Упор компании Microsoft на MFC был ослаблен в пользу Microsoft.NET Framework. Однако, несмотря на это, MFC по-прежнему остается популярной среди разработчиков.

В апреле 2008 года Microsoft выпустила, после многолетнего бездействия, значительное обновление к MFC под названием MFC Feature Pack. Это обновление предлагалось к установке как дополнение к Visual Studio 2008. В основе своей это были добавочные классы MFC, права на которые были приобретены у российской фирмы BGGSoft [9]. В MFC включалась поддержка нового интерфейса Ribbon и несколько других усовершенствований, связанных с улучшенными интерфейсными элементами управления. После выпущенного пакета обновления для Visual Studio 2008 данные классы стали неотъемлемой частью MFC [10].

Таблица 1.1 - Версии

Версия продукта

Версия MFC

Год выхода

Microsoft C\C++ 7.0

MFC 1.0

1992

Visual C++ 1.0

MFC 2.0 (введена архитектура документ-представление)

Visual C++ 1.5

MFC 2.5 (реализована поддержка технологий ODBC и drag and drop)

Visual C++ 1.52c

MFC 2.5 (последняя платформа разработки для MS Windows 3.x)

Visual C++ 2.0

MFC 3.0 (появилась возможность реализации многозадачности и поддержка Unicode)

Visual C++ 2.1

MFC 3.1

Visual C++ 2.2

MFC 3.2

Visual C++ 4.0

MFC 4.0 (mfc40.dll включена в состав Windows 95)

Август 1995

Visual C++ 4.1

MFC 4.1

Visual C++ 4.2

MFC 4.2 (mfc42.dll включена в первоначальный выпуск Windows 98)

Март 1998

eMbedded Visual C++ 3.0

MFC 4.2 (mfc42.dll)

Visual C++ 5.0

MFC 4.21 (mfc42.dll) значительное обновление MFC 4.2

Visual C++ 6.0

MFC 6.0 (mfc42.dll)

1998

eMbedded Visual C++ 4.0

MFC 6.0 (mfcce400.dll)

Visual C++.NET 2002 (Visual C++ 7.0)

MFC 7.0 (mfc70.dll),.NET 1.0

Февраль 2002

Visual C++ 2003 (Visual C++ 7.1)

MFC 7.1 (mfc71.dll),.NET 1.1

Апрель 2003

Visual C++ 2005 (Visual C++ 8.0)

MFC 8.0 (mfc80.dll),.NET 3.5

Октябрь 2005

Visual C++ 2008 (Visual C++ 9.0)

MFC 9.0.21022 (mfc90.dll),.NET 3.5

Ноябрь 2007

Visual C++ 2008 with Feature Pack

MFC 9.0.30411 (mfc90.dll)

Апрель 2008

Visual C++ 2008 SP1

MFC 9.0.30729 (mfc90.dll)

Август 2008

Visual C++ 2008 Security Update (KB971092)

MFC 9.0.30729.4148 (mfc90.dll)

Июль 2009

Visual C++ 2010

MFC 10.0.30319.1 (mfc100.dll),.NET 4.0

Апрель 2010

2. Спецификация программы

2.1 Описание программы

Windows-приложение, разработанное в среде программирования Microsoft Visual Studio 2008 на языке Visual C++ c использованием библиотеки MFC. Задача программы протестировать знания пользователя по разделу математики «логарифмы». Программа задаст пользователю 20 вопросов. Оценка знаний производится по 100 бальной шкале. Максимальный балл вопроса указан в каждом варианте. Также программа содержит дату начала тестирования и ссылку на сайт создателя программы

2.2 Функциональное назначение

При запуске программы открывается главное окно программы (рис. 2.1), в котором имеются кнопки начала тестирования и выхода из программы, число проведения тестирования, приветствие, ссылка на сайт производителя, а по завершению тестирования отображается количество набранных баллов.

Рисунок 2.1 - Главное окно программы

По нажатию на кнопку начать тестирование открывается окно вопроса (рис. 2.1), разделенное на несколько областей номер вопроса, вопрос, варианты ответов, кнопки «Дальше», «Пропустить» и область в которой показано максимальное количество баллов за ответ.

Рисунок 2.2 - Окно вопроса предполагающий 1 вариант ответа

В программе реализовано 2 вида вопросов - предполагающие один правильный ответ (рис. 2.2) и предполагающие выбор нескольких вариантов ответа (рис. 2.3).

Рисунок 2.3 - Окно вопроса предполагающий несколько ответов

По завершению 20-ти вопросов в главном окне программы показываются баллы заработанные пользователем (рис. 4).

Рисунок 2.4 - Пример вывода результатов тестирования

2.3 Описание логической структуры приложения

Приложение разработано в среде Microsoft Visual Studio 2008 и отвечает всем принципам объектно-ориентированного программирования. Оно создано на базе диалогового приложения.

Разработаны формы главного окна и формы 20 вопросов. Для каждой разработанной формы, спроектирован собственный класс, производящий обработку действий пользователя. Иерархия разработанных классов показана в Приложении А. Код класса СProgrammTestDlg, спецификация которого представлена в таблице 2.1, показан в Приложении Б.

Таблица 2.1. - Спецификация класса СProgrammTestDlg

Атрибут

Способ доступа

Назначение

OnBnClickedButton1()

Protected

Открывает диалоговые окна вопросов, обрабатывает результаты выполненных пользователем действий

OnBnClickedCancel()

Protected

Закрывает программу тестирования

OnPaint()

Protected

Отвечает за перерисовку окна и вывод результатов.

2.4 Требования к техническому обеспечению

Для работы с Windows-приложением необходим персональный компьютер со следующими характеристиками: процессор Intel с тактовой частотой 1000 МГц и выше, оперативная память - не менее 512 Мбайт, свободное дисковое пространство - не менее 500 Мбайт, дисковод, монитор с диагональю не менее 17 .

Программное обеспечение - операционная система 2000 / XP / 2003.

2.5 Установка и запуск программы

Для успешной работы с приложением, должны быть выполнены системные требования и установлен NetFramework 3.5, убедившись в соответствии необходимо скопировать на жесткий диск файл ProgrammTest.exe. Запуск программы осуществляется, привычным для Windows пользователей образом, а именно двойным щелчком по файлу ProgrammTest.exe.

2.6 Работа с приложением

После запуска приложения, в открывшимся главном окне программы необходимо нажать кнопку «Начать тестирование», затем в открывающихся окнах вопросов, необходимо выбирать ответы, и нажимать кнопку далее. В случае не выбора ни одного ответа, либо нажатии кнопки «Пропустить», баллы не начисляются.

2.7 Входные данные

В качестве входных данных программа принимает ответы пользователя на вопросы, путем обработки элементов управления, таких как «Радио кнопка» и «Флажок».

2.8 Выходные данные

На главной форме в текстовом поле выводится количество набранных пользователем баллов. Максимальное значение которых равно 100, а минимальное значение равно 0.

2.9 Описание тестовых прогонов

При запуске программы открывается главное окно программы (рис. 2.5), в котором имеются кнопки начала тестирования и выхода из программы, число проведения тестирования, приветствие, ссылка на сайт производителя, а по завершению тестирования отображается количество набранных баллов.

Рисунок 2.5 - Главное окно программы

По нажатию на кнопку начать тестирование открывается окно вопроса 1 (рис. 2.6).

Рисунок 2.6 - Окно вопроса 1

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 2 (рис. 2.7).

Рисунок 2.7 - Окно вопроса 2

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 3 (рис. 2.8).

Рисунок 2.8 - Окно вопроса 3

По нажатию на кнопку начать тестирование открывается окно вопроса 4 (рис. 2.9).

Рисунок 2.9 - Окно вопроса 4

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 5 (рис. 2.10).

Рисунок 2.10 - Окно вопроса 5

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 6 (рис. 2.11).

Рисунок 2.11 - Окно вопроса 6

По нажатию на кнопку начать тестирование открывается окно вопроса 7 (рис. 2.12).

Рисунок 2.12 - Окно вопроса 7

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 8 (рис. 2.13)

Рисунок 2.13 - Окно вопроса 8

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 9 (рис. 2.14).

Рисунок 2.14 - Окно вопроса 9

По нажатию на кнопку начать тестирование открывается окно вопроса 10 (рис. 2.15).

Рисунок 2.15 - Окно вопроса 10

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 11 (рис. 2.16).

Рисунок 2.16 - Окно вопроса 11

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 12 (рис. 2.17).

Рисунок 2.17 - Окно вопроса 12

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 13 (рис. 2.18).

Рисунок 2.18 - Окно вопроса 13

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 14 (рис. 2.19).

Рисунок 2.19 - Окно вопроса 14

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 15 (рис. 2.20).

Рисунок 2.20 - Окно вопроса 15

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 16 (рис. 2.21).

Рисунок 2.21 - Окно вопроса 16

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 17 (рис. 2.22).

Рисунок 2.22 - Окно вопроса 17

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 18 (рис. 2.23).

Рисунок 2.23 - Окно вопроса 18

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 19 (рис. 2.24).

Рисунок 2.24 - Окно вопроса 19

По нажатию кнопки «Дальше» или «Пропустить» открывается окно вопроса 20 (рис. 2.25).

Рисунок 2.25 - Окно вопроса 20

По завершению 20-ти вопросов в главном окне программы показываются баллы заработанные пользователем (рис. 2.26).

Рисунок 2.26 - Главная форма по завершению тестирования

Во время тестирования ошибок не обнаружено.

Заключение

При выполнении данной курсового проекта было разработано Windows-приложение, которое позволяет проводить тестирование знаний по разделу математики «Логарифмы». Для создания приложения была изучена тема программирования на языке Visual С++, а также выучены многие методы классов библиотеки MFC и разобран метод визуального программирования. Было создан дополнительный класс диалоговых окон. Изучена работа с ClassWizard, визуальным оформлением проекта. Над созданным программным продуктом были проведены тестовые прогоны с использованием различных исходных данных. В результате ошибок не было обнаружено. При разработке курсового проекта были углублены знания в области визуального программирования.

Список используемой литературы

1. Кэйт Грегори Использование Visual С++6 . Специальное издание.: СПб.; «Вильямс», 2003 - 864стр.

2. О.С.Мезенцева, В.В.Кушнарев. Методические указания по курсовому проектированию по дисциплине «Высокоуровневые методы информатики и программирования». Ставрополь, 2002

3. А.Мешков, Ю.Тихомиров. Visual C++ и MFC. 2-е изд.перераб. и доп. - СПб.: БХВ-Петербург, 2003. - 1040стр.

4. Ю. Олафсен MFC и Visual C++6. Диа-Софт, Киев, 2003

5. Г. Шилдт Программирование на BORLAND C++ для профессионалов/Пер. англ. А.И. Филимонов; - Мн.: ООО «Попурри», 1999. - 800 с.

6. С. Холзнер Microsoft Visual C++ 6 с самого начала - СПб: Питер, 2000 г.

7. К. Паппас, У. Мюррей Полное руководство по Visual C++.-Мн.:ООО “Поппури”,1999г

8. С.Гилберт, Б.Маккарти. Программирование на Visual C++. Этюды профессионалов. Диа-Софт, Киев, 1998.

9. А.Черносвитов. Visual C++ и MFC, курс MCSD для профессионалов. СПб: Питер, 2000

10. И. Ю. Баженова. Visual C++6.0 (Visual Studio 98). Уроки программирования. М.:Диалог-МИФИ, 1999

Приложения

Приложение А

Иерархия классов.

Диаграмма классов

Приложение Б

Листинг программы.

// ProgrammTestDlg.cpp : implementation file

//

#include "stdafx.h"

#include "ProgrammTest.h"

#include "ProgrammTestDlg.h" \\ подключение в библиотеки диалоговые окна

#include "Vopros1.h"

#include "Vopros2.h"

#include "Vopros3.h"

#include "Vopros4.h"

#include "Vopros5.h"

#include "Vopros6.h"

#include "Vopros7.h"

#include "Vopros8.h"

#include "Vopros9.h"

#include "Vopros10.h"

#include "Vopros11.h"

#include "Vopros12.h"

#include "Vopros13.h"

#include "Vopros14.h"

#include "Vopros15.h"

#include "Vopros16.h"

#include "Vopros17.h"

#include "Vopros18.h"

#include "Vopros19.h"

#include "Vopros20.h"

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog

{

public:

CAboutDlg();

// Dialog Data

enum { IDD = IDD_ABOUTBOX };

protected:

virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

// Implementation

protected:

DECLARE_MESSAGE_MAP()

};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)

{

}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)

END_MESSAGE_MAP()

// CProgrammTestDlg dialog

CProgrammTestDlg::CProgrammTestDlg(CWnd* pParent /*=NULL*/)

: CDialog(CProgrammTestDlg::IDD, pParent)

, res(0)

, m_text(_T(""))

{

m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

void CProgrammTestDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

DDX_Text(pDX, IDC_EDIT1, m_text);

}

BEGIN_MESSAGE_MAP(CProgrammTestDlg, CDialog)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

//}}AFX_MSG_MAP

ON_BN_CLICKED(IDC_BUTTON1, &CProgrammTestDlg::OnBnClickedButton1)

ON_BN_CLICKED(IDCLOSE, &CProgrammTestDlg::OnBnClickedClose)

ON_BN_CLICKED(IDCANCEL, &CProgrammTestDlg::OnBnClickedCancel)

END_MESSAGE_MAP()

// CProgrammTestDlg message handlers

BOOL CProgrammTestDlg::OnInitDialog()

{

CDialog::OnInitDialog();

// Add "About..." menu item to system menu.

// IDM_ABOUTBOX must be in the system command range.

ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu != NULL)

{

CString strAboutMenu;

strAboutMenu.LoadString(IDS_ABOUTBOX);

if (!strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);

}

}

// Set the icon for this dialog. The framework does this automatically

// when the application's main window is not a dialog

SetIcon(m_hIcon, TRUE);// Set big icon

SetIcon(m_hIcon, FALSE);// Set small icon

// TODO: Add extra initialization here

return TRUE; // return TRUE unless you set the focus to a control

}

void CProgrammTestDlg::OnSysCommand(UINT nID, LPARAM lParam)

{

if ((nID & 0xFFF0) == IDM_ABOUTBOX)

{

CAboutDlg dlgAbout;

dlgAbout.DoModal();

}

else

{

CDialog::OnSysCommand(nID, lParam);

}

}

// If you add a minimize button to your dialog, you will need the code below

// to draw the icon. For MFC applications using the document/view model,

// this is automatically done for you by the framework.

void CProgrammTestDlg::OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // device context for painting

SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

// Center icon in client rectangle

int cxIcon = GetSystemMetrics(SM_CXICON);

int cyIcon = GetSystemMetrics(SM_CYICON);

CRect rect;

GetClientRect(&rect);

int x = (rect.Width() - cxIcon + 1) / 2;

int y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon

dc.DrawIcon(x, y, m_hIcon);

}

else

{

CDialog::OnPaint();

}

}

// The system calls this function to obtain the cursor to display while the user drags

// the minimized window.

HCURSOR CProgrammTestDlg::OnQueryDragIcon()

{

return static_cast<HCURSOR>(m_hIcon);

}

void CProgrammTestDlg::OnBnClickedButton1()

{

res=0;\\обнуление переменной res (результат)

Vopros1 dlg1; \\ объявление объекта

if(dlg1.DoModal()==IDOK)\\ подключение клавиши Дальше

{

res+=dlg1.m_otvet;\*присвоение переменной res значения ответа 1 вопроса\*

}

Vopros2 dlg2;

if(dlg2.DoModal()==IDOK)

{

res+=dlg2.m_otvet; \*присвоение переменной res значения ответа 2 вопроса\*

}

Vopros3 dlg3;

if(dlg3.DoModal()==IDOK)

{

if(dlg3.ch1==TRUE)\* объявление переменной ch1 и в случае выбора этого ответа, присвоение значения переменной res\*

{

res+=0;\\присвоение значения переменной res

}

if(dlg3.ch2==TRUE)

{

res+=3;

}

if(dlg3.ch3==TRUE)

{

res+=0;

}

if(dlg3.ch4==TRUE)

{

res+=3;

}

}

Vopros4 dlg4;

if(dlg4.DoModal()==IDOK)

{

res+=dlg4.m_otvet; \*присвоение переменной res значения ответа 4 вопроса\*

}

Vopros5 dlg5;

if(dlg5.DoModal()==IDOK)

{

res+=dlg5.m_otvet; \*присвоение переменной res значения ответа 5 вопроса\*

}

Vopros6 dlg6;

if(dlg6.DoModal()==IDOK)

{

res+=dlg6.m_otvet; \*присвоение переменной res значения ответа 6 вопроса\*

}

Vopros7 dlg7;

if(dlg7.DoModal()==IDOK)

{

res+=dlg7.m_otvet; \*присвоение переменной res значения ответа 7 вопроса\*

}

Vopros8 dlg8;

if(dlg8.DoModal()==IDOK)

{

res+=dlg8.m_otvet; \*присвоение переменной res значения ответа 8 вопроса\*

}

Vopros9 dlg9;

if(dlg9.DoModal()==IDOK)

{

res+=dlg9.m_otvet; \*присвоение переменной res значения ответа 9 вопроса\*

}

Vopros10 dlg10;

if(dlg10.DoModal()==IDOK)

{

if(dlg10.c1==TRUE)

{

res+=0;

}

if(dlg10.c2==TRUE)

{

res+=3;

}

if(dlg10.c3==TRUE)

{

res+=3;

}

if(dlg10.c4==TRUE)

{

res+=0;

}

}

Vopros11 dlg11;

if(dlg11.DoModal()==IDOK)

{

res+=dlg11.m_otvet; \*присвоение переменной res значения ответа 11 вопроса\*

}

Vopros12 dlg12;

if(dlg12.DoModal()==IDOK)

{

res+=dlg12.m_otvet; \*присвоение переменной res значения ответа 12 вопроса\*

}

Vopros13 dlg13;

if(dlg13.DoModal()==IDOK)

{

res+=dlg13.m_otvet; \*присвоение переменной res значения ответа 13 вопроса\*

}

Vopros14 dlg14;

if(dlg14.DoModal()==IDOK)

{

res+=dlg14.m_otvet; \*присвоение переменной res значения ответа 14 вопроса\*

}

Vopros15 dlg15;

if(dlg15.DoModal()==IDOK)

{

if(dlg15.ch1==TRUE)

{

res+=0;

}

if(dlg15.ch2==TRUE)

{

res+=0;

}

if(dlg15.ch3==TRUE)

{

res+=3;

}

if(dlg15.ch4==TRUE)

{

res+=3;

}

}

Vopros16 dlg16;

if(dlg16.DoModal()==IDOK)

{

res+=dlg16.m_otvet; \*присвоение переменной res значения ответа 16 вопроса\*

}

Vopros17 dlg17;

if(dlg17.DoModal()==IDOK)

{

res+=dlg17.m_otvet; \*присвоение переменной res значения ответа 17 вопроса\*

}

Vopros18 dlg18;

if(dlg18.DoModal()==IDOK)

{

res+=dlg18.m_otvet; \*присвоение переменной res значения ответа 18 вопроса\*

}

Vopros19 dlg19;

if(dlg19.DoModal()==IDOK)

{

if(dlg19.c1==TRUE)

{

res+=3;

}

if(dlg19.c2==TRUE)

{

res+=0;

}

if(dlg19.c3==TRUE)

{

res+=3;

}

if(dlg19.ch4==TRUE)

{

res+=0;

}

}

Vopros20 dlg20;

if(dlg20.DoModal()==IDOK)

{

res+=dlg20.m_otvet; \*присвоение переменной res значения ответа 20 вопроса\*

}

m_text.Format(L" сумма балов: %d", res);\*вывод результат в текстовое поле\*

UpdateData(false);

// TODO: Add your control notification handler code here

}

void CProgrammTestDlg::OnBnClickedButton2()

{

// TODO: Add your control notification handler code here

}

void CProgrammTestDlg::OnBnClickedClose()

{

// TODO: Add your control notification handler code here

}

void CProgrammTestDlg::OnBnClickedCancel()

{

// TODO: Add your control notification handler code here

OnCancel();

}

Размещено на Allbest.ru


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.