-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.rs
233 lines (200 loc) · 7.79 KB
/
main.rs
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
use std::io;
use std::thread;
use std::time::Duration;
fn main() {
// GREETING HANDLER
println!("Welcome to the rust calculator! (Made by Hasan M. Hasan </3)");
thread::sleep(Duration::from_secs(2));
// INPUT HANDLER
println!("Enter an operation (+, -, *, /):");
thread::sleep(Duration::from_secs(2));
let mut operation = String::new();
io::stdin()
.read_line(&mut operation)
.expect("Failed to read line");
let operation = operation.trim();
// CALCULATION PROCEDURER & ERROR HANDLER (this is just bloatware at this point lol)
if operation == "+" {
println!("You have chosen addition!");
thread::sleep(Duration::from_secs(1));
println!("The addition module will load!");
thread::sleep(Duration::from_secs(1));
println!(".");
thread::sleep(Duration::from_secs(1));
println!("..");
thread::sleep(Duration::from_secs(1));
println!("...");
thread::sleep(Duration::from_secs(1));
addition();
} else if operation == "-" {
println!("You have chosen subtraction!");
thread::sleep(Duration::from_secs(1));
println!("The subtraction module will load!");
thread::sleep(Duration::from_secs(1));
println!(".");
thread::sleep(Duration::from_secs(1));
println!("..");
thread::sleep(Duration::from_secs(1));
println!("...");
thread::sleep(Duration::from_secs(1));
subtraction();
} else if operation == "*" {
println!("You have chosen multipication!");
thread::sleep(Duration::from_secs(1));
println!("The multipication module will load!");
thread::sleep(Duration::from_secs(1));
println!(".");
thread::sleep(Duration::from_secs(1));
println!("..");
thread::sleep(Duration::from_secs(1));
println!("...");
thread::sleep(Duration::from_secs(1));
multipication();
} else if operation == "/" {
println!("You have chosen division!");
thread::sleep(Duration::from_secs(1));
println!("The division module will load!");
thread::sleep(Duration::from_secs(1));
println!(".");
thread::sleep(Duration::from_secs(1));
println!("..");
thread::sleep(Duration::from_secs(1));
println!("...");
thread::sleep(Duration::from_secs(1));
division();
} else {
println!("Unknown input, please input a valid operation.");
thread::sleep(Duration::from_secs(1));
println!("The program will start again!");
thread::sleep(Duration::from_secs(1));
main();
}
}
// OPERATOR FUNCTIONS
fn addition(){
println!("Please input the first number.");
// INPUT HANDLER FOR INTEGER 1
let mut ad_input_1 = String::new();
io::stdin().read_line(&mut ad_input_1).expect("Failed to read input.");
// STRING TO INTEGER CONVERTER
let ad_input_1: f64 = ad_input_1.trim().parse().expect("Failed to read number.");
thread::sleep(Duration::from_secs(1));
println!("Great! Now input the second number.");
// INPUT HANDLER FOR INTEGER 2
let mut ad_input_2 = String::new();
io::stdin().read_line(&mut ad_input_2).expect("Failed to read input.");
// STRING TO INTEGER CONVERTER
let ad_input_2: f64 = ad_input_2.trim().parse().expect("Failed to read number.");
thread::sleep(Duration::from_secs(1));
println!(".");
thread::sleep(Duration::from_secs(1));
println!("..");
thread::sleep(Duration::from_secs(1));
println!("...");
thread::sleep(Duration::from_secs(1));
// ADDITION PROCESSOR
let ad_total = ad_input_1 + ad_input_2;
println!("The addition result is {}!", ad_total);
thread::sleep(Duration::from_secs(1));
rerun();
}
fn subtraction(){
println!("Please input the first number.");
// INPUT HANDLER FOR INTEGER 1
let mut sub_input_1 = String::new();
io::stdin().read_line(&mut sub_input_1).expect("Failed to read input.");
// STRING TO INTEGER CONVERTER
let sub_input_1: f64 = sub_input_1.trim().parse().expect("Failed to read number.");
thread::sleep(Duration::from_secs(1));
println!("Great! Now input the second number.");
// INPUT HANDLER FOR INTEGER 2
let mut sub_input_2 = String::new();
io::stdin().read_line(&mut sub_input_2).expect("Failed to read input.");
// STRING TO INTEGER CONVERTER
let sub_input_2: f64 = sub_input_2.trim().parse().expect("Failed to read number.");
thread::sleep(Duration::from_secs(1));
println!(".");
thread::sleep(Duration::from_secs(1));
println!("..");
thread::sleep(Duration::from_secs(1));
println!("...");
thread::sleep(Duration::from_secs(1));
// SUBTRACTION PROCESSOR
let sub_total = sub_input_1 - sub_input_2;
println!("The subtraction result is {}!", sub_total);
thread::sleep(Duration::from_secs(1));
rerun();
}
fn multipication(){
println!("Please input the first number.");
// INPUT HANDLER FOR INTEGER 1
let mut mul_input_1 = String::new();
io::stdin().read_line(&mut mul_input_1).expect("Failed to read input.");
// STRING TO INTEGER CONVERTER
let mul_input_1: f64 = mul_input_1.trim().parse().expect("Failed to read number.");
thread::sleep(Duration::from_secs(1));
println!("Great! Now input the second number.");
// INPUT HANDLER FOR INTEGER 2
let mut mul_input_2 = String::new();
io::stdin().read_line(&mut mul_input_2).expect("Failed to read input.");
// STRING TO INTEGER CONVERTER
let mul_input_2: f64 = mul_input_2.trim().parse().expect("Failed to read number.");
thread::sleep(Duration::from_secs(1));
println!(".");
thread::sleep(Duration::from_secs(1));
println!("..");
thread::sleep(Duration::from_secs(1));
println!("...");
thread::sleep(Duration::from_secs(1));
// MULTIPICATION PROCESSOR
let mul_total = mul_input_1 * mul_input_2;
println!("The multipication result is {}!", mul_total);
thread::sleep(Duration::from_secs(1));
rerun();
}
fn division(){
println!("Please input the first number.");
// INPUT HANDLER FOR INTEGER 1
let mut div_input_1 = String::new();
io::stdin().read_line(&mut div_input_1).expect("Failed to read input.");
// STRING TO INTEGER CONVERTER
let div_input_1: f64 = div_input_1.trim().parse().expect("Failed to read number.");
thread::sleep(Duration::from_secs(1));
println!("Great! Now input the second number.");
// INPUT HANDLER FOR INTEGER 2
let mut div_input_2 = String::new();
io::stdin().read_line(&mut div_input_2).expect("Failed to read input.");
// STRING TO INTEGER CONVERTER
let div_input_2: f64 = div_input_2.trim().parse().expect("Failed to read number.");
thread::sleep(Duration::from_secs(1));
println!(".");
thread::sleep(Duration::from_secs(1));
println!("..");
thread::sleep(Duration::from_secs(1));
println!("...");
thread::sleep(Duration::from_secs(1));
// DIVISION PROCESSOR
let div_total = div_input_1 / div_input_2;
println!("The multipication result is {}!", div_total);
thread::sleep(Duration::from_secs(1));
rerun();
}
fn rerun(){
println!("Would you like to run this program again? (y/n)");
// INPUT HANDLER
let mut choice = String::new();
io::stdin().read_line(&mut choice).expect("Failed to read line.");
let choice = choice.trim().to_lowercase();
if choice == "y" {
main();
thread::sleep(Duration::from_secs(1));
} else if choice == "n" {
println!("Exitting...");
thread::sleep(Duration::from_secs(1));
std::process::exit(0);
} else {
println!("Please either enter (y) or (n)...");
thread::sleep(Duration::from_secs(1));
rerun();
}
}