Programowanie Obiektowe – C#
Zadania_7
-
Opracować program, który zawiera deklarację tablicy dwuwymiarowej TT posiadającej N * M elementów typu double.Wartości N (liczba wierszy) i M (liczba kolumn) są wprowadzane z klawiatury. Program wczytuje wartości wszystkich elementów tej tablicy (kolejno wierszami) i następnie wyprowadza te elementy odwracając kolejność elementów w każdej z kolumn.
1 2
3 4
5 6
5 6
3 4
1 2
-
Opracować program zawierający definicję klasy Tekst, która zawiera składową prywatną napis typu string. W klasie tej zdefiniować 2 konstruktory:
-
bezargumentowy : nadaje składowej napis wartość ".",
-
jednoargumentowy : argument ma typ string : przypisać go
składowej napis,
oraz właściwość Napis umożliwiającą odczyt składowej napis oraz zapis nowej
wartości tej składowej, gdy ta nowa wartość ma przynajmniej 3 znaki.
W programie głównym należy utworzyć dwa obiekty klasy Tekst. Obiekt T1 za pomocą konstruktora bezargumentowego, obiekt T2 za pomocą konstruktora jednoargumentowego - argumentem ma być słowo "Polewka". Następnie program zmienia wartość składowej napis obiektu T1 na "Kapuśniak", a obiektu T2 na "OK", po czym wyprowadza na monitor wartości składowych napis obu tych obiektów.
-
Opracować program, który zawiera definicję klasy Beczka o składowych prywatnych Pojemnosc i Zawartosc (liczby całkowite) . W klasie tej zdefiniować konstruktor dwuargumentowy oraz przeciążyć operatory + i * .
-
Argumentami operatora + jest obiekt klasy Beczka i liczba całkowita. Wykonanie operatora polega na zwiększeniu wartości składowej Zawartosc o podaną liczbę całkowitą, o ile suma tych dwu wartości nie przekracza wartości składowej Pojemnosc (w tym przypadku wynikiem operatora jest 0). W przeciwnym razie wartość składowej Zawartosc ma się stać równa wartości składowej Pojemnosc, a wynikiem operatora jest ilość płynu, która nie zmieściła się w beczce.
-
Argumentami operatora * są dwa obiekty klasy Beczka - wynikiem jest wartość true, gdy wartość składowej Zawartosc lewego argumentu jest większa lub równa wartości składowej Zawartosc prawego argumentu. W przeciwnym przypadku wynikiem jest false.
W programie głównym utworzyć dwa obiekty klasy beczka: B1 o składowych (1000, 250) i B2 o składowych (1500, 100). Następnie (stosując zdefiniowane operatory) zwiększyć Zawartosc beczki B1 o 850, beczki B2 o 400 i sprawdzić, która beczka ma większą Zawartosc.
-
Opracować program, który wyznacza uporządkowany w kolejności malejącej histogram występowania liter A - Z w tekście wprowadzonym z klawiatury. W odczytywanym tekście zamienić małe litery na duże. Zastosować kolekcje Dictionary i SortedList.
-
Plik Dane.txt zawiera ciąg liczb całkowitych - każda liczba zapisana jest w oddzielnej linii. Opracować program, który odczytuje z pliku dyskowego Dane.txt kolejne liczby i wpisuje do pliku Dodatnie.txt tylko te z nich, które maja wartości większe od 0.
-
Zdefiniować następującą hierarchię klas.
PojazdSilnikowy
PojazdKolowy
SamochodOsobowy
Klasa PojazdSilnikowy zawiera składową dziedziczoną Moc, klasa PojazdKolowy składową dziedziczoną LiczbaKol, klasa SamochodOsobowy składową LiczbaPasazerow. Każda klasa posiada konstruktor o odpowiedniej liczbie argumentów, który dla klas pochodnych wywołuje konstruktor swojej klasy bazowej. W takiej hierarchii klas zdefiniować funkcję wirtualną Pokaz, która w klasie PojazdSilnikowy wyprowadza na monitor wartość składowej Moc, a w klasach pochodnych zawiera wywołanie funkcji z klasy bazowej i wyprowadzenie składowej specyficznej dla danej klasy. W programie głównym zadeklarować tablicę 12 obiektów klasy PojazdSilnikowy i wpisać do niej na dowolne pozycje kilka przykładowych obiektów klas znajdujących się w hierarchii dziedziczenia. Zakładając, że tablica ta jest w dowolny sposób wypełniona referencjami obiektów wymienionych klas wykonać dla każdego elementu tablicy funkcję Pokaz.
-
Opracować program prowadzący spis samochodów (max. 125 samochodów). Każdy samochód opisany jest za pomocą obiektu klasy zawierającej markę, rok_produkcji i cenę samochodu (składowe prywatne). Dostęp do tych składowych prywatnych umożliwiają właściwości. Program realizuje następujące polecenia:
-
R : wczytanie liczby samochodów i tablicy obiektów opisujących samochody z pliku dyskowego Baza.txt,
-
N : wczytanie danych opisujących samochód z konsoli i wprowadzenie ich do kolejnej pozycji tablicy obiektów,
-
W : wyświetlanie informacji o wszystkich samochodach,
-
Z : zapis liczby samochodów i tabeli obiektów do pliku dyskowego Baza.txt,
-
K : zakończenie programu.
Do obsługi opcji zastosować kolekcję Dictionary.
-
Opracować program, który zawiera definicję klasy Drukarka o prywatnych składowych Kolor (typu bool) i PrędkoscDruku (typu double). Składowe te należy udostępnić za pomocą właściwości - dla składowej Kolor właściwość tylko do odczytu, dla składowej PrędkośćDruku sprawdzać, czy nowa wartośc tej składowej znajduje się w przedziale [1,100]. Klasa Drukarka ma zawierać konstruktor dwuargumentowy. W klasie tej zrealizować interfejs IComparable dla porównywania obiektów klasy Drukarka. Porównanie to ma przebiegać następująco:
-
drukarka kolorowa jest zawsze lepsza (większa) od czarno-białej,
-
gdy dwie drukarki mają taką samą składową Kolor, to porównuje się prędkości druku (im większa tym lepsza).
W programie głównym utworzyć kolekcję danych List, wpisać do niej kilka przykładowych obiektów klasy Drukarka, posortować te obiekty i wyprowadzić listę posortowanych obiektów.
-
Plik wejściowy zawiera ciąg liczb całkowitych oddzielonych spacjami. Opracować program, który z takiego pliku wejściowego (zapytać o nazwę) przepisuje do pliku wyjściowego (też zapytać o nazwę) tylko te liczby całkowite, które są większe od 137.
-
Sortowanie wyrazów
Opracować program, który wczytuje wyrazy z pliku (zapytać o nazwę pliku), a następnie sortuje je alfabetycznie. Wyrazy rozpoczynające się na tę samą literę powinny zostać posortowane od najkrótszego do najdłuższego. Posortowane wyrazy należy zapisać do pliku wynikowego (zapytać o nazwę pliku).
-
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 dopisanie 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 na konsolę wszystkich obiektów ze wskazanego pliku (Wszyscy
lub Starsi),
-
0 : koniec programu.
W definicji klasy Osoba należy przeciążyć operator > .
-
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 ±3 różną podanej wartości
(wczytanej z klawiatury),
-
3 : wyprowadzenie wszystkich obiektów z pliku Oferta,
-
0 : koniec programu.
-
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 (zrealizować interfejs IComprable),
-
d : wyprowadzenie wszystkich obiektów ze wskazanego pliku (Baza lub Wybrane),
-
x : koniec programu.
|