Диалоговая программа, проверяющая правильность вычисления площади треугольника (по формуле Герона)
Алгоритм и блок-схема процесса обработки в диалоговой программе, вычисляющей площадь треугольника. Описание объектов, свойств, методов программы в среде визуального программирования С++ Builder. Формы и основные модули текста разработанной программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 01.06.2014 |
Размер файла | 2,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Реферат
Курсовая работа: 23 с., 13 рис., 2 табл., 5 источников, 3 прил.
СРЕДА BORLAND С++BUILDER, ЛОГИЧЕСКАЯ ПРОГРАММА, ВЫЧИСЛЕНИЯ ПЛОЩАДИ ТРЕУГОЛЬНИКА, IMAGE, ФАЙЛ
Объект исследования -среда BorlandС++Builder.
Предмет исследования- применение среды программирования BorlandС++Builder для создания диалоговой программы.
Цель работы -составить диалоговую программу, проверяющую правильность вычисления площади треугольника средствами С++Builder.
Основой для выполнения работы стала справочная, научная и учебная литература.
При выполнении работы использовался метод: анализ научно-методической литературы, проектов.
Областью возможного практического применения данной работы является использование материала проекта для создания диалоговых программ.
Автор подтверждает, что приведенный в работе расчетно-аналитический материал правильно и объективно отражает состояние исследуемого процесса, а все заимствованные из литературных и других источников теоретические, методологические и методические положения и концепции сопровождаются ссылками на их авторов.
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
1.1 Постановка задачи
1.2 Теоретические аспекты предметной области
1.3 Алгоритм решения задачи
1.4 Блок-схема алгоритма решения задачи
2.ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1 Описание объектов, свойств, методов
2.2 Формы и основные модули текста программы
2.3 Результаты тестирования программного продукта
2.4 Анализ результатов
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЕ A
ПРИЛОЖЕНИЕ Б
ПРИЛОЖЕНИЕ В
ВВЕДЕНИЕ
В последние десятилетия резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь цифровых технологий.
Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить C++ Builder.
Главным достоинством C++ Builder является то, что здесь реализованы идеи визуального программирования. Среда визуального программирования превращает процесс создания программы в приятное и легко понимаемое конструирование приложения из большого набора графических и структурных примитивов.
В данной курсовой работе будут изучены такие важные и актуальные направления применения среды C++Builder как создание диалоговых программ? проверяющих правильность математических вычислений.
Актуальность заключается в удобстве создания программ в среде С++Builder, в широких возможностях, в том числе для обработки текстовой информации, с использованием файлов.
Цель курсовой работы: обобщить знания по управляющим операторам языка С/С++; получить практические навыки работы с файлами, овладеть практическими навыками в организации ввода/вывода значений комбинированных типов данных, получить практические навыки программирования задач с использованием массивов, записей и файлов в среде С++Builder.
Для достижения названной цели в исследовании необходимо решить следующие задачи:
1) постановка задачи в формализованном виде;
2) построение алгоритма решения задачи;
3) реализация алгоритма на ПК путем создания пользовательского программного продукта;
4) анализ результатов;
5) использование компьютерной модели для проведения испытаний;
6) анализ полученных данных и формулировка выводов;
7) создание пояснительной записки.
Для выполнения этих задач будем использовать среду объектно-ориентированного программирования С++Builder.
Основой для выполнения работы стала справочная, научная и учебная литература и материалы периодической печати.
Основными методами исследования были выбраны общенаучные методы анализа и синтеза.
Структурно изложение материала представлено в виде содержания, введения, основной части, заключения и списка использованных источников.
К работе прилагается электронный носитель информации.
1. ТЕОРЕТИЧЕСКАЯ ЧАСТЬ
1.1 Постановка задачи
В данной курсовой работе требуется создать Windows-приложение в среде визуального программирования С++Builder, которое предназначена для обработки текста следующим образом: составить обучающую программу, проверяющую правильность вычисления площади треугольника по заданным сторонам (по формуле Герона). Обучаемому предлагается шесть задач. Обучаемому предлагается вопрос и три числа а, b, с, решив задачу он должен ввести ответ. Если ответ правильный, то обучаемому предлагается следующий вопрос и сообщение «Правильно». В противном случае обучаемому предлагается снова ответить на вопрос. Если повторный ответ также неправильный, то предложить вычислить сначала p=(а+b+с)/2, затем х1=р(р-а), x2=х1(р- b), далее хз = x2 (р -- с) и . После трех неудачных попыток ответить на вопрос, выдать обучаемому правильный ответ и предложить следующий. Переход к следующей задаче возможен только после правильного решения предыдущей. Подсчитать число правильных ответов на задачи с первой попытки. Программа должна анализировать достоверность исходных данных.
1.2 Теоретические аспекты предметной области
Формула Герона позволяет вычислить площадь треугольника (S) по его сторонам a, b, c где p -- полупериметр треугольника: (формула 1.1)
pФормула 1.1-полупериметр треугольника
В выражении для вычисления площади используется библиотечная функция sqrt() -- квадратный корень. Данная функция относится к библиотеке математических функций. Для подключения этой библиотеки к нашей программе используется директива препроцессора #include <math.h>. Здесь math.h -- имя заголовочного файла этой библиотеки.
Так же в форме программы использовались компоненты Tbutton - для создания кнопок меню, Tlabel - для вывода дополнительной информации. Для всплывающих окон с информацией использовались ShowMessage, MessageBox.
Работа с файлами. Файлы позволяют пользователю считывать большие объемы данных непосредственно с диска, не вводя их с клавиатуры. Существуют два основных типа файлов: текстовые и двоичные. Программирование операций ввода/вывода с файлами начинается с объявления файловой переменной:
FILE *<Файловая переменная>;
Далее для работы с содержимым файла, его необходимо открыть. При открытии файла выделяется память под таблицу, на которую указывает файловая переменная, и частично заполняются ее поля. Операцию выполняет специальная функция:
<Файловая переменная> = fopen (<Имя файла>,<Операция [+] [Тип]>);
где <Имя файла> - строковая переменная или константа - полное имя файла с путем -при указании имени файла без пути файл ищется только в текущем каталоге; <Операция[+]> - кодируется следующим образом:
· r - для чтения; если файла нет, то возникает ошибка;
· w - для записи, если файла с заданным именем нет, то он будет создан, если же такой файл существует, то перед открытием прежняя информация уничтожается;
· a - добавление к существующему файлу новой информации в конец или создание файла для вывода;
· r+ - ввод/вывод в существующий файл;
· w+ - ввод/вывод в существующий или создание нового файла для ввода/вывода;
· a+ - то же, что и для a, только запись можно выполнять в любое место файла, доступно и чтение файла.
Если при открытии файла произошла ошибка, функция fopen возвращает значение NULL. Открытый файл обязательно должен быть закрыт. При закрытии файла вывода оставшиеся записи из буфера переписываются в файл, и если файл новый, то формируется соответствующий элемент оглавления. Поэтому, прежде чем переименовывать или удалять файл, его обязательно нужно закрыть:
fclose(<Файловая переменная>);
1.3 Алгоритм решения задачи
Для решения данной задачи будет использоваться следующий алгоритм. Программа предлагает пользователю стороны треугольника. По заданным сторонам пользователь должен найти площадь треугольника и ввести ответ. Программа проверит ввод данных, если ответ правильный то предлагается другая задача, иначе еще одна попытка ввести ответ, если повторный ответ также неправильный, то программа предложит вычислить по формуле и ввести ответ еще раз. Если пользователь три раза ошибся, то выводится сообщения с правильным ответом и переходит к другой задаче. Так же в программе предлагается тест, за правильные ответы обучаемый получает 5 баллов. За правильный ответ в задаче с первой попытки 10 баллов, со второй попытки -5 баллов и с третей попытки -3 балла. После решение всех задач сохраняется в файл имя пользователя и его балл.
1.4 Блок-схема Алгоритм решения задачи
На рисунке 1.1 представлена блок-схема процесса обработки диалоговой программы, вычисляющую площадь треугольника.
Рисунок 1.1-Блок-схема процесса обработки вычисляющую площадь треугольника
2. ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1 Описание объектов, свойств, методов
Основными объектами работы программного проекта являются Button, LabelиEdit.
GroupBox - служит для объединения нескольких компонентов с целью удобства пользования.
Компоненты, предназначенные для ввода-вывода
Если необходимо ввести из формы в программу или вывести на форму информацию, которая вмещается в одну строку, используют окно однострочного редактора текста, представляемого компонентой Edit, которая находится в меню Standard.
Компонента Memo. Для вывода результатов работы программы обычно используется окно многострочного редактора текста, представленное компонентой Memo.
Компонента Label. Данная компонента используется для вывода надписей, и в нужном месте формы устанавливается надпись Label1, регулируется размер, место положения, изменяется свойство Caption инспектора объектов, в котором вводится нужный текст, например, строка “Значение X = ”, а также выбирается стиль.
КомпонентRadioGroup организует группу кнопок - зависимых переключателей. При нажатии одной из кнопок группы все остальные кнопки отключаются. Номер активного зависимого переключателя хранится в значении свойства ItemIndex. Нумерация кнопок начинается с нуля. Количество кнопок и подписи к ним определяются свойством Items. Расположение зависимых переключателей, которые отображает данный компонент, подбирается автоматически с учетом заданного в свойстве Columns количества колонок.
Image - компонент для отображения изображений.
Функция-обработчик FormCreate
При запуске программы возникает событие «создание формы» (OnCreate). Нажимаем двойной щелчок кнопкой мыши на любом свободном месте формы, между символами { }, которые обозначают начало и конец функции, соответственно, туда можно записать нужный текст программы. После чего в листинг программы (Unit1.cpp) автоматически вносится заготовка для создания функции: ее заголовок … FormCreate (…) и фигурные скобки.
Form - форма, основной компонент приложения. На ней размещаются все другие компоненты (таблица 1.1).
Таблица 1.1- Основные свойства Form и их значения
Свойство |
Значение |
|
AlphaBlend |
Если установлено true, то форму можно сделать прозрачной. |
|
AutoSize |
Если установлено true, форма сама подгоняет свои размеры под расположенные на неё компоненты. |
|
BorderIcons |
Свойство, содержащее несколько подсвойств. Позволяет управлять кнопками приложения в правом верхнем углу. |
|
biSystemMenu - Отключает все кнопки и запрещает вызов меню по комбинации клавиш Alt+ Space (Пробел) |
||
biMinimize - Кнопка сворачивания приложения |
||
biMaximize - Кнопка растягивания приложения во весь экран |
||
biHelp - Кнопка "?" справки (подсказки) |
||
BorderStyle |
Определяет вид границы приложения. |
|
bsDialog - Запрещено растягивание за углы и нет кнопок "Свернуть" и "Закрыть". |
||
bsNone - Нет никаких границ, форму нельзя перетаскивать. Такое используется для создания заставок приложений. |
||
bsSingle - Запрещено растягивание за углы. |
||
bsSizeable - Можно растягивать форму за края и все кнопки доступны. |
||
bsSizeToolWin - Упрощенный вид формы с возможностью растягивания за края и наличием только кнопки "Закрыть". |
||
bsToolWindow - Упрощенный вид формы без возможности растягивания за края без кнопок "Свернуть" и "Закрыть". |
||
BorderWidth |
Толщина границ формы |
|
Caption |
Название формы (Отображается в левом верхнем углу) |
|
FormStyle |
Стиль формы, по умолчанию fsNormal. Если установить fsStayOnTop, то эта форма будет поверх других окон. Это удобно использовать, если форма отвечает за ввод логина с паролем или это окно настроек. |
|
Icons |
Значок, который отображается в верхнем левом углу формы. Можно загрузить в формате ico. |
|
Menu |
Выбор основного MainMenu из выпадающего списка (если у вас больше одного) |
|
Position |
Позиция формы относительно экрана. По умолчанию poDesigned. Наиболее полезные варианты - poDesktopCenter и poScreenCenter - размещение формы по центру рабочего стола и экрана соответственно. |
Button - обычная кнопка без рисунка (таблица 1.2).
Таблица 1.2- Основные свойства buttonи их значения
Свойство |
Назначение |
|
Caption |
Надпись на компоненте. |
|
Cursor |
Тип курсора, при наведении его на компонент. В выпадающем списке кроме имен курсоров, сразу же приводятся их виды, поэтому легко выбрать нужный. |
|
Enabled |
Если это свойство установлено в false, то компонент становится бледнее и по нему уже нельзя щелкнуть клавишей мыши (можно, но действие в обработчике щелчка не произойдет) или ввести/скопировать какие-либо данные. |
|
Hint |
Всплывающая подсказка, ShowHint должно быть установлено в true. |
|
Name |
Имя компонента, через которое вы будете обращаться в программе. Рекомендуется заменять на более осмысленное название, чтобы потом не возникало путаницы. |
|
ParentShowHint |
Наследования характеристик родителя, как правило формы, в данном случае, разрешение на отображение всплывающей подсказки. |
|
ReadOnly |
Только для чтения. Если установлено true, то вы не сможете изменять данные, но в отличие от Enabled можете выделить и скопировать данные. |
|
ShowHint |
Определяет показывать или не показывать всплывающую подсказку,true - показывать |
|
Visible |
Если установлено true, то компонент становится невидимым. |
2.2 Формы и основные модули текста программы
Программный проект курсовой работы состоит из трех форм (рисунок 2.1)
Рисунок 2.1 - Основная форма программы
В меню «Справка» можно получить информацию о программе и о авторе (рисунок 2.2)
Рисунок 2.2- меню «Справка»
При выборе пункта «О программе» откроется окно с информацией (рисунок 2.3)
Рисунок 2.3 - Форма «О программе»
Нажав на кнопку «Далее» можно ознакомиться с примерами (рисунок 2.4)
Рисунок 2.4 - Форма «О программе» , примеры
При выборе пункта «О авторе» откроется окно с информацией (рисунок 2.5)
Рисунок 2.5 - Форма «О авторе»
2.3 Результаты тестирования программного продукта
Для запуска приложения необходимо открыть файл GeometryTest.exe.
Откроется форма программы (рисунок 2.6)
Рисунок 2.6 - Основное окно программы
Для того, что бы приступить к задаче: нажмите «Файл» а затем «Начать» (рисунок 2.7)
Рисунок 2.7-меню пункт «Файл»
Затем в появившемся окне пользователь должен ввести своё имя и фамилию (рисунок 2.8)
Рисунок 2.8-Ввод данных
После ввода данных нужно нажать кнопку «Начать» затем откроется основная форма программы (рисунок 2.6).Далее, в появившейся форме предлагается тест (ответы на предложенные вопросы) и шесть задач (рисунок 2.9).В каждой задаче будет по три попытки найти ответ.
Рисунок 2.9- Решение тестовых вопросов
После того как решили тестовые вопросы нужно нажать на кнопку «Приступить к задаче». После нажатия программа предложит три числа a, b, c(стороны треугольника). Решив задачку по формуле Герона, вводим ответ и нажимаем на кнопку «Ответ». Если правильно, то выскачет сообщение «Правильно» (рисунок 3.1).
Рисунок 3.1- Результат нажатия на кнопку «Ответ»
И так последовательно нужно решить шесть задач. Если со второй попытки найти ответ не удалось, то тогда предлагается вычислить задачку по частям (рисунок3.2)
Рисунок 3.2- Вычисления площади треугольника по частям
Чтобы ознакомиться с результатами нажмите «Файл» а затем «Результаты». Затем в появившимся окне кнопку «Показать результаты»(рисунок 3.3).
Рисунок 3.3-ознокомления с результатами
Все набранные результаты сохраняется.
Закрытие программы осуществляется нажатием на кнопку "Закрыть", стандартно располагающуюся в верхнем правом углу программы.
2.4 Анализ результатов
Результаты тестирования программы показывают, что приложение работает корректно. Предусмотрено выполнение необходимых действий для реализации поставленной задачи. При запуске приложения все кнопки, вкладки, команды меню работают правильно.
диалоговый программа модуль c++
ЗАКЛЮЧЕНИЕ
Система C++Builder позволяет решать множество задач, в частности:
· Быстро создавать профессиональный оконный интерфейс для любых приложений.
· Создавать приложения для Windows самой различной направленности: от вычислительных и логических, до графических и мультимедиа.
C++Builder - это комбинация нескольких важнейших технологий:
· Высокопроизводительный компилятор в машинный код
· Объектно-ориентированная модель компонент
· Визуальное построение приложений из программных прототипов
Среда С++Builder предоставляет удобные средства для создания пользовательских компонент. Работа с созданными компонентами ничем не отличается от работы со стандартными, и они позволяют существенно расширить функциональность среды С++Builder.
В процессе выполнения курсового проекта были усвоены некоторые возможности С++Builder. Но даже этот небольшой объем материала позволил мне убедиться в колоссальности данной среды.
Для выполнения задания, необходимо было создать диалоговая приложение в среде С++Builder. В ходе работы были созданы формы, на которых размещены компоненты, которые необходимы для решения поставленной задачи. Во время разработки программы были углублены и закреплены знания по алгоритмизации и программированию. Также была изучена и проанализирована дополнительная литература, содержащая информацию о среде разработки С++Builder. Полученные в ходе работы над курсовым проектом навыки являются незаменимыми в дальнейшем при решении практических задач. Таким образом, поставленные цели были достигнуты, задачи работы были выполнены.
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
1. Компоненты C++ Builder// HighLevelLanguageC++ [Электронный ресурс]. - 2014. - Режим доступа: http://h-l-l.ru/publ/44-Дата доступа: 17.04.2014.
2. Компоненты C++ Builder - [Электронный ресурс]. - 2014. - Режим доступа: http://bigcamagan.ru/-Дата доступа: 21.04.2014.
3. Компоненты C++ Builder// Работа с объектами - [Электронный ресурс]-2014- Режим доступа: http://cubook.supernew.org/object.html -Дата доступа: 21.04.2014.
4. Основы программы на C++ Builder- [Электронный ресурс]-2014- Режим доступа: http://kufas.ru/programming118.htm
5. ИвановаГ. С. Объектно-ориентированное программирование Г. С. Иванова, Т.Н. Ничушкина, Е.К. Пугачев; под ред. Г.С. Иванова.-М.:Изд-во МГТУ им. Н.Э. Баумана, 2003,-368 с.
ПРИЛОЖЕНИЕ А
Форм1.Основнойформ
#include<vcl.h>
#pragmahdrstop
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
#include "Unit5.h"
#include <stdio.h>
#include <math.h>
#include <Math.hpp> //dlyarounto
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
//---------------------------------------------------------------------------
__fastcall TForm3::TForm3(TComponent* Owner)
: TForm(Owner)
{}
float a, b, c, p, x1, x2, x3, ap, X1, X2, X3;
int j=0, J=0, ball=0, L=0;//j-cislozadac... J-cislowwodimyhotwetow..
float s, S; // s-formula gerona
double B; int d=0; // B-dlyaokrugleniya
FILE *f; //file for save result
//---------------------------------------------------------------------------
void __fastcall TForm3::Button4Click(TObject *Sender)
{ // otkrywaetpolyadlyawwodaiwywodaiwywoditznaceniya
Edit2->Enabled=true;//wwodotweta
randomize();
a=rand ()% 90;
b=rand ()% 90;
c=rand ()% 90;
if ((a + b > c) || (b + c > a) || (a + c > b)) {
p=(a+b+c)/2;
x1=fabs(p*(p-a)); x2=fabs(p*(p-b)); x3=fabs(p*(p-c));
s=sqrt(x3); j++;
B= SimpleRoundTo(s, -2);//otwet 2 znakaposlezapyatyh s okrugleniem
S=B;
Edit1->Text=(" a="+ FloatToStr(a)+" b="+FloatToStr(b)+" c="+ FloatToStr(c));//wywodabcstorontriugolnika
Button4->Enabled=false;//open knopkupristup k zadace
Button1->Enabled=true;//otwet
J=0;}// obnulyayu 'J' ctob ne pereshel k drugimuslowiam a pereshel k drugoyzadace
GroupBox2->Hide();//hide group spodskazkoy
Label7->Caption=("Задача "+IntToStr(j) +"из 6");}// label
//---------------------------------------------------------------------------
void __fastcall TForm3::Button1Click(TObject *Sender)
{float u;
for (int o=1; o <= 3; o++) { //pozwolaetotwetitnawopros 3 popytkami
u=StrToFloat(Edit2->Text); J++; //otwetpolzawotelya J++ otwety(=6)
if (u==S) { //srawniwayuotwetpolzowatelya s prawilnymotwetom
ShowMessage("Правильно!");
Edit2->Text=""; //ocishayu pole otweta
Button1->Enabled=false;//knopkaotwet
Button4->Enabled=true; break;}
else if
(J==3) {
Edit2->Text="";
ShowMessage("Не Правильно!Правильный ответ " +FloatToStr(B)+" Переходите к другой задаче"); break;}
elseShowMessage("Не Правильно! Попробуйте еще раз. Попытка " +IntToStr(J)); break;}
if ((J==2) && (u!=S)) { //esli 2 razapopytka ne udacnaya to perehodet k podskazke
Edit2->Text="";
Button1->Enabled=false; //skruwayuknopku 'otwet'
Button8->Show(); // open but 'p'
Edit6->Enabled=true; //otkrytwwod p
GroupBox2->Show(); // otkrywayugruppu s podskazkoy
ShowMessage("Попробуйтьевычислить p=(a+b+c)/2");}
if ((J==3) && (j!=6)){//esliwwod 'otwet' skrywaetsya a wod 'pristupit k zadace' open
Button1->Enabled=false; Button4->Enabled=true;}
// - otsenka -
if ((J==1) && (u==S))
{ball+=10;}
else if ((J==2) && (u==S))
{ball+=5;}
else if ((J==3) && (u==S))
{ball+=2;}
if ( ((j==6) && (J==3)) || ((j==6) && (u==S)) )
//eslikolwwedenyhotwetow max i s 1 popytkiudacna to tozakrytgruppu s zadacami
//eslikolwwedenyhotwetow max i ne udaca 3 popytkami to zakrytgruppu s zadacami
{GroupBox4->Enabled=false;
//wystawlenieotsenki
f=fopen("C://test.txt", "a+");
fprintf( f, "Балл=");
fprintf(f, "%6d", ball);
fprintf( f, "\n//-------/------/------/------/------//\n");
fclose(f);}}
//eslikolwoprosow 6.ikolwwedennyhotwetow 3 to togdaskryt gbox6}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button7Click(TObject *Sender)
{int but1=0;//dlyaprowerkiwwodaknopkictobpereyti w sled
switch(RadioGroup1->ItemIndex) { //otwety yes no
case 0: but1++; break;
case 1: but1++; break;
case 2: but1++; ball+=5; break;
case 3: but1++; break;}
if (but1!=0){
Button7->Visible=false; // close but 1
Button6->Visible=true; // open but 2
Image3->Visible=true;
Image1->Visible=false;
}RadioGroup1->ItemIndex=-1;}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button6Click(TObject *Sender)
{int but2=0;//dlyaprowerkiwwodaknopkictobpereyti w sled
switch(RadioGroup1->ItemIndex) { //otwety yes no
case 0: but2++; ball+=5; break;
case 1: but2++; break;
case 2: but2++; break;
case 3: but2++; break;}
if (but2!=0){
Button6->Visible=false; // close but 1
Button5->Visible=true; // open but 2
Image4->Visible=true;
Image3->Visible=false;}
RadioGroup1->ItemIndex=-1;}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button5Click(TObject *Sender)
{int but3=0;//dlyaprowerkiwwodaknopkictobpereyti w sled
switch(RadioGroup1->ItemIndex) { //otwety yes no
case 0: but3++; break;
case 1: but3++; break;
case 2: but3++; break;
case 3: but3++; ball+=5; break;}
if (but3!=0){
Button5->Visible=false; // close but 1
Button2->Visible=true;
Image5->Visible=true;
Image4->Visible=false;}
RadioGroup1->ItemIndex=-1;}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button8Click(TObject *Sender)
{ap=StrToFloat(Edit6->Text);
Button1->Enabled=true;
if (ap==p) {
ShowMessage("Правильно! Теперь вычислите х1=р*(р -- а)"); // proweryaem p
Edit5->Enabled=true; // razreshemwwesti x1
Button3->Show(); //open but x1
Button8->Hide(); // close but p
Edit6->Enabled=false; }//zakrytwwod p
else {ShowMessage("НеПравильно!"); GroupBox2->Hide();}}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button3Click(TObject *Sender)
{X1=StrToFloat(Edit5->Text);
Button1->Enabled=true;
if (X1==x1) {
ShowMessage("Правильно! Теперь вычислите х2=р*(р -- b)"); //proweryaem x1
Edit4->Enabled=true; //razreshaemwwesti x2
Edit5->Enabled=false; //zakrytwwod x1
Button9->Show();} //open but x2
else {ShowMessage("НеПравильно!"); GroupBox2->Hide();}
Button3->Hide();}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button9Click(TObject *Sender)
{X2=StrToFloat(Edit4->Text);
Button1->Enabled=true;
if (X2==x2) {
ShowMessage("Правильно! Теперь вычислите х3=р*(р -- c)"); //proweryayu x2
Edit3->Enabled=true; // razreshaemwwesti x3
Edit4->Enabled=false; //zakrytwwod x2
Button10->Show(); }//open but x3
else {ShowMessage("НеПравильно!"); GroupBox2->Hide();}
Button9->Hide();}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button10Click(TObject *Sender)
{X3=StrToFloat(Edit3->Text);
Button1->Enabled=true;
if (X3==x3) {
ShowMessage("Правильно, теперь вычислите корень x3"); //proweryaem x3
Edit3->Enabled=false; } //zakrytwwod x3
else {ShowMessage ("НеПравильно!");
GroupBox2->Hide(); }
Button10->Hide();}
//---------------------------------------------------------------------------
void __fastcall TForm3::FormCreate(TObject *Sender)
{
ball=0;
if (L==0) { GroupBox2->Hide(); Button3->Hide(); Button9->Hide(); Button10->Hide();}
Timer2->Enabled=true; L++;
if (L==2) {
Label9->Hide();}
if (L==3) {
Label9->Show(); L=1;}}
//---------------------------------------------------------------------------
void __fastcall TForm3::N3Click(TObject *Sender)
{ Timer2->Enabled=false;
if (GroupBox5->Enabled==false ) {
Form3->Hide(); GroupBox5->Enabled=true;
Form2->ShowModal();
Image1->Visible=true; Label9->Caption="";
}}
//---------------------------------------------------------------------------
void __fastcall TForm3::N5Click(TObject *Sender)
{Close() ;}
//---------------------------------------------------------------------------
void __fastcall TForm3::N6Click(TObject *Sender)
{ Form1->ShowModal(); }
//---------------------------------------------------------------------------
void __fastcall TForm3::N7Click(TObject *Sender)
{Form4->ShowModal();}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button2Click(TObject *Sender)
{int but5=0;//dlyaprowerkiwwodaknopkictobpereyti w sled
switch(RadioGroup1->ItemIndex) { //otwety yes no
case 0: but5++; break;
case 1: but5++; break;
case 2: but5++; break;
case 3: but5++; ball+=5; break;}
if (but5!=0){
Button2->Visible=false;
Button11->Visible=true;
Image6->Visible=true;
Image5->Visible=false;}
RadioGroup1->ItemIndex=-1;}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button11Click(TObject *Sender)
{int but6=0;//dlyaprowerkiwwodaknopkictobpereyti w sled
switch(RadioGroup1->ItemIndex) { //otwety yes no
case 0: but6++; ball+=5; break;
case 1: but6++; break;
case 2: but6++; break;
case 3: but6++; break;}
if (but6!=0){
Button11->Visible=false;
Button12->Visible=true;
Image7->Visible=true;
Image6->Visible=false;}
RadioGroup1->ItemIndex=-1;}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button12Click(TObject *Sender)
{int but7=0;//dlyaprowerkiwwodaknopkictobpereyti w sled
switch(RadioGroup1->ItemIndex) { //otwety yes no
case 0: but7++; break;
case 1: but7++; break;
case 2: but7++; break;
case 3: but7++; ball+=5; break;}
if (but7!=0){
Button12->Visible=false;
Button13->Visible=true;
Image8->Visible=true;
Image7->Visible=false;}
RadioGroup1->ItemIndex=-1;}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button13Click(TObject *Sender)
{int but8=0;//dlyaprowerkiwwodaknopkictobpereyti w sled
switch(RadioGroup1->ItemIndex) { //otwety yes no
case 0: but8++; break;
case 1: but8++; break;
case 2: but8++; break;
case 3: but8++; ball+=5; break;}
if (but8!=0){
Button13->Visible=false;
Button14->Visible=true;
Image9->Visible=true;
Image8->Visible=false;}
RadioGroup1->ItemIndex=-1;}
//---------------------------------------------------------------------------
void __fastcall TForm3::Button14Click(TObject *Sender)
{int but4=0;//dlyaprowerkiwwodaknopkictobpereyti w sled
switch(RadioGroup1->ItemIndex) { //otwety yes no
case 0: but4++; break;
case 1: but4++; break;
case 2: but4++; break;
case 3: but4++; ball+=5; break;}
if (but4!=0){
Button14->Enabled=false;
GroupBox3->Hide();
}RadioGroup1->ItemIndex=-1;
GroupBox1->Visible=false;}
//---------------------------------------------------------------------------
void __fastcall TForm3::N4Click(TObject *Sender)
{ Form5->ShowModal(); }
//---------------------------------------------------------------------------
void __fastcall TForm3::Edit6Click(TObject *Sender)
{Edit6->Text=""; }
//---------------------------------------------------------------------------
void __fastcall TForm3::Edit5Click(TObject *Sender)
{Edit5->Text="";}
//---------------------------------------------------------------------------
void __fastcall TForm3::Edit4Click(TObject *Sender)
{Edit4->Text="";}
//---------------------------------------------------------------------------
void __fastcall TForm3::Edit3Click(TObject *Sender)
{Edit3->Text="";}
//---------------------------------------------------------------------------
void __fastcall TForm3::Label11Click(TObject *Sender)
{Label11->Caption=FloatToStr(B);}
void __fastcall TForm3::GroupBox5MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{Label11->Caption="розмет"; }
ПРИЛОЖЕНИЕ Б
Форм2.Сохранение данных
#include<vcl.h>
#pragma hdrstop
#include <fstream>
#include <stdio.h>
#include <io.h>
#include "Unit2.h"
#include "Unit3.h"
#include <windows.h>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
//---------------------------------------------------------------------------
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button1Click(TObject *Sender)
{
FILE *file;
char* file_name =("C://test.txt");
if (Edit1->Text=="" || Edit2->Text=="")
ShowMessage("Не все поля заполнены");
else {
file = fopen( file_name, "a+" );
fputs( "\n", file ); //
fputs( Edit1->Text.c_str(), file ); //imya
fputs( " ", file ); //new stroke
fputs( Edit2->Text.c_str(), file ); //familiya
fputs( "\n", file ); // newsrtoke
fclose( file );
Form2->Close();
Form3->Show();}}
//---------------------------------------------------------------------------
void __fastcall TForm2::Button2Click(TObject *Sender)
{Form2->Close();
Form3->Close();}
ПРИЛОЖЕНИЕ В
Форм3. Выводрезультатов
void __fastcall TForm5::Button1Click(TObject *Sender)
{Memo1->Lines->LoadFromFile("C://test.txt");}//wywodfayl w memo
Размещено на Allbest.ru
Подобные документы
Создание программы для мобильного устройства, для решения геометрических задач: нахождения площади треугольника по формуле Герона, площади прямоугольного треугольника и круга. Реализация программных модулей, интерфейс программы, руководство пользователя.
курсовая работа [314,9 K], добавлен 07.12.2014Составление алгоритма программы, позволяющей получить изображение флага Норвегии. Программирование вычислительного процесса линейной и разветвляющейся структур: вычисление площади треугольника по формуле Герона, табулирование функции, работа с массивами.
лабораторная работа [50,4 K], добавлен 28.12.2011Сущность основных понятий объектно-ориентированного программирования: объект, класс, полиморфизм. Блок-схема алгоритма и текст программы для вычисления площади круга, прямоугольника и трапеции. Принцип работы и результаты тестирования приложения.
курсовая работа [588,7 K], добавлен 17.07.2012Разработка прикладной программы для операций создания и уничтожения объектов в системе визуального объектно-ориентированного программирования C++Builder. Алгоритм работы программы, набор функций и операторов, компонент и модулей, кнопки событий.
дипломная работа [672,5 K], добавлен 16.08.2012Описания объектов, свойств, методов, формы и основных модулей текста программы в среде Delphi. Создание Windows-приложения на алгоритмическом языке Object Pascal в среде визуального программирования. Анализ результатов тестирования программного продукта.
курсовая работа [2,4 M], добавлен 27.08.2012Разработка программы на языке Visual++ с использованием библиотеки MF, которая рассчитывает по введенным значениям длин сторон треугольника прямоугольный он или нет, а также вычисляет его периметр, площадь, радиус описанной и вписанной окружностей.
курсовая работа [442,0 K], добавлен 18.06.2011Методика разработки и листинг программы для вычисления значений функции F(x) на отрезке [а, Ь] с заданным шагом. Вычисление значения выражения по формуле. Расчет параметров равностороннего треугольника. Порядок формирования квадратной матрицы порядка.
контрольная работа [425,1 K], добавлен 10.03.2014Составление алгоритма и разработка в среде программирования Delphi 7 программы, вычисляющей макроэкономические индексы цен. Реализация программы в виде 4 форм и 1 диалогового окна. Описание алгоритма решения задачи. Текст программы, руководство оператора.
курсовая работа [1,4 M], добавлен 04.06.2013Разработана программа решения двух задач на языке программирования Turbo Pascal. Спецификация задания. Описание входных и выходных данных. Математическая постановка задачи. Алгоритм ее решения. Описание и блок-схема программы. Результаты тестирования.
курсовая работа [275,8 K], добавлен 28.06.2008Изучение категории типов данных, видов выражений и операций, работа на языке Си. Составление программы вычисления значения функции у(х) при произвольном значении х. Блок-схема алгоритма. Описание текста программы и рассмотрение контрольного примера.
лабораторная работа [124,7 K], добавлен 09.01.2012