Помощь в написании студенческих работ
Антистрессовый сервис

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

КурсоваяПомощь в написанииУзнать стоимостьмоей работы

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

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

  • Введение
  • 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. Разработка приложений в 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 предлагает усовершенствованные средства, помогающие наладить совместную деятельность в группах, включая инструменты для объединения в процессе разработки специалистов по базам данных и дизайнеров.

1.4 Microsoft .NET Framework 3.5

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

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

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 об./мин;

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

· привод DVD

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

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

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

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

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

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

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

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

1.9 История

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

Одной из примечательных особенностей 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.

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

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

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

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

Версия MFC

Год выхода

Microsoft CC++ 7.0

MFC 1.0

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)

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.21 022 (mfc90.dll),.NET 3.5

Ноябрь 2007

Visual C++ 2008 with Feature Pack

MFC 9.0.30 411 (mfc90.dll)

Апрель 2008

Visual C++ 2008 SP1

MFC 9.0.30 729 (mfc90.dll)

Август 2008

Visual C++ 2008 Security Update (KB971092)

MFC 9.0.30 729.4148 (mfc90.dll)

Июль 2009

Visual C++ 2010

MFC 10.0.30 319.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 (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 (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 ();

}

Показать весь текст
Заполнить форму текущей работой