Главная » Статьи » Программирование » С/C++

C/C++ Урок 4 - Создаем простой калькулятор

Все привет.  В этой статье мы создадим калькулятор в среде Borland C++ Builder. Откроем ее и сделаем форму как у меня:

Обозначение компонентов:

Edit1 - Число 1
Edit2 - Число 2
Edit3 - Ответ
Button (1-4) - + - / соответственно

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

 void __fastcall TForm1::FormCreate(TObject *Sender)
{

}


TForm1 - указывает на имя компонента

FormCreate - указывает в случае чего код  между фигурных скобок выполнится. В данном случае код выполнится в момент создания формы. Напишем в нем следующую команду:

Form1->BorderStyle=bsToolWindow;


В результыте ее выполнения стиль формы будет следующим:

Теперь ее нельзя растянуть.

Идем дальше, код для кнопки +:

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (Edit1->Text=="" && Edit2->Text=="") //Проверяем введены ли числа
{
ShowMessage ("Числа не введены!"); // Если нет ты выводим сообщение
}
else //Если введены то
{
float a; // Переменная для числа a
float b; // Переменная для числа b
float result; // Переменная для результата
a=StrToFloat (Edit1->Text); // Берем из первого эдита строку и переводим ее в число
b=StrToFloat (Edit2->Text); // Берем из первого эдита строку и переводим ее в число
result=a+b; // Складываем два числа и помещаем в переменную для результата
Edit3->Text=FloatToStr (result); // Выводим значение переменной результат
}
}


Теперь разберем код.

1. Мы проверяем ввел ли числа пользователь, для этого используем оператор && (логическое И)

вот его схема:

правда && правда = правда

   ложь && правда = ложь

  ложь &&  ложь = ложь

 Помимо  && в C++ есть следующие операторы:

|| - логическое ИЛИ

!= - логическо НЕ (не равно)

== - равно (не путайте с оператором присваивания =, оператор равно мы используем когда хотим что-то сравнить, а оператор = мы используем когда хотим присовить чему-то значение). Для проверки условия используется конструкция IF. Вот ее вид:

if (условие)

{

действия если правда;

}

else

{

действия если ложь;

}

тоесть строчку  if (Edit1->Text=="" && Edit2->Text=="") можно дословно перевести так:

Если текст в эдите 1 РАВЕН пустоте И текст в эдите 2 РАВЕН пустоте,то выводим сообщение.

Команда ShowMessage выводит простое виндосовское сообщение с заданным текстом. Ее вид: ShowMessage (текст сообщения). Все на вводимость проверили, теперь надо написать код для сложения. Т.е если пользователь ввел числа, то надо их сложить. Т.е условие   (Edit1->Text=="" && Edit2->Text=="") поэтому код пишем во второй чатси if - else. Объявляем  три переменные типа float (тип для дробных чисел).

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

Далее записываем в  переменные числа, поскольку числа в эдитах имеют тип string - строка,  нам надо перевести их в тип Float. Для этого есть функция StrToFloat. ЕЕ вид: StrToFLoat (строка которую надо перевести в число);

Переводим и записываем значения  в переменные:

a=StrToFloat (Edit1->Text);
b=StrToFloat (Edit2->Text);


Записали! Теперь сложим их:

result=a+b;
Сложили и записали результат в переменную result. Теперь надо вывести результат в эдит 3, но число в переменной result имеет тип float, а свойтво эдита - Text может принять параметром только строку. Как же нам перевести число в строку? Для этого есть функция FloatToStr. ЕЕ вид:

   FloatToStr (число типа float)

 Переводим и записываем в эдит 3:

Edit3->Text=FloatToStr (result);


Теперь осталось только написать код для кнопок *,\,-. Они аналогичны коду кнопки +.

 

Код для кнопки / :

void __fastcall TForm1::Button4Click(TObject *Sender)
{
if (Edit1->Text=="" && Edit2->Text=="") //Проверяем введены ли числа
{
ShowMessage ("Числа не введены!"); // Если нет ты выводим сообщение
}
else //Если введены то
{
float a; // Переменная для числа a
float b; // Переменная для числа b
float result; // Переменная для результата
a=StrToFloat (Edit1->Text); // Берем из первого эдита строку и переводим ее в число
b=StrToFloat (Edit2->Text); // Берем из первого эдита строку и переводим ее в число
result=a/b; // делим и помещаем в переменную для результата
Edit3->Text=FloatToStr (result); // Выводим значение переменной результат
}
}


Код для кнопки *:

 if (Edit1->Text=="" && Edit2->Text=="") //Проверяем введены ли числа
{
ShowMessage ("Числа не введены!"); // Если нет ты выводим сообщение
}
else //Если введены то
{
float a; // Переменная для числа a
float b; // Переменная для числа b
float result; // Переменная для результата
a=StrToFloat (Edit1->Text); // Берем из первого эдита строку и переводим ее в число
b=StrToFloat (Edit2->Text); // Берем из первого эдита строку и переводим ее в число
result=a*b; // умножаем и помещаем в переменную для результата
Edit3->Text=FloatToStr (result); // Выводим значение переменной результат
}
Код для кнопки -:

 void __fastcall TForm1::Button2Click(TObject *Sender)
{
if (Edit1->Text=="" && Edit2->Text=="") //Проверяем введены ли числа
{
ShowMessage ("Числа не введены!"); // Если нет ты выводим сообщение
}
else //Если введены то
{
float a; // Переменная для числа a
float b; // Переменная для числа b
float result; // Переменная для результата
a=StrToFloat (Edit1->Text); // Берем из первого эдита строку и переводим ее в число
b=StrToFloat (Edit2->Text); // Берем из первого эдита строку и переводим ее в число
result=a-b; // вычитаем и помещаем в переменную для результата
Edit3->Text=FloatToStr (result); // Выводим значение переменной результат
}
}


Все! Калькулятор готов! Запускаем, вводим любые числа и выбираем любое действие.

Кстати я содал форум своей команды. Он доступен по адресу xorez.16mb.com/forum и еще в воскресенье пройдет первый урок по C++. Подробнее на сайте xorez.16mb.com

Категория: С/C++ | Добавил: ZH_Sasha (27.05.2015)
Просмотров: 2485 | Рейтинг: 0.0/0
Всего комментариев: 0
Name *:
Email:
Code *: