Programowanie Obiektowe



Pobieranie 78,19 Kb.
Data22.12.2017
Rozmiar78,19 Kb.

Programowanie Obiektowe – CPP

Zadania_4


  1. Napisać definicję klasy Kineskop o składowych prywatnych typu int: Przekatna i Rodzaj
    (0 - CRT, 1 - LCD) i posiadającą konstruktor dwuargumentowy oraz definicję klasy Telewizor o składowych Ekran typu Kineskop i Cena typu double. W klasie Telewizor zdefiniować konstruktor o trzech argumentach typu int, int, double (parametry kineskopu i cena) .






  1. Opracować program, w którym zdefiniowana jest klasa Romb posiadająca dwie składowe prywatne: BokA i Wysokosc typu double. Klasa powinna zawierać konstruktor dwuargumentowy i konstruktor bezargumentowy, funkcje dostępu do składowych prywatnych, a ponadto definicje operatorów % oraz & wykonujących operacje pomiędzy obiektami tej klasy a liczbami typu double:

  • wykonanie operacji r1 % x tworzy nowy obiekt rn klasy Romb taki, że
    rn.BokA = r1.BokA + x, rn.Wysokosc = x

  • wykonanie operacji r1 & x tworzy nowy obiekt rn klasy Romb taki, że
    rn.Wysokosc = r1.Wysokosc / x, (gdy po wykonaniu tej operacji
    powstanie wartość mniejsza od 1, to przyjąć rn.Wysokosc = 1),

rn.BokA = r1.BokA

W programie głównym należy wczytać (za pomocą operatorów strumieniowych) wartości składowych obiektu klasy Romb, sprawdzić czy są to liczby większe od zera, otworzyć obiekt rd, następnie wczytać wartość liczby x (sprawdzić czy jest dodatnia), utworzyć obiekty ra = td % x, rb = td & x i wyświetlić składowe obiektów ra i rb (za pomocą operatorów strumieniowych).




  1. Opracować program, w którym zdefiniowana jest klasa Zegarek o składowych: Marka, Rodzaj (mechaniczny / elektroniczny-analogowy / elektroniczny-cyfrowy) oraz Cena
    i który udostępnia następujące opcje:

  • 2 : wczytanie z klawiatury rodzaju zegarka, wyświetlenie z pliku Baza tych
    obiektów klasy Zegarek, które są podanego rodzaju,

  • 3: wczytanie z klawiatury ceny zegarka, wyświetlenie z pliku Baza tych
    obiektów klasy Zegarek, które mają cenę nie mniejszą od podanej,

W definicji klasy Zegarek należy przeciążyć operator > dla porównywania obiektu
z liczbą całkowitą oraz operatory strumieniowe dla zapisu/odczytu obiektów tej klasy (klawiatura, monitor ekranowy, pliki dyskowe).


  1. Opracować program, w którym zdefiniowana jest klasa Ksiazka o składowych: Tytuł, Jezyk (polski / obcy) oraz Cena i który udostępnia następujące opcje:

  • a : wprowadzenie danych nowej książki, utworzenie obiektu klasy Ksiazka
    i zapisanie go do pliku Ksiegarnia,

  • b: wczytanie z klawiatury ceny książki, wyświetlenie z pliku Ksiegarnia tych
    obiektów klasy Ksiazka, które mają cenę nie różniącą się od podanej o więcej niż
    ±5 zł,

  • c : wyprowadzenie wszystkich obiektów z pliku Ksiegarnia,

  • x : koniec programu.

