Тестирование по теме "Электрическое поле" (Visual C++ с использование библиотеки MFC)

Порядок составления программы, тестирующей знания пользователя по разделу физики "Электрическое поле", написанной на языке Visual C++ с использование библиотеки MFC. Листинг программы и ее практическое значение, принципы работы, структура и элементы.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 22.06.2011
Размер файла 172,5 K

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

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

6

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

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

Аннотация

В данном курсовом проекте описана программа, написанная на языке Visual C++ с использование библиотеки MFC.

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

Разработанная программа позволяет пользователю выбрать один из нескольких вариантов ответа.

Введение

В связи с тем, что сегодня уровень сложности программного обеспечения очень высок, разработка приложений Windows с использованием только одного какого-либо языка (например, языка С) значительно затрудняется. Программист должен затратить массу времени на решение стандартных задач по созданию оконного интерфейса. Реализация технологии связывания и встраивания объектов OLE потребует от программиста еще более сложной работы.

Чтобы облегчить работу программиста, все современные компиляторы языка С++ содержат специальные библиотеки классов. Такие библиотеки включают в себя практически весь программный интерфейс Windows и позволяют пользоваться при программировании средствами более высокого уровня, чем обычные вызовы функций. За счет этого значительно упрощается разработка приложений, имеющих сложный интерфейс пользователя, облегчается поддержка технологии OLE и взаимодействие с базами данных. Кроме того, стало проще производить отладку программ, написанных на С++. Вместо одной огромной монотонной программы мы имеем дело с набором аккуратных и удобных в обращении частей.

Современные интегрированные средства разработки приложений Windows позволяют автоматизировать процесс создания приложения. Для этого используются генераторы приложений. Программист отвечает на вопросы генератора приложений и определяет свойства приложения - поддерживает ли оно многооконный режим, технологию OLE, справочную систему. Генератор приложений создаст приложение, отвечающее требованиям, и предоставит исходные тексты. Пользуясь им как шаблоном, программист сможет быстро разрабатывать свои приложения.

Подобные средства автоматизированного создания приложений фирма Microsoft включила в продукт Visual C++, разработав библиотеку MFC (Microsoft Foundation Classes). MFC - замечательный пакет, состоящий из заранее написанного и готового к работе кода. Заполнив несколько диалоговых панелей, можно указать характеристики приложения его тексты, снабженные обширными комментариями. MFC AppWizard позволяет создавать однооконные и многооконные приложения, а также приложения, не имеющие главного окна, - вместо него используется диалоговая панель. Прикладную часть приложения программисту придется создавать самостоятельно. Исходный текст приложения станет только основой, к которой нужно подключить основное.

Возможности MFC AppWizard позволяют всего за несколько минут создать собственный многооконный редактор текста с возможностью сервера и клиента OLE. При этом вы не напишите ни единой строчки текста, а исходный текст приложения, созданный MFC AppWizard, можно сразу оттранслировать и получить выполнимый модуль приложения, полностью готовый к использованию. Александр Фролов, Григорий Фролов Том 24, М. Microsoft visual C++ и MFC.: Диалог-МИФИ, 1999.

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

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

Система программирования Visual C++ - один из наиболее полных и совершенных продуктов, предназначенных для разработки программного обеспечения. Это высокоскоростная и удобная для программирования система, предлагающая широкий набор разнообразных инструментов проектирования для любого стиля программирования. Новые компоненты содержат средства для программирования приложений, улучшенную реализацию ActiveX и Internet, дополнительные возможности разработки баз данных, а также новые архитектуры приложений и элементы взаимодействия между пользователями.

MFC - это базовый набор (библиотека) классов, написанных на языке С++ и предназначенных для упрощения и ускорения процесса программирования под Windows. Перед изучением библиотеки MFC и ее использованием для создания Windows-приложений, следует вспомнить, как работает сама Windows и каковы принципы взаимодействия программ с ней, какова структура типичной Windows-программы.

MFC является альтернативой системам визуального программирования, таким как Delphi или Visual Basic, предназначенной для опытных программистов. На сегодняшний день подавляющее большинство программ разрабатывается при помощи Microsoft Visual С++ и MFC. MFC - это стандарт программирования под Windows и «интернациональный язык общения». Такая ситуация объясняется многими причинами. В частности, только MFC позволяет создавать наиболее эффективные и устойчивые приложения, которые будут корректно вести себя не только в системе разработчика, но и в системах реальных пользователей. Также очень важно, что MFC поддерживает все современные технологии, реализованные в Windows, и при дополнении Windows почти сразу же дополняется и MFC.

MFC - это инструмент для программирования сложных приложений, от которых требуется высокая эффективность и надежность. MFC поощряет использование объектно-ориентированного программирования, что дает ощутимые преимущества при решении сложных (не с точки зрения только интерфейса пользователя) задач, по сравнению с компонентно-ориентированным подходом, применяемым в системах RAD (быстрой разработки приложений) [4]. Разрабатывая приложение в системе RAD, программист часто вообще не использует ООП, по крайней мере в явном виде, до тех пор, пока не соберется разработать собственный компонент. Это негативно сказывается на возможности последующего расширения возможностей. Тем не менее, не стоит воспринимать сказанное как критику систем RAD. Есть много классов приложений (например, базы данных), которые разумнее всего разрабатывать именно при помощи систем RAD, что и делают даже опытные Windows-программисты. Шилдт Г. Самоучитель С++. - BHV - Санкт-Петербург, 1998.

1.1 Цикл сообщений

Как объяснялось выше, Windows взаимодействует с программой, посылая ей сообщения. Все приложения Windows должны организовать так называемый цикл сообщений (обычно внутри функции WinMain()). В этом цикле каждое необработанное сообщение должно быть извлечено из очереди сообщений данного приложения и передано назад в Windows, которая затем вызывает функцию окна программы с данным сообщением в качестве аргумента. В традиционных Windows-программах необходимо самостоятельно создавать и активизировать такой цикл. При использовании MFC это также выполняется автоматически. Однако важно помнить, что цикл сообщений все же существует. Он является неотъемлемой частью любого приложения Windows.

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

1.2 Библиотека MFC

Главная часть библиотеки MFC состоит из классов, используемых для построения компонентов приложения. С каждым MFC-приложением связывается определяющий его на верхнем уровне объект theApp, принадлежащий классу, производному от CWinApp.

Как правило, структура приложения определяется архитектурой Document-View (документ-облик). Это означает, что приложение состоит из одного или нескольких документов - объектов, классы которых являются производными от класса CDocument (класс «документ»). С каждым из документов связаны один или несколько обликов - объектов классов, производных от CView (класс «облик») и определяющих облик документа.

Класс CFrameWnd («окна-рамки») и производные от него определяют окна-рамки на дисплее. Элементы управления, создаваемые при проектировании интерфейса пользователя, принадлежат семейству классов элементов управления. Появляющиеся в процессе работы приложения диалоговые окна - это объекты классов, производных от CDialog.

Классы CView, CFrameWnd, CDialog и все классы элементов управления наследуют свойства и поведение своего базового класса CWnd («окно»), определяющего по существу Windows-окно. Этот класс в свою очередь является наследником базового ласса CObject («объект»).

Одна из трудностей в понимании принципов устройства MFC-приложения, заключается в том, что объекты, из которых оно строится, наследуют свойства и поведение всех своих предков, поэтому необходимо знать базовые классы. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд./Пер. с англ. - М.: «Издательство Бином», СПб.: «Невский диалект», 1999. - 560 с.

1.3 Преимущества использования MFC

Как уже упоминалось, MFC - это базовый набор (библиотека) классов, написанных на языке С++ и предназначенных для упрощения и ускорения процесса программирования для Windows. Библиотека содержит многоуровневую иерархию классов, насчитывающую около 200 членов. Они дают возможность создавать Windows-приложения на базе объектно-ориентированного подхода. С точки зрения программиста, MFC представляет собой каркас, на основе которого можно писать программы для Windows.

