Harik
06-02-2012, 19:40
Всем доброго времени суток. Совсем недавно начал изучать С++ и вот решил попробовать написать первую программу. Пишу в Code::Blocks 10.05. Сопсно, код:
#include <iostream>
using namespace std;
char keymap [256];
int main()
{
int a=0,b=0,c=0,choice;
cout<<"The calculator"<<endl<<"version 1.0\n"<<endl;
do
{
cout<<"Enter number and press <enter> button: "<<endl;
cin>>a;
cout<<endl<<a<<endl;
cout<<"\nChoose operation: "<<endl<<"+"<<endl<<"-"<<endl<<"*"<<endl<<"/"<<endl<<"="<<endl<<"For exit press 'q' (quit)"<<endl;
cin>>choice;
switch (choice)
{
case '+':
cout<<a<<" + "<<endl<<endl;
cout<<"Enter number and press <enter> button: "<<endl;
cin>>b;
с=a+b;
cout<<endl<<a<<"+"<<b<<"="<<d<<endl;
break;
case '-':
cout<<a<<" - "<<endl<<endl;
cout<<"Enter number and press <enter> button: "<<endl;
cin>>b;
с=a-b;
cout<<endl<<a<<"-"<<b<<"="<<d<<endl;
break;
case '*':
cout<<a<<" * "<<endl<<endl;
cout<<"Enter number and press <enter> button: "<<endl;
cin>>b;
с=a*b;
cout<<endl<<a<<"*"<<b<<"="<<d<<endl;
break;
case '/':
if (a!=0)
{
cout<<a<<" / "<<endl<<endl;
cout<<"Enter number and press <enter> button: "<<endl;
cin>>b;
с=a/b;
cout<<endl<<a<<"/"<<b<<"="<<d<<endl;
}
else
{
cout<<"Zero can not be divided. Enter another number!!\n"<<endl;
}
break;
case '=':
cout<<a<<" = "<<a<<endl<<endl;
break;
}
}
while ('q');
}
Суть в следующем: изначально вводится число1, далее предлагается определить действие (прибавление, вычитание и т.д.). После выбора действия предлагается ввести число2, которое к числу1 будет прибавляться, вычитаться и т.д. соответственно. Результат операции записывается в переменную "с" и программа начинает цикл сначала, пока не будет выбран вариант "Выход".
Но вот какая беда - я не знаю, как заставить С понимать нажатие клавиш. При выборе любой из операций (+,-,*,/,q) программа зацикливается в этом месте до бесконечности...
cout<<"Enter number and press <enter> button: "<<endl;
cin>>a;
cout<<endl<<a<<endl;
cout<<"\nChoose operation: "<<endl<<"+"<<endl<<"-"<<endl<<"*"<<endl<<"/"<<endl<<"="<<endl<<"For exit press 'q' (quit)"<<endl;
cin>>choice;
...пока электричество не закончится.
Подскажите пожалуйста, как мне решить эту простенькую задачку??
#include <iostream>
using namespace std;
char keymap [256];
int main()
{
int a=0,b=0,c=0,choice;
cout<<"The calculator"<<endl<<"version 1.0\n"<<endl;
do
{
cout<<"Enter number and press <enter> button: "<<endl;
cin>>a;
cout<<endl<<a<<endl;
cout<<"\nChoose operation: "<<endl<<"+"<<endl<<"-"<<endl<<"*"<<endl<<"/"<<endl<<"="<<endl<<"For exit press 'q' (quit)"<<endl;
cin>>choice;
switch (choice)
{
case '+':
cout<<a<<" + "<<endl<<endl;
cout<<"Enter number and press <enter> button: "<<endl;
cin>>b;
с=a+b;
cout<<endl<<a<<"+"<<b<<"="<<d<<endl;
break;
case '-':
cout<<a<<" - "<<endl<<endl;
cout<<"Enter number and press <enter> button: "<<endl;
cin>>b;
с=a-b;
cout<<endl<<a<<"-"<<b<<"="<<d<<endl;
break;
case '*':
cout<<a<<" * "<<endl<<endl;
cout<<"Enter number and press <enter> button: "<<endl;
cin>>b;
с=a*b;
cout<<endl<<a<<"*"<<b<<"="<<d<<endl;
break;
case '/':
if (a!=0)
{
cout<<a<<" / "<<endl<<endl;
cout<<"Enter number and press <enter> button: "<<endl;
cin>>b;
с=a/b;
cout<<endl<<a<<"/"<<b<<"="<<d<<endl;
}
else
{
cout<<"Zero can not be divided. Enter another number!!\n"<<endl;
}
break;
case '=':
cout<<a<<" = "<<a<<endl<<endl;
break;
}
}
while ('q');
}
Суть в следующем: изначально вводится число1, далее предлагается определить действие (прибавление, вычитание и т.д.). После выбора действия предлагается ввести число2, которое к числу1 будет прибавляться, вычитаться и т.д. соответственно. Результат операции записывается в переменную "с" и программа начинает цикл сначала, пока не будет выбран вариант "Выход".
Но вот какая беда - я не знаю, как заставить С понимать нажатие клавиш. При выборе любой из операций (+,-,*,/,q) программа зацикливается в этом месте до бесконечности...
cout<<"Enter number and press <enter> button: "<<endl;
cin>>a;
cout<<endl<<a<<endl;
cout<<"\nChoose operation: "<<endl<<"+"<<endl<<"-"<<endl<<"*"<<endl<<"/"<<endl<<"="<<endl<<"For exit press 'q' (quit)"<<endl;
cin>>choice;
...пока электричество не закончится.
Подскажите пожалуйста, как мне решить эту простенькую задачку??