W definicji klasy Ksiazka należy przeciążyć operator == dla porównywania obiektu
z liczbą całkowitą oraz operatory strumieniowe dla zapisu/odczytu obiektów tej klasy (klawiatura, monitor ekranowy, pliki dyskowe).



  1. Napisać definicję klasy Silnik o atrybutach prywatnych Moc typu double i Paliwo typu char* , konstruktorze dwuargumentowym i funkcjach udostępniających atrybuty do odczytu oraz definicję klasy Samochód o atrybutachch publicznych Naped typu Silnik i Cena typu int. W klasie Samochód zdefiniować konstruktor o trzech argumentach typu double, char*, int (parametry silnika i cena) . W programie głównym zdefiniować obiekt klasy Samochód podając dowolne parametry aktualne i wyprowadzić na monitor wartości atrybutów tego obiektu.






  1. Opracować program, w którym zdefiniowana jest klasa Elipsa posiadająca dwie składowe prywatne: SrednicaA i SrednicaB typu double. Klasa ta powinna zawierać konstruktor dwuargumentowy i konstruktor bezargumentowy, funkcje dostępu do składowych prywatnych, a ponadto definicje operatorów | oraz ^ wykonujących operacje pomiędzy obiektami tej klasy a liczbami typu double:

  • wykonanie operacji e1 | x tworzy nowy obiekt en klasy Elipsa taki, że
    en.SrednicaA = e1.SrednicaB + x,
    en.SrednicaB = x

  • wykonanie operacji e1 ^ x tworzy nowy obiekt en klasy Elipsa taki, że
    en.SrednicaB = e1.SrednicaA - x, (gdy po wykonaniu tej operacji
    powstanie wartość mniejsza od 0, to przyjąć en.SrednicaB = 1),

en.SrednicaA = x

W programie głównym należy wczytać wartości składowych obiektu klasy Elipsa, sprawdzić czy są to liczby większe od zera, otworzyć obiekt ed, następnie wczytać wartość liczby x (sprawdzić czy jest dodatnia), utworzyć obiekty ea = ed | x, eb = ed ^ x i wyświetlić składowe obiektów ea i eb .





  1. Opracować program, w którym zdefiniowana jest klasa Drzewo o składowych: Nazwa, Rodzaj (iglaste / liściaste) oraz Cena i który udostępnia następujące opcje:

  • a : wprowadzenie danych nowego drzewa, utworzenie obiektu klasy Drzewo
    i zapisanie go do pliku Las,

  • b : wczytanie z klawiatury rodzaju drzewa, wyświetlenie z pliku Las tych
    obiektów klasy Drzewo, które są podanego rodzaju,

  • c: wczytanie z klawiatury ceny drzewa, wyświetlenie z pliku Las tych
    obiektów klasy Drzewo, które mają cenę nie większą od podanej,

W definicji klasy Drzewo należy przeciążyć operator < dla porównywania obiektu
z liczbą całkowitą oraz operatory strumieniowe dla zapisu/odczytu obiektów tej klasy (klawiatura, monitor ekranowy, pliki dyskowe).



  1. Napisać definicję klasy Punkt o składowych prywatnych X , Y i Z typu double
    i konstruktorze trójargumentowym oraz definicję klasy Sfera o składowych Centrum
    typu Punkt i Promien typu double. W klasie Sfera zdefiniować konstruktor o czterech argumentach typu double (współrzędne centrum i promień) .






  1. Opracować program, w którym zdefiniowana jest klasa TrojkatRownoboczny posiadająca dwie składowe prywatne: BokAB i BokC typu double. Klasa ta powinna zawierać konstruktor dwuargumentowy i konstruktor bezargumentowy, funkcje dostępu do składowych prywatnych, a ponadto definicje operatorów * oraz / wykonujących operacje pomiędzy obiektami tej klasy a liczbami typu double:

  • wykonanie operacji t1 * x tworzy nowy obiekt tn klasy TrojkatRownoboczny taki, że
    tn.BokAB = t1.BokAB * x, tn.BokC = t1.BokC

  • wykonanie operacji t1 / x tworzy nowy obiekt tn klasy TrojkatRownoboczny
    taki, że
    tn.BokC = t1.BokC / x, (gdy po wykonaniu tej operacji powstanie wartość
    mniejsza od 1, to przyjąć tn.BokC = 1),

tn.BokAB = t1.BokAB

