/
Truth_Table.cpp
249 lines (246 loc) · 6.38 KB
/
Truth_Table.cpp
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
//Author : Daniyal Shahzad
//Date: Feburary 8, 2022
//Description:
//This code will ask the user for the input of choixe table and will keep running until four entries are made. so that the
//gets the exact table he/she wants then as if the user want to continue or not. and same process will repeat until the user exits.
//Known issues: infite loop while a character is entered. Working on the issue and I will update the code in my repository if some is interested so they can look up to it.
//This will be the first program in C++. in my github repository if plagiarism is detecected it will be my repository.
//Github: https://www.github.com/Daniyal48/
#include <iostream>
#include <time.h>
using namespace std;
void and_table()
{
int a,b;
cout<<"Please enter a number either 0 or 1 for value of \"A\":"<<endl;
cin>> a;
if (a==0)
{
cout<<"Please enter a number either 0 or 1 for value of \"B\":"<<endl;
cin>>b;
if (b==0)
{
cout<<"The value of "<<a<<" OR "<<b<< " is 0"<<endl;
}
else if (b==1)
{
cout<<"The value of "<<a<<" OR "<<b<< " is 0"<<endl;
}
else if (b != 0 || b != 1)
{
cout<<"Invalid input"<<endl;
}
}
else if (a==1)
{
cout<<"Please enter a number either 0 or 1 for value of \"B\":"<<endl;
cin>>b;
if (b==0)
{
cout<<"The value of "<<a<<" OR "<<b<< " is 0"<<endl;
}
else if (b==1)
{
cout<<"The value of "<<a<<" OR "<<b<< " is 1"<<endl;
}
else if (b != 0 || b != 1)
{
cout<<"Invalid input"<<endl;
}
}
else if (a != 0 || a != 1)
{
cout<<"Invalid input"<<endl;
}
}
void OR_table()
{
int a,b;
cout<<"Please enter a number either 0 or 1 for value of \"A\":"<<endl;
cin>> a;
if (a==0)
{
cout<<"Please enter a number either 0 or 1 for value of \"B\":"<<endl;
cin>>b;
if (b==0)
{
cout<<"The value of "<<a<<" OR "<<b<< " is 0"<<endl;
}
else if (b==1)
{
cout<<"The value of "<<a<<" OR "<<b<< " is 1"<<endl;
}
else if (b != 0 || b != 1)
{
cout<<"Invalid input"<<endl;
}
}
else if (a==1)
{
cout<<"Please enter a number either 0 or 1 for value of \"B\":"<<endl;
cin>>b;
if (b==0)
{
cout<<"The value of "<<a<<" OR "<<b<< " is 1"<<endl;
}
else if (b==1)
{
cout<<"The value of "<<a<<" OR "<<b<< " is 1"<<endl;
}
else if (b != 0 || b != 1)
{
cout<<"Invalid input"<<endl;
}
}
else if (a != 0 || a != 1)
{
cout<<"Invalid input"<<endl;
}
}
void XOR_table()
{
int a,b;
cout<<"Please enter a number either 0 or 1 for value of \"A\":"<<endl;
cin>> a;
if (a==0)
{
cout<<"Please enter a number either 0 or 1 for value of \"B\":"<<endl;
cin>>b;
if (b==0)
{
cout<<"The value of "<<a<<" XOR "<<b<< " is 0"<<endl;
}
else if (b==1)
{
cout<<"The value of "<<a<<" XOR "<<b<< " is 1"<<endl;
}
else if (b != 0 || b != 1)
{
cout<<"Invalid input"<<endl;
}
}
else if (a==1)
{
cout<<"Please enter a number either 0 or 1 for value of \"B\":"<<endl;
cin>>b;
if (b==0)
{
cout<<"The value of "<<a<<" XOR "<<b<< " is 1"<<endl;
}
else if (b==1)
{
cout<<"The value of "<<a<<" XOR "<<b<< " is 0"<<endl;
}
else if (b != 0 || b != 1)
{
cout<<"Invalid input"<<endl;
}
}
else if (a != 0 || a != 1)
{
cout<<"Invalid input"<<endl;
}
}
void NAND_table()
{
int a,b;
cout<<"Please enter a number either 0 or 1 for value of \"A\":"<<endl;
cin>> a;
if (a==0)
{
cout<<"Please enter a number either 0 or 1 for value of \"B\":"<<endl;
cin>>b;
if (b==0)
{
cout<<"The value of "<<a<<" NAND "<<b<< " is 1"<<endl;
}
else if (b==1)
{
cout<<"The value of "<<a<<" NAND "<<b<< " is 1"<<endl;
}
else if (b != 0 || b != 1)
{
cout<<"Invalid input"<<endl;
}
}
else if (a==1)
{
cout<<"Please enter a number either 0 or 1 for value of \"B\":"<<endl;
cin>>b;
if (b==0)
{
cout<<"The value of "<<a<<" NAND "<<b<< " is 1"<<endl;
}
else if (b==1)
{
cout<<"The value of "<<a<<" NAND "<<b<< " is 0"<<endl;
}
else if (b != 0 || b != 1)
{
cout<<"Invalid input"<<endl;
}
}
else if (a != 0 || a != 1)
{
cout<<"Invalid input"<<endl;
}
}
int main()
{
clock_t start, end;
double cpu_time_used;
start = clock();
while (true)
{
cout<<"Please enter your choice for the truth table \"AND\" , \"OR\" , \"NAND\" or \"XOR\" "<<endl;
string choice;
cin>>choice;
if (choice == "And" || choice =="and" || choice == "AND")
{
for (int i=0; i<4; i++)
{
and_table();
}
}
else if (choice == "Or" || choice =="or" || choice == "OR")
{
for (int i=0; i<=4; i++)
{
OR_table();
}
}
else if (choice == "Xor" || choice =="xor" || choice == "XOR")
{
for (int i=0; i<=4; i++)
{
XOR_table();
}
}
else if (choice == "Nand" || choice =="nand" || choice == "NAND")
{
for (int i=0; i<=4; i++)
{
NAND_table();
}
}
else if (choice == "Exit" || choice =="exit" || choice == "EXIT")
{
break;
}
else
{
cout<<"Invalid input"<<endl;
}
cout<<"Do you want to continue? (y/n)"<<endl;
string cont;
cin>>cont;
if (cont == "n" || cont == "N")
{
break;
}
}
end = clock();
cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
cout<<"Time taken: "<<cpu_time_used<<" seconds"<<endl;
return 0;
}