forked from sachin-nono/codingpractice
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBasicCalculator.cpp
More file actions
93 lines (82 loc) · 1.79 KB
/
BasicCalculator.cpp
File metadata and controls
93 lines (82 loc) · 1.79 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/*
WAP a program to create a basic calculator
*/
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
char ch,ex;
float x,y;
int a,b;
nb: cout<<"Following are the operators : "<<endl; //nb is goto label.
cout<<"1. +\n"
<<"2. -\n"
<<"3. *\n"
<<"4. /\n"
<<"5. %\n"
<<"Enter your choice:";
cin>>ch;
switch(ch)
{
case '1':{
cout<<endl<<"Enter two operands :";
cout<<endl;
cin>>x>>y;
cout<<x<<" + "<<y<<" = "<<x+y;
cout<<endl;
}
break;
case '2':{
cout<<endl<<"Enter two operands :";
cout<<endl;
cin>>x>>y;
cout<<x<<" - "<<y<<" = "<<x-y;
cout<<endl;
}
break;
case '3':{
cout<<endl<<"Enter two operands :";
cout<<endl;
cin>>x>>y;
cout<<x<<" * "<<y<<" = "<<x*y;
cout<<endl;
}
break;
case '4':{
cout<<endl<<"Enter two operands and second operand must not be '0' :";
cout<<endl;
cin>>x>>y;
lb: if(y==0) //lb is a goto label. Second no should not be zero
{
cout<<endl<<"second number should not be zero!!!\nEnter again : ";
cin>>y;
goto lb;
}
cout<<x<<" / "<<y<<" = "<<x/y;
cout<<endl;
}
break;
case '5':{
cout<<endl<<"Enter two operands and second operand must not be '0' :";
cout<<endl;
cin>>a>>b;
mb: if(b==0) //mb is a goto label. Second no should not be zero
{
cout<<endl<<"second number should not be zero!!!\nEnter again : ";
cin>>b;
goto mb;
}
cout<<a<<" % "<<b<<" = "<<a%b;
cout<<endl;
}
break;
default:cout<<endl<<"Enter above operators only!!!\n\n";
cout<<endl<<"If you want to Exit, type Y or y:";
cin>>ex;
if(ex=='Y'||ex=='y') //if entered choice is 'y' or 'Y', control will be passed to label nb
exit(9);
goto nb;
}
return 0;
}