Professional Documents
Culture Documents
Laboratorium
Zasadniczym elementem praktycznym laboratorium jest zadanie indywidualne o charakterze
projektu. Zadanie jest wykonywane na komputerach PC za pomocą systemu programowania
Borland C++ Builder.
Dane i operacje powinny być prezentowane klasami.
Plan pracy.
1) Oprogramować i sprawdzić wprowadzenie danych wejściowych i wyprowadzenie wyników.
2) Określić klasy, pola i metody klas, które są potrzebne do realizacji zadania i przygotować dane
testowe.
3) Oprogramować i sprawdzić wykonanie operacje.
4) Napisać sprawozdanie do projektu.
Plan zajęć:
1. Klasy a obiekty programowe (struktura klasy, obiekty programowe, tworzenie obiektów na
stosie i na stercie, usuwanie obiektów, dostęp do komponentów obiektu, klasy zaprzyjaźnione,
informacja o klasie, mechanizm RTTI). Oprogramowywanie głównego formularza (klawiszy
itp.). Oprogramowywanie zdarzeń (naciśnięcie klawisz itp.).
2. Zadanie sprawdzające na definicję klasy.
Wewnętrzny wskaźnik na obiekt. Konstruktory (konstruktor z argumentami, konstruktor
kopiujący, konstruktor z listą inicjacyjną). Oprogramowywanie zdarzeń (naciśnięcie klawisz
itp.).
3. Zadanie sprawdzające na konstruktory.
Dziedziczenie klas (klasa pochodna a klasa bazowa, hierarchia klas, diagram klas,
dziedziczenie komponentów i dziedziczenie wielodzietnie).
4. Zadanie sprawdzające na dziedziczenie klas.
Dziedziczenie klas (dziedziczenie uprawnień dostępu, przeciążenie i przesłonięcie metod oraz
polimorfizm nazw).
5. Zadanie sprawdzające na dziedziczenie klas.
Dziedziczenie klas (metody wirtualne, klasa abstrakcyjna, lokalna konwersja typów).
6. Zadanie sprawdzające na dziedziczenie klas.
Metody operatorowe (przeciążenie operatorów, metoda operatorowa klasy, zaprzyjaźniona
metoda operatorowa, przeciążony operator= (operator przypisania), przeciążony operator+
(operator sumowania)).
7. Zadanie sprawdzające na przeciążenie operatorów.
Wzorce klas i metod.
8. Zadanie sprawdzające na wzorce klas i metod.
Dziedziczenie od wielu rodziców.
9. Zadanie sprawdzające na dziedziczenie od wielu rodziców.
Obsługa wyjątków.
10. Zadanie sprawdzające na obsługę wyjątków.
Podanie zadania na projekt.
1
Opracowywanie diagram klas w języku UML potrzebnych do realizacji projektu.
11. Oprogramowywanie konstruktorów i destruktorów klas projektu. Oprogramowywanie metod
klas projektu.
12. Oprogramowywanie głównego formularza (menu, klawiszy itp.).
13. Oprogramowywanie i sprawdzanie operacji projektu. Oprogramowywanie obiektów
potrzebnych do sprawdzania projektu.
14. Napisanie sprawozdania do projektu.
15. Prezentacja projektu i zaliczanie.
Zaliczenie laboratorium
Wszystkie zajęcia laboratoryjne (za wyjątkiem pierwszego) są oceniane. Zaliczenie zajęć
laboratoryjnych następuje na podstawie ocen cząstkowych uzyskanych za poszczególne zajęcia
oraz obronionego indywidualnego projektu.
Tematy poszczególnych zajęć są określone w sylabusie, a zakres zadań i wytyczne do ich
realizacji dla studentów są podawane przez prowadzącego najpóźniej na zajęciach
poprzedzających.
Przygotowanie do zajęć oraz realizacja zadań każdego ćwiczenia są oceniane w skali od 0
do 5 pkt. Łącznie student za 9 zajęć może uzyskać od 0 do 45 pkt.
Temat i zakres projektu indywidualnego student otrzymuje na 10-ym zajęciu.
Za projekt można otrzymać ocenę punktową mieszczącą się w zakresie 0 - 55 pkt. Ocena
projektu jest dokonywana na podstawie wielkości sumy punktów za rozwiązanie zadania i za
postać zewnętrzną projektu (wygląd, komentarzy itp.):
a) rozwiązanie zadania: maks. liczba punktów 35,
b) postać zewnętrzna projektu: maks. liczba punktów 20,
Zaliczenie projektu następuje po uzyskaniu najmniej 28 pkt. i jest możliwe najpóźniej na
ostatnim zajęciu. Jest ono także warunkiem koniecznym do uzyskania zaliczenia ćwiczeń
laboratoryjnych.
Łączna ocena punktowa zajęć laboratoryjnych jest sumą punktów uzyskanych za
poszczególne zajęcia oraz za indywidualny projekt i zawiera się w granicach
0-100 pkt. Ocena końcowa zajęć zależy od sumy uzyskanych punktów i wynosi (w nawiasach
ocena wg skali ECTS):
Literatura
Kisilewicz J., Język C w środowisku Borland C++. Oficyna Wydawnicza Politechniki Wrocławskiej. Wrocław, 2000
Kisilewicz J., 2002: Język C++: programowanie obiektowe. Wrocław: Oficyna Wydawnicza Politechniki Wrocławskej.
2001: C++ Builder 5. Vademecum profesjonalisty. Wydawnictwo HELION. Tom 1,2.
Coad P., Nicola J., Programowanie obiektowe, Warszawa 1993.
Booch G., 2001: UML- przewodnik użytkownika, WNT.
Grębosz J., 1999: Symfonia C++. Programowanie w języku C++ orientowane obiektowo. Kraków.
Kliszewski M., 1994: Inżynieria oprogramowania obiektowego. Tomaszów Maz..
Ledgard H.F., 1998: Mała księga programowania obiektowego. Warszawa.
Liberty J., 1998: C++ w 24 godziny. Warszawa.
2
Zadania Indywidualne
Istotą zadania jest opracowanie hierarchii klas „Tekst”, „Slowo”, „Wiersz”, „Akapit”,
„Dokument” do operacji z danymi tekstowymi.
Główna klasa „Tekst” musi zawierać prywatne pole - wskaźnik na dynamiczną tablicę
tekstowa (typ AnsiString) oraz publiczne metody dla wykonania operacji nad danymi tekstowymi.
Klasa „Tekst” musi być klasą abstrakcyjną. Specjalizacja operacji musi nastąpić w
potomnych klasach „Slowo”, „Wiersz”, „Akapit”, „Dokument” z metodami do operacji nad słowem,
wierszem, akapitem i dokumentem.
Argumenty przekazywać do metod przez referencji. Wykorzystywać kwalifikator const dla nie
zmieniających się argumentów.
3
Np. Grupa operacji Np. Grupa operacji
01 D1,S1, Ł1, O1, R1, Ws1 81 D1,S2, Ł2, O1, R1, Ws1
02 D2,S1, Ł1, O1, R1, Ws1 82 D2,S2, Ł2, O1, R1, Ws1
03 D2,S1, Ł1, O2, R1, Ws1 83 D2,S2, Ł2, O2, R1, Ws1
04 D1,S1, Ł1, O2, R1, Ws1 84 D1,S2, Ł2, O2, R1, Ws1
05 D1,S1, Ł1, O2, R2, Ws1 85 D1,S2, Ł2, O2, R2, Ws1
06 D2,S1, Ł1, O2, R2, Ws1 86 D2,S2, Ł2, O2, R2, Ws1
07 D2,S1, Ł1, O1, R2, Ws1 87 D2,S2, Ł2, O1, R2, Ws1
08 D1,S1, Ł1, O1, R2, Ws1 88 D1,S2, Ł2, O1, R2, Ws1
09 D1,S1, Ł1, O1, R2, Ws2 89 D1,S2, Ł2, O1, R2, Ws2
0A D2,S1, Ł1, O1, R2, Ws2 8A D2,S2, Ł2, O1, R2, Ws2
0B D2,S1, Ł1, O2, R2, Ws2 8B D2,S2, Ł2, O2, R2, Ws2
0C D1,S1, Ł1, O2, R2, Ws2 8C D1,S2, Ł2, O2, R2, Ws2
0D D1,S1, Ł1, O2, R1, Ws2 8D D1,S2, Ł2, O2, R1, Ws2
0E D2,S1, Ł1, O2, R1, Ws2 8E D2,S2, Ł2, O2, R1, Ws2
0F D2,S1, Ł1, O1, R1, Ws2 8F D2,S2, Ł2, O1, R1, Ws2
10 D1,S1, Ł1, O1, R1, Ws2 90 D1,S2, Ł2, O1, R1, Ws2
11 D1,S2, Ł1, O1, R1, Ws2 91 D1,S1, Ł2, O1, R1, Ws2
12 D2,S2, Ł1, O1, R1, Ws2 92 D2,S1, Ł2, O1, R1, Ws2
13 D2,S2, Ł1, O2, R1, Ws2 93 D2,S1, Ł2, O2, R1, Ws2
14 D1,S2, Ł1, O2, R1, Ws2 94 D1,S1, Ł2, O2, R1, Ws2
15 D1,S2, Ł1, O2, R2, Ws2 95 D1,S1, Ł2, O2, R2, Ws2
16 D2,S2, Ł1, O2, R2, Ws2 96 D2,S1, Ł2, O2, R2, Ws2
17 D2,S2, Ł1, O1, R2, Ws2 97 D2,S1, Ł2, O1, R2, Ws2
18 D1,S2, Ł1, O1, R2, Ws2 98 D1,S1, Ł2, O1, R2, Ws2
19 D1,S2, Ł1, O1, R2, Ws1 99 D1,S1, Ł2, O1, R2, Ws1
1A D2,S2, Ł1, O1, R2, Ws1 9A D2,S1, Ł2, O1, R2, Ws1
1B D2,S2, Ł1, O2, R2, Ws1 9B D2,S1, Ł2, O2, R2, Ws1
1C D1,S2, Ł1, O2, R2, Ws1 9C D1,S1, Ł2, O2, R2, Ws1
1D D1,S2, Ł1, O2, R1, Ws1 9D D1,S1, Ł2, O2, R1, Ws1
1E D2,S2, Ł1, O2, R1, Ws1 9E D2,S1, Ł2, O2, R1, Ws1
1F D2,S2, Ł1, O1, R1, Ws1 9F D2,S1, Ł2, O1, R1, Ws1
20 D1,S2, Ł1, O1, R1, Ws1 A0 D1,S1, Ł2, O1, R1, Ws1
4
Np. Grupa operacji Np. Grupa operacji
21 U1,S1, Ł1, O1, R1, Ws1 A1 U1,S2, Ł2, O1, R1, Ws1
22 U2,S1, Ł1, O1, R1, Ws1 A2 U2,S2, Ł2, O1, R1, Ws1
23 U2,S1, Ł1, O2, R1, Ws1 A3 U2,S2, Ł2, O2, R1, Ws1
24 U1,S1, Ł1, O2, R1, Ws1 A4 U1,S2, Ł2, O2, R1, Ws1
25 U1,S1, Ł1, O2, R2, Ws1 A5 U1,S2, Ł2, O2, R2, Ws1
26 U2,S1, Ł1, O2, R2, Ws1 A6 U2,S2, Ł2, O2, R2, Ws1
27 U2,S1, Ł1, O1, R2, Ws1 A7 U2,S2, Ł2, O1, R2, Ws1
28 U1,S1, Ł1, O1, R2, Ws1 A8 U1,S2, Ł2, O1, R2, Ws1
29 U1,S1, Ł1, O1, R2, Ws2 A9 U1,S2, Ł2, O1, R2, Ws2
2A U2,S1, Ł1, O1, R2, Ws2 AA U2,S2, Ł2, O1, R2, Ws2
2B U2,S1, Ł1, O2, R2, Ws2 AB U2,S2, Ł2, O2, R2, Ws2
2C U1,S1, Ł1, O2, R2, Ws2 AC U1,S2, Ł2, O2, R2, Ws2
2D U1,S1, Ł1, O2, R1, Ws2 AD U1,S2, Ł2, O2, R1, Ws2
2E U2,S1, Ł1, O2, R1, Ws2 AE U2,S2, Ł2, O2, R1, Ws2
2F U2,S1, Ł1, O1, R1, Ws2 AF U2,S2, Ł2, O1, R1, Ws2
30 U1,S1, Ł1, O1, R1, Ws2 B0 U1,S2, Ł2, O1, R1, Ws2
31 U1,S2, Ł1, O1, R1, Ws2 B1 U1,S1, Ł2, O1, R1, Ws2
32 U2,S2, Ł1, O1, R1, Ws2 B2 U2,S1, Ł2, O1, R1, Ws2
33 U2,S2, Ł1, O2, R1, Ws2 B3 U2,S1, Ł2, O2, R1, Ws2
34 U1,S2, Ł1, O2, R1, Ws2 B4 U1,S1, Ł2, O2, R1, Ws2
35 U1,S2, Ł1, O2, R2, Ws2 B5 U1,S1, Ł2, O2, R2, Ws2
36 U2,S2, Ł1, O2, R2, Ws2 B6 U2,S1, Ł2, O2, R2, Ws2
37 U2,S2, Ł1, O1, R2, Ws2 B7 U2,S1, Ł2, O1, R2, Ws2
38 U1,S2, Ł1, O1, R2, Ws2 B8 U1,S1, Ł2, O1, R2, Ws2
39 U1,S2, Ł1, O1, R2, Ws1 B9 U1,S1, Ł2, O1, R2, Ws1
3A U2,S2, Ł1, O1, R2, Ws1 BA U2,S1, Ł2, O1, R2, Ws1
3B U2,S2, Ł1, O2, R2, Ws1 BB U2,S1, Ł2, O2, R2, Ws1
3C U1,S2, Ł1, O2, R2, Ws1 BC U1,S1, Ł2, O2, R2, Ws1
3D U1,S2, Ł1, O2, R1, Ws1 BD U1,S1, Ł2, O2, R1, Ws1
3E U2,S2, Ł1, O2, R1, Ws1 BE U2,S1, Ł2, O2, R1, Ws1
3F U2,S2, Ł1, O1, R1, Ws1 BF U2,S1, Ł2, O1, R1, Ws1
40 U1,S2, Ł1, O1, R1, Ws1 C0 U1,S1, Ł2, O1, R1, Ws1
5
Np. Grupa operacji Np. Grupa operacji
41 Wy1,S1, Ł1, O1, R1, Ws1 C1 Wy1,S2, Ł2, O1, R1, Ws1
42 Wy2,S1, Ł1, O1, R1, Ws1 C2 Wy2,S2, Ł2, O1, R1, Ws1
43 Wy2,S1, Ł1, O2, R1, Ws1 C3 Wy2,S2, Ł2, O2, R1, Ws1
44 Wy1,S1, Ł1, O2, R1, Ws1 C4 Wy1,S2, Ł2, O2, R1, Ws1
45 Wy1,S1, Ł1, O2, R2, Ws1 C5 Wy1,S2, Ł2, O2, R2, Ws1
46 Wy2,S1, Ł1, O2, R2, Ws1 C6 Wy2,S2, Ł2, O2, R2, Ws1
47 Wy2,S1, Ł1, O1, R2, Ws1 C7 Wy2,S2, Ł2, O1, R2, Ws1
48 Wy1,S1, Ł1, O1, R2, Ws1 C8 Wy1,S2, Ł2, O1, R2, Ws1
49 Wy1,S1, Ł1, O1, R2, Ws2 C9 Wy1,S2, Ł2, O1, R2, Ws2
4A Wy2,S1, Ł1, O1, R2, Ws2 CA Wy2,S2, Ł2, O1, R2, Ws2
4B Wy2,S1, Ł1, O2, R2, Ws2 CB Wy2,S2, Ł2, O2, R2, Ws2
4C Wy1,S1, Ł1, O2, R2, Ws2 CC Wy1,S2, Ł2, O2, R2, Ws2
4D Wy1,S1, Ł1, O2, R1, Ws2 CD Wy1,S2, Ł2, O2, R1, Ws2
4E Wy2,S1, Ł1, O2, R1, Ws2 CE Wy2,S2, Ł2, O2, R1, Ws2
4F Wy2,S1, Ł1, O1, R1, Ws2 CF Wy2,S2, Ł2, O1, R1, Ws2
50 Wy1,S1, Ł1, O1, R1, Ws2 D0 Wy1,S2, Ł2, O1, R1, Ws2
51 Wy1,S2, Ł1, O1, R1, Ws2 D1 Wy1,S1, Ł2, O1, R1, Ws2
52 Wy2,S2, Ł1, O1, R1, Ws2 D2 Wy2,S1, Ł2, O1, R1, Ws2
53 Wy2,S2, Ł1, O2, R1, Ws2 D3 Wy2,S1, Ł2, O2, R1, Ws2
54 Wy1,S2, Ł1, O2, R1, Ws2 D4 Wy1,S1, Ł2, O2, R1, Ws2
55 Wy1,S2, Ł1, O2, R2, Ws2 D5 Wy1,S1, Ł2, O2, R2, Ws2
56 Wy2,S2, Ł1, O2, R2, Ws2 D6 Wy2,S1, Ł2, O2, R2, Ws2
57 Wy2,S2, Ł1, O1, R2, Ws2 D7 Wy2,S1, Ł2, O1, R2, Ws2
58 Wy1,S2, Ł1, O1, R2, Ws2 D8 Wy1,S1, Ł2, O1, R2, Ws2
59 Wy1,S2, Ł1, O1, R2, Ws1 D9 Wy1,S1, Ł2, O1, R2, Ws1
5A Wy2,S2, Ł1, O1, R2, Ws1 DA Wy2,S1, Ł2, O1, R2, Ws1
5B Wy2,S2, Ł1, O2, R2, Ws1 DB Wy2,S1, Ł2, O2, R2, Ws1
5C Wy1,S2, Ł1, O2, R2, Ws1 DC Wy1,S1, Ł2, O2, R2, Ws1
5D Wy1,S2, Ł1, O2, R1, Ws1 DD Wy1,S1, Ł2, O2, R1, Ws1
5E Wy2,S2, Ł1, O2, R1, Ws1 DE Wy2,S1, Ł2, O2, R1, Ws1
5F Wy2,S2, Ł1, O1, R1, Ws1 DF Wy2,S1, Ł2, O1, R1, Ws1
60 Wy1,S2, Ł1, O1, R1, Ws1 E0 Wy1,S1, Ł2, O1, R1, Ws1
6
Np. Grupa operacji Np. Grupa operacji
61 Li1, S1, Ł1, O1, R1, Ws1 E1 Li1, S2, Ł2, O1, R1, Ws1
62 Li2, S1, Ł1, O1, R1, Ws1 E2 Li2, S2, Ł2, O1, R1, Ws1
63 Li2, S1, Ł1, O2, R1, Ws1 E3 Li2, S2, Ł2, O2, R1, Ws1
64 Li1, S1, Ł1, O2, R1, Ws1 E4 Li1, S2, Ł2, O2, R1, Ws1
65 Li1, S1, Ł1, O2, R2, Ws1 E5 Li1, S2, Ł2, O2, R2, Ws1
66 Li2, S1, Ł1, O2, R2, Ws1 E6 Li2, S2, Ł2, O2, R2, Ws1
67 Li2, S1, Ł1, O1, R2, Ws1 E7 Li2, S2, Ł2, O1, R2, Ws1
68 Li1, S1, Ł1, O1, R2, Ws1 E8 Li1, S2, Ł2, O1, R2, Ws1
69 Li1, S1, Ł1, O1, R2, Ws2 E9 Li1, S2, Ł2, O1, R2, Ws2
6A Li2, S1, Ł1, O1, R2, Ws2 EA Li2, S2, Ł2, O1, R2, Ws2
6B Li2, S1, Ł1, O2, R2, Ws2 EB Li2, S2, Ł2, O2, R2, Ws2
6C Li1, S1, Ł1, O2, R2, Ws2 EC Li1, S2, Ł2, O2, R2, Ws2
6D Li1, S1, Ł1, O2, R1, Ws2 ED Li1, S2, Ł2, O2, R1, Ws2
6E Li2, S1, Ł1, O2, R1, Ws2 EE Li2, S2, Ł2, O2, R1, Ws2
6F Li2, S1, Ł1, O1, R1, Ws2 EF Li2, S2, Ł2, O1, R1, Ws2
70 Li1, S1, Ł1, O1, R1, Ws2 F0 Li1, S2, Ł2, O1, R1, Ws2
71 Li1, S2, Ł1, O1, R1, Ws2 F1 Li1, S1, Ł2, O1, R1, Ws2
72 Li2, S2, Ł1, O1, R1, Ws2 F2 Li2, S1, Ł2, O1, R1, Ws2
73 Li2, S2, Ł1, O2, R1, Ws2 F3 Li2, S1, Ł2, O2, R1, Ws2
74 Li1, S2, Ł1, O2, R1, Ws2 F4 Li1, S1, Ł2, O2, R1, Ws2
75 Li1, S2, Ł1, O2, R2, Ws2 F5 Li1, S1, Ł2, O2, R2, Ws2
76 Li2, S2, Ł1, O2, R2, Ws2 F6 Li2, S1, Ł2, O2, R2, Ws2
77 Li2, S2, Ł1, O1, R2, Ws2 F7 Li2, S1, Ł2, O1, R2, Ws2
78 Li1, S2, Ł1, O1, R2, Ws2 F8 Li1, S1, Ł2, O1, R2, Ws2
79 Li1, S2, Ł1, O1, R2, Ws1 F9 Li1, S1, Ł2, O1, R2, Ws1
7A Li2, S2, Ł1, O1, R2, Ws1 FA Li2, S1, Ł2, O1, R2, Ws1
7B Li2, S2, Ł1, O2, R2, Ws1 FB Li2, S1, Ł2, O2, R2, Ws1
7C Li1, S2, Ł1, O2, R2, Ws1 FC Li1, S1, Ł2, O2, R2, Ws1
7D Li1, S2, Ł1, O2, R1, Ws1 FD Li1, S1, Ł2, O2, R1, Ws1
7E Li2, S2, Ł1, O2, R1, Ws1 FE Li2, S1, Ł2, O2, R1, Ws1
7F Li2, S2, Ł1, O1, R1, Ws1 FF Li2, S1, Ł2, O1, R1, Ws1
80 Li1, S2, Ł1, O1, R1, Ws1 100 Li1, S1, Ł2, O1, R1, Ws1
7
W tabelę wariantów są wykorzystane skróty następujących operacji:
8
WYŻSZA SZKOLA TECHNOLOGII
INFORMATYCZNYCH
WYDZIAŁ INFORMATYKI
Projekt z przedmiotu
„Języki i paradygmaty programowania”
Wariant **
Opracował
************
Grupa ***
Pod kierownictwem
prof. dr hab. inż. Aleksandra Timofiejewa
Warszawa 2006