Coorect the Following C++ code: #include #include #include #include #include using namespace std; // Function to print available currencies for exchange void printCurrencies() { cout << "Available currencies for exchange: " << endl; cout << "SAR --> Saudi Arabia Riyal" << endl; cout << "KWD --> Kuwaiti Dinar" << endl; cout << "QAR --> Qatar Riyal" << endl; cout << "AED --> United Arab Emirates Dirham" << endl; cout << "BHD --> Bahraini Dinar" << endl; cout << "OMR --> Omani Rial" << endl; } // Function to convert currency double convertCurrency(string fromCurrency, string toCurrency, double amount) { ifstream exchangeRateFile("ExchangeRate.txt"); // Open file for reading string line; double desiredRate=0; while (getline(exchangeRateFile, line)) { // Read file line by line int i=0; string from, rate, to; while (line[i] != ' ') { i++; } i++; while (line[i] != ' ') { from += line[i]; i++; } i++; while (line[i] != ' ') { rate += line[i]; i++; } i++; while (i < line.length()) { to += line[i]; i++; } if(from==fromCurrency && to.substr(0,to.length()-1)==toCurrency){ desiredRate=stod(rate); break; } } exchangeRateFile.close(); // Close file return amount * desiredRate; // Return converted amount } string toupper(string currency){ string s=""; for (char c : currency) { s += toupper(c); } return s; } int main() { printCurrencies(); // Print available currencies string fromCurrency, toCurrency; double amount; cout << "Enter the currency you want to convert from: "; cin >>fromCurrency; fromCurrency = toupper(fromCurrency); while(fromCurrency != "SAR" && fromCurrency != "KWD" && fromCurrency != "QAR" && fromCurrency != "AED" && fromCurrency != "BHD" && fromCurrency != "OMR"){ cout << "Invalid input, Please Enter again: "; cin >>fromCurrency; fromCurrency = toupper(fromCurrency); } cout<< "Enter the currency you want to convert to: "; cin >>toCurrency; toCurrency = toupper(toCurrency); while(toCurrency != "SAR" && toCurrency != "KWD" && toCurrency != "QAR" && toCurrency != "AED" && toCurrency != "BHD" && toCurrency != "OMR"){ cout<< "Invalid input, Please Enter again: "; cin >>toCurrency; toCurrency = toupper(toCurrency); } cout<<"Enter the amount you want to convert: "; cin >> amount; cout << amount << " " << fromCurrency << " = " << convertCurrency(fromCurrency, toCurrency, amount) << " " << toCurrency << endl; return 0; } to get the below result: Sample run1: The currencies we have exchange for are: SAR--> Saudi Arabia Riyal KWD --> Kuwaiti Dinar QAR --> Qatar Riyal AED--> United Arab Emirates Dirham BHD --> Bahraini Dinar OMR --> Omani Rial What is the currency you have? SaR What is the currency you want to exchange it for? aed How much money you want to exchange? 707 707 SAR is 692.86 AED Sample run2: The currencies we have exchange for are: SAR --> Saudi Arabia Riyal KWD --> Kuwaiti Dinar QAR --> Qatar Riyal AED --> United Arab Emirates Dirham BHD --> Bahraini Dinar OMR--> Omani Rial What is the currency you have? Kuwaiti Incorrect abbreviation please provide it again Sad Incorrect abbreviation please provide it again SAR What is the currency you want to exchange it for? BHR Incorrect abbreviation please provide it again BHD How much money you want to exchange? 50 50 SAR is 5 BHD Please note that the . “ExchangeRate.txt” file contain: 1.00 SAR 0.08 KWD 1.00 SAR 0.97 QAR 1.00 SAR 0.98 AED 1.00 SAR 0.10 BHD 1.00 SAR 0.10 OMR 1.00 QAR 0.08 KWD 1.00 QAR 1.01 AED 1.00 QAR 0.10 BHD 1.00 QAR 0.11 OMR 1.00 KWD 12.00 AED 1.00 KWD 1.23 BHD 1.00 KWD 1.26 OMR 1.00 AED 0.10 BHD 1.00 AED 0.10 OMR 1.00 BHD 1.02 OMR
#include <bits/stdc++.h>
#include <iostream>
#include <fstream>
#include <string>
#include <cctype>
using namespace std;
// Function to print available currencies for exchange
void printCurrencies() {
cout << "Available currencies for exchange: " << endl;
cout << "SAR --> Saudi Arabia Riyal" << endl;
cout << "KWD --> Kuwaiti Dinar" << endl;
cout << "QAR --> Qatar Riyal" << endl;
cout << "AED --> United Arab Emirates Dirham" << endl;
cout << "BHD --> Bahraini Dinar" << endl;
cout << "OMR --> Omani Rial" << endl;
}
// Function to convert currency
double convertCurrency(string fromCurrency, string toCurrency, double amount) {
ifstream exchangeRateFile("ExchangeRate.txt"); // Open file for reading
string line;
double desiredRate=0;
while (getline(exchangeRateFile, line)) { // Read file line by line
int i=0;
string from, rate, to;
while (line[i] != ' ') {
i++;
}
i++;
while (line[i] != ' ') {
from += line[i];
i++;
}
i++;
while (line[i] != ' ') {
rate += line[i];
i++;
}
i++;
while (i < line.length()) {
to += line[i];
i++;
}
if(from==fromCurrency && to.substr(0,to.length()-1)==toCurrency){
desiredRate=stod(rate);
break;
}
}
exchangeRateFile.close(); // Close file
return amount * desiredRate; // Return converted amount
}
string toupper(string currency){
string s="";
for (char c : currency) {
s += toupper(c);
}
return s;
}
int main() {
printCurrencies(); // Print available currencies
string fromCurrency, toCurrency;
double amount;
cout << "Enter the currency you want to convert from: ";
cin >>fromCurrency;
fromCurrency = toupper(fromCurrency);
while(fromCurrency != "SAR" && fromCurrency != "KWD" && fromCurrency != "QAR" && fromCurrency != "AED" && fromCurrency != "BHD" && fromCurrency != "OMR"){
cout << "Invalid input, Please Enter again: ";
cin >>fromCurrency;
fromCurrency = toupper(fromCurrency);
}
cout<< "Enter the currency you want to convert to: ";
cin >>toCurrency;
toCurrency = toupper(toCurrency);
while(toCurrency != "SAR" && toCurrency != "KWD" && toCurrency != "QAR" && toCurrency != "AED" && toCurrency != "BHD" && toCurrency != "OMR"){
cout<< "Invalid input, Please Enter again: ";
cin >>toCurrency;
toCurrency = toupper(toCurrency);
}
cout<<"Enter the amount you want to convert: ";
cin >> amount;
cout << amount << " " << fromCurrency << " = " << convertCurrency(fromCurrency, toCurrency, amount) << " " << toCurrency << endl;
return 0;
}
to get the below result:
Sample run1:
The currencies we have exchange for are:
SAR--> Saudi Arabia Riyal
KWD --> Kuwaiti Dinar
QAR --> Qatar Riyal
AED--> United Arab Emirates Dirham
BHD --> Bahraini Dinar
OMR --> Omani Rial
What is the currency you have? SaR
What is the currency you want to exchange it for?
aed
How much money you want to exchange?
707
707 SAR is 692.86 AED
Sample run2:
The currencies we have exchange for are:
SAR --> Saudi Arabia Riyal
KWD --> Kuwaiti Dinar
QAR --> Qatar Riyal
AED --> United Arab Emirates Dirham
BHD --> Bahraini Dinar
OMR--> Omani Rial
What is the currency you have? Kuwaiti
Incorrect abbreviation please provide it again
Sad
Incorrect abbreviation please provide it again
SAR
What is the currency you want to exchange it for?
BHR
Incorrect abbreviation please provide it again
BHD
How much money you want to exchange?
50
50 SAR is 5 BHD
Please note that the .
- “ExchangeRate.txt” file contain:
1.00 SAR 0.08 KWD
1.00 SAR 0.97 QAR
1.00 SAR 0.98 AED
1.00 SAR 0.10 BHD
1.00 SAR 0.10 OMR
1.00 QAR 0.08 KWD
1.00 QAR 1.01 AED
1.00 QAR 0.10 BHD
1.00 QAR 0.11 OMR
1.00 KWD 12.00 AED
1.00 KWD 1.23 BHD
1.00 KWD 1.26 OMR
1.00 AED 0.10 BHD
1.00 AED 0.10 OMR
1.00 BHD 1.02 OMR
Step by step
Solved in 4 steps with 3 images