Witam. Mam takie pytanie. Skąd program wie że ma wziąć dane zapisane w bloku enum, jeżeli enum dlug występuje tylko raz. Dalej jest przecież deklaracja stringa imie(Bo przez switcha nie ruszy) np.
//biblioteki(dyrektywy):
#include<iostream>//pozwala pisać za pomocą cout<<"";//obsługa strumieni I/O
#include<conio.h>//pozwala wywołać funkcję getch();
#include<math.h>
#include<cstdio>
#include<cstdlib>//pozwala wywołać system("pause");
#include<windows.h>
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#include<string>
#include<cmath>
#include<fstream>
#include<sstream>
#include<locale>
using namespace std;
string PL( const char * text )
{
string result;
for(; * text; text++ )
switch( * text )
{
case 'ą': result += static_cast < char >( 0xa5 ); break;
case 'ć': result += static_cast < char >( 0x86 ); break;
case 'ę': result += static_cast < char >( 0xa9 ); break;
case 'ł': result += static_cast < char >( 0x88 ); break;
case 'ń': result += static_cast < char >( 0xe4 ); break;
case 'ó': result += static_cast < char >( 0xa2 ); break;
case 'ś': result += static_cast < char >( 0x98 ); break;
case 'ż': result += static_cast < char >( 0xbe ); break;
case 'ź': result += static_cast < char >( 0xab ); break;
case 'Ą': result += static_cast < char >( 0xa4 ); break;
case 'Ć': result += static_cast < char >( 0x8f ); break;
case 'Ę': result += static_cast < char >( 0xa8 ); break;
case 'Ł': result += static_cast < char >( 0x9d ); break;
case 'Ń': result += static_cast < char >( 0xe3 ); break;
case 'Ó': result += static_cast < char >( 0xe0 ); break;
case 'Ś': result += static_cast < char >( 0x97 ); break;
case 'Ż': result += static_cast < char >( 0xbd ); break;
case 'Ź': result += static_cast < char >( 0x8d ); break;
default: result += * text; break;
}
return result;
}
enum dlug{
Adrian=546,
Boguslaw,//2
Cezary,//3
Dominik,//4 //automatycznie ustala wartosc. wystarczy ustawic wartosc pierwszej zmiennej
Eustachy,//5
Ferdynand,//6
Gustaw,//7
Irek//8
};
int main(){
cout<<PL("Wybierz dłużnika:\n");
cout<<PL("1.Adrian\n2.Bogusław\n3.Cezary\n4.Dominik\n5.Eustachy\n6.Ferdynand\n7.Gustaw\n8.Irek")<<endl;
string imie;
cin>>imie;
if(imie=="Adrian"){
cout<<PL("Adrian winien jest ")<<Adrian<<PL(" złotych");
}
if(imie=="Boguslaw"){
cout<<PL("Boguslaw winien jest ")<<Boguslaw<<PL(" złotych");
}
if(imie=="Cezary"){
cout<<PL("Cezary winien jest ")<<Cezary<<PL(" złotych");
}
if(imie=="Dominik"){
cout<<PL("Dominik winien jest ")<<Dominik<<PL(" złotych");
}
if(imie=="Eustachy"){
cout<<PL("Eustachy winien jest ")<<Eustachy<<PL(" złotych");
}
if(imie=="Ferdynand"){
cout<<PL("Ferdynand winien jest ")<<Ferdynand<<PL(" złotych");
}
if(imie=="Gustaw"){
cout<<PL("Gustaw winien jest ")<<Gustaw<<PL(" złotych");
}
if(imie=="Irek"){
cout<<PL("Irek winien jest ")<<Irek<<PL(" złotych");
}
system("pause");
return 0;
}
A co by było, gdybym miał załóżmy dwa enumy o dwóch różnych nazwach, a imiona byłyby te same w jednym jak i w drugim enumie. A każdy enum zamierałby inne dane. W jednym np. dług, a w drugim jak długo zalega ze spłatą.