Разработка приложения, позволяющего проводить тестирование по разделу "Логарифмы"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
Рисунок 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(