Paradygmaty Przyklad 2


Przykład prezentuje podstawowy programowania obiektowo
zorientowanego w języku C++. Całośc można skompilować w
środowisku Visula C++ f-my Microsoft bez zmian (po utworzeniu
projektu konsolowego)
Kod programu:
#include "stdafx.h"
using namespace std;
class Data{
short dzien;
short miesiac;
int rok;
public:
Data(short Dzien = 1, short Miesiac = 1, int Rok = 1900):
dzien(Dzien), miesiac(Miesiac), rok(Rok){}
void wypiszDate()
{if (rok > 1900) cout << rok <<"-" << miesiac << "-" << dzien;
else cout << "xxxx-xx-xx";}
};
class Osoba{
static int liczOsob;
int osID;
string imie;
string nazwisko;
string zawod;
Data dataUrodz;
public:
Osoba(){imie = "", nazwisko = "", zawod = "", dataUrodz = Data();}
Osoba(string Imie, string Nazwisko, string Zawod, Data DataUrodz =
Data()): osID(++liczOsob), imie(Imie), nazwisko(Nazwisko),
zawod(Zawod), dataUrodz(DataUrodz){}
void osobID(int nr){osID = nr;}
void przedstawSie()
{cout << " (" << osID <<") " << imie << " " << nazwisko
<< " - zawod: " << zawod << endl;}
void urodzony()
{cout << " urodzony: "; dataUrodz.wypiszDate();
cout << endl;}
};
int Osoba::liczOsob;
class Osada{
static int liczOsad;
int liczMieszk;
Osoba *Mieszkancy;
public:
Osada(){liczMieszk = 0;}
void dodajMieszk(Osoba);
void spisMieszk();
~Osada(){delete [] Mieszkancy;}
};
int Osada::liczOsad;
void Osada::dodajMieszk(Osoba Nowy){
Osoba *Temp = new Osoba[liczMieszk + 1];
if (liczMieszk > 0) {
for(int i=0; i < liczMieszk; i++) Temp[i] = Mieszkancy[i];
delete [] Mieszkancy;
}
Temp[liczMieszk++] = Nowy;
Mieszkancy = Temp;
}
void Osada::spisMieszk(){
cout << "W Osadzie mieszka " << liczMieszk << " osob:"
<< endl << endl;
for (int i = 0; i < liczMieszk; i++){
cout << i + 1 << ". ";
Mieszkancy[i].przedstawSie();
Mieszkancy[i].urodzony();
}
cout << endl;
}
int main(array ^args)
{
Osada LesnyDwor;
LesnyDwor.dodajMieszk(Osoba("Jan", "Kowalski", "Informatyk",
Data(20,5,1980)));
LesnyDwor.dodajMieszk(Osoba("Andrzej", "Nowak", "Fizyk",
Data(30,12,1985)));
LesnyDwor.dodajMieszk(Osoba("Karol", "Malinowski", "Informatyk",
Data(3,6,1977)));
LesnyDwor.dodajMieszk(Osoba("Anna", "Kowalska", "Biolog",
Data(18,7,1989)));
LesnyDwor.dodajMieszk(Osoba("Lukasz", "But", "Szewc"));
LesnyDwor.dodajMieszk(Osoba("Archimedes", "Liczydlo",
"Matematyk", Data(20,9,1966)));
LesnyDwor.spisMieszk();
system("pause");
return 0;
}
Plik nagłówkowy stdafx.h wymagany jako uzupełnienie
zaprezentowanego kodu powinien mieć postać zbliżoną do
następującej:
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#pragma once
// TODO: reference additional headers your program requires here
#include
#include
Wynik działania programu:
W Osadzie mieszka 6 osob:
1. (1) Jan Kowalski - zawod: Informatyk
urodzony: 1980-5-20
2. (2) Andrzej Nowak - zawod: Fizyk
urodzony: 1985-12-30
3. (3) Karol Malinowski - zawod: Informatyk
urodzony: 1977-6-3
4. (4) Anna Kowalska - zawod: Biolog
urodzony: 1989-7-18
5. (5) Lukasz But - zawod: Szewc
urodzony: xxxx-xx-xx
6. (6) Archimedes Liczydlo - zawod: Matematyk
urodzony: 1966-9-20
Aby kontynuować, naciśnij dowolny klawisz . . .


Wyszukiwarka

Podobne podstrony:
cw6 arkusz obliczeniowy przyklad
przykładowy test A
przykladowyJrkusz150UM[1] drukow
OEiM AiR Przykladowy Egzamin
Znaczenie korytarzy ekologicznych dla funkcjonowania obszarów chronionych na przykładzie Gorców
przykladowe zadania redoks
Ćwiczenie 14 przykład
6 6 Zagadnienie transportowe algorytm transportowy przykład 2
Przyklad5 csproj FileListAbsolute
Człowiek wobec przestrzeni Omów na przykładzie Sonetó~4DB
Przykladowe kolokwium 2
Załącznik 3 Przykłady ćwiczeń relaksacyjnych przy muzyce
Przyklad zarz
origin dopasowanie gausem na przykladzie wahadla matematycznego

więcej podobnych podstron