// adres zadanie.cpp : Defines the entry point for the console application. // chyba nie do konca dzialal xD #include "stdafx.h" #include #include #include typedef enum { KOMORKOWY=1, DOMOWY, SLUZBOWY } TRodzaj; typedef struct { // private: char Numer [10]; int kierunkowy; TRodzaj Rodzaj; } TTelefon; ////////////////////////////////// class TNumerTelefonu { char nazwisko[50]; TTelefon tel[5]; char pelnykontakt [50]; int pozycja; void ZerujTablice (char*); public: TNumerTelefonu (char* nr, int kier, int pozycja ); char* ScalNumer (char* tab,char rodz); }; /// konst //numer, kierunkowy, rodzaj telefonu ?, pozycja TNumerTelefonu::TNumerTelefonu(char* nr, int kier, int pozycja ) { int j=0; tel[pozycja].kierunkowy = kier; char *ptr = tel[pozycja].Numer; for (int i=0;i<9;i++) { ptr[i] = nr[j]; j++; } ptr [9] = '\0'; } ////////////////////////////////////////////////////////// void TNumerTelefonu::ZerujTablice (char* telefon) { for (int i=0; i<40; i++) { telefon[i] = 0; } } ////////////////////////////////////////////////////////////////////////////////////// /* int TNumerTelefonu::ZwrocKierunkowy () { return kierunkowy; } */ //////////////////////////////////////////////////////////////////////////// char* TNumerTelefonu::ScalNumer (char* tab, char rodz) { char *ptr=pelnykontakt; ptr[0] = '+'; char jednosci = tel[pozycja].kierunkowy %10; char dziesiatki = (tel[pozycja].kierunkowy - jednosci) /10; ptr[1] = '0' + dziesiatki; ptr[2] = '0' + jednosci; ptr[3] = ' '; ptr++; strcpy (ptr,tel[pozycja].Numer); ptr+=strlen (ptr); if (rodz == KOMORKOWY) { strcpy (ptr," komorka \n"); } if (rodz == DOMOWY) { strcpy (ptr," domowy \n"); } if (rodz == SLUZBOWY) { strcpy (ptr," sluzbowy \n"); } return pelnykontakt; } int _tmain(int argc, _TCHAR* argv[]) { /////////////miejsce, kierunkowy, numer, rodzaj telefonu//////////////////////////// char imie [20]; char nazwi[20]; char cyfra; char numer[9]; int licznik=0; int kierunkowy; int slot; char powtorz; TRodzaj wybor; //int koniec=0; printf ("Podaj imie i nazwisko \n"); scanf ("%s %s",&imie, &nazwi); //puts((char *)&imie); //puts((char *)&nazwi); do { // czy powtorzyc licznik =0; do { printf ("Podaj rodzaj telefonu:\n 1 - komorka\n 2 - domowy\n 3 - sluzbowy\n"); scanf("%d",&wybor); } while ( (wybor !=KOMORKOWY) && (wybor !=DOMOWY) && (wybor !=SLUZBOWY) ); printf ("Podaj kierunkowy \n"); do { cyfra = getch(); if ( (cyfra>= '0') && (cyfra <='9') ) { if (licznik ==0) { kierunkowy = (cyfra - '0') * 10; } else { kierunkowy += cyfra - '0'; } licznik++; putchar (cyfra); } } while (licznik !=2); licznik =0; printf ("Wpisz numer zawierajacy 9 cyfr.\n"); do { cyfra = getch (); if ( (cyfra >= '0') && (cyfra <='9') ) { numer[licznik] = cyfra; licznik ++; putchar (cyfra); } }while (licznik != 9); printf ("\n"); printf ("Do ktorej komorki chcesz zapisac 0-4?\n"); scanf ("%d", &slot); TNumerTelefonu ttt(char* nr, int kier, int pozycja ); //printf ("oto kontakt: %s\n", ttt.ScalNumer ( (char*)&numer, wybor) ); //numer, kierunkowy, rodzaj telefonu, slot printf ("Chcesz dopisac numer?\n1- Tak\n2- Nie"); scanf ("%d",&powtorz); switch (powtorz) { case 1: { licznik = 1; break; } default: { break; } } } while (powtorz == 1); _getch(); return 0; }