You are on page 1of 2

Programowanieobiektowe.

Projekt:szablonyklas
Cel projektu Celem projektu jest praktyczne wykorzystanie umiejtnoci definiowania szablonw do gromadzenia danych rnych typw. Tematyka ta zostanie zaprezentowana na przykadzie aplikacji gromadzcej dane rnych typw. Opis modelowanego systemu Aplikacja umoliwia gromadzenie danych osobowych (imi, nazwisko, adres) oraz danych pojazdw (nazwa, rok produkcji, pojemno silnika). Wprowadzone z klawiatury kolejne dane powinny by zapamitywane w programie w sposb umoliwiajcy ich pniejsz edycj lub zapis do pliku. Opis dziaania aplikacji Okno aplikacji zostao podzielone za pomoc dwch paneli. W panelu po lewej stronie znajduj si pola edycji do wprowadzania danych osobowych, przycisk umoliwiajcy zapamitanie wprowadzonych danych, etykieta do wyprowadzania liczby aktualnie zapisanych zestaww danych oraz pole tekstowe z przyciskiem umoliwiajcym wyprowadzenie danych na ekran. Drugi panel zawiera analogiczne kontrolki suce do zapamitywania i wywietlania danych pojazdw. Wymagania dotyczce budowy programu naley otworzy nowy projekt aplikacji okienkowej za pomoc polecenia: File New... VCL Forms Application C++ Builder; zapisa projekt w wybranym katalogu zmieniajc nazw moduu formatki na frmMain.cpp natomiast nazw projektu na Szablon.bdsproj; na powierzchni formatki wstawi komponenty wymienionych klas, dostosowa rozmiary i rozmieci jak na rys. 1: o TGroupBox, TPanel, TLabel, TButton, TListBox oraz TEdit - wszystkie komponenty znajduj si na zakadce Standard; do projektu naley doda dwa nowe moduy i zapisa w katalogu projektu. Pierwszemu moduowi naley nada nazw uClasses, natomiast drugiemu uTemplate; w module uClasses zdefiniowa dwie klasy: TDaneOsobowe oraz TDanePojazdu; skadniki klasy TDaneOsobowe: o Imie, Nazwisko, Adres prywatne obiekty klasy AnsiString; o konstruktor z argumentami, ktry mona uywa jako domniemany; o void Wypisz(TListBox*) publiczna metoda dodajca opis osoby do kontrolki klasy TListBox za pomoc metody Add(); skadniki klasy TDanePojazdu: o Marka prywatny obiekt klasy AnsiString; o RokProd, Przebieg prywatne skadniki typu cakowitego; o konstruktor z argumentami, ktry mona uywa jako domniemany; o void Wypisz(TListBox*) publiczna metoda dodajca opis pojazdu do kontrolki klasy TListBox za pomoc metody Add(); w module uTemplate naley zdefiniowa szablon klasy kontenerowej typu lista czona zawierajcy nastpujce skadniki: o list obiektw wraz z licznikiem w sekcji prywatnej; o konstruktory, destruktor; o publiczn metod int Policz() zwracajc warto licznika przechowywanych obiektw; o publiczn metod TYP* Zwroc(int) zwracajc wskanik do obiektu o danym indeksie; o publiczn metod Dodaj(TYP &) dodajc obiekt do kontenera; o publiczn metod Wyczysc() usuwajc obiekty z kontenera;

za pomoc dyrektyw include naley umoliwi uywanie skadnikw moduw uClasses i uTemplate w module frmMain, do moduu uClasses naley wczy plik nagwkowy <vcl.h>; w sekcji prywatnej klasy formatki, przy wykorzystaniu szablonu, naley zadeklarowa wskaniki do obiektu kontenera do przechowywania danych osobowych oraz kontenera do przechowywania danych pojazdw. Naley utworzy obiekty w konstruktorze formatki, usun z pamici w procedurze obsugi zdarzenia OnDestroy; oprogramowa zdarzenia kliknicia na przyciski klasy TButton. Zadanie 8.10.1 Naley zbudowa aplikacj wedug podanych wymaga. Wskazwki i wynik dziaania programu Do rozwizania zadania proponuje si wykorzystanie przedstawionych poniej wskazwek oraz fragmentw kodu. Po wykonaniu zadania 8.10.1 i wprowadzeniu przykadowych danych otrzymano rezultat pokazany na rys. 1.

Rys. 1. Wygld okna aplikacji po wykonaniu zadania 8.10.1

You might also like