so I only had in the nights to work on this , so sorry it took so long.
Let me know if you figure out how to stream the live conversion rates from the web, or if anyone else does...
oh if I could only stream it to a text file, this prog would be awesome LOL
so her's the source
- Code: Select all
#include "stdafx.h"
#include <iostream>
using namespace std;
#include "string"
#include <windows.h>
/*
windows.h
- I needed the COORD class which is found in this header
- I needed the Sleep(int); function which is defined in this header
lol dont forget that capital S on Sleep, sheesh
the int is a number of milliseconds; so Sleep(1000); pauses the console for 1 second
- I needed the function:
SetConsoleCursorPosition ( GetStdHandle ( STD_OUTPUT_HANDLE ), coord );
which is defined in this header
*/
void gotoxy ( short x, short y )
{
COORD coord = {x, y};
SetConsoleCursorPosition ( GetStdHandle ( STD_OUTPUT_HANDLE ), coord );
}
//This func allows you to spicify the cursor's position
// check http://cpptutorials.freeforums.org/select-character-insertion-point-t213.html for the details
// about the gotoxy(); function
void TypeWriter(int WhatText, int Speed); //Speed = # of miliseconds to pause before cout the next letter.
//so the lower the speed the faster it prints LOL.
void ClearScreen();
void Menu();
//#############################################################################################################
//#############################################################################################################
int IntVal=0; //Gotta love those global variables XD
int LoopState=0;
double BaseVal=0;
double NewVal= 0;
string Replay = "Y";
string BaseCurr="n/a";
string NewCurr ="n/a";
void main() // Sorry RTFM!! BUT VOID MAIN is just TOO COOL not to use!! XD
{
//Note that each call to the typewriter function could have been replaced with a simple cout<<"etc";
//But I chose to make it fancy so here goes
TypeWriter(1,70); //Title
TypeWriter(2,50); //Version
ClearScreen();
gotoxy(11,9);
cout << "The values used in this program were taken from www.xe.com";
gotoxy(19,10);
cout << "and are dated for June 28, 2009 at 11:30pm";
Sleep(4000);
gotoxy(0,23);
system("pause");
ClearScreen();
Sleep(400);
while(Replay == "y" || Replay == "Y" || Replay == "Yes" || Replay == "yes" || Replay == "YES")
{
IntVal=0;
LoopState=0;
BaseVal=0;
NewVal= 0;
BaseCurr="n/a";
NewCurr ="n/a";
while(LoopState==0)//Get Base amount
{
ClearScreen();
Menu();
TypeWriter(3,40); //Enter base val
cin >> BaseVal;
IntVal = BaseVal*1000;
if(IntVal%10 == 0 && BaseVal>=0)
{LoopState=1;}
else
{
ClearScreen();
Menu();
gotoxy(1,8);
cout<<"ERROR: -Must be positive WHOLE NUMBER or to no more";
gotoxy(9,9);
cout<<"than TWO decimal places!!";
gotoxy(8,11);
cout<<"-Entering letters will result in UB errors!!";
gotoxy(10,23);
system("pause");
}
}//while(0)
//---------------------
while(LoopState==1)//Select Currency of Base amount
{
ClearScreen();
Menu();
gotoxy(1,18);
cout<<BaseVal; //print previous LoopState
TypeWriter(4,40); //Enter BaseCurr
cin >> BaseCurr;
if(BaseCurr == "EUR" || BaseCurr == "eur" || BaseCurr == "Eur")
{if(BaseVal==1)BaseCurr=" Euro";if(BaseVal!=1)BaseCurr=" Euros";LoopState=2;}
if(BaseCurr == "USD" || BaseCurr == "usd" || BaseCurr == "Usd")
{if(BaseVal==1)BaseCurr=" U.S Dollar";if(BaseVal!=1)BaseCurr=" U.S Dollars";LoopState=2;}
if(BaseCurr == "JPY" || BaseCurr == "jpy" || BaseCurr == "Jpy")
{if(BaseVal==1)BaseCurr=" Japanese Yen";if(BaseVal!=1)BaseCurr=" Japanese Yen";LoopState=2;}
if(BaseCurr == "GBP" || BaseCurr == "gbp" || BaseCurr == "Gbp")
{if(BaseVal==1)BaseCurr=" British Pound";if(BaseVal!=1)BaseCurr=" British Pounds";LoopState=2;}
if(BaseCurr == "CAD" || BaseCurr == "cad" || BaseCurr == "Cad")
{if(BaseVal==1)BaseCurr=" Canadian Dollar";if(BaseVal!=1)BaseCurr=" Canadian Dollars";LoopState=2;}
if(LoopState == 1)
{
ClearScreen();
Menu();
gotoxy(1,8);
cout<<"ERROR: -MUST be a VALID 3-LETTER symbol!!";
gotoxy(12,9);
cout<<"Please refer to the LEGEND!";
gotoxy(10,23);
system("pause");
}
}//while(1)
//---------------------
while(LoopState==2)//Get TargetCurrency
{
ClearScreen();
Menu();
gotoxy(1,18);
cout<<BaseVal;
cout<<BaseCurr; //print previous LoopState
TypeWriter(5,35); //Enter NewCurr
cin>>NewCurr;
if(BaseCurr == " Euro" || BaseCurr == " Euros")
{
if(NewCurr=="USD" || NewCurr=="usd" || NewCurr=="Usd")
{NewVal=BaseVal*1.40;LoopState=3;}
if(NewCurr=="JPY" || NewCurr=="jpy" || NewCurr=="Jpy")
{NewVal=BaseVal*133.76;LoopState=3;}
if(NewCurr == "GBP" || NewCurr == "gbp" || NewCurr == "Gbp")
{NewVal=BaseVal*0.85;LoopState=3;}
if(NewCurr == "CAD" || NewCurr == "cad" || NewCurr == "Cad")
{NewVal=BaseVal*1.62;LoopState=3;}
}
if(BaseCurr == " U.S Dollar" || BaseCurr == " U.S Dollars")
{
if(NewCurr=="EUR" || NewCurr=="eur" || NewCurr=="Eur")
{NewVal=BaseVal*0.71;LoopState=3;}
if(NewCurr=="JPY" || NewCurr=="jpy" || NewCurr=="Jpy")
{NewVal=BaseVal*95.38;LoopState=3;}
if(NewCurr == "GBP" || NewCurr == "gbp" || NewCurr == "Gbp")
{NewVal=BaseVal*0.61;LoopState=3;}
if(NewCurr == "CAD" || NewCurr == "cad" || NewCurr == "Cad")
{NewVal=BaseVal*1.16;LoopState=3;}
}
if(BaseCurr == " Japanese Yen")
{
if(NewCurr=="EUR" || NewCurr=="eur" || NewCurr=="Eur")
{NewVal=BaseVal*0.007475;LoopState=3;}
if(NewCurr=="USD" || NewCurr=="usd" || NewCurr=="Usd")
{NewVal=BaseVal*0.01048;LoopState=3;}
if(NewCurr == "GBP" || NewCurr == "gbp" || NewCurr == "Gbp")
{NewVal=BaseVal*0.006359;LoopState=3;}
if(NewCurr == "CAD" || NewCurr == "cad" || NewCurr == "Cad")
{NewVal=BaseVal*0.012114;LoopState=3;}
}
if(BaseCurr == " British Pound" || BaseCurr == " British Pounds")
{
if(NewCurr=="EUR" || NewCurr=="eur" || NewCurr=="Eur")
{NewVal=BaseVal*1.18;LoopState=3;}
if(NewCurr=="JPY" || NewCurr=="jpy" || NewCurr=="Jpy")
{NewVal=BaseVal*157.22;LoopState=3;}
if(NewCurr == "USD" || NewCurr == "usd" || NewCurr == "Usd")
{NewVal=BaseVal*1.65;LoopState=3;}
if(NewCurr == "CAD" || NewCurr == "cad" || NewCurr == "Cad")
{NewVal=BaseVal*1.91;LoopState=3;}
}
if(BaseCurr == " Canadian Dollar" || BaseCurr == " Canadian Dollars")
{
if(NewCurr=="EUR" || NewCurr=="eur" || NewCurr=="Eur")
{NewVal=BaseVal*0.62;LoopState=3;}
if(NewCurr=="JPY" || NewCurr=="jpy" || NewCurr=="Jpy")
{NewVal=BaseVal*82.54;LoopState=3;}
if(NewCurr == "USD" || NewCurr == "usd" || NewCurr == "Usd")
{NewVal=BaseVal*0.86;LoopState=3;}
if(NewCurr == "GBP" || NewCurr == "gbp" || NewCurr == "Gbp")
{NewVal=BaseVal*0.52;LoopState=3;}
}
if(LoopState == 2)
{
ClearScreen();
Menu();
gotoxy(1,8);
cout<<"ERROR: -MUST be a VALID 3-LETTER symbol!!";
gotoxy(12,9);
cout<<"Please refer to the LEGEND!";
gotoxy(10,23);
system("pause");
}
}//while(2)
//---------------------
while(LoopState==3)//Print Result
{
if(NewCurr == "EUR" || NewCurr == "eur" || NewCurr == "Eur")
{if(NewVal==1)NewCurr=" Euro";if(NewVal!=1)NewCurr=" Euros";LoopState=2;}
if(NewCurr == "USD" || NewCurr == "usd" || NewCurr == "Usd")
{if(NewVal==1)NewCurr=" U.S Dollar";if(NewVal!=1)NewCurr=" U.S Dollars";LoopState=2;}
if(NewCurr == "JPY" || NewCurr == "jpy" || NewCurr == "Jpy")
{if(NewVal==1)NewCurr=" Japanese Yen";if(NewVal!=1)NewCurr=" Japanese Yen";LoopState=2;}
if(NewCurr == "GBP" || NewCurr == "gbp" || NewCurr == "Gbp")
{if(NewVal==1)NewCurr=" British Pound";if(NewVal!=1)NewCurr=" British Pounds";LoopState=2;}
if(NewCurr == "CAD" || NewCurr == "cad" || NewCurr == "Cad")
{if(NewVal==1)NewCurr=" Canadian Dollar";if(NewVal!=1)NewCurr=" Canadian Dollars";LoopState=2;}
ClearScreen();
Menu();
gotoxy(1,18);
cout<<BaseVal;
cout<<BaseCurr; //print previous LoopState
cout<<" is ";
cout << NewVal;
cout << NewCurr;
gotoxy(1,23);
cout << "Would you like to do another conversion?:";
cin>> Replay;
if(Replay!="n"&&Replay!="N"&&Replay!="No"&&Replay!="no"&&Replay!="NO"&&Replay!="y"&&Replay!="Y"&&Replay!="Yes"&&Replay!="yes"&&Replay!="YES")
{
ClearScreen();
Menu();
gotoxy(1,9);
cout<<"ERROR: Please enter YES or NO!";
gotoxy(10,23);
system("pause");
}
if(Replay=="n" || Replay=="N" || Replay=="No" || Replay=="no" || Replay=="NO")
{LoopState=4;}
if(Replay=="y" || Replay=="Y" || Replay=="Yes" || Replay=="yes" || Replay=="YES")
{LoopState=0;}
}//while(3)
}//while(Replay)
}//MAIN();
void TypeWriter(int WhatText, int Speed)
{
if(WhatText==1)
{
gotoxy(21,7);
Sleep(Speed);cout<<"W";
Sleep(Speed);cout<<"e";
Sleep(Speed);cout<<"l";
Sleep(Speed);cout<<"c";
Sleep(Speed);cout<<"o";
Sleep(Speed);cout<<"m";
Sleep(Speed);cout<<"e";
Sleep(Speed);cout<<" ";
//to reduce the number of lines in this sourcecode(ease of scrolling) I'll put more than letter per line:
Sleep(Speed);cout<<"T";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"C";
Sleep(Speed);cout<<"U";Sleep(Speed);cout<<"R";Sleep(Speed);cout<<"R";Sleep(Speed);cout<<"E";
Sleep(Speed);cout<<"N";Sleep(Speed);cout<<"C";Sleep(Speed);cout<<"Y";Sleep(Speed);cout<<" ";
Sleep(Speed);cout<<"C";Sleep(Speed);cout<<"O";Sleep(Speed);cout<<"N";Sleep(Speed);cout<<"V";
Sleep(Speed);cout<<"E";Sleep(Speed);cout<<"R";Sleep(Speed);cout<<"T";Sleep(Speed);cout<<"E";
Sleep(Speed);cout<<"R";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"V";
Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"r";Sleep(Speed);cout<<"s";Sleep(Speed);cout<<"i";
Sleep(Speed);cout<<"o";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<" ";
Sleep(Speed);cout<<"0";Sleep(Speed);cout<<".";Sleep(Speed);cout<<"2";
Sleep(Speed+100);
}
if(WhatText==2) //XD
{
gotoxy(32,9);
Sleep(Speed);cout<<"g";Sleep(Speed);cout<<"l";Sleep(Speed);cout<<"i";Sleep(Speed);cout<<"n";
Sleep(Speed);cout<<"k";Sleep(Speed);cout<<"a";Sleep(Speed);cout<<"5";Sleep(Speed);cout<<"7";
Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"d";Sleep(Speed);cout<<"i";
Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"i";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<"n";
Sleep(Speed+2000);
}
if(WhatText==3) //Enter BaseVal
{
gotoxy(1,9);
Sleep(Speed);cout<<"E";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"e";
Sleep(Speed);cout<<"r";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"h";
Sleep(Speed);cout<<"e";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"A";Sleep(Speed);cout<<"M";
Sleep(Speed);cout<<"O";Sleep(Speed);cout<<"U";Sleep(Speed);cout<<"N";Sleep(Speed);cout<<"T";
Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<"f";Sleep(Speed);cout<<" ";
Sleep(Speed);cout<<"c";Sleep(Speed);cout<<"u";Sleep(Speed);cout<<"r";Sleep(Speed);cout<<"r";
Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"c";Sleep(Speed);cout<<"y";
Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<" ";
Sleep(Speed);cout<<"c";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"v";
Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"r";Sleep(Speed);cout<<"t:";
}
if(WhatText==4) //Enter BaseCurr
{
gotoxy(1,9);
Sleep(Speed);cout<<"E";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"e";
Sleep(Speed);cout<<"r";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"h";
Sleep(Speed);cout<<"e";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"3";Sleep(Speed);cout<<"-";
Sleep(Speed);cout<<"l";Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"t";
Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"r";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"s";
Sleep(Speed);cout<<"y";Sleep(Speed);cout<<"m";Sleep(Speed);cout<<"b";Sleep(Speed);cout<<"o";
Sleep(Speed);cout<<"l";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<"f";
Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"h";Sleep(Speed);cout<<"e";
Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"i";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"i";
Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"i";Sleep(Speed);cout<<"a";Sleep(Speed);cout<<"l";
Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"c";Sleep(Speed);cout<<"u";Sleep(Speed);cout<<"r";
Sleep(Speed);cout<<"r";Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"c";
Sleep(Speed);cout<<"y: ";
}
if(WhatText==5) //Enter NewCurr
{
gotoxy(1,9);
Sleep(Speed);cout<<"C";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"v";
Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"r";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<" ";
Sleep(Speed+200);cout<<BaseVal;Sleep(Speed+200);cout<<BaseCurr;
Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<" ";
Sleep(Speed);cout<<"w";Sleep(Speed);cout<<"h";Sleep(Speed);cout<<"a";Sleep(Speed);cout<<"t";
Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"c";Sleep(Speed);cout<<"u";Sleep(Speed);cout<<"r";
Sleep(Speed);cout<<"r";Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"c";
Sleep(Speed);cout<<"y";Sleep(Speed);cout<<"?";
gotoxy(1,10);
Sleep(Speed);cout<<"E";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"e";
Sleep(Speed);cout<<"r";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"h";
Sleep(Speed);cout<<"e";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"3";Sleep(Speed);cout<<"-";
Sleep(Speed);cout<<"l";Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"t";
Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"r";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"s";
Sleep(Speed);cout<<"y";Sleep(Speed);cout<<"m";Sleep(Speed);cout<<"b";Sleep(Speed);cout<<"o";
Sleep(Speed);cout<<"l";Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"o";Sleep(Speed);cout<<"f";
Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<"h";Sleep(Speed);cout<<"e";
Sleep(Speed);cout<<" ";Sleep(Speed);cout<<"T";Sleep(Speed);cout<<"a";Sleep(Speed);cout<<"r";
Sleep(Speed);cout<<"g";Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"t";Sleep(Speed);cout<<" ";
Sleep(Speed);cout<<"C";Sleep(Speed);cout<<"u";Sleep(Speed);cout<<"r";Sleep(Speed);cout<<"r";
Sleep(Speed);cout<<"e";Sleep(Speed);cout<<"n";Sleep(Speed);cout<<"c";Sleep(Speed);cout<<"y: ";
}
}//TypeWriter();
void ClearScreen()
{
gotoxy(0,0);
for(int x=0; x<1999; x++) // each line on the console screen is 80 characters wide and by default there are 24 lines
{cout<<" ";}
}//ClearScreen()
void Menu()
{
gotoxy(56,0);cout<<"|";gotoxy(56,1);cout<<"|";gotoxy(56,2);cout<<"|";gotoxy(56,3);cout<<"|";
gotoxy(56,4);cout<<"|";gotoxy(56,5);cout<<"|";gotoxy(56,6);cout<<"|";gotoxy(56,7);cout<<"|";
gotoxy(56,8);cout<<"|";gotoxy(56,9);cout<<"|";gotoxy(56,10);cout<<"|";gotoxy(56,11);cout<<"|";
gotoxy(56,12);cout<<"|";gotoxy(56,13);cout<<"|";gotoxy(56,14);cout<<"|";gotoxy(56,15);cout<<"|";
gotoxy(56,16);cout<<"|";gotoxy(56,17);cout<<"|";gotoxy(56,18);cout<<"|";gotoxy(56,19);cout<<"|";
gotoxy(56,20);cout<<"|";gotoxy(56,21);cout<<"|";gotoxy(56,22);cout<<"|";gotoxy(56,23);cout<<"|";
gotoxy(56,24);cout<<"|";
gotoxy(65,2);cout<<"LEGEND";
gotoxy(58,5);cout<<"EUR - The Euro";
gotoxy(58,6);cout<<"USD - U.S Dollar";
gotoxy(58,7);cout<<"JPY - Japanese Yen";
gotoxy(58,8);cout<<"GBP - British Pound";
gotoxy(58,9);cout<<"CAD - Canadian Dollar";
}//Menu()
c++ i look forward to your review. and all thanks