W programie głównym należy wczytać (za pomocą operatorów strumieniowych) wartości składowych obiektu klasy TrojkatRownoboczny, sprawdzić czy są to liczby większe od zera, otworzyć obiekt td, następnie wczytać wartość liczby x (sprawdzić czy jest dodatnia), utworzyć obiekty ta = td * x, tb = td / x i wyświetlić składowe obiektów ta i tb (za pomocą operatorów strumieniowych).



  1. Napisać definicję klasy Punkt o składowych prywatnych X i Y typu double
    i konstruktorze dwuargumentowym oraz definicję klasy Odcinek o składowych Początek
    i Koniec typu Punkt. W klasie Odcinek zdefiniować konstruktor o czterech argumentach typu double (współrzędne punktu początkowego i punktu końcowego).






  1. Opracować program, w którym zdefiniowana jest klasa Prostokat posiadająca dwie składowe prywatne: BokA i BokB typu double. Klasa ta powinna zawierać konstruktor dwuargumentowy i konstruktor bezargumentowy, funkcje dostępu do składowych prywatnych, a ponadto definicje operatorów + oraz – wykonujących operacje pomiędzy obiektami tej klasy a liczbami typu double:

  • wykonanie operacji p1 + x tworzy nowy obiekt pn klasy Prostokat taki, że
    pn.BokA = p1.BokA + 2x, pn.BokB = p1.BokB

  • wykonanie operacji p1 – x tworzy nowy obiekt pn klasy Prostokat taki, że
    pn.BokB = p1.BokB – x, (gdy po wykonaniu tej operacji powstanie wartość
    niewiększa od 0, to przyjąć pn.BokB = 1),

pn.BokA = p1.BokA

W programie głównym należy wczytać (za pomocą operatorów strumieniowych) wartości składowych obiektu klasy Prostokat, sprawdzić czy są to liczby większe od zera, otworzyć obiekt pd, następnie wczytać wartość liczby x (sprawdzić czy jest dodatnia), utworzyć obiekty pa = pd + x, pb = pd – x i wyświetlić składowe obiektów pa i pb


(za pomocą operatorów strumieniowych).


  1. Opracować program, w którym zdefiniowana jest klasa Komputer o składowych: Marka, PrzekatnaEkranu oraz Cena i który udostępnia następujące opcje:

  • 1 : wprowadzenie danych nowego Komputera, utworzenie obiektu klasy Komputer
    i zapisanie go do pliku Oferta,

  • 2 : wyświetlenie z pliku Oferta tych obiektów klasy Komputer, które
    mają cenę równą lub o co najwyżej ±250 zł różną od podanej wartości (wczytanej

z klawiatury)

  • 3 : wyprowadzenie wszystkich obiektów z pliku Oferta,

  • 0 : koniec programu.

W definicji klasy Komputer należy przeciążyć operator == dla porównywania obiektu
z liczbą całkowitą oraz operatory strumieniowe dla zapisu/odczytu obiektów tej klasy (klawiatura, monitor ekranowy, pliki dyskowe).



  1. Opracować program, który definiuje klasę Odcinki posiadającą:

  • dwie składowe prywatne typu double: Poczatek i Koniec,

  • funkcje udostępniające i ustalające wartości tych składowych,

  • funkcję obliczającą Długość odcinka.

Program główny tworzy 2 odcinki (na podstawie danych wczytanych z klawiatury)
i oblicza, czy jeden z odcinków zawarty jest w drugim odcinku.


  1. Zmodyfikować klasę Odcinki z zadania 13. przez dodanie konstruktora i destruktora. Konstruktor ma przyjmować jako argumenty wartości początku i końca odcinka i dodatkowo wyprowadzać tekst „Jestem odcinkiem od xx do yy.” . Destruktor wyprowadza tekst „Odcinek od xx do yy znika.” Program główny tworzy dynamicznie dwa odcinki (na podstawie danych odczytanych z klawiatury), oblicza jaką całkowitą liczbę razy odcinek I mieści się w odcinku II i następnie usuwa utworzone odcinki.




  1. Opracować program, który definiuje klasę LiczbaZespolona o składowych prywatnych Im oraz Re (typu double). Zdefiniować dla tej klasy 3 konstruktory:

  • bezargumentowy, nadający Im i Re wartość 0.0,

  • jednoargumentowy, nadający Im i Re taką samą wartość,

  • dwuargumentowy o argumentach będących wartościami Im i Re.