Библиотека MFC разрабатывалась для упрощения задач, стоящих перед программистом. Как известно, традиционный метод программирования под Windows требует написания достаточно длинных и сложных программ, имеющих ряд специфических особенностей. В частности, для создания только каркаса программы таким методом понадобится около 75 строк кода. По мере же увеличения сложности программы ее код может достигать поистине невероятных размеров. Однако та же самая программа, написанная с использованием MFC, будет примерно в три раза меньше, поскольку большинство частных деталей скрыто от программиста.

Одним из основных преимуществ работы с MFC является возможность многократного использования одного и того же кода. Так как библиотека содержит много элементов, общих для всех Windows-приложений, нет необходимости каждый раз писать их заново. Вместо этого их можно просто наследовать (говоря языком объектно-ориентированного программирования). Кроме того, интерфейс, обеспечиваемый библиотекой, практически независим от конкретных деталей, его реализующих. Поэтому программы, написанные на основе MFC, могут быть легко адаптированы к новым версиям Windows (в отличие от большинства программ, написанных обычными методами).

Еще одним существенным преимуществом MFC является упрощение взаимодействия с прикладным программным интерфейсом (API) Windows. Любое приложение взаимодействует с Windows через API, который содержит несколько сот функций. Внушительный размер API затрудняет попытки понять и изучить его целиком. Зачастую даже сложно проследить, как отдельные части API связанны друг с другом! Но поскольку библиотека MFC объединяет (путем инкапсуляции) функции API в логически организованное множество классов, интерфейсом становится значительно легче управлять.

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

Замечание. Небольшое число классов, определенных в библиотеке, не связанно непосредственно с программированием под Windows. Это, в частности, классы, предназначенные для создания строк, управления файлами и обработки особых ситуаций. Иногда называемые классами общего назначения, они могут использоваться как Windows-, так и не - Windows-приложениями.

1.4 Каркас приложения

Наследование - одна из фундаментальных идей объектно-ориентированного программирования. Именно этот механизм наследования позволяет программисту дополнять и переопределять поведение базового класса, не вторгаясь в библиотеку MFC, которая остается неизменной. Все изменения делаются в собственном производном классе. Именно в этом и заключается работа программиста.

Объекты, их которых состоит приложение, являются объектами классов, производных от классов библиотеки MFC. Разработка приложения состоит в том, что программист берет из библиотеки MFC классы CWinApp, CFrameWnd, CDocument, CView и т.д. и строит производные классы. Приложение создается как совокупность объектов этих производных классов. Каждый объект несет в себе как наследуемые черты, определяемые базовыми классами, так и новые черты, добавленные программистом. Наследуемые черты определяют общую схему поведения, свойственную таким приложениям. Новые же черты позволяют реализовать специфические особенности поведения приложения, необходимые для решения стоящей перед ним задачи.

1.5 Проект приложения

О принципах устройства приложения рассказывалось выше. Теперь рассмотрим, как оно создается с помощью Visual C++. Сначала разберем одно важное понятие - проект. До сих пор приложение рассматривалось, как только как совокупность объектов базовых и производных классов. Но для обеспечения работы приложения требуется нечто большее - наряду с описанием классов необходимо описание ресурсов, связанных с приложением, нужна справочная система и т.п. Термин «проект» как раз и используется, когда имеется в виду такой более общий взгляд на приложение.

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

Создаваемый остов приложения составлен так, что в дальнейшей работе с проектом можно использовать другое инструментальное средство - ClassWizard (мастер классов), предназначенное для создания остовов новых производных классов. Еще одно основное назначение ClassWizard в том, что он создает остовы для переопределяемых методов. Он позволяет показать все сообщения, приходящие классу, и создать остов обработчика любого из этих сообщений. Это только две основные функции ClassWizard. Он не всесилен, но его возможности довольно велики. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд./Пер. с англ. - М.: «Издательство Бином», СПб.: «Невский диалект», 1999. - 560 с.

