| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > калькулятор на C# |
| Автор: sugee 4.2.2006, 22:10 | ||
| Решил вот написать простенький калькулятор... Это моя первая программа на C#, поэтому возникают глупые вопросы. В настоящий момент у меня есть текстовое поле и четыре кнопки: "1","2","+","=". Достаточно для того чтобы реализовать операцию сложения. Есть обработчики для двух кнопок которые выводят нажатую цифирку в текстовое поле.
Вот теперь хотелось бы эти цифирки сложить. Для начала надо преобразовать текстовые значения textBox-ов в int, затем написать обработчики кнопок "+" и "=". С "равно" все понятно вроде, а вот как быть с плюсом? на ум приходят порядком подзабытые выражения типа "стек", но наверное на самом деле все не так мрачно. В общем вот такой вопрос - как сделать 1+2 |
| Автор: mr.DUDA 5.2.2006, 00:43 |
| Для операций с двумя операндами подойдёт и вариант попроще: есть текущее введённое число и предыдущее введённое. Пока не нажата кнопка операции либо "=", в текстбоксе редактируется "текущее". По нажатию на "+", текущее копируется в "предыдущее" и запоминается, что был нажат плюс. При последующем вводе цифры в текстбокс, всё его содержимое очищается и начинается ввод нового "текущего". Теперь если нажать на любую операцию "+", "-", "*", "/" или "=", то над "текущим" и "предыдущим" выполняется операция "плюс", и так далее как в китайском калькуляторе |
| Автор: sugee 5.2.2006, 00:57 |
| Ну, для начала как преобразовать string в int? |
| Автор: VisualProgrammerNET 5.2.2006, 03:12 |
| метод Parse (класс Int32). |
| Автор: sugee 5.2.2006, 12:15 |
| А как теперь наоборот int в string, чтобы вывести результат? |
| Автор: Hidrag 5.2.2006, 12:33 | ||
Вызвать метод ToString
|
| Автор: sugee 5.2.2006, 13:04 |
| Как не странно всё работает Дело в том, что это не только моя первая программа на C# но и вообще первая программа под Windows! |
| Автор: Дрон 5.2.2006, 15:11 | ||||
| sugee Есть универсальный класс Convert для преобразований одних типов в другой. Например если нужно преобразовать в строку, то делаем так:
А обратно:
и т.п. |
| Автор: sugee 5.2.2006, 18:37 |
| Спасибо сейчас попробую! |
| Автор: sugee 6.2.2006, 00:24 | ||
| Я рано радовался, получилось только с двумя слогаемыми. Добавил кнопку "3" и вот до сих пор мучаюсь. 1+2+3 на моем китайском калькуляторе получается 7. Я тут уже дошел до того что трассировочные таблицы рисую, по таблицам между прочим получается все правильно! Вот обработчики кнопок
При объявлении prev и tek(предыдущее и текущее) я обнуляю. Хотя это тоже я погорячился, еще ведь умножать и делить придется. PlusClick пока ничего не начали щелкать равно false. |
| Автор: mr.DUDA 6.2.2006, 01:12 | ||
| Вот типо калькулятор, но не китайский Реагирует на нажатие клавиш от 0 до 9 включительно, Enter (аналогично "=") и Escape (сброс). Поддерживает операции сложения, вычитания, умножения и деления:
З.Ы. как оно работает - лучше не спрашивайте, т.к. это было написано в 0 часов ночи после литра пива |
| Автор: VisualProgrammerNET 6.2.2006, 01:32 | ||||
Очень любопытно, зачем вот эта конструкция нужна?
Не проще ли было просто написать
? |
| Автор: VisualProgrammerNET 6.2.2006, 02:20 | ||
| Ну ты, Дуда, даёшь... Майн вариант:
До конца не тестил, но ошибок вроде нет - 2 ночи всётки. Плюс пересдача линала завтра... (С другими действиями ака вычитание и поддержкой клавы некогда было возиться) Экзешникъ: |
| Автор: sugee 6.2.2006, 15:16 |
| mr.DUDA,VisualProgrammerNET - спасибо за код, буду разбираться. |
| Автор: passenger 24.3.2006, 10:01 |
| А вот мой вариант Написал только что на паре по культурологии С классами. |
| Автор: Gesha 24.3.2006, 10:57 | ||
Мой вариант круче всех!
|
| Автор: mr.DUDA 24.3.2006, 11:15 |
| Gesha, низачОт |
| Автор: Nestap 16.12.2008, 20:32 |
| Рибята вот такои вапрос! ести стринг "25+545+457*25+52/2" в (плимер) как делать чтоб всео выпольнось по теорие матиматике? ну чтоб : 1 : 457*25 2: 52/2 .... плизз |
| Автор: Remember 16.12.2008, 22:08 |
| Советую делать с помощью рекурсивного спуска. Пример, реализации приведен в книге Герберта Шилдта "Полный справочник по C#" глава 26. Когда-то делал, пришлось достаточно повозиться.. |
| Автор: Nestap 16.12.2008, 22:18 |
| Remember а где взять книгу? скиниш на емаил? а нету токая функтия чтоб авто? а может ктота уже зделал? и проста поделется с нами! |
| Автор: Remember 17.12.2008, 16:08 | ||
Ну код наверно, есть в файлах к книге.. Герберт Шилдт с тобой и поделиться Поищи книгу.. кто ищет.. тот всегда найдет.. |
| Автор: taiven 17.12.2008, 16:15 | ||
http://trubetskoy1.narod.ru/ppn.html |
| Автор: mosya 26.1.2009, 14:28 |
| Вклинюсь в темку Вот вроде доделал свой калькулятор, но вот есть одно "но"...не работает "равно" по нажатию клавиши Enter... и то только в том случае когда активна форма... В общем вот... сам калькулятор: http://depositfiles.com/files/uv08itshq кому не лень можете посмотреть что не так?... И так как это мой первый опыт в C# рад буду слышать любые замечания или пожелания как можно было сделать лучше и проще Заранее спасибо! |