// tutaj sama klasa, bez dodatkowej struktury #include #include #include #include class TKontakt { char imie [20]; char nazwisko [20]; char godnosc[50]; int pozycja; char* tablica[5]; public: TKontakt (char* imie, char* nazwisko, int pozycja, char* wypisztekst ); char* Scalgodnosc(); void PrzypiszNumer( char* ptr); char* Wyswietl(); int Pozycja (); }; TKontakt::TKontakt (char* imi, char* nazwi, int poz, char* wypisztekst): pozycja (0) { char *ptr = wypisztekst; strcpy (imie,imi); strcpy (nazwisko, nazwi); pozycja = poz; Pozycja (); PrzypiszNumer (ptr); } int TKontakt::Pozycja() { return pozycja; } void TKontakt::PrzypiszNumer( char* ptr) { tablica[pozycja] = ptr; } //!!! char* TKontakt::Wyswietl () { return tablica[pozycja]; } char* TKontakt::Scalgodnosc() { char *ptr = godnosc; strcpy (ptr, imie); ptr+= strlen (ptr); strcpy (ptr, " "); ptr++; strcpy (ptr, nazwisko); return godnosc; } typedef enum { KOMORKOWY = 1, DOMOWY, PRYWATNY } TTypNumeru; class TNumerTelefonu { TTypNumeru typ; int kierunkowy; long int numerwlasciwy; char przekazujetyp[10]; //char wypisztekst[50]; void ZerujTyp(); public: TNumerTelefonu(int typ, int kraj, long int nrwl); int ZwrocKierunkowy (); char* ZwrocTekst ( char* wypiszteskt); }; // czy typ tez? TNumerTelefonu::TNumerTelefonu (int typ, int kraj, long int nrwl) : kierunkowy (00), numerwlasciwy (0000000000) { ZerujTyp(); kierunkowy = kraj; numerwlasciwy = nrwl; if (typ == KOMORKOWY) { strcpy (przekazujetyp,"komorka"); } if (typ == DOMOWY) { strcpy (przekazujetyp,"domowy"); } if (typ == PRYWATNY) { strcpy (przekazujetyp,"prywatny"); } } void TNumerTelefonu::ZerujTyp() { for (int i=0; i<10;i++) { przekazujetyp[i] = 0; } } int TNumerTelefonu::ZwrocKierunkowy () { return kierunkowy; } char* TNumerTelefonu::ZwrocTekst (char* wypisztekst) { char* ptr= wypisztekst; ptr[0] = '+'; ptr[1] = '0' +(kierunkowy - ( kierunkowy%10 ) ) /10; ptr[2] = '0' + kierunkowy %10; ptr[3] = ' '; ptr[4] = 0; ptr+=strlen (ptr); itoa (numerwlasciwy,ptr,10); ptr+=strlen (ptr); strcpy (ptr, " "); ptr++; strcpy (ptr, "0"); strcpy (ptr, przekazujetyp); //ptr = (char*)&numerwlasciwy; return wypisztekst; } ///////////////////////////////////////////////////////// int main(){ char* wypisztekst[50]; char im; char na; long int num; int poz; //NumerTelefonu nt (int typ, int kraj, long int nrwl) printf ("podaj numer \n"); scanf ("%ld",&num); TNumerTelefonu nt (KOMORKOWY, 48, num); printf (" wyswietl kierunkowy - %d \n", nt.ZwrocKierunkowy() ); printf (" wyswietl numer telefonu %s \n", nt.ZwrocTekst ( (char*)&wypisztekst ) ); // Data dataur(8,1,1993); //Data dataza(14,11,2013); printf ("podaj imie i nazwisko \n"); scanf ("%s %s",&im, &na); printf ("Wybierz pozycje od 0-4 \n"); scanf ("%d",&poz); TKontakt kont ((char*)&im, (char*)&na, poz, (char*)&wypisztekst); printf ("wyswietl imie i nazwisko %s \n", kont.Scalgodnosc() ); printf ("Wyswietl pozycje oraz wpiany tam numer:\n [%d] - %s \n", kont.Pozycja(), kont.Wyswietl() ); _getch(); return 0; }