1.6 Классы и файлы программы

Программу Ellipse будем называть приложением с однооконным интерфейсом(SDI). Это означает, что в данный момент времени в ней может отображаться только один документ. Когда мастер создаёт приложение SDI, он порождает четыре главных класса:

класс документа;

класс представления (view);

класс главного окна;

класс приложения;

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

Класс документа в Ellipse называется CЕllipseDoc. Он порождается из класса CDocument библиотеки MFC. Заголовочный файл CEllipseDoc имеет имя CEllipseDoc.h, а имя файла реализации - CEllipseDoc.cpp. Класс документа отвечает за хранение данных программы и за чтение и запись данных на диск.

Класс представления в Ellipse называется CЕllipseView и порождается от MFC-класса Cview. Заголовочный файл CEllipseView называется CEllipseView.h, а имя файла реализации - CЕllipse.cpp. Класс представления отвечает за отображение данных программы (на экране, на принтере, или другом устройстве) и за обработку информации, вводимой пользователем.

Этот класс управляет окном представления (view window), которое используется для отображения данных программы на экране. Класс представления в Ellipse просто отображает строку сообщения внутри окна представления.

Класс главного окна в Ellipse называется CMainFraim и порождается от MFC-класса CFrameWnd. Заголовочный файл CMainFrame называется MainFrm.h, а имя файла реализации - MainFrm.cpp. Класс главного окна управляет главным окном программы, которое является обрамляющим окном и содержит рамку окна, строку заголовка, строку меню и системное меню. Обрамляющее окно также содержит кнопки Minimize, Maximize, Close, а иногда и другие элементы пользовательского интерфейса, например, панель инструментов, строку состояния. Окно представления, управляемое классом представления, занимает внутри обрамляющего окна пустую область, которая называется клиентской областью главного окна. Окно представления не имеет видимых элементов, кроме текста и графики, отображающейся явно. Окно представления - дочернее окно главного окна, поэтому оно всегда отображается поверх и внутри границ рабочей области главного окна.

Наконец, класс приложения назван CEllipseApp и порожден из MFC-класса CWinApp. Файл заголовков класса CEllipseApp назван Ellipse.h, а файл реализации - Ellipse.cpp. Класс приложения управляет программой в целом. Это значит, что он выполняет общие задачи, не относящиеся к каким-либо другим трём классам (например, инициализацию программы и её заключительную очистку). Каждая MFC-программа должна создать в точности один экземпляр класса, порождённого из класса CWinApp. Четыре главных класса обращаются друг к другу и обмениваются данными, вызывая открытые функции-члены другого класса и посылая сообщения.

1.7 Обзор возможностей 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 могут сразу отобразить новые значения полей на экране компьютера.

1.8 Имена, используемые в MFC

Библиотека MFC содержит большое количество классов, структур, констант и т.д. Для того, чтобы текст MFC-приложений был более легким для понимания, принято применять ряд соглашений для используемых имен и комментариев.

Названия всех классов и шаблонов классов библиотеки MFC начинаются с заглавной буквы C. При наследовании классов от классов MFC можно давать им любые имена. Рекомендуется начинать их названия с заглавной буквы C. Это сделает исходный текст приложения более ясным для понимания.

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

Библиотека MFC включает в себя, помимо классов, набор служебных функций. Названия этих функций начинаются с символов Afx, например AfxGetApp. Символы AFX являются сокращением от словосочетания Application FrameworkX, означающих основу приложения, его внутреннее устройство.

Символы AFX встречаются не только в названии функций MFC. Многие константы, макрокоманды и другие символы начинаются с этих символов. В общем случае AFX является признаком, по которому можно определить принадлежность того или иного объекта (функция, переменная, ключевое слово или символ) к библиотеке MFC. Круглински Д., Уингоу С, Шеферд Дж. Программирование на Microsoft Visual C++ 6.0. - М.: Русская редакция, 2003.

2. Описание программного продукта

2.1 Общие сведения