Program główny tworzy tablicę wskaźników LiczbZespolonych (100 elementów)
i umożliwia realizację następujących poleceń:

  • N : tworzy dynamicznie liczbę zespoloną i jej wskaźnik wpisuje do tablicy wskaźników (2 argumenty),

  • R : tworzy dynamicznie liczbę zespoloną i jej wskaźnik wpisuje do tablicy wskaźników (1 argument),

  • W : wyświetla wartość liczby zespolonej o podanym indeksie zapisanej w tablicy wskaźników,

  • + : oblicza sumę dwu liczb zespolonych, wpisuje wskaźnik liczby wynikowej do tablicy wskaźników i wyświetla indeks nowoutworzonej liczby,

  • – : oblicza różnicę dwu liczb zespolonych, wpisuje wskaźnik liczby wynikowej do tablicy wskaźników i wyświetla indeks nowoutworzonej liczby,

  • * : oblicza iloczyn dwu liczb zespolonych, wpisuje wskaźnik liczby wynikowej do tablicy wskaźników i wyświetla indeks nowoutworzonej liczby,

  • / : oblicza iloraz dwu liczb zespolonych, wpisuje wskaźnik liczby wynikowej do tablicy wskaźników i wyświetla indeks nowoutworzonej liczby,

  • K : kończy pracę programu.




  1. Opracować program prowadzący spis komputerów (max. 25 komputerów). Każdy komputer opisany jest za pomocą klasy zawierającej nazwę i cenę. Program realizuje polecenia umożliwiające:

  • R : wczytanie liczby komputerów i tablicy obiektów opisujących komputery z pliku dyskowego (zapytać o nazwę pliku),

  • N : wczytanie danych opisujących komputer i wprowadzenie ich do kolejnej pozycji
    tablicy obiektów,

  • W : wyświetlanie informacji o wszystkich komputerach,

  • Z : zapis liczby komputerów i tabeli obiektów do pliku dyskowego (zapytać o nazwę pliku),

K : zakończenie programu.

  1. Opracować program zawierający definicję klasy Punkt (składowe X i Y typu double) oraz klasy Kwadrat (składowe LewoGora typu Punkt i Bok typu double). W klasie Kwadrat zdefiniować przeciążone operatory, których argumentami są obiekty klasy Kwadrat:

+ wytwarza obiekt klasy Kwadrat, którego punkt LewoGora jest taki jak w lewym
argumencie, a Bok jest sumą długości boków z obu argumentów,

  • wytwarza obiekt klasy Kwadrat, którego punkt LewoGora jest taki, jak w prawym
    argumencie, a Bok jest różnicą długości boków z obu argumentów.

W programie głównym utworzyć dwa obiekty k1 i k2 klasy Kwadrat na podstawie danych wczytanych z klawiatury, wygenerować obiekty

ks1 = k1 + k2 ks2 = k2 + k1

kr1 = k1 – k2 kr2 = k2 – k1

i wyprowadzić na ekran monitora parametry wygenerowanych obiektów ks1, ks2, kr1, kr2.




  1. Opracować program ewidencyjny dla samochodów i ich właścicieli. W programie zdefiniować klasę Osoba o składowych Imie oraz Nazwisko (tablice jednowymiarowe po 16 znaków) i klasę Samochod o składowych Wlasciciel typu Osoba, Marka (tablica jednowymiarowa 16 znaków), MocSilnika typu double i Nadwozie typu int (1 – sedan,
    2 – hatchback, 3 – combi). W klasach Osoba i Samochod przeciążyć strumieniowe operatory wprowadzania i wyprowadzania danych dla klawiatury, monitora i plików dyskowych. W programie głównym należy utworzyć tablicę dla max 100 samochodów oraz zrealizować polecenia:

N – wczytanie do tablicy opisu nowego samochodu,

W – wyprowadzenie na monitor informacji o wszystkich samochodach,

Z – zapisanie aktualnej liczby samochodów i ich opisów w pliku dyskowym,

O – odczytanie aktualnej liczby samochodów i ich opisów z pliku dyskowego,



Q – koniec programu.



  1. Opracować program tablicowania funkcji



gdzie: x zmienna zespolona,
Y, Z stałe zespolone.

Zmienna x przyjmuje wartości p, p+k, p+2k, ... p+9k (p, k – liczby zespolone).



W programie zdefiniować klasę liczb zespolonych Z o składowych Re oraz Im typu double. W klasie Z zdefiniować przeciążone operatory arytmetyczne (+, –, *, / ) dla liczb zespolonych oraz przeciążone operatory strumieniowe dla wprowadzania i wyprowadzania wartości tych liczb. Po wczytaniu wartości liczb p, k oraz stałych Y, Z program wyprowadza 10 wartości funkcji F.


  1. Opracować program, w którym zdefiniowana jest klasa Osoba o składowych: Nazwisko
    oraz RokUrodzenia i który udostępnia następujące opcje:

  • 1 : wprowadzenie danych nowej osoby, utworzenie obiektu klasy Osoba
    i zapisanie go do pliku Wszyscy,

  • 2 : wprowadzenie danych osoby wzorcowej,

  • 3 : przepisanie z pliku Wszyscy do pliku Starsi tych obiektów klasy Osoba, które są większe od podanego wzorca; obiekt1 > obiekt2 gdy pierwsza litera nazwiska
    z obiektu1 jest na dalszej pozycji alfabetu, niż pierwsza litera nazwiska z obiektu2 (gdy pierwsze litery są równe to dodatkowo porównuje się składowe RokUrodzenia).

  • 4 : wyprowadzenie wszystkich obiektów ze wskazanego pliku (Wszyscy lub Starsi),

  • 0 : koniec programu.

W definicji klasy Osoba należy przeciążyć operator > oraz operatory strumieniowe dla zapisu/odczytu obiektów tej klasy (klawiatura, monitor ekranowy, pliki dyskowe).



  1. Opracować program, który umożliwia wycenę dań złożonych z kilku składników.
    W programie należy zdefiniować klasę Danie, której składowymi są nazwa dania oraz nazwy składników (max. 3) i klasę Skladnik, która zawiera nazwę składnika i jego cenę. Program udostępnia następujące opcje:

  • A : wczytanie obiektów klasy Danie z pliku dyskowego Menu i obiektów klasy
    Skladniki z pliku dyskowego Elementy do odpowiednich tablic obiektów (max. 15 dań, 25 składników),

  • B : wprowadzenie nowego dania do tablicy dań,

  • C : wprowadzenie nowego składnika do tablicy składników,

  • D : zmiana ceny wskazanego składnika,

  • E : obliczenie aktualnej ceny dania,

  • X : koniec programu i zapisanie obiektów do plików Menu i Elementy.

W klasie danie należy przeciążyć operator [ ] dla obliczenia ceny i-tego składnika. W obydwu klasach należy przeciążyć operatory strumieniowe dla zapisu/odczytu obiektów danej klasy (klawiatura, monitor ekranowy, pliki dyskowe).



  1. Opracować program, w którym zdefiniowana jest klasa Samochód o składowych: Marka, MocSilnika i który udostępnia następujące opcje:

  • a : wprowadzenie danych nowego samochodu, utworzenie obiektu klasy Samochód
    i zapisanie go do pliku Baza,

  • b : wprowadzenie danych samochodu wzorcowego,

  • c : przepisanie z pliku Baza do pliku Wybrane tych obiektów klasy Samochód, które
    są gorsze od podanego wzorca; obiekt1 < obiekt2 gdy marka obkiektu1 jest taka
    sama jak marka obiektu2 i gdy MocSilnika obiektu1 jest mniejsza od MocySilnika
    obiektu2 ,

  • d : wyprowadzenie wszystkich obiektów ze wskazanego pliku (Baza lub Wybrane),

  • x : koniec programu.

W definicji klasy Samochód należy przeciążyć operator < oraz operatory strumieniowe dla zapisu/odczytu obiektów tej klasy (klawiatura, monitor ekranowy, pliki dyskowe).


  1. Opracować program, w którym zdefiniowana jest klasa Telewizor o składowych: Marka, oraz Przekatna i który udostępnia następujące opcje:

  • 1 : wprowadzenie danych nowego telewizora, utworzenie obiektu klasy Telewizor
    i zapisanie go do pliku Oferta,

  • 2 : wyświetlenie z pliku Oferta tych obiektów klasy Telewizor, które
    mają przekątną ekranu równą lub o ±1 różną podanej wartości (wczytanej

z klawiatury)

  • 3 : wyprowadzenie wszystkich obiektów z pliku Oferta,

  • 0 : koniec programu.

W definicji klasy Telewizor należy przeciążyć operator == dla porównywania obiektu
z liczbą całkowitą oraz operatory strumieniowe dla zapisu/odczytu obiektów tej klasy (klawiatura, monitor ekranowy, pliki dyskowe).



  1. Zdefiniować klasę bazową Wielokat i dwie dziedziczące z niej klasy pochodne Prostokat i Trojkat. Do klas pochodnych wprowadzić odpowiednie składowe reprezentujące boki tych figur. W klasie bazowej zdefiniować abstrakcyjną funkcję wirtualną ObliczObwod i przeciążyć ją w klasach pochodnych. W programie głównym zadeklarować tablicę wskaźników obiektów klasy Wielokat (50 elementów) i zrealizować obsługę następujących opcji:

C - utworzenie nowego obiektu klasy Prostokat i wpisanie jego wskaźnika
do kolejnej pozycji tablicy,

T - utworzenie nowego obiektu klasy Trojkat i wpisanie jego wskaźnika


do kolejnej pozycji tablicy,

O - obliczenie i wyświetlenie sumy obwodów wszystkich figur zawartych w tablicy,

R - odczytanie danych opisujących Wielokąty z pliku dyskowego (zapytać o nazwę
pliku),

Z - zapis danych opisujących Wielokąty do pliku dyskowego (zapytać o nazwę pliku),

K - koniec programu.



  1. Zdefiniować hierarchię klas, która za pomocą mechanizmu dziedziczenia reprezentuje zależności zachodzące pomiędzy następującymi obiektami świata rzeczywistego: Eletrownie_Cieplne, Elektrownie_Szczytowo_Pompowe, Elekrownie_Węglowe, Elektrownie_Wodne, Elektrownie, Elektrownie_Jądrowe. Dla wybranych klas (min 3) wprowadzić składową charakterystyczną oraz konstruktor bezargumentowy, który pyta o tę składową i wczytuje odpowiednią wartość.



  1. Zdefiniować liniową hierarchię klas Pracownik, Kierownik, Dyrektor i do każdej z tych klas wprowadzić składowe ją charakteryzujące. W każdej klasie zdefiniować funkcję wirtualną DaneOsobowe, która wyświetla opis danych charakterystycznych klasy i wywołuje tę samą funkcję wirtualną DaneOsobowe ze swojej klasy bazowej dla wyprowadzenia dalszego ciągu danych.



  1. Zdefiniować hierarchię klas, która za pomocą mechanizmu dziedziczenia reprezentuje zależności zachodzące pomiędzy następującymi obiektami świata rzeczywistego: Pojazdy_Kołowe, Pojazdy_Szynowe, Pojazdy, Pojazdy_Drogowe, Samochody, Wagony, Wózki, Lokomotywy. Dla wybranych klas (min 3) wprowadzić składową charakterystyczną oraz konstruktor bezargumentowy, który pyta o tę składową i wczytuje odpowiednią wartość.




  1. Zdefiniować klasę bazową Liczba i dwie dziedziczące z niej klasy pochodne Rzeczywista i Zespolona. Do klas pochodnych wprowadzić odpowiednie składowe reprezentujące wartości tych liczb. W klasie bazowej zdefiniować abstrakcyjne funkcje wirtualne Wczytaj, Wyświetl oraz ObliczKwadrat i przeciążyć je w klasach pochodnych.
    W programie głównym zadeklarować tablicę wskaźników obiektów klasy Liczba (15 elementów) i zrealizować obsługę następujących opcji:

R - utworzenie nowego obiektu klasy Rzeczywista i wpisanie jego wskaźnika
do kolejnej pozycji tablicy,

Z - utworzenie nowego obiektu klasy Zespolona i wpisanie jego wskaźnika


do kolejnej pozycji tablicy,

W- wyświetlenie wszystkich liczb wskazanych w tablicy,

K - obliczenie i wyświetlenie kwadratów kolejnych liczb wskazanych w tablicy,

Q - koniec programu.





  1. Zdefiniować hierarchię klas, która za pomocą mechanizmu dziedziczenia reprezentuje zależności zachodzące pomiędzy następującymi obiektami świata rzeczywistego: Pamięć_RAM, Pamięci, Pamięć_EPROM, Pamięć_Tylko_Do_Odczytu, Pamięć_FLASH, Pamięć_Do_Zapisu_Odczytu, Pamięć_PROM. Dla wybranych klas (min 3) wprowadzić składową charakterystyczną oraz konstruktor bezargumentowy, który pyta o tę składową
    i wczytuje odpowiednią wartość.




  1. Zdefiniować liniową hierarchię klas Komputer, Osobisty, Laptop i do każdej z tych klas wprowadzić składowe ją charakteryzujące. W każdej klasie zdefiniować funkcję wirtualną Opis, która wyświetla opis cech charakterystycznych klasy i wywołuje tę samą funkcję wirtualną Opis ze swojej klasy bazowej dla wyprowadzenia dalszego ciągu opisu.



  1. Zdefiniować klasę reprezentująca dowolny towar, która zawiera następujące składowe:

  • Dane składowe niestatyczne prywatne: Producent, LiczbaSztuk, Cena

  • Dane statyczne prywatne: Razem (przechowuje łączną wartość wszystkich towarów)

  • Funkcje składowe niestatyczne publiczne:

