Krok 1 - založení aplikace

Vytvořte nový projekt typu Windows Forms Application a pojmenujte ho Kalkulacka.

Krok 2 - uživatelské rozhraní aplikace

Vytvořte grafické uživatelské prostředí obsahující textové pole a tlačítka. Inspirujte se kalkulačkou ve Windows. Použijte pro tlačítka ovládací prvky Button a pro  display ovládací prvek TextBox. Tento texbox pojmenujte display (vlastnost Name tlačítka). Vlastnost TextAlign displaye nastavte na hodnotu Right.
 

Krok 3 - deklarace proměnných

Nadeklarujte potřebné proměnné.Proměnné budou atributy třídy, nebudou deklarovány uvnitř žádné metody jako lokální proměnné metody, protože je chceme využít v různých metodách . Jejich inicializaci (počáteční přiřazení) můžeme provést například v konstruktoru formuláře.

public ref class Form1 : public System::Windows::Forms::Form
{
private:
  double operand1;
  double operand2;
  char znamenko;
  bool novy;
public:
  Form1(void)
  {
    InitializeComponent();
    operand1 = 0; //reálné číslo 1. operand
    operand2 = 0; //reálné číslo 2. operand
    znamenko = '?';//znak operátoru - nějaký znak mimo +-*/=
    novy = true;
  }

...další kód

Krok 4 - zadávání čísel na display

Naprogramujte metodu CisliceKlik, která umožní zadávat číslice na display. Tuto metodu přidejte všem tlačítkům s číslicí (tlačítka 0 až 9).

private: System::Void CisliceKlik(System::Object^ sender, System::EventArgs^ e)
{
    System::Windows::Forms::Button^ tlacitko
       = (System::Windows::Forms::Button^)sender;
    if (!novy) //!novy provede totéž jako novy==false
       display->Text += tlacitko->Text;
    else
    {
       novy = false;
       display->Text = tlacitko->Text;
    }
}

Krok 5 - aritmetické operace

Naprogramujte metodu OperaceKlik, která bude obsahovat výpočet. Tuto metodu přidejte pěti tlačítkům ( + - * / = )

private: System::Void OperaceKlik(System::Object^ sender, System::EventArgs^ e)
{
   System::Windows::Forms::Button^ tlacitko
       =(System::Windows::Forms::Button^)sender;
   operand2 = double::Parse(display->Text);
   novy = true;
   switch (znamenko)
   {
      case '+': operand2 = operand1 + operand2; break;
      case '-': operand2 = operand1 - operand2; break;
      case '*': operand2 = operand1 * operand2; break;
      case '/': operand2 = operand1 / operand2; break;
   }
   operand1 = operand2;
   display->Text = operand2.ToString();
   znamenko = tlacitko->Text[0];
}

Samostatná práce

  • Desetinná čárka
    tomuto tlačítku přidejte metodu CisliceKlik. Při stisku na tuto klávesu je třeba tlačítko znepřístupnit a naopak při zadávání nového čísla povolit
    (vlastnost tlačítka Enabled)
  • Tlačítka +/-, sqrt, 1/x
    obsah displaye uložte do pomocné proměnné, proveďte příslušnou operaci a výpočtenou hodnotu vložte na display
    odmocninu můžete vypočítat pomocí funkce Pow nebo Sqrt
    Math::Pow(hodnota,0.5);
    Math::Sqrt(hodnota)
  • Tlačítka pro práci s pamětí: MS M+ MR MC
  • Tlačítka Zpět CE C