Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Калькулятор. Один ввод = одна клавиша. 
:(
    Опции темы
Manaarina
Дата 4.5.2011, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 4.5.2011

Репутация: нет
Всего: нет



Мне требуется реализовать калькулятор, консольное приложение, ну там обработать исключения и тп. и тд. вообщем обычный калькулятор с одним таким жирном "но", которое я уже пару вчеров пытаюсь осознать(далее идет моё кривое изложение блондинки того, что я услышала от препа):
Программа должна работать наподобие обычного клавишного калькулятора т.е.предлагается пользователю ввод и каждый вводимый символ это нажатие клавиши. Т.е. пользователь вводит число знак число и равно (например там 294,45+45,2=):
1) как распознавать, что после равно надо вызывать функцию, вычислять?
2)как "выдирать" нужную операцию(например по + сложение) и сами числа? smile 
3) как запретить ввод символов?

UPD. Вас возможно заинтересует почему такое название? отвечаю: так звучало само задание в списке заданий =\


Это сообщение отредактировал(а) Manaarina - 4.5.2011, 21:46
PM MAIL   Вверх
triclosan
Дата 4.5.2011, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: 2
Всего: 12



использовать небуфферизированный ввод, проверять не ввели ли символ "=", если ввели искать в строке матоператоры, парсить по ним и производить соответствующие операции с экстрагированными числами 
PM MAIL   Вверх
borisbn
Дата 4.5.2011, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



см. ф-цию getch
считываешь один символ
проверяешь его на валидность
  • если валидный - добавить в строку с первым числом и вывести на экран
  • если один из символов операции, то запомнить первое число (пока можно в виде строки)
  • если символ после операции валидный - добавить в строку со вторым числом и вывести на экран
  • если символ '=', то запомнить второе число, перевести строки с первым и со вторым числом в числа, сделать switch по операции, посчитать результат и вывести его на экран



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
triclosan
Дата 4.5.2011, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 515
Регистрация: 18.8.2006

Репутация: 2
Всего: 12



borisbn, getch непереносима. Вдруг у Manaarina *nix
PM MAIL   Вверх
borisbn
Дата 4.5.2011, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



triclosan, мдаааа. Посмотрел - гемора будет много, чтобы сделать небуферизированный ввод без подтверждения Enter'ом под иксами. Будем надеяться, что студентов ( школьников ? ) не мучают этой ОСью


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Manaarina
Дата 4.5.2011, 22:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 4.5.2011

Репутация: нет
Всего: нет



Спасибо, теперь хотя бы знаю как взяться =))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.