konstruktor dwuargumentowy (ustala Producenta, LiczbęSztuk i Cenę),

Dostawa (argumentem jest liczba dostarczonych sztuk,


aktualizuje tabelę towarów i Razem ),

Sprzedaż (argumentem jest liczba sprzedanych sztuk,


aktualizuje tabelę towarów i Razem ),

Wykonawca (udostępnia nazwę Producenta),

Zapas (udostępnia liczbę sztuk).


  • Funkcja statyczna publiczna: Magazyn (odczytuje wartość Razem).

Program główny tworzy tablicę obiektów reprezentujących towary różnych producentów
znajdujące się w magazynie i udostępnia następujące opcje:

N – wprowadza do tabeli nowy obiekt opisujący Producenta, LiczbęSztuk i Cenę,

W – wyprowadza zawartość tabeli towarów dla podanego producenta

D – dostawa towaru podanego producenta,

S – sprzedaż towaru podanego producenta,

M – odczytanie aktualnej wartości wszystkich towarów w magazynie,

K – koniec programu



  1. Zdefiniować klasę Samolot zawierającą następujące składowe:

  • dane niestatyczne prywatne:

LiczbaPasazerow

LiczbaZalogi

TypProducent


  • dane statyczne prywatne

RazemPasazerow

RazemZalogi



  • funkcje niestatyczne publiczne

konstruktor bezargumentowy (czytuje wartości składowych niestatycznych
i aktualizuje składowe statyczne)

destruktor (aktualizuje składowe statyczne)

MaxPasazerow (odczytuje składową RazemPasazerow)

MaxZalogi (odczytuje składową RazemZalogi)





  1. Zdefiniować klasę StatekPasazerski zawierającą następujące składowe:

  • dane niestatyczne prywatne:

LiczbaPasazerow

LiczbaZalogi

TypProducent


  • dane statyczne prywatne

RazemPasazerow

RazemZalogi



  • funkcje niestatyczne publiczne

konstruktor bezargumentowy (czytuje wartości składowych niestatycznych
i aktualizuje składowe statyczne)

destruktor (aktualizuje składowe statyczne)

MaxPasazerow (odczytuje składową RazemPasazerow)

MaxZalogi (odczytuje składową RazemZalogi)

Program główny umożliwia:


  • tworzenie nowych obiektów klasy StatekPasażerski i wpisywanie ich wskaźników do tablicy,

  • usuwanie obiektów klasy StatekPasażerski,

  • wyświetlanie wartości składowych statycznych.


  1. Zdefiniować klasę StatekHandlowy zawierającą następujące składowe:

  • dane niestatyczne prywatne:

Tonaz

LiczbaZalogi

TypProducent


  • dane statyczne prywatne

RazemTonaz

RazemZalogi



  • funkcje niestatyczne publiczne

konstruktor bezargumentowy (czytuje wartości składowych niestatycznych
i aktualizuje składowe statyczne)

destruktor (aktualizuje składowe statyczne)

MaxTonaz (odczytuje składową RazemTonaz)

MaxZalogi (odczytuje składową RazemZalogi)





  1. Zdefiniować klasę Uczelnia zawierającą następujące składowe:

  • dane niestatyczne prywatne:

LiczbaSudentow

LiczbaNauczycieliAkademickich

LiczbaPozostalychPracownikow

NazwaAdres



  • dane statyczne prywatne

RazemStudentow

RazemWszystkichPracownikow



  • funkcje niestatyczne publiczne

konstruktor bezargumentowy (czytuje wartości składowych niestatycznych
i aktualizuje składowe statyczne)

destruktor (aktualizuje składowe statyczne)



OgolemPracownikow (odczytuje składową RazemWszystkichPracownikow)

OgolemStudentow (odczytuje składową RazemStudentow)



©operacji.org 2017
wyślij wiadomość

    Strona główna