All pastes #2092065 Raw Edit

Anonymous

public text v1 · immutable
#2092065 ·published 2011-10-21 01:46 UTC
rendered paste body
/*
Lab Assignment #1
Due: October 27, 2011

Messri, Pedram
StudentID: 88-159-5802
CS575 - Introduction to C++
*/

#include <iostream>
#include <iomanip>
#include <climits>
using namespace std;

#define GBP_USD 1.56366			// British Pound
#define CAD_USD 0.972763		// Canadian Dollar
#define DKK_USD 0.182804		// Danish Krone
#define EUR_USD 1.3607			// Euro
#define SEK_USD 0.149196		// Swedish Krona
#define CHF_USD 1.09911			// Swiss Franc

int main(int argc, char *argv[])
{
	bool repeat = true;
	int selected_currency;
	double amount_to_convert = 0.0;
	double converted_to_usd = 0.0;
	double total_usd = 0.0;

	cout << endl;
	cout << "Currency Converter Program By Pedram Messri" << endl;
	cout << "Enter the currency to convert:" << endl;
	cout << "1     British Pound" << endl;
	cout << "2     Canadian Dollar" << endl;
	cout << "3     Danish Krone" << endl;
	cout << "4     Euro" << endl;
	cout << "5     Swedish Krona" << endl;
	cout << "6     Swedish Franc" << endl;
	cout << "-999  Terminate Program" << endl;
	cout << endl;

	while(repeat)
	{
		converted_to_usd = 0.0;

		cout << "Currency Selection: ";
		cin >> selected_currency;
		cin.ignore(numeric_limits<streamsize>::max(),'\n');

		if(cin)
		{
			if(selected_currency == -999)
			{
				repeat = false;
			}
			else if(selected_currency >= 1 && selected_currency <= 6)
			{
				cout << "How much do you have? ";
				cin >> amount_to_convert;
				cin.ignore(numeric_limits<streamsize>::max(),'\n');

				if(cin)
				{
					switch(selected_currency)
					{
						case 1: //GBP_USD
							converted_to_usd = amount_to_convert * GBP_USD;
							total_usd += converted_to_usd;
							break;
						case 2: //CAD_USD
							converted_to_usd = amount_to_convert * CAD_USD;
							total_usd += converted_to_usd;
							break;
						case 3: //DKK_USD
							converted_to_usd = amount_to_convert * DKK_USD;
							total_usd += converted_to_usd;
							break;
						case 4: //EUR_USD
							converted_to_usd = amount_to_convert * EUR_USD;
							total_usd += converted_to_usd;
							break;
						case 5: //SEK_USD
							converted_to_usd = amount_to_convert * SEK_USD;
							total_usd += converted_to_usd;
							break;
						case 6: //CHF_USD
							converted_to_usd = amount_to_convert * CHF_USD;
							total_usd += converted_to_usd;
							break;
						default:
							cout << "This is an invalid selection, please try again." << endl;
							cout << "Valid selections are between 1 through 6, or -999 to terminate." << endl;
							break;
					}

					cout << "That is $" << setprecision(3) << converted_to_usd << endl;
				}
				else
				{
					cin.clear();
					cin.ignore(numeric_limits<streamsize>::max(),'\n');
					cout << "That is an invalid decimal amount, please try again." << endl;
				}
			}
		}
		else
		{
			cin.clear();
			cin.ignore(numeric_limits<streamsize>::max(),'\n');
			cout << "That is an invalid selection, please try again." << endl;
			cout << "Please only select between 1 through 6, or -999 to terminate." << endl;
		}
	}

	cout << "Your total in US Dollars is $" << setprecision(3) << total_usd << endl;

	return 0;
}