Программа называется kursovoi proekt. Написана на языке C++ в среде разработки Visual studio 10.0. К необходимому программному обеспечению относятся операционная система семейства Windows версии 2007, Набор компонент, позволяющих запускать приложения стандарта.NET Framework 2.0. Для того чтобы просмотреть текст программы или запустить её на выполнение - необходимо, чтобы на компьютере был установлена среда Microsoft Visual C++.

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

По условию задания программа должна задать пользователю десять вопросов по теме «Электрическое поле». Программа должна проверять знание понятий раздела (поле, напряженность, лини напряженности, работа в электрическом поле, электростатическая сила, потенциал, напряжение), включать задачи на з-н Кулона, работу по перемещению заряда в поле, вычисление напряженности поля заряда в разных точках. По результатам ответов программа должна выдать пользователю уровень знаний в процентах.

Программа задаёт пользователю вопросы и предлагает ответы, к ним приведённые в таблице 2.1

Таблица 2.1 - Данные программы

Вопрос

Варианты ответа

Правильные ответы

1

Сколько у поля степеней свободы?

1; 22*10^-12; бесконечное число

бесконечное число

2

В каких единицах измерения можно выразить напряженность электрического поля?

В/m; Кл; Дж

В/m

3

По какой формуле можно вычеслить работу электрического поля?

A=k*l*sin; A=F*l*cos; A=(d/F)*cos

A=F*l*cos

4

Линии напряженности электростатического поля начинаются на… электрических зарядах и кончаются на… электрических зарядах

отрицательных… положительных; отрицательных… отрицательных;

положительных… отрицательных;

положительных… положительных

положительных… отрицательных;

5

При каком условии создается электростатическое поле?

при наличии электрических токов;

при отсутствии электрических токов;

в вакууме

при отсутствии электрических токов

6

Как в физике обозначается электрический потенциал?

фи; F; U; сигма

фи

7

Как в обозначается электрическое напряжение?

F; N; L; E; U

E

8

Определить работу по перемещению заряда Q =1мКл вдоль линии напреженности с расстояния r1=4см до r2=2см. Если электростатическое поле создается бесконечной равномерно заряженной плоскостью = 2мкКл/м^2

-22,6*10^-12;

-22,6*10^-12;

22,6*10^-12;

22,6*10^12

-22,6*10^-12;

9

Расстояние d между двумя точечными зарядами q1=2нКл расположенном в вакууме = 20см. Определить напряженность поля в точке, удаленной от первого заряда на 15см, и от второго заряда на 10см.

81,7 В/m;

79,1 B/m;

84,1 B/m;

78,9 B/m;

77 B/m

81,7 В/m;

10

Три точки расположены в вакууме. Заряды точек А и В равны Q1=4*10^-12 (Кл) и Q2=8*10^-12 (Кл) Расстояние АБ=БВ=10см. угол АБВ=90градусов. Определить напряженность в точке Б.

24,1 B/m;

19,5 B/m;

20 B/m;

27,8 B/m

20 B/m;

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

Для начала тестирования пользователь должен нажать кнопку «Начать тестирование». С этой кнопкой связана функция OnButton1 (). Эта функция вызывает метод start(). Запускается окно тестирования. В этом окне пользователь выбирает вариант ответа через элементы управления.

Для перехода к следующему окну нужно нажать кнопку «ок», с которой связана функция OnOK. Происходит фиксация ответа и открывается следующее окно.

Когда пользователь отвечает на все вопросы, происходит построение окна с результатами тестирования. Результат в формате текстовой строки присваивается переменной ozen которая ассоциирована с элементом Static Text.

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

Для корректной работы программы необходимы IBM PC совместимый компьютер, оперативная память 128 Mb и выше, свободное место на диске 7400 Кбайт под размещение приложения, наличие монитора.

2.5 Вызов программы

Программа представляет собой единственный файл-приложение kursovoi proekt.exe, запускаемое в любой операционной системе семейства Windows. Чтобы просмотреть текст программы или запустить её на выполнение - надо скопировать с носителя папку с проектом на жёсткий диск компьютера. Если надо просмотреть текст программы, шаблоны диалоговых окон и др., то следует открыть файл с расширением.dsw, являющийся файлом проекта.

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

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

Ожидаемый результат

Замечания

1

Не выбираю не одного ответа

Программа выдаст результат тестирования равный 0

Проверка работы программы без ввода данных

2

Последовательный выбор неправильных ответов

Программа выдаст результат тестирования равный 0 и ошибки во всех вопросах

Проверка работы программы с неправильными ответами

3

Последовательный выбор правильных ответов

Результат тестирования 100 процентов и ошибок нет

Проверка работы программы с правильными ответами

4

Выбор неправильных ответов в вопросах 1,2,3,7, 9

Результат тестирования 50 процентов.

Проверка работы программы с правильными и неправильными ответами

Из результата тестов №1 и №2 наглядно видно, что если пользователь не выбирает ответы на вопросы, то они засчитываются как неправильные.

Рисунок №1 - Результат работы тестовых наборов №1, 2

Рисунок №2 - Результат работы тестового набора №3

Рисунок №3 - Результат работы тестового набора №4

Из рисунка №2 и №3 видно, что при выборе различных ответов программа функционирует нормально.

В результате тестирования не было выявлено серьёзных ошибок. Мелкие недочёты были исправлены.

Заключение

В ходе выполнения курсового проекта было создано Windows-приложение, которое проверяет знания пользователя по теме «Электрическое поле». Данная программа была написана на Microsoft Visual C++ 10.0 с использованием библиотеки MFC.

В ходе разработки курсового проекта была освоена работа с Microsoft Visual C++. В результате чего была написана программа. Была освоена работа с различными элементами интерфейса, работа с мастерами Visual C++ 10.0.

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

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

«Основы программирования на Visual C++», методические указания по курсу «Технология программирования» для специальностей 220200, 071900

Кейт Грегори «Использование Visual C++ 6», М, СПб, К.: издательский дом «Вильямс», 2000

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

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

М. Луис «Visual C++6» М.: Лаборатория базовых знаний, 1999

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

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

А.В. Фролов, Г.В. Фролов «Microsoft visual C++ и MFC. Программирование для Windows 95 и Windows NT» в 2-х ч. (часть1) (Библиотека системного программиста; т. 24) М.: Диалог-МИФИ, 1997

А.В. Фролов, Г.В. Фролов «Microsoft visual C++ и MFC. Программирование для Windows 95 и Windows NT» (часть2) (Библиотека системного программиста; т. 28) М.: Диалог-МИФИ, 1997

Х.А. Цвиринько, В.Д. Коровина «Методические рекомендации по оформлению дипломных и курсовых проектов (работ)», Ставрополь: изд-во Сев-Кав ГТУ, 2000

Приложение 1

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

// kursovoi proektDlg.cpp: файл реализации

//

#include «stdafx.h»

#include «kursovoi proekt.h»

#include «kursovoi proektDlg.h»

#include «afxdialogex.h»

#include «vopr1.h»

#include «vopr2.h»

#include «vopr3.h»

#include «vopr4.h»

#include «vopr5.h»

#include «vopr6.h»

#include «vopr7.h»

#include «vopr8.h»

#include «vopr9.h»

#include «vopr10.h»

#include «rez.h»

#ifdef _DEBUG

#define new DEBUG_NEW

#endif

// Диалоговое окно CAboutDlg используется для описания сведений о приложении

class CAboutDlg: public CDialogEx

{

public:

CAboutDlg();

// Данные диалогового окна

enum {IDD = IDD_ABOUTBOX};

protected:

virtual void DoDataExchange (CDataExchange* pDX); // поддержка DDX/DDV

// Реализация

protected:

DECLARE_MESSAGE_MAP()

};

CAboutDlg:CAboutDlg(): CDialogEx (CAboutDlg:IDD)

{

}

void CAboutDlg: DoDataExchange (CDataExchange* pDX)

