Advertisement
Cieslin

Seweryn_Polimorfizm

May 22nd, 2018
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.44 KB | None | 0 0
  1. // Seweryn_Polimorfizm.cpp : Defines the entry point for the console application.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <iostream>
  6. #include <fstream>
  7. #include <string>
  8.  
  9.  
  10. using namespace std;
  11.  
  12. class Kontakt {
  13. private:
  14.     char imie[32];
  15.     char nazwisko[48];
  16. protected:
  17.     Kontakt(const char* imieVal, const char* nazwiskoVal) {
  18.         strcpy(imie, imieVal);
  19.         strcpy(nazwisko, nazwiskoVal);
  20.     }
  21. public:
  22.     virtual void Wyswietl() {
  23.         cout << imie << " " << nazwisko << endl;
  24.     }
  25. };
  26.  
  27. class Telefon : public Kontakt {
  28. private:
  29.     enum Rodzaj
  30.     {
  31.     domowy = 1,
  32.     sluzbowy = 2,
  33.     mobilny = 3
  34.     };
  35.     Rodzaj rodzaj;
  36.     char numer[32];
  37. public:
  38.     Telefon(const char* imieVal, const char* nazwiskoVal, const Rodzaj rodzajVal, const char* numerVal)
  39.         : Kontakt(imieVal, nazwiskoVal)
  40.     {
  41.         rodzaj = rodzajVal;
  42.         if (sizeof(numerVal) >= 20) {
  43.             strcpy(numer, numerVal);
  44.         }
  45.     }
  46.  
  47.     virtual void Wyswietl() {
  48.         Kontakt::Wyswietl();
  49.         switch (rodzaj) {
  50.         case 1:
  51.             cout << "Domowy " << numer << endl;
  52.             break;
  53.         case 2:
  54.             cout << "Sluzbowy " << numer << endl;
  55.             break;
  56.         case 3:
  57.             cout << "Mobilny " << numer << endl;
  58.             break;
  59.         default:
  60.             cout << "Nieznany " << numer << endl;
  61.             break;
  62.         }
  63.     }
  64. };
  65.  
  66. class EMail : public Kontakt {
  67. private:
  68.     char email[128];
  69. public:
  70.     EMail(const char* imieVal, const char* nazwiskoVal, const char* emailVal)
  71.         : Kontakt(imieVal, nazwiskoVal)
  72.     {
  73.         strcpy(email, emailVal);
  74.     }
  75.  
  76.     virtual void Wyswietl() {
  77.         Kontakt::Wyswietl();
  78.         cout << email << endl;
  79.     }
  80. };
  81.  
  82. class Adres : public Kontakt {
  83. private:
  84.     char nazwaMiasta[128];
  85.     char nazwaUlicy[128];
  86.     int numerDomu;
  87.     int numerMieszkania;
  88. public:
  89.     Adres(const char* imieVal, const char* nazwiskoVal, const char* nazwaMiastaVal, const char* nazwaUlicyVal, const int numerDomuVal, const int numerMieszkaniaVal)
  90.         : Kontakt(imieVal, nazwiskoVal)
  91.     {
  92.         strcpy(nazwaMiasta, nazwaMiastaVal);
  93.         strcpy(nazwaUlicy, nazwaUlicyVal);
  94.         numerDomu = numerDomuVal;
  95.         numerMieszkania = numerMieszkaniaVal;
  96.     }
  97.  
  98.     virtual void Wyswietl() {
  99.         Kontakt::Wyswietl();
  100.         cout << nazwaMiasta << " " << nazwaUlicy << " " << numerDomu << " " << numerMieszkania << endl;
  101.     }
  102. };
  103.  
  104.  
  105. int main()
  106. {
  107.     fstream plik("nazwapliku.txt"); //ZMIEN NAZWE PLIKU!
  108.     if (plik.bad()) {
  109.         cout << "Blad otwarcia pliku" << endl;
  110.     }
  111.     else {
  112.         while (!plik.eof()) {
  113.             //Wszystko co masz zczytac z pliku i w ifach robisz ktory kontruktor ma sie wczytac zaleznie od parametrow!
  114.         }
  115.     }
  116.     return 0;
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement