Приложение, написанное на Microsoft Visual C++ с использованием библиотеки MFC. Тестирование по разделу "Квадратные уравнения"

Теоретические основы написания Windows-приложений с использованием библиотеки MFC. Основы программирования под Windows. Проектирование приложений в среде Microsoft Visual C++. Описание логической структуры приложения, его функциональное назначение.

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

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

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

1.4 Проектирование приложений в среде Microsoft Visual C++

В среде Visual C++ можно строить различные типы проектов. Такие проекты после их создания можно компилировать и запускать на исполнение. Фирма Microsoft разработала специальный инструментарий, облегчающий и ускоряющий создание проектов в среде Visual C++. Например, мастер MFC AppWizard (exe) позволяет создать проект Windows-приложения которое имеет однодокументный, многодокументный или диалоговый интерфейс и использует библиотеку MFC.

Создаваемый остов приложения составлен так, что в дальнейшей работе с проектом можно использовать другое инструментальное средство - ClassWizard (мастер классов), предназначенное для создания остовов новых производных классов. Еще одно основное назначение ClassWizard в том, что он создает остовы для переопределяемых методов. Он позволяет показать все сообщения, приходящие классу, и создать остов обработчика любого из этих сообщений. Это только две основные функции ClassWizard.

В состав компилятора Microsoft Developer Studio встроены средства, позволяющие программисту облегчить разработку приложений. В первую очередь к ним относятся MFC AppWisard, ClassWizard и редактор ресурсов.

Благодаря MFC AppWizard среда разработчика позволяет быстро создавать шаблоны новых приложений. При этом программисту не приходится писать ни одной строчки кода. Достаточно ответить на ряд вопросов, касающихся того, какое приложение требуется создать, и исходные тексты шаблона приложения вместе с файлами ресурсов готовы. Эти тексты можно оттранслировать и получить готовый загрузочный модуль приложения.

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

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

Средство ClassWizard позволяет подключить к созданным и отредактированным ресурсам управляющий ими код. Большую часть работы по описанию и определению функций, обрабатывающих сообщения от меню, органов управления диалоговых панелей и т.д., также берет на себя средство ClassWizard.

В среде Visual C++ можно строить различные типы проектов. Такие проекты после их создания можно компилировать и запускать на исполнение. Фирма Microsoft разработала специальный инструментарий, облегчающий и ускоряющий создание проектов в среде Visual C++.

MFC AppWizard (exe) - при помощи мастера приложений можно создать проект Windows-приложения которое имеет однодокументный, многодокументный или диалоговый интерфейс. Однодокументное приложение может предоставлять пользователю в любой момент времени работать только с одним файлом. Многодокументное приложение, напротив, может одновременно представлять несколько документов, каждый в собственном окне. Пользовательский интерфейс диалогового приложения представляет собой единственное диалоговое окно.

MFC AppWizard (dll) - этот мастер приложений позволяет создать структуру DLL, основанную на MFC. При помощи него можно определить характеристики будующей DLL.

AppWizard ATL COM - это средство позволяет создать элемент управления ActiveX или сервер автоматизации, используя новую библиотеку шаблонов ActiveX (ActiveX Template Library - ATL). Опции этого мастера дают возможность выбрать активный сервер (DLL) или исполняемый внешний сервер (exe-файл).

Custom AppWizard - при помощи этого средства можно создать пользовательские мастера AppWizard. Пользовательский мастер может базироваться на стандартных мастерах для приложений MFC или DLL, а также на существующих проектах или содержать только определеямые разработчиком шаги.

DevStudio Add-in Wizard - мастер дополнений позволяет создавать дополнения к Visual Studio. Библиотека DLL расширений может поддерживать панели инструментов и реагировать на события Visual Studio.

MFC ActiveX ControlWizard - мастер элементов управления реализует процесс создания проекта, содержащего один или несколько элементов управления ActiveX, основанных на элементах управления MFC.

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

Win32 Console Application - мастер создания проекта консольного приложения. Консольная приложение - это программа, которая выполняется из командной cтроки окна DOS или Windows и не имеет графического интерфейса (окон). Проект консольного приложения создается пустым, предполагая добавление файлов исходного текста в него вручную.

Win32 Dynamic-Link Library - создание пустого проекта динамически подключаемой библиотеки. Установки компилятора и компоновщика будут настроены на создание DLL. Исходные файлы следует добавлять вручную.

Win32 Static Library - это средство создает пустой проект, предназначенный для генерации статической (объектной) библиотеки. Файлы с исходным кодом в него следует добавлять вручную.

Все Windows-приложения имеют достаточно общую структуру, и, следовательно, можно построить некоторые шаблонные заготовки, подходящие для того или иного типа проектов. Построению таких заготовок способствует то, что приложения, создаваемые на основе MFC, строятся из элементов фиксированных классов. Логическим развитием этой идеи было введение специальных классов и специальной архитектуры построения приложения, которая подходила бы широкому классу приложений. О такой архитектуре уже упоминалось, когда речь шла о библиотеке MFC, - это архитектура Document-View. Она является основной, но не единственной при построении проектов в среде Visual C++.

Суть этой архитектуры в том, что работу многих приложений можно рассматривать как обработку документов. При этом можно отделить сам документ, отвечающий за представление и хранение данных, от образа этого документа, видимого на экране и допускающего взаимодействие с пользователем, который просматривает и (или) редактирует документ. В соответствии с этой архитектурой библиотека MFC содержит два семейства классов, производных от базовых классов CDocument и CView.

В результате появилась двухэтапная технология создания проектов. Вначале создается некая заготовка проекта с общими свойствами, подходящими для многих проектов этого типа. На втором этапе производится уже настройка, учитывающая специфику задачи. Для каждого этапа фирма Microsoft разработала свое инструментальное средство.

Начальная заготовка - остов приложения - создается в диалоге с пользователем инструментальным средством AppWizard. В процессе диалога пользователь определяет тип и характеристики проекта, который он хочет построить. Определив, какие классы из MFC необходимы для этого проекта, AppWizard строит остовы всех нужных производных классов. Построенный AppWizard остов приложения содержит все необходимые файлы для создания стартового приложения, которое является законченным приложением и обладает разумными функциональными свойствами, общими для целого класса приложений. Естественно, никаких специфических для данного приложения свойств остов не содержит. Они появятся на следующем этапе, когда программист начнет работать с остовом, создавая из заготовки свое собственное приложение. Тем не менее стартовое приложение можно транслировать и запускать на исполнение.

Термин остов (приложения, класса, функции) применяется для заготовок, создаваемых инструментальными средствами AppWizard и ClassWizard. Нужно подчеркнуть - остов приложения и каркас приложения - разные понятия.

Создаваемый остов приложения составлен так, что в дальнейшей работе с проектом можно использовать другое инструментальное средство - ClassWizard (мастер классов).

При помощи ClassWizard можно добавить новый класс, созданный на основе базовых классов. В качестве базового класса можно использовать классы, наследованные от класса CCmdTarget или класса CRecordset. Для наследования классов от других базовых классов использовать средства ClassWizard нельзя. Такие классы надо создавать вручную, непосредственно в текстовом редакторе.

Объекты, порожденные от класса CCmdTarget, могут обрабатывать сообщения Windows и команды, поступающие от меню, кнопок, акселераторов. Класс CCmdTarget и другие наследованные от него классы имеют таблицу сообщений (Message Map) - набор макрокоманд, позволяющий сопоставить сообщения Windows и команды метода класса.

Полученная заготовка класса полностью работоспособна. Эту работу можно выполнить вручную, но гораздо лучше и проще воспользоваться услугами ClassWizard. За счет использования ClassWizard процедура создания собственного класса значительно ускоряется и уменьшается вероятность совершить ошибку во время объявления методов.

Очень удобно использовать ClassWizard для включения в состав класса новых методов. Можно добавлять к классу методы, служащие для обработки сообщений Windows и команд от объектов, а также методы, переопределяющие виртуальные методы базовых классов.

ClassWizard не только позволяет добавить в класс новые методы, но и удалить их. ClassWizard самостоятельно удалит объявление метода из класса.

ClassWizard позволяет включать в класс не только новые методы, но и элементы данных, связанные с полями диалоговых панелей, форм просмотра и форм для просмотра записей баз данных и полей наборов записей. ClassWizard использует специальные процедуры, чтобы привязать созданные им элементы данных к класса к полям диалоговых панелей. Эти процедуры носят названия "обмен данными диалоговой панели" и "проверка данных диалоговой панели" (Dialog Data Exchange and Dialog Data Validation - DDX/DDV). Чтобы привязать поля из наборов записей к переменным, используется процедура обмена данными с полями записей (Record Field Exchange - RFX).

Процедуры DDX/DDV и RFX значительно упрощают программисту работу с диалоговыми панелями. Они позволяют связать поля диалоговых панелей и переменные. Когда пользователь редактирует поля диалоговых панелей, процедуры DDV проверяют введенные значения и блокируют ввод запрещенных значений. Затем процедуры DDX автоматически копируют содержимое полей диалоговых панелей в привязанные к ним элементы данных класса. И наоборот, когда приложение изменяет элементы данных класса, привязанные к полям диалоговой панели, процедуры DDX могут сразу отобразить новые значения полей на экране компьютера.

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

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

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

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

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

Рисунок 2.1 - Главное окно

После нажатия на кнопку "Начать тест" открывается окно вопроса (рис.2.2), имеющее номер вопроса, текст вопроса, кнопка "Следующий", кнопка "Пропустить".

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

Так же в программе содержатся вопросы предполагающий 2 ответа (рис.2.3)

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

После ответа на 20 вопросов в главном окне выводится сумма набранных баллов (рис.2.4)

Рисунок 2.4 - вывод суммы балов

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

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

Разработаны формы главного окна и формы 20 вопросов. Для каждой разработанной формы, спроектирован собственный класс, производящий обработку действий пользователя.

Таблица 2.1 - Спецификация классов

Класс

Защищенность

Назначение

OnPaint ()

Protected

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

OnBnClickedButton1 ()

Protected

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

OnBnClickedButton3 ()

Protected

Выводит окно справки программы

OnBnClickedCancel ()

Protected

Пропускает вопрос, баллы не зачитываются

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

Для работы с программой необходим персональный компьютер обладающий характеристиками: процессор Intel с частотой не менее 1000 МГц, оперативная память не менее 512 Мбайт, свободное дисковое пространство не менее 100 Мбайт, CD\DVD - привод, монитор, мышь, клавиатура. Операционная система Windows XP, Vista, Seven.

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

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

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

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

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

В качестве входных данных приложение принимает ответы пользователя с помощью элементов управления

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

Выходными данными является сумма баллов выводимая после завершения тестирования в главном окне программы.

2.9 Тестирование программы

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

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

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

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

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 2 (рис.2.7).

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

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 3 (рис.2.8)

Рисунок 2.8 - Окно третьего вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 4 (рис.2.9)

Рисунок 2.9 - Окно четвертого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 5 (рис.2.10)

Рисунок 2.10 - Окно пятого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 6 (рис.2.11)

Рисунок 2.11 - Окно шестого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 7 (рис.2.12)

Рисунок 2.12 - Окно седьмого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 8 (рис.2.13)

Рисунок 2.13 - Окно восьмого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 9 (рис.2.14)

Рисунок 2.14 - Окно девятого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 10 (рис.2.15)

Рисунок 2.15 - Окно десятого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 11 (рис.2.16)

Рисунок 2.16 - Окно одиннадцатого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 12 (рис.2.17)

Рисунок 2.17 - Окно двенадцатого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 13 (рис.2.18)

Рисунок 2.18 - Окно тринадцатого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 14 (рис.2.19)

Рисунок 2.19 - Окно четырнадцатого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 15 (рис.2.20)

Рисунок 2.20 - Окно пятнадцатого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 16 (рис.2.21)

Рисунок 2.21 - Окно шестнадцатого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 17 (рис.2.22)

Рисунок 2.22 - Окно семнадцатого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 18 (рис.2.23)

Рисунок 2.23 - Окно восемнадцатого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 19 (рис.2.24)

Рисунок 2.24 - Окно девятнадцатого вопроса

По нажатию кнопки "Следующий" или "Пропустить" открывается окно вопроса 20 (рис.2.25)

Рисунок 2.25 - Окно двадцатого вопроса

После нажатия кнопки "Завершить" или "Пропустить" открывается главное окно программы в котором указывается набранная сумма баллов (рис.2.26).

Рисунок 2.26 - Главное окно приложения после окончания тестирования и вывод результата.

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

Заключение

При выполнении данной курсового проекта было разработано Windows-приложение, которое позволяет проводить тестирование знаний по разделу математики "Квадратные уравнения". Было создан дополнительный класс диалоговых окон. Изучена работа с 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 г.

Приложения

Приложение 1. Иерархия классов

Приложение 2. Листинг программы

// TestirovanieDlg. cpp: implementation file

//

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

#include "Testirovanie. h"

#include "TestirovanieDlg. h"

#include "v1. h"

#include "v2. h"

#include "v3. h"

#include "v4. h"

#include "v5. h"

#include "v6. h"

#include "v7. h"

#include "v8. h"

#include "v9. h"

#include "v10. h"

#include "v11. h"

#include "v12. h"

#include "v13. h"

#include "v14. h"

#include "v15. h"

#include "v16. h"

#include "v17. h"

#include "v18. h"

#include "v19. h"

#include "v20. h"

#include "help. 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 ()

// CTestirovanieDlg dialog

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

: CDialog (CTestirovanieDlg:: IDD, pParent)

, tekst (_T (""))

, r (0)

{

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

}

void CTestirovanieDlg:: DoDataExchange (CDataExchange* pDX)

{

CDialog:: DoDataExchange (pDX);

DDX_Text (pDX, IDC_EDIT1, tekst);

}

BEGIN_MESSAGE_MAP (CTestirovanieDlg, CDialog)

ON_WM_SYSCOMMAND ()

ON_WM_PAINT ()

ON_WM_QUERYDRAGICON ()

// }}AFX_MSG_MAP

ON_BN_CLICKED (IDC_BUTTON1, &CTestirovanieDlg:: OnBnClickedButton1)

ON_BN_CLICKED (IDC_BUTTON3, &CTestirovanieDlg:: OnBnClickedButton3)

END_MESSAGE_MAP ()

// CTestirovanieDlg message handlers

BOOL CTestirovanieDlg:: 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 CTestirovanieDlg:: 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 CTestirovanieDlg:: 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 CTestirovanieDlg:: OnQueryDragIcon ()

{

return static_cast<HCURSOR> (m_hIcon);

}

void CTestirovanieDlg:: OnBnClickedButton1 ()

{

r=0;

v1 dlg1;

if (dlg1. DoModal () ==IDOK)

{

r+=dlg1. o1;

}

v2 dlg2;

if (dlg2. DoModal () ==IDOK)

{

{

if (dlg2. c1==TRUE)

{

r+=0;

}

if (dlg2. c2==TRUE)

{

r+=3;

}

if (dlg2. c3==TRUE)

{

r+=0;

}

if (dlg2. c4==TRUE)

{

r+=3;

}

}

}

v3 dlg3;

if (dlg3. DoModal () ==IDOK)

{

r+=dlg3. o1;

}

v4 dlg4;

if (dlg4. DoModal () ==IDOK)

{

r+=dlg4. o1;

}

v5 dlg5;

if (dlg5. DoModal () ==IDOK)

{

r+=dlg5. o1;

}

v6 dlg6;

if (dlg6. DoModal () ==IDOK)

{

r+=dlg6. o1;

}

v7 dlg7;

if (dlg7. DoModal () ==IDOK)

{

r+=dlg7. o1;

}

v8 dlg8;

if (dlg8. DoModal () ==IDOK)

{

r+=dlg8. o1;

}

v9 dlg9;

if (dlg9. DoModal () ==IDOK)

{

r+=dlg9. o1;

}

v10 dlg10;

if (dlg10. DoModal () ==IDOK)

{

{

if (dlg10. c1==TRUE)

{

r+=3;

}

if (dlg10. c2==TRUE)

{

r+=0;

}

if (dlg10. c3==TRUE)

{

r+=0;

}

if (dlg10. c4==TRUE)

{

r+=3;

}

}

}

v11 dlg11;

if (dlg11. DoModal () ==IDOK)

{

r+=dlg11. o1;

}

v12 dlg12;

if (dlg12. DoModal () ==IDOK)

{

r+=dlg12. o1;

}

v13 dlg13;

if (dlg13. DoModal () ==IDOK)

{

r+=dlg13. o1;

}

v14 dlg14;

if (dlg14. DoModal () ==IDOK)

{

r+=dlg14. o1;

}

v15 dl15;

if (dl15. DoModal () ==IDOK)

{

{

if (dl15. c1==TRUE)

{

r+=0;

}

if (dl15. c2==TRUE)

{

r+=3;

}

if (dl15. c3==TRUE)

{

r+=3;

}

if (dl15. c4==TRUE)

{

r+=0;

}

}

}

v16 dlg16;

if (dlg16. DoModal () ==IDOK)

{

r+=dlg16. o1;

}

v17 dl17;

if (dl17. DoModal () ==IDOK)

{

r+=dl17. o1;

}

v18 dl18;

if (dl18. DoModal () ==IDOK)

{

r+=dl18. o1;

}

v19 dlg19;

if (dlg19. DoModal () ==IDOK)

{

r+=dlg19. o1;

}

v20 d20;

if (d20. DoModal () ==IDOK)

{

r+=d20. o1;

}

tekst. Format (L" набранно баллов: %d",r);

UpdateData (false);

// TODO: Add your control notification handler code here

}

void CTestirovanieDlg:: OnBnClickedButton3 ()

{

help dlghelp;

if (dlghelp. DoModal () ==IDOK);

// TODO: Add your control notification handler code here

}

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


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

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