{

CDialogEx: DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP (CAboutDlg, CDialogEx)

END_MESSAGE_MAP()

// диалоговое окно CkursovoiproektDlg

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

: CDialogEx (CkursovoiproektDlg:IDD, pParent)

{

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

}

void CkursovoiproektDlg: DoDataExchange (CDataExchange* pDX)

{

CDialogEx: DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP (CkursovoiproektDlg, CDialogEx)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED (IDC_BUTTON1, &CkursovoiproektDlg: OnBnClickedButton1)

END_MESSAGE_MAP()

// обработчики сообщений CkursovoiproektDlg

BOOL CkursovoiproektDlg: OnInitDialog()

{

CDialogEx: OnInitDialog();

// Добавление пункта «О программе…» в системное меню.

// IDM_ABOUTBOX должен быть в пределах системной команды.

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

ASSERT (IDM_ABOUTBOX < 0xF000);

CMenu* pSysMenu = GetSystemMenu(FALSE);

if (pSysMenu!= NULL)

{

BOOL bNameValid;

CString strAboutMenu;

bNameValid = strAboutMenu. LoadString (IDS_ABOUTBOX);

ASSERT(bNameValid);

if (! strAboutMenu. IsEmpty())

{

pSysMenu->AppendMenu (MF_SEPARATOR);

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

}

}

// Задает значок для этого диалогового окна. Среда делает это автоматически,

// если главное окно приложения не является диалоговым

SetIcon (m_hIcon, TRUE); // Крупный значок

SetIcon (m_hIcon, FALSE); // Мелкий значок

// TODO: добавьте дополнительную инициализацию

return TRUE; // возврат значения TRUE, если фокус не передан элементу управления

}

void CkursovoiproektDlg: OnSysCommand (UINT nID, LPARAM lParam)

{

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

{

CAboutDlg dlgAbout;

dlgAbout. DoModal();

}

else

{

CDialogEx: OnSysCommand (nID, lParam);

}

}

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

// чтобы нарисовать значок. Для приложений MFC, использующих модель документов или представлений,

// это автоматически выполняется рабочей областью.

void CkursovoiproektDlg: OnPaint()

{

if (IsIconic())

{

CPaintDC dc(this); // контекст устройства для рисования

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

// Выравнивание значка по центру клиентского прямоугольника

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;

// Нарисуйте значок

dc. DrawIcon (x, y, m_hIcon);

}

else

{

CDialogEx: OnPaint();

}

}

// Система вызывает эту функцию для получения отображения курсора при перемещении

// свернутого окна.

HCURSOR CkursovoiproektDlg: OnQueryDragIcon()

{

return static_cast<HCURSOR>(m_hIcon);

}

void CkursovoiproektDlg: OnBnClickedButton1 ()

{

int ozen;

ozen=0;

vopr1 ob1;

vopr2 ob2;

vopr3 ob3;

vopr4 ob4;

vopr5 ob5;

vopr6 ob6;

vopr7 ob7;

vopr8 ob8;

vopr9 ob9;

vopr10 ob10;

rez ob11;

if (ob1. DoModal()==IDOK) if (ob1.ot=3) ozen=+10;

if (ob2. DoModal()==IDOK) if (ob1.ot=1) ozen=+10;

if (ob3. DoModal()==IDOK) if (ob2.ot=2) ozen=+10;

if (ob4. DoModal()==IDOK) if (ob3.ot=3) ozen=+10;

if (ob5. DoModal()==IDOK) if (ob4.ot=2) ozen=+10;

if (ob6. DoModal()==IDOK) if (ob5.ot=1) ozen=+10;

if (ob7. DoModal()==IDOK) if (ob6.ot=4) ozen=+10;

if (ob8. DoModal()==IDOK) if (ob7.ot=1) ozen=+10;

if (ob9. DoModal()==IDOK) if (ob8.ot=1) ozen=+10;

if (ob10. DoModal()==IDOK) if (ob9.ot=3) ozen=+10;

ob11.m_edit=ozen;

ob11. DoModal();

}

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


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

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