Kod programu Kantor, co jeszcze zmienić?


(Derelion) #1

Siemka. Co byście zmienili w kodzie tego programu? (btw. jest to program do obsługi kantoru, który wartości zmiennych zapisuje do plików). Próbowałem uzyć tutaj tablicy aby wszystko zapisywało się do jednego pliku ale niestety nie udało mi się tego wykonać.

#include

#include

#include 

using namespace std;

main()

{   

	cout<<"Kantor v3.0"<
	int t ;

    float eur_usd;

	 ifstream EUR_USD;

	 EUR_USD.open("EUR_USD.txt");

	 EUR_USD >> eur_usd;

	 EUR_USD.close();

	float eur_rub;

	 ifstream EUR_RUB;

	 EUR_RUB.open("EUR_RUB.txt");

	 EUR_RUB >> eur_rub;

	 EUR_RUB.close();

	float eur_chf;

	 ifstream EUR_CHF;

	 EUR_CHF.open("EUR_CHF.txt");

	 EUR_CHF >> eur_chf;

	 EUR_CHF.close();

	float eur_gbp;

	 ifstream EUR_GBP;

	 EUR_GBP.open("EUR_GBP.txt");

	 EUR_GBP >> eur_gbp;

	 EUR_GBP.close();

	float eur_pln;

	 ifstream EUR_PLN;

	 EUR_PLN.open("EUR_PLN.txt");

	 EUR_PLN >> eur_pln;

	 EUR_PLN.close();

	float usd_eur;

	 ifstream USD_EUR;

	 USD_EUR.open("USD_EUR.txt");

	 USD_EUR >> usd_eur;

	 USD_EUR.close();

	float usd_rub;

	 ifstream USD_RUB;

	 USD_RUB.open("USD_RUB.txt");

	 USD_RUB >> usd_rub;

	 USD_RUB.close();

	float usd_chf;

	 ifstream USD_CHF;

	 USD_CHF.open("USD_CHF.txt");

	 USD_CHF >> usd_chf;

	 USD_CHF.close();

	float usd_gbp;

	 ifstream USD_GBP;

	 USD_GBP.open("USD_GBP.txt");

	 USD_GBP >> usd_gbp;

	 USD_GBP.close();

	float usd_pln;

	 ifstream USD_PLN;

	 USD_PLN.open("USD_PLN.txt");

	 USD_PLN >> usd_pln;

	 USD_PLN.close();

	float rub_eur;

	 ifstream RUB_EUR;

	 RUB_EUR.open("RUB_EUR.txt");

	 RUB_EUR >> rub_eur;

	 RUB_EUR.close();

	float rub_usd;

	 ifstream RUB_USD;

	 RUB_USD.open("RUB_USD.txt");

	 RUB_USD >> rub_usd;

	 RUB_USD.close();

	 float rub_chf;

	 ifstream RUB_CHF;

	 RUB_CHF.open("RUB_CHF.txt");

	 RUB_CHF >> rub_chf;

	 RUB_CHF.close();

	 float rub_gbp;

	 ifstream RUB_GBP;

	 RUB_GBP.open("RUB_GBP.txt");

	 RUB_GBP >> rub_gbp;

	 RUB_GBP.close();

	 float rub_pln;

	 ifstream RUB_PLN;

	 RUB_PLN.open("RUB_PLN.txt");

	 RUB_PLN >> rub_pln;

	 RUB_PLN.close();

	 float chf_eur;

	 ifstream CHF_EUR;

	 CHF_EUR.open("CHF_EUR.txt");

	 CHF_EUR >> chf_eur;

	 CHF_EUR.close();

	 float chf_usd;

	 ifstream CHF_USD;

	 CHF_USD.open("CHF_USD.txt");

	 CHF_USD >> chf_usd;

	 CHF_USD.close();

	 float chf_rub;

	 ifstream CHF_RUB;

	 CHF_RUB.open("CHF_RUB.txt");

	 CHF_RUB >> chf_rub;

	 CHF_RUB.close();

	 float chf_gbp;

	 ifstream CHF_GBP;

	 CHF_GBP.open("CHF_GBP.txt");

	 CHF_GBP >> chf_gbp;

	 CHF_GBP.close();

	 float chf_pln;

	 ifstream CHF_PLN;

	 CHF_PLN.open("CHF_PLN.txt");

	 CHF_PLN >> chf_pln;

	 CHF_PLN.close();

	 float gbp_eur;

	 ifstream GBP_EUR;

	 GBP_EUR.open("GBP_EUR.txt");

	 GBP_EUR >> gbp_eur;

	 GBP_EUR.close();

	 float gbp_usd;

	 ifstream GBP_USD;

	 GBP_USD.open("GBP_USD.txt");

	 GBP_USD >> gbp_usd;

	 GBP_USD.close();

	 float gbp_rub;

	 ifstream GBP_RUB;

	 GBP_RUB.open("GBP_RUB.txt");

	 GBP_RUB >> gbp_rub;

	 GBP_RUB.close();

	 float gbp_chf;

	 ifstream GBP_CHF;

	 GBP_CHF.open("GBP_CHF.txt");

	 GBP_CHF >> gbp_chf;

	 GBP_CHF.close();

	 float gbp_pln;

	 ifstream GBP_PLN;

	 GBP_PLN.open("GBP_PLN.txt");

	 GBP_PLN >> gbp_pln;

	 GBP_PLN.close();

	 float pln_eur;

	 ifstream PLN_EUR;

	 PLN_EUR.open("PLN_EUR.txt");

	 PLN_EUR >> pln_eur;

	 PLN_EUR.close();

	 float pln_usd;

	 ifstream PLN_USD;

	 PLN_USD.open("PLN_USD.txt");

	 PLN_USD >> pln_usd;

	 PLN_USD.close();

	 float pln_rub;

	 ifstream PLN_RUB;

	 PLN_RUB.open("PLN_RUB.txt");

	 PLN_RUB >> pln_rub;

	 PLN_RUB.close();

	 float pln_chf;

	 ifstream PLN_CHF;

	 PLN_CHF.open("PLN_CHF.txt");

	 PLN_CHF >> pln_chf;

	 PLN_CHF.close();

	 float pln_gbp;

	 ifstream PLN_GBP;

	 PLN_GBP.open("PLN_GBP.txt");

	 PLN_GBP >> pln_gbp;

	 PLN_GBP.close();

	do { 

	cout<<" 1 - Aktualne kursy"<
	cout<<" 2 - Modyfikacja kursów"<
	cout<<" 3 - Przelicznik walut"<
	cout<<" 4 - koniec"<
	cin>>t;


switch (t)

{

case 1:

	cout<<"Aktualne kursy"<
	cout<<"EUR --> USD ="<
	cout<<"EUR --> RUB ="<
	cout<<"EUR --> CHF ="<
	cout<<"EUR --> GBP ="<
	cout<<"EUR --> PLN ="<
	cout<<"USD --> EUR ="<
	cout<<"USD --> RUB ="<
	cout<<"USD --> CHF ="<
	cout<<"USD --> GBP ="<
	cout<<"USD --> PLN ="<
	cout<<"RUB --> EUR ="<
	cout<<"RUB --> USD ="<
	cout<<"RUB --> CHF ="<
	cout<<"RUB --> GBP ="<
	cout<<"RUB --> PLN ="<
	cout<<"CHF --> EUR ="<
	cout<<"CHF --> USD ="<
	cout<<"CHF --> RUB ="<
	cout<<"CHF --> GBP ="<
	cout<<"CHF --> PLN ="<
	cout<<"GBP --> EUR ="<
	cout<<"GBP --> USD ="<
	cout<<"GBP --> RUB ="<
	cout<<"GBP --> CHF ="<
	cout<<"GBP --> PLN ="<
	cout<<"PLN --> EUR ="<
	cout<<"PLN --> USD ="<
	cout<<"PLN --> RUB ="<
	cout<<"PLN --> CHF ="<
	cout<<"PLN --> GBP ="<
break;


case 2:

	cout<<"Modyfikacja kursow"<
	cout<<"Ktory kurs waluty chcesz zmienic?"<
	cout<<" 1 - EUR --> USD"<
	cout<<" 2 - EUR --> RUB"<
	cout<<" 3 - EUR --> CHF"<
	cout<<" 4 - EUR --> GBP"<
	cout<<" 5 - EUR --> PLN"<
	cout<<" 6 - USD --> EUR"<
	cout<<" 7 - USD --> RUB"<
	cout<<" 8 - USD --> CHF"<
	cout<<" 9 - USD --> GBP"<
	cout<<" 10 - USD --> PLN"<
	cout<<" 11 - RUB --> EUR"<
	cout<<" 12 - RUB --> USD"<
	cout<<" 13 - RUB --> CHF"<
	cout<<" 14 - RUB --> GBP"<
	cout<<" 15 - RUB --> PLN"<
	cout<<" 16 - CHF --> EUR"<
	cout<<" 17 - CHF --> USD"<
	cout<<" 18 - CHF --> RUB"<
	cout<<" 19 - CHF --> GBP"<
	cout<<" 20 - CHF --> PLN"<
	cout<<" 21 - GBP --> EUR"<
	cout<<" 22 - GBP --> USD"<
	cout<<" 23 - GBP --> RUB"<
	cout<<" 24 - GBP --> CHF"<
	cout<<" 25 - GBP --> PLN"<
	cout<<" 26 - PLN --> EUR"<
	cout<<" 27 - PLN --> USD"<
	cout<<" 28 - PLN --> RUB"<
	cout<<" 29 - PLN --> CHF"<
	cout<<" 30 - PLN --> GBP"<

	int w;

	cin>>w;

	if (w==1){cout<<"Podaj aktualny kurs: ";cin>>eur_usd ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream EUR_USD;

	 EUR_USD.open("EUR_USD.txt");

	 EUR_USD << eur_usd;

	 EUR_USD.close();

	}

	if (w==2){cout<<"Podaj aktualny kurs: ";cin>>eur_rub ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream EUR_RUB;

	 EUR_RUB.open("EUR_RUB.txt");

	 EUR_RUB << eur_rub;

	 EUR_RUB.close();

	}

	if (w==3){cout<<"Podaj aktualny kurs: ";cin>>eur_chf ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream EUR_CHF;

	 EUR_CHF.open("EUR_CHF.txt");

	 EUR_CHF << eur_chf;

	 EUR_CHF.close();

	}

	if (w==4){cout<<"Podaj aktualny kurs: ";cin>>eur_gbp ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream EUR_GBP;

	 EUR_GBP.open("EUR_GBP.txt");

	 EUR_GBP << eur_gbp;

	 EUR_GBP.close();

	}

	if (w==5){cout<<"Podaj aktualny kurs: ";cin>>eur_pln ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream EUR_PLN;

	 EUR_PLN.open("EUR_PLN.txt");

	 EUR_PLN << eur_pln;

	 EUR_PLN.close();

	}

	if (w==6){cout<<"Podaj aktualny kurs: ";cin>>usd_eur ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream USD_EUR;

	 USD_EUR.open("USD_EUR.txt");

	 USD_EUR << usd_eur;

	 USD_EUR.close();

	}

	if (w==7){cout<<"Podaj aktualny kurs: ";cin>>usd_rub ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream USD_RUB;

	 USD_RUB.open("USD_RUB.txt");

	 USD_RUB << usd_rub;

	 USD_RUB.close();

	}

	if (w==8){cout<<"Podaj aktualny kurs: ";cin>>usd_chf ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream USD_CHF;

	 USD_CHF.open("USD_CHF.txt");

	 USD_CHF << usd_chf;

	 USD_CHF.close();

	}

	if (w==9){cout<<"Podaj aktualny kurs: ";cin>>usd_gbp ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream USD_GBP;

	 USD_GBP.open("USD_GBP.txt");

	 USD_GBP << usd_gbp;

	 USD_GBP.close();

	}

	if (w==10){cout<<"Podaj aktualny kurs: ";cin>>usd_pln ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream USD_PLN;

	 USD_PLN.open("USD_PLN.txt");

	 USD_PLN << usd_pln;

	 USD_PLN.close();

	}

	if (w==11){cout<<"Podaj aktualny kurs: ";cin>>rub_eur ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream RUB_EUR;

	 RUB_EUR.open("RUB_EUR.txt");

	 RUB_EUR << rub_eur;

	 RUB_EUR.close();

	}

	if (w==12){cout<<"Podaj aktualny kurs: ";cin>>rub_usd ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream RUB_USD;

	 RUB_USD.open("RUB_USD.txt");

	 RUB_USD << rub_usd;

	 RUB_USD.close();

	}

	if (w==13){cout<<"Podaj aktualny kurs: ";cin>>rub_chf ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream RUB_CHF;

	 RUB_CHF.open("RUB_CHF.txt");

	 RUB_CHF << rub_chf;

	 RUB_CHF.close();

	}

	if (w==14){cout<<"Podaj aktualny kurs: ";cin>>rub_gbp ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream RUB_GBP;

	 RUB_GBP.open("RUB_GBP.txt");

	 RUB_GBP << rub_gbp;

	 RUB_GBP.close();

	}

	if (w==15){cout<<"Podaj aktualny kurs: ";cin>>rub_pln ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream RUB_PLN;

	 RUB_PLN.open("RUB_PLN.txt");

	 RUB_PLN << rub_pln;

	 RUB_PLN.close();

	}

	if (w==16){cout<<"Podaj aktualny kurs: ";cin>>chf_eur ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream CHF_EUR;

	 CHF_EUR.open("CHF_EUR.txt");

	 CHF_EUR << chf_eur;

	 CHF_EUR.close();

	}

	if (w==17){cout<<"Podaj aktualny kurs: ";cin>>chf_usd ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream CHF_USD;

	 CHF_USD.open("CHF_USD.txt");

	 CHF_USD << chf_usd;

	 CHF_USD.close();

	}

	if (w==18){cout<<"Podaj aktualny kurs: ";cin>>chf_rub ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream CHF_RUB;

	 CHF_RUB.open("CHF_RUB.txt");

	 CHF_RUB << chf_rub;

	 CHF_RUB.close();

	}

	if (w==19){cout<<"Podaj aktualny kurs: ";cin>>chf_gbp ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream CHF_GBP;

	 CHF_GBP.open("CHF_GBP.txt");

	 CHF_GBP << chf_gbp;

	 CHF_GBP.close();

	}

	if (w==20){cout<<"Podaj aktualny kurs: ";cin>>chf_pln ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream CHF_PLN;

	 CHF_PLN.open("CHF_PLN.txt");

	 CHF_PLN << chf_pln;

	 CHF_PLN.close();

	}

	if (w==21){cout<<"Podaj aktualny kurs: ";cin>>gbp_eur ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream GBP_EUR;

	 GBP_EUR.open("GBP_EUR.txt");

	 GBP_EUR << gbp_eur;

	 GBP_EUR.close();

	}

	if (w==22){cout<<"Podaj aktualny kurs: ";cin>>gbp_usd ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream GBP_USD;

	 GBP_USD.open("GBP_USD.txt");

	 GBP_USD << gbp_usd;

	 GBP_USD.close();

	}

	if (w==23){cout<<"Podaj aktualny kurs: ";cin>>gbp_rub ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream GBP_RUB;

	 GBP_RUB.open("GBP_RUB.txt");

	 GBP_RUB << gbp_rub;

	 GBP_RUB.close();

	}

	if (w==24){cout<<"Podaj aktualny kurs: ";cin>>gbp_chf ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream GBP_CHF;

	 GBP_CHF.open("GBP_CHF.txt");

	 GBP_CHF << gbp_chf;

	 GBP_CHF.close();

	}

	if (w==25){cout<<"Podaj aktualny kurs: ";cin>>gbp_pln ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream GBP_PLN;

	 GBP_PLN.open("GBP_PLN.txt");

	 GBP_PLN << gbp_pln;

	 GBP_PLN.close();

	}

	if (w==26){cout<<"Podaj aktualny kurs: ";cin>>pln_eur ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream PLN_EUR;

	 PLN_EUR.open("PLN_EUR.txt");

	 PLN_EUR << pln_eur;

	 PLN_EUR.close();

	}

	if (w==27){cout<<"Podaj aktualny kurs: ";cin>>pln_usd ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream PLN_USD;

	 PLN_USD.open("PLN_USD.txt");

	 PLN_USD << pln_usd;

	 PLN_USD.close();

	}

	if (w==28){cout<<"Podaj aktualny kurs: ";cin>>pln_rub ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream PLN_RUB;

	 PLN_RUB.open("PLN_RUB.txt");

	 PLN_RUB << pln_rub;

	 PLN_RUB.close();

	}

	if (w==29){cout<<"Podaj aktualny kurs: ";cin>>pln_chf ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream PLN_CHF;

	 PLN_CHF.open("PLN_CHF.txt");

	 PLN_CHF << pln_chf;

	 PLN_CHF.close();

	}

	if (w==30){cout<<"Podaj aktualny kurs: ";cin>>pln_gbp ;cout<<"Kurs waluty zostal zmieniony"<
	ofstream PLN_GBP;

	 PLN_GBP.open("PLN_GBP.txt");

	 PLN_GBP << pln_gbp;

	 PLN_GBP.close();

	}

break;


case 3:

	cout<<"Przelicznik walut"<
	cout<<"Podaj kwote"<
	float kwota;

	cin>>kwota;

	cout<<"W jakiej walucie podales kwote?"<
	cout<<" 1 - EUR"<
	cout<<" 2 - USD"<
	cout<<" 3 - RUB"<
	cout<<" 4 - CHF"<
	cout<<" 5 - GBP"<
	cout<<" 6 - PLN"<
	int waluta;

	cin>>waluta;

	if (waluta==1 ) 

	{

		cout<<"Na co chcesz zamienic "<
		cout<<" 1 - USD";

		cout<<" 2 - RUB";

		cout<<" 3 - CHF";

		cout<<" 4 - GBP";

		cout<<" 5 - PLN"<
		int rodzaj;

		cin>>rodzaj;

		if(rodzaj==1) {cout<
		if(rodzaj==2) {cout<
		if(rodzaj==3) {cout<
		if(rodzaj==4) {cout<
		if(rodzaj==5) {cout<
	}

	if (waluta==2 ) 

	{

		cout<<"Na co chcesz zamienic "<
		cout<<" 1 - EUR";

		cout<<" 2 - RUB";

		cout<<" 3 - CHF";

		cout<<" 4 - GBP";

		cout<<" 5 - PLN"<
		int rodzaj;

		cin>>rodzaj;

		if(rodzaj==1) {cout<
		if(rodzaj==2) {cout<
		if(rodzaj==3) {cout<
		if(rodzaj==4) {cout<
		if(rodzaj==5) {cout<
	}

	if (waluta==3 ) 

	{

		cout<<"Na co chcesz zamienic "<
		cout<<" 1 - EUR";

		cout<<" 2 - USD";

		cout<<" 3 - CHF";

		cout<<" 4 - GBP";

		cout<<" 5 - PLN"<
		int rodzaj;

		cin>>rodzaj;

		if(rodzaj==1) {cout<
		if(rodzaj==2) {cout<
		if(rodzaj==3) {cout<
		if(rodzaj==4) {cout<
		if(rodzaj==5) {cout<
	}

	if (waluta==4 ) 

	{

		cout<<"Na co chcesz zamienic "<
		cout<<" 1 - EUR";

		cout<<" 2 - USD";

		cout<<" 3 - RUB";

		cout<<" 4 - GBP";

		cout<<" 5 - PLN"<
		int rodzaj;

		cin>>rodzaj;

		if(rodzaj==1) {cout<
		if(rodzaj==2) {cout<
		if(rodzaj==3) {cout<
		if(rodzaj==4) {cout<
		if(rodzaj==5) {cout<
	}

	if (waluta==5 ) 

	{

		cout<<"Na co chcesz zamienic "<
		cout<<" 1 - EUR";

		cout<<" 2 - USD";

		cout<<" 3 - RUB";

		cout<<" 4 - CHF";

		cout<<" 5 - PLN"<
		int rodzaj;

		cin>>rodzaj;

		if(rodzaj==1) {cout<
		if(rodzaj==2) {cout<
		if(rodzaj==3) {cout<
		if(rodzaj==4) {cout<
		if(rodzaj==5) {cout<
	}

	if (waluta==6 ) 

	{

		cout<<"Na co chcesz zamienic "<
		cout<<" 1 - EUR";

		cout<<" 2 - USD";

		cout<<" 3 - RUB";

		cout<<" 4 - CHF";

		cout<<" 5 - GBP"<
		int rodzaj;

		cin>>rodzaj;

		if(rodzaj==1) {cout<
		if(rodzaj==2) {cout<
		if(rodzaj==3) {cout<
		if(rodzaj==4) {cout<
		if(rodzaj==5) {cout<
	}


break;

}

	} while (t!=4); cout<<"pa pa :P "<
}

(Dawiddek55) #2

coś jest źle ponieważ to się nie kompiluje


(Marcinch7) #3

skompilowałem, fajny pomysł ale po podaniu modyfikacji kursu i wpisaniu kwoty po przecinku program szaleje


(Ryan) #4

Zgrabny kod, ale fatalny design aplikacji. Postaram się to przepisać w wolnej chwili.

Złączono Posta : 06.06.2007 (Sro) 9:08

#include 

#include 


using namespace std;


const char pwszNazwyWalut[6][4] = {"EUR", "USD", "RUB", "CHF", "GBP", "PLN"};

float pfKursyWalut[6][6] = {0};


//

// Czytaj kursy z plikow

//

void CzytajKursy()

{

	char wszFileName[12] = "XXX_XXX.txt";

	int i, j;


	// Indeks "z waluty"

	for (i = 0; i < 6; ++ i)

	{

		// Indeks "do waluty"

		for (j = 0; j < 6; ++j)

		{

			ifstream ifsPlik;


			// Jesli "z" i "do" takie same - przelicznik jest 1:1

			if (i == j)

			{

				pfKursyWalut[i][j] = 1.0f;

				continue;

			}


			// Otworz plik

			memcpy(wszFileName, pwszNazwyWalut[i], 3);

			memcpy(&(wszFileName[4]), pwszNazwyWalut[j], 3);

			ifsPlik.open(wszFileName);


			// Jesli plik istnieje i nie jest pusty - przeczytaj kurs

			if (!ifsPlik.eof())

			{

				ifsPlik >> pfKursyWalut[i][j];

			}

			else

			{

				pfKursyWalut[i][j] = 0;

			}


			// Zamknij plik

			ifsPlik.close();

		}

	}

}



//

// Pokaz aktualne kursy

//

void PokazKursy()

{

	int i, j;


	cout << "Aktualne kursy" << endl << endl;


	// Indeks "z waluty"

	for (i = 0; i < 6; ++ i)

	{

		// Indeks "do waluty"

		for (j = 0; j < 6; ++j)

		{

			// Jesli "z" i "do" takie same - pomin

			if (i == j)

				continue;


			// Wyswietl kurs

			cout << pwszNazwyWalut[i] << " --> " << pwszNazwyWalut[j];

			cout << " = " << pfKursyWalut[i][j] << endl;

		}

	}

}



//

// Zmien jeden z kursow

//

void ZmienKurs()

{

	char wszFileName[12] = "XXX_XXX.txt";

	ofstream ofsPlik;

	int iOpcja;

	int i, j;

	int k = 1;


	cout << "Modyfikacja kursow" << endl;

	cout << "Ktory kurs waluty chcesz zmienic?" << endl << endl;


	// Indeks "z waluty"

	for (i = 0; i < 6; ++ i)

	{

		// Indeks "do waluty"

		for (j = 0; j < 6; ++j)

		{

			// Jesli "z" i "do" takie same - pomin

			if (i == j)

				continue;


			// Wyswietl kurs

			cout << k << " - ";

			cout << pwszNazwyWalut[i] << " --> " << pwszNazwyWalut[j];

			++k;

		}

	}


	// Pobierz opcje i przelicz przesuniecie w tablicy

	cin >> iOpcja;


	if ((iOpcja > 30) || (iOpcja < 1))

		return;


	--iOpcja;

	i = iOpcja / 5;

	j = iOpcja % 5;

	if (i <= j)

		++j;


	// Pobierz kurs

	cout << "Podaj aktualny kurs ";

	cout << pwszNazwyWalut[i] << " --> " << pwszNazwyWalut[j] << endl;


	cin >> pfKursyWalut[i][j];


	// Zapisz dane

	memcpy(wszFileName, pwszNazwyWalut[i], 3);

	memcpy(&(wszFileName[4]), pwszNazwyWalut[j], 3);

	ofsPlik.open(wszFileName);

	ofsPlik << pfKursyWalut[i][j];

	ofsPlik.close();


	cout << "Kurs waluty zostal zmieniony" << endl << endl;

}



//

// Przelicza wartosc z kursu na kurs

//

void Przelicz()

{

	float fWartosc;

	int i, j;

	int k = 1;


	cout << "Przelicznik walut" << endl << endl;

	cout << "Podaj kwote" << endl;


	// Pobierz kwote do przeliczenia

	cin >> fWartosc;


	// Pobierz walute "z"

	cout << "W jakiej walucie podales kwote?" << endl;


	for (i = 0; i < 6; ++i)

	{

		cout << (i + 1) << " - " << pwszNazwyWalut[i] << endl;

	}

	cout << endl;

	cin >> i;

	--i;


	// Pobierz walute "do"

	cout << "Na co chcesz zamienic " << fWartosc << pwszNazwyWalut[i] << endl;


	for (j = 0; j < 6; ++j)

	{

		if (i == j)

			continue;


		cout << k << " - " << pwszNazwyWalut[j] << endl;

		++k;

	}

	cout << endl;

	cin >> k;

	j = (k - 1);

	if (i <= j)

		++j;


	// Dokonaj przeliczenia i wyswietl wynik

	cout << fWartosc << " " << pwszNazwyWalut[i] << " = ";

	cout << (fWartosc * pfKursyWalut[i][j]);

	cout << " " << pwszNazwyWalut[j] << endl;

}



void main(void)

{

	int iOpcja;


	cout << "Kantor v3.0" << endl << endl;


	CzytajKursy();


	do

	{

		cout << " 1 - Aktualne kursy" << endl;

		cout << " 2 - Modyfikacja kursow" << endl;

		cout << " 3 - Przelicznik walut" << endl;

		cout << " 4 - Koniec" << endl << endl;

		cin >> iOpcja;


		switch (iOpcja)

		{

		case 1:

			PokazKursy();

			break;

		case 2:

			ZmienKurs();

			break;

		case 3:

			Przelicz();

			break;

		}

	}

	while (iOpcja != 4);


	cout << "pa pa :P" << endl << endl;

}

Wykonuje to samo co Twój program, ale jest bardziej modularne.

Rzeczy, które można dodać/poprawić

  • poprawić rozszerzalność programu o nowe waluty

  • poprawić głupoodporność (walidacja wejść)

  • pozbyć się zawodnych strumieni

  • uwzględnić to, że kursy skupu i sprzedaży są różne

Złączono Posta : 06.06.2007 (Sro) 9:16

I jeszcze jedno - jeśli masz pytania to wal. Program jest prosty jak konstrukcja cepa, jedyna "trudniejsza" rzecz to oblicanie offsetu w tablicy. Trudniejsza, bo chciałem zachować Twoją numerację w poszczególnych opcjach i zmuszony byłem przy wyświetlaniu listy czegokolwiek pominąć opcje, kiedy mowa byłaby o konwersji z jakiejś waluty do niej samej.

Co do modularności - każde miejsce, gdzie pojawia się wartość 6, 5 albo 30 można zastąpić odpowiednio ILOSC_WALUT, (ILOSC_WALUT-1) i (ILOSC_WALUT*(ILOSC_WALUT-1)) przy użyciu #define ILOSC_WALUT 6 będziesz miał to samo co teraz, tyle że dodanie kolejnej opcji wiązało się będzie jedynie z A) zmianą 6 na 7 B) poszerzeniem tablicy pwszNazwyWalut o nową nazwę.

Locale - przecinek to nie kropka.

PS.

Fajnie, że samo dokleja posty - nie muszę edutować. :slight_smile: Dziękujemy Ci Lisku. :stuck_out_tongue: