Praca domowa
Zadanie 1
Zdefiniuj klas臋 Kolo zawieraj膮c膮:
jako prywatne:
痧 餻romie艅 (typu float)
痧 餶olor wype艂nienia (typu int)
痧 餶onstruktor bezparametrowy inicjuj膮cy pole powierzchni ko艂a o dowolnie przyj臋tej warto艣ci;
痧 餶onstruktor z parametrami (promie艅 ko艂a i kolor wype艂nienia)
a tak偶e poni偶sze funkcje/metody w cz臋艣ci publicznej:
痧 餖icz_Pow(), do liczenia pola powierzchni ko艂a
痧 餟staw_Prom(..), do ustawiania warto艣ci promienia
痧 餟staw_Kol(..), do ustawiania koloru wype艂nienia ko艂a
i w ko艅cu, funkcj臋 zaprzyjaznion膮 Porow_Kola(Kolo A, Kolo B), por贸wnuj膮c膮, czy dwa ko艂a
maj膮 to samo pole powierzchni i takie same kolory.
Uruchom w programie g艂贸wnym sekwencj臋 instrukcji dla dw贸ch obiekt贸w K1, K2: konstruktor bez-
parametrowy, por贸wnanie p贸l, ustawienie tego samego koloru, por贸wnanie p贸l, ustawienie r贸偶nych
kolor贸w, por贸wnanie p贸l. U偶yj na ko艅cu konstruktora z parametrami dla obiekt贸w K3, K4 i poka偶
r贸偶ne warianty ich por贸wnania.
Uwaga:
Wy偶sz膮 ocen臋 uzyska rozwi膮zanie z udzia艂em wskaznik贸w na obiekty oraz przydzielanie/zwalnianie
pami臋ci dynamicznej.
Zadanie 2
Utw贸rz klas臋 Plik. Klasa powinna zawiera膰:
pole prywatne - wskaznik na zmienn膮 plikow膮 typu FILE
konstruktor z parametrem otwieraj膮cy plik dyskowy o podanej nazwie - wskaznik na nazw臋
destruktor zamykaj膮cy plik dyskowy
Uruchom program z obs艂ug膮 obiektow膮 pliku.
Zadanie 3
Wykonan膮 w zadaniu 2 klas臋 Plik rozbuduj o funkcje:
- konstruktor przeci膮偶ony tworz膮cy nowy plik dyskowy,
- funkcj臋 operatorow膮 >>, tak by mo偶na by艂o wprowadza膰 dane z klawiatury do nowego pliku
dyskowego,
- funkcj臋 operatorow膮 =, tak by mo偶na by艂o przypisa膰 zawarto艣膰 pliku
- funkcj臋 operatorow膮 +, tak by mo偶na by艂o dodawa膰 zawarto艣ci dw贸ch plik贸w, by wraz z operato-
rem = otrzymamy mo偶liwo艣膰 dzia艂ania:
int main()
{ plik plik1( pl1.txt ), plik2( p12.txt , plik3( pl3.txt );
plik1 = plik2 + plik3;
return 0;
}
Zadanie 4
Zdefiniuj operator dwuargumentowy + obliczaj膮cy sum臋 dw贸ch wektor贸w i operator dwuargumen-
towy * obliczaj膮cy iloczyn skalarny dw贸ch wektor贸w o przyj臋tym z g贸ry wymiarze. Wyznacz przy
tej okazji d艂ugo艣膰 wektora. Operatory maj膮 by膰 przeci膮偶one w postaci:
funkcji zaprzyjaznionej
metody klasy
Zadanie 5
Zbuduj klas臋 Wektor reprezentuj膮c膮 jednowymiarow膮 tablic臋 liczb typu float. Klasa niech b臋dzie
wyposa偶ona w:
prywatny wskaznik p na tablic臋
konstruktor z parametrem typu int, m贸wi膮cy o rozmiarze tablicy alokowanej dynamicznej przez
polecenie new
1
destruktor zwalniaj膮cy pami臋膰
przeci膮偶ony operator >> jako funkcja/metoda klasy do wstawiania do tablicy liczb z klawiatury
przeci膮偶ony operator << jako funkcja/metoda klasy do wy艣wietlania zawarto艣ci wektora na ekra-
nie
Przydziel zadaniu pami臋膰 dynamiczn膮, poka偶 spos贸b u偶ycia w programie.
Zadanie 6
Zbuduj szablon funkcji og贸lnej zdolnej do wyboru elementu minimalnego z tablicy 10 liczb dowol-
nych typ贸w (int, long int, float, double itp). Dokonaj dynamicznego przydzia艂u pami臋ci dla powo艂y-
wanych tablic w programie g艂贸wnym. Wype艂nij tablic臋 losowymi liczbami stosuj膮c funkcj臋 ran-
dom(..), ujawnij jej warto艣ci i zademonstruj konkretyzacj臋 szablonu (np. dla int, float) z wyborem
elementu minimalnego.
Zadanie 7
Zbuduj konstruktory dla klas A i B, je艣li powi膮zane s膮 one widocznym poni偶ej sposobem dziedzicze-
nia
//klasa A
class A
{ public:
int num_int;
public:
.......... tu miejsce na konstruktor A
void Show_Data()
{cout<<"Liczba ca艂kowita: "<
};
//klasa pochodna B
class B:public A
{ char tekst[20];
public:
.......... tu miejsce na konstruktor B
void Pokaz_Dane()
{cout<<"Tekstem jest: "<};
void main(void)
{ A ob_A(1);
B ob(2,"Ja艣 Fasola");
C ob_(3, Benny Hill );
A.Pokaz_Dane();
B.Pokaz_Dane ();
C.Pokaz_Dane ();
}
Zadanie 8
Wzoruj膮c si臋 na za艂膮czonym rysunku, na kt贸rym w widocznej hierarchii klasa moneta pochodzi od
klasy pieniadz, zbuduj now膮 klas臋 pochodn膮 banknot. Zak艂ada si臋, 偶e wyr贸偶nikiem monety jest licz-
ba stop贸w z jakich jest odlana (np. 2z艂, 5z艂 z dw贸ch stop贸w, 1gr...1z艂 z jednego), natomiast wyr贸偶ni-
kiem banknotu jest znak dotykowy dla niewidomych (10z艂-ko艂o, 20z艂 romb, 50z艂-kwadrat, 100z艂-
minus, 200z艂 plus), kt贸re zadeklarowano jako typ wyliczeniowy. Utw贸rz kilka obiekt贸w popraw-
nych dla bie偶膮cej polskiej waluty i wy艣wietl ich dane na ekranie, jak np. Moneta ZL_1(1), ZL_2(2),
GR_10(1); Banknot ZL_100(100, plus) itd.
Pieni膮dz
warto艣膰
Moneta Banknote
liczba stop贸w figura dotykowa
2
Zadanie 9
Co nale偶y zmieni膰 w poni偶szym kodzie, aby program wykona艂 si臋 bez b艂臋du?
//klasa bazowa A
{ private:
int num_int;
public:
void Ustaw_Dane(int x)
{num_int=x;}
void Pokaz_Dane()
{cout<<"Liczba ca艂kowita: "<}
//klasa pochodna B
class B:private A
{ private:
char tekst[20];
public:
void Ustaw_Dane(int x,char *txt)
{num_int=x; strcpy(tekst,txt);}
void Pokaz_Dane()
{cout<<"Tekstem jest: "<};
int main (void)
{ A ob_A; B ob_B;
A.Ustaw_Dane(1); A.Pokaz_Dane();
B. Ustaw_Dane (2,"Cokolwiek, co jest tekstowe");B. Pokaz_Dane ();
system("pause");
return 0;
}
Zadanie 10
Rozwa偶 klasy dziedzicz膮ce w spos贸b pokazany na rysunku obok
class PoweredDevice
{
};
class Scanner: public PoweredDevice
{
};
class Printer: public PoweredDevice
{
};
class Copier: public Scanner, public Printer
{
};
Wyposa偶 klasy w oszcz臋dne konstruktory ograniczone tylko do zamieszczenia wydruku Jestem
..... , gdzie ...... oznacza nazw臋 urz膮dzenia. U偶yj tych klas w programie
int main(void)
{ Copier Ksero;
return 0;
}
co poskutkuje wydrukiem
PoweredDevice:
Scanner:
PoweredDevice:
Printer:
Co nale偶y zrobi膰, aby wydruk PoweredDevice: pojawi艂 si臋 tylko raz w tym samym kontek艣cie u偶y-
cia?
3
Wyszukiwarka
Podobne podstrony:
praca domowa MENUM 18 12 2013 06 51
Praca domowa 4 OgarnijTemat com
praca domowa cw 3
praca domowa 1
Praca domowa 1(1) OgarnijTemat com
Java praca domowa
Praca domowa
MIB Mat Finansowa 2016 zadania praca domowa nr 2
Rozwi膮zana praca domowa 13
praca domowa 膰w 1
艁ysienie praca domowa
PSYG lab Praca Domowa
MSS Praca domowa nr 1
Java praca domowa
wi臋cej podobnych podstron