//konstruktor paramteryczny, wskazniki char*
#include <iostream>
#include <string>
#include <conio.h>
///////////////////////////////////////////////// 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;
}
Comments
0 B
|👍
/👎