//konstruktor paramteryczny, wskazniki char* #include #include #include ///////////////////////////////////////////////// KLASA KOD POCZTOWY //////////////////////////////////////////// class Adres { int kod1; int kod2; int lokal; int budynek; char ulica [15]; char miasto [15]; char lokum [10]; void WyczyscTablice (char*); public: Adres (); char tab [9]; char Calosc [100]; void ScalKod (int k1, int k2, char* tab); void CalyAdres (int k1, int k2, int lo, int bu, char* ul, char* mi);//, char* Calosc); void SprawdzLokum (int l, int b); }; // Konstruktor // Adres::Adres(): kod1 (0), kod2 (0) { WyczyscTablice (tab);} ///////////////////////////////////////////////////////// FUNKCJE KODU POCZTOWEGO ////////////////////////////////////////////// void Adres::WyczyscTablice (char*) { for (int i=0; i<9;i++) { tab[i] = '\0'; } } //////////////////////////////////////////// void Adres::ScalKod (int k1, int k2, char* tab) { int jednosci; int dziesiatki; int setki; if ( (k1 > 0) || (k1 <100) || (k2 > 100) || (k2 < 1000) ) { kod1 = k1; kod2 = k2; } jednosci = (kod1 %10); dziesiatki = (kod1 - jednosci) / 10; tab [0] = ' '; tab [1] = '0' + dziesiatki; tab [2] = '0' + jednosci; tab [3] = '-'; jednosci = ((kod2 %100) %10); dziesiatki = ((kod2 %100) - jednosci) /10; setki = (kod2 - dziesiatki - jednosci) /100; tab [4] = '0' + setki; tab [5] = '0' + dziesiatki; tab [6] = '0' + jednosci; tab [7] = ' '; tab [8] = '\0'; } //////////////////////////////// void Adres::CalyAdres (int k1, int k2, int lo, int bu, char* ul, char* mi)//, char* Calosc) { char *ptr = Calosc; lokal = lo; budynek = bu; strcpy ( (char*)&ulica, ul ); strcpy ( (char*)&miasto, mi ); strcpy (ptr, (char*)&ulica); ptr += strlen (ptr); *ptr++ = ' '; strcpy (ptr, mi); ptr += strlen (ptr); //ScalKod (kod1,kod2,ptr); strcpy (ptr, (char*)&tab); ptr += strlen (ptr); strcpy (ptr, (char*)&lokum); ptr += strlen (ptr); } ////////////// void Adres::SprawdzLokum (int l, int b) { lokal = l; budynek = b; char *ptr = (char*)&lokum; /* itoa (l,ptr, 10); ptr += strlen(ptr); */ itoa (l, ptr, 10); ptr += strlen(ptr); *ptr++ = ' '; *ptr++ = '/'; itoa (b, ptr, 10); ptr += strlen(ptr); *ptr++ = ' '; *ptr++ = '\0'; } ////////////////////MAIN---MAIN---MAIN---MAIN---MAIN---MAIN---MAIN---MAIN///////////////////////// int main() { Adres adres; int kod1; int kod2; int budynek; int lokal; char ulica [15]; char miasto [15]; printf ("Podaj 1 czesc kodu pocztowego\n"); scanf ("%d",&kod1); printf ("Podaj 2 czesc kodu pocztowego\n"); scanf ("%d",&kod2); adres.ScalKod (kod1, kod2, adres.tab); //putchar(kod.tab[1]); printf ("twoj kod pocztowy: %s \n", (char*)&adres.tab); printf ("Podaj nazwe ulicy \n"); scanf ("%s",&ulica); printf ("Podaj nazwe miasta \n"); scanf ("%s",&miasto); printf ("Podaj numer budynku \n"); scanf ("%d",&budynek); printf ("Podaj numer lokalu \n"); scanf ("%d",&lokal); adres.SprawdzLokum (lokal, budynek); adres.CalyAdres (kod1, kod2,lokal, budynek, (char*)&ulica, (char*)&miasto);//, adres.Calosc); printf ("caly adres: %s \n", (char*)&adres.Calosc); _getch(); return 0; }