Воскресенье, 24.11.2024, 17:38
Приветствую Вас Гость | RSS
Главная | Создаем простой калькулятор | Регистрация | Вход
Языки Программирования (adsbygoogle = window.adsbygoogle || []).push({});
Форма входа
Меню сайта

Календарь
«  Ноябрь 2024  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
252627282930

Наш опрос
Оцените мой сайт
Всего ответов: 101

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    reklama

    Создаем простой калькулятор

     
     

    Все привет.  В этой статье мы создадим калькулятор в среде 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


    Урок 5 - Шаблоны функций 


    Copyright MyCorp © 2024
    Бесплатный хостинг uCoz