Понедельник, 23 Декабря 2024, 00:22

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
C# Калькулятор
trem200Дата: Четверг, 18 Июня 2015, 12:59 | Сообщение # 1
участник
Сейчас нет на сайте
Помогите, я в c# создал калькулятор. Уже все создано, но столкнулся с одной проблемой. Когда считаю числа, ну например 7+3=10, после обнуляю, и 10/2=0,833333... Ошибка где-то в обнулении, ну я ее найти не могу.

Помогите найти ошибку, а то я в C# новичок.

Сам код
Код
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Калькулятор
{
     public partial class Form1 : Form
     {
         bool plus = false;
         bool minus = false;
         bool ymnogit = false;
         bool delenie = false;

         public Form1()
         {
             InitializeComponent();
         }

          private void button1_Click(object sender, EventArgs e)
         {
             textBox1.Text = textBox1.Text + "7";
         }

          private void button2_Click(object sender, EventArgs e)
          {
              textBox1.Text = textBox1.Text + "8";
          }

          private void button3_Click(object sender, EventArgs e)
          {
              textBox1.Text = textBox1.Text + "9";
          }

          private void button5_Click(object sender, EventArgs e)
          {
              textBox1.Text = textBox1.Text + "4";
          }

          private void button6_Click(object sender, EventArgs e)
          {
              textBox1.Text = textBox1.Text + "5";
          }

          private void button7_Click(object sender, EventArgs e)
          {
              textBox1.Text = textBox1.Text + "6";
          }

          private void button9_Click(object sender, EventArgs e)
          {
              textBox1.Text = textBox1.Text + "1";
          }

          private void button10_Click(object sender, EventArgs e)
          {
              textBox1.Text = textBox1.Text + "2";
          }

          private void button11_Click(object sender, EventArgs e)
          {
              textBox1.Text = textBox1.Text + "3";
          }

          private void button13_Click(object sender, EventArgs e)
          {
              textBox1.Text = textBox1.Text + "0";
          }

          private void button14_Click(object sender, EventArgs e)
          {
              textBox1.Text = textBox1.Text + "00";
          }

          private void button15_Click(object sender, EventArgs e)
          {
              textBox1.Text = textBox1.Text + ",";
          }

          private void button21_Click(object sender, EventArgs e)
          {
              textBox1.Text = "";
              textBox1.Tag = "";
          }

          private void button19_Click(object sender, EventArgs e)
          {
              double x;
              x = Convert.ToDouble(textBox1.Text) * Convert.ToDouble(textBox1.Text);
              textBox1.Text = Convert.ToString(x);
          }

          private void button20_Click(object sender, EventArgs e)
          {
              double k;
              k = Convert.ToDouble(textBox1.Text);
              textBox1.Text = Convert.ToString(Math.Sqrt(k));
          }

          private void button16_Click(object sender, EventArgs e)
          {
              plus = true;
              textBox1.Tag = textBox1.Text;
              textBox1.Text = "";  
          }

          private void button12_Click(object sender, EventArgs e)
          {
              minus = true;
              textBox1.Tag = textBox1.Text;
              textBox1.Text = "";  
          }

          private void button18_Click(object sender, EventArgs e)
          {
              ymnogit = true;
              textBox1.Tag = textBox1.Text;
              textBox1.Text = "";  
          }

          private void button8_Click(object sender, EventArgs e)
          {
              delenie = true;
              textBox1.Tag = textBox1.Text;
              textBox1.Text = "";  
          }

          private void button17_Click(object sender, EventArgs e)
          {
              if (plus)
              {
                  decimal del = Convert.ToDecimal(textBox1.Tag) + Convert.ToDecimal(textBox1.Text);
                  textBox1.Text = del.ToString();
              }
              if (minus)
              {
                  decimal del = Convert.ToDecimal(textBox1.Tag) - Convert.ToDecimal(textBox1.Text);
                  textBox1.Text = del.ToString();
              }
              if (ymnogit)
              {
                  decimal del = Convert.ToDecimal(textBox1.Tag) * Convert.ToDecimal(textBox1.Text);
                  textBox1.Text = del.ToString();
              }
              if (delenie)
              {
                  decimal del = Convert.ToDecimal(textBox1.Tag) / Convert.ToDecimal(textBox1.Text);
                  textBox1.Text = del.ToString();
              }
          }
     }
}


Сообщение отредактировал trem200 - Четверг, 18 Июня 2015, 13:16
harmoxyneДата: Четверг, 18 Июня 2015, 13:32 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
Код
private void button16_Click(object sender, EventArgs e)
           {
               plus = true;
               textBox1.Tag = textBox1.Text;
               textBox1.Text = "";   
           }

Тут, как бы, помимо того, что plus = true, нужно дабы [minus, ymnogit, delenie] = false. И так везде в остальных местах.
trem200Дата: Четверг, 18 Июня 2015, 14:06 | Сообщение # 3
участник
Сейчас нет на сайте
harmoxyne,
Спасибо большое за помощь, не могли бы Вы подсказать, как в этом коде прописать кнопку по переводу валют.
harmoxyneДата: Четверг, 18 Июня 2015, 14:14 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Цитата trem200 ()
как в этом коде прописать кнопку по переводу валют.

А остальные кнопки как прописывал? biggrin
Пишешь функцию перевода валют, по событию Click для нужной тебе кнопки вызываешь функцию, делов-то biggrin
GudleifrДата: Четверг, 18 Июня 2015, 16:16 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
trem200, научитесь правильно ставить вопросы:
1. "Где я ошибся?" Вопрос не имеет отношения ни к языку программирования, ни к ОС, только к задаче, как таковой. "Что я хочу получить, нажав на кнопку, независимо от того, на чем и где я ее рисую и отслеживаю?"
2. "Как прописать кнопку?" Вопрос не имеет отношения ни к языку, ни к решению задачи. Только к ОС. "Как здесь, вообще, рисуют кнопки? Кто отслеживает их? Как спереть и прицепить подходящую библиотеку?"

Подходящие шаблоны решения:
"калькулятор с наворотами" есть в D.F.Scott "Разработка прикладных систем на Visual Basic for Windows" (решение и ОС, язык, понятно, не тот),
"красивый и быстрый перевод чисел" Джеф Раскин "Интерфейс: новые направления в проектировании компьютерных систем" (только решение, без языка и ОС).
методы "переопределения кнопок калькулятора" (для крутых МастДайщиков) есть во втором томе Гладкова и Фролова "Программирование в Microsoft Windows" и в ISZELION'S WIN32 ASM TUTORIAL.

Добавлено (18 июня 2015, 16:16)
---------------------------------------------
P.S. Нудизм от того, что "просто решая задачи" программистом не станете, нужно понимать, нафига вас ими мучают, к чему хотят подвести.


Быдлокодеры любят повторять: "логика, убивающая мозг",- когда их пытаются заставить программировать.

Сообщение отредактировал Gudleifr - Четверг, 18 Июня 2015, 16:16
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг