Hyluss icon

Adres

Hyluss | PRO | 07/02/16 06:25:37 PM UTC | 0 ⭐ | 462 👁️ | Never ⏰ | []
C |

3.38 KB

|

None

|

0 👍

/

0 👎

//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

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