• Nie Znaleziono Wyników

Projekty zaliczeniowe z obiektówki

N/A
N/A
Protected

Academic year: 2021

Share "Projekty zaliczeniowe z obiektówki"

Copied!
7
0
0

Pełen tekst

(1)

Projekty zaliczeniowe z obiektówki

25 maja 2012

1 Przykład klas:

Wiedząc, że deklarowanie typu rekordowego w języku C/ C++ wygląda następu- jąco:

#include <cstdlib>

#include <iostream>

#include <stdlib.h>

#define PI 3.14 using namespace std;

class Kwadrat

//Klasa Kwadrat {

public:

Kwadrat();

Kwadrat( float bok );

void wypiszPowierzchnie();

private:

float zmienna_bok;

};

Kwadrat::Kwadrat() : zmienna_bok(0) //Konstruktory dla kwadratu {

}

Kwadrat::Kwadrat(float bok) : zmienna_bok(bok) {

}

void Kwadrat::wypiszPowierzchnie() {

(2)

cout << "\nPole kwadratu o boku " << zmienna_bok << " wynosi: "

<< zmienna_bok * zmienna_bok << endl;

cout << "Natomiast obwod wynosi: " << 4 * zmienna_bok << endl;

cout << endl;

}

/********************************************/

//Klasa Prostokat class Prostokat

{

public:

Prostokat();

Prostokat( float bok_1, float bok_2 );

void wypiszPowierzchnie();

private:

float zmienna_bok_1;

float zmienna_bok_2;

};

Prostokat::Prostokat() : zmienna_bok_1(0), zmienna_bok_2(0) //Konstruktory dla prostokata

{ }

Prostokat::Prostokat(float bok_1, float bok_2) : zmienna_bok_1(bok_1), zmienna_bok_2(bok_2)

{ }

void Prostokat::wypiszPowierzchnie() {

cout << "\nPole Prostokata o bokach " << zmienna_bok_1 << ", "

<< zmienna_bok_2<< " wynosi: " << zmienna_bok_1 * zmienna_bok_2 << endl;

cout << "Natomiast Obwod wynosi: "

<< ( 2 * zmienna_bok_1 ) + ( 2 * zmienna_bok_2 ) << endl;

cout << endl;

}

/********************************************/

//Klasa Kolo class Kolo

{

public:

(3)

Kolo();

Kolo( float promien);

void wypiszPowierzchnie();

private:

float zmienna_promien;

};

Kolo::Kolo() : zmienna_promien(0) //Konstruktory dla kola {

}

Kolo::Kolo(float promien) : zmienna_promien(promien) {

}

void Kolo::wypiszPowierzchnie() {

cout << "\nPole kola o promieniu " << zmienna_promien << " wynosi: "

<< PI * zmienna_promien * zmienna_promien << endl;

cout << "Natomiast Obwod wynosi: " << 2 * PI * zmienna_promien << endl;

cout << endl;

}

/********************************************/

void wyswietl_menu();

void czysc_bufor();

void oblicz_kwadrat();

void oblicz_prostokat();

void oblicz_kolo();

int main() {

char klawisz;

do {

wyswietl_menu();

cin >> klawisz;

switch( klawisz ) {

(4)

case ’1’ : oblicz_kwadrat();

break;

case ’2’ : oblicz_prostokat();

break;

case ’3’ : oblicz_kolo();

break;

default : if( klawisz != ’q’ ) putchar( ’\a’ );

break;

} }

while ( klawisz != ’q’ );

return EXIT_SUCCESS;

}

/*******************************************/

//Funkcja wyswietl menu void wyswietl_menu()

{

system("cls");

cout << "Obliczam parametry figur plaskich..." << endl;

cout << endl;

cout << "1. Kwadrat \n2. Prostokat \n3. Kolo";

cout << "\n\nWybierz numer figury lub (q)uit aby zakonczyc: ";

}

/*******************************************/

void oblicz_kwadrat()

//Funkcja oblicz dla kwadratu {

system("cls");

float bok;

cout << "Obliczenia dla kwadratu" << endl;

cout << "Podaj dlugosc boku: "; cin >> bok;

Kwadrat kwadratura(bok);

kwadratura.wypiszPowierzchnie();

system("PAUSE");

}

/*******************************************/

void oblicz_prostokat()

//Funkcja oblicz dla kwadratu {

(5)

system("cls");

float bok_1, bok_2;

cout << "Obliczenia dla prostokata" << endl;

cout << "Podaj dlugosc pierwszego boku: "; cin >> bok_1;

cout << "Podaj dlugosc drugiego boku: "; cin >> bok_2;

Prostokat Prostokatowanie(bok_1, bok_2);

Prostokatowanie.wypiszPowierzchnie();

system("PAUSE");

}

/*******************************************/

//Funkcja oblicz dla kola void oblicz_kolo()

