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

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



Рисунок 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.О.С.Мезенцева, В.В.Кушнарев. Методические указания по курсовому проектированию по диiиплине Высокоуровневые методы информатики и программирования. Ставрополь, 2002

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

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

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

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

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

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

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

.И. Ю. Баженова. 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 AboutCAboutDlg : public CDialog

{:();

// Dialog Data{ IDD = IDD_ABOUTBOX };:void DoDataExchange(CDataExchange* pDX); // DDX/DDV support

// Implementation:_MESSAGE_MAP()

};::CAboutDlg() : CDialog(CAboutDlg::IDD)

{

}CAboutDlg::DoDataExchange(CDataExchange* pDX)

{::DoDataExchange(pDX);

}_MESSAGE_MAP(CAboutDlg, CDialog)_MESSAGE_MAP()

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

: CDialog(CProgrammTestDlg::IDD, pParent)

, res(0)

, m_text(_T(""))

{_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}CProgrammTestDlg::DoDataExchange(CDataExchange* pDX)

{::DoDataExchange(pDX);_Text(pDX, IDC_EDIT1, m_text);

}_MESSAGE_MAP(CProgrammTestDlg, CDialog)_WM_SYSCOMMAND()_WM_PAINT()_WM_QUERYDRAGICON()

//}}AFX_MSG_MAP_BN_CLICKED(IDC_BUTTON1, &CProgrammTestDlg::OnBnClickedButton1)_BN_CLICKED(IDCLOSE, &CProgrammTestDlg::OnBnClickedClose)_BN_CLICKED(IDCANCEL, &CProgrammTestDlg::OnBnClickedCancel)_MESSAGE_MAP()

// CProgrammTestDlg message handlersCProgrammTestDlg::OnInitDialog()

{::OnInitDialog();

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

// IDM_ABOUTBOX must be in the system command range.((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);(IDM_ABOUTBOX < 0xF000);* pSysMenu = GetSystemMenu(FALSE);(pSysMenu != NULL)

{strAboutMenu;.LoadString(IDS_ABOUTBOX);(!strAboutMenu.IsEmpty())

{>AppendMenu(MF_SEPARATOR);>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(m_hIcon, TRUE);// Set big icon(m_hIcon, FALSE);// Set small icon

// TODO: Add extra initialization hereTRUE; // return TRUE unless you set the focus to a control

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

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

{dlgAbout;.DoModal();

}

{::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.CProgrammTestDlg::OnPaint()

{(IsIconic())

{dc(this); // device context for painting(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);

// Center icon in client rectanglecxIcon = GetSystemMetrics(SM_CXICON);cyIcon = GetSystemMetrics(SM_CYICON);rect;(&rect);x = (rect.Width() - cxIcon + 1) / 2;y = (rect.Height() - cyIcon + 1) / 2;

// Draw the icon.DrawIcon(x, y, m_hIcon);

}

{::OnPaint();

}

}

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

// the minimized window.CProgrammTestDlg::OnQueryDragIcon()

{static_cast(m_hIcon);

}CProgrammTestDlg::OnBnClickedButton1()

{=0;\\обнуление переменной res (результат)dlg1; \\ объявление объекта(dlg1.DoModal()==IDOK)\\ подключение клавиши Дальше

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

}dlg2;(dlg2.DoModal()==IDOK)

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

}dlg3;(dlg3.DoModal()==IDOK)

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

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

}(dlg3.ch2==TRUE)

{+=3;

}(dlg3.ch3==TRUE)

{+=0;

}(dlg3.ch4==TRUE)

{+=3;

}

}dlg4;(dlg4.DoModal(