{

system("cls");

float promien;

cout << "Obliczenia dla kola" << endl;

cout << "Podaj promien kola: "; cin >> promien;

Kolo Kolowanie(promien);

Kolowanie.wypiszPowierzchnie();

system("PAUSE");

}

/*******************************************/

2 Zadanie do samodzielnego wykonania

Zbuduj hierarchię klas dla pojęć i obiektów określonych w jednym z poniższych punktów. Należy zidentyfikować odpowiednie klasy, określić, które klasy są pochod- nymi, jaka jest nadrzędna klasa w hierarchii.

Dla każdej klasy zaproponuj przykładowe pola (oraz funkcje składowe) oraz zdefiniuj:

• konstruktor domyślny,

• konstruktor ogólny,

• konstruktor rzutujący,

• przeciążony operator przypisania.

(6)

W każdej klasie powinna znaleźć się również funkcja putClassN ame wyprowadza- jąca do strumienia cout nazwę klasy. Uwaga, należy zbudować hierarchię klas tak, by odwołanie:

$Klasa\_bazowa * p$;

$p = \and jakiś\_obiekt\_klasy\_pochodnej;$

p->putClassName();

spowodowało wyprowadzenie do cout nazwy klasy obiektu wskazywanego przez p, a nie nazwę klasy Klasa bazowa. Projekt na być oddany w wersji papierowej, ma zwierać wydruk hierarchii klas oraz prostego programu pokazującego sposób ich wykorzystania. Do projektu powinien zostać dołączony kod źródłowy (powinien się zmieścić na dyskietce). Uwaga: w niektórych przypadkach może występować dziedziczenie wielobazowe. Lista dziedzin, dla których należy zaprojektować odpowiednią hierarchię klas:

1. Rower, hulajnoga, motorower, motocykl, samochód, ciężarówka, autobus.

2. Mucha, ptak, lotnia, śmigłowiec, samolot, bombowiec, samolot pasażerski.

3. Muzyka klasyczna, jazz, jazz nowoczesny, jazz nowoorleański, rock, heavy metal, punk rock, pop, techno, drum’n’bass.

4. Woda mineralna gazowana, niegazowana, piwo, piwo ciemne, piwo jasne, sok, napój gazowany i niegazowany, wino, szampan, żubrówka.

5. Silnik spalinowy, silnik elektryczny, silnik czterosuwowy, silnik dwusu- wowy, silnik Wankla, silnik hybrydowy.

6. Narta zjazdowa, narta slalomowa, narta gigantowa, narta biegowa, narta do skoków, narta wodna.

7. Zwierze mięsożerne, nie mięsożerne, ssak, ryba, owad, wieloryb, łosoś, mrówka, lew, jeleń.

8. Pracownik etatowy, pracownik kontraktowy, osoba współpracująca, peł- noetatowiec, półetatowiec.

9. Komputer PC, stacja robocza, komputer przenośny, palmtop, superkom- puter, serwer sieciowy.

10. Łódka rybacka, kuter rybacki, łódź podwodna, ścigacz, prom, kuter tor- pedowy, pancernik.

11. Proza, poezja, epika, liryka, felieton, reportaż, fraszka, opowiadanie, powieść.

12. Rower górski, rower dowhhill, rower enduro, rower trekkingowy, rower szosowy, rower crossowy.

13. Lekkoatleta, piłkarz, kolarz, koszykarz, biegacz, dyskobol, oszczepnik, za- paśnik, karateka.

(7)

14. Młotek, wiertarka, pilarka, kleszcze, śrubokręt, pilnik, piła, pędzel, sz- pachla, kielnia.

Cytaty

Powiązane dokumenty

Korzystając z programu komputerowego zapoznać się z tworzeniem grup punktowych poprzez wybór trzech elementów symetrii, które będą poprawnymi generatorami danej grupy..

Dostarcza ilość bajtów faktycznie wczytanych (koniec strumienia mógł zostać napotkany przed wczytaniem count bajtów) lub –1 jeśli od razu napotkano koniec strumienia i żaden

Metoda klasowa: Mają dostęp do całej ekstensji, a zatem do wszystkich obiektów należących do danej klasy. Mogą na nich operować, ale nie muszą: może

Proszę o zapoznanie się z zagadnieniami i materiałami, które znajdują się w zamieszczonych poniżej linkach. Układy

Djilas cały swój wysiłek koncentruje na uzasadnienie tezy mówiącej, że biurokracja radziecka jest odrębną klasą i nieuchronnie stać się musi grabarzem państwa

Żeby sprawdzić, czy słowo jest postaci ww R w można policzyć jego długość (musi to być liczba postaci 3k) a następnie użyć 3 liczników zmieniających się odpowiednio od 1 do

W podobny sposób jak uzyskaliśmy pochodne drugiego i trzeciego rzędu poprzez dwu- i trzykrotne różniczkowanie funkcji, możemy zdefiniować 1 pochodną dowolnego rzędu 2 naturalnego

[r]