- (1p.) Zdefiniuj strukturę pozwalającą przechowywać dane pojedynczego elementu wybranej bazy danych np. katalogu książek w bibliotece, spisu samochodów w autokomisie, zestawienia miesięcznych wydatków studenta, itp.Następnie zdefiniuj N-elementową (pseudo-dynamiczną) tablicę w/w struktur pozwalającą przechowywać dane wielu elementów (ale nie więcej niż N) z dodatkowym licznikiem informującym o ilości wpisanych danych. 
 -  (2p.) Napisz funkcje pozwalające wczytywać i wyświetlać zawartość bazy.
Uwaga: w/w tablice lub struktury powinny być przekazywane jako parametry funkcji ! - (+1p.) zdefiniuj operatory strumieni istream i ostream.
 - (+1p.) napisz funkcje do zapisywania zawartości bazy do pliku i wczytywania z pliku. 
 
 -  (3p.) Napisz funkcję pozwalającą wyszukać w bazie elementy o zadanych parametrach np. samochód marki FIAT, rocznik nie starszy niż 1990,  o cenie z zadanego przedziału. 
 
Dodatkowe
			zadania „dla zaawansowanych”: 
			
- (2p.) Napisz funkcję umożliwiającą edycję/poprawianie danych pojedynczych elementów bazy. Np zmianę ceny samochodu w autokomisie, aktualizację adresu w bazie danych personalnych, itp
 - Napisz funkcję umożliwiającą interaktywne przeglądanie zawartości bazy.   
Uwzględnij przypadki, gdy dane zapisane w bazie nie zmieszczą się na jednym ekranie (np. katalog 1000 tytułów ksiażek i nazwisk autorów).- (2p.) w najprostszym przypadku (przeglądanie bazy od pierwszego do ostatniego elementu) wystarczy wprowadzenie tzw. stronicowania,
 - (4p.) najbardziej uniwersalnym rozwiązaniem jest umożliwienie „sterowania” przeglądaniem za pomocą strzałek na klawiaturze tzn:
- klawisz  „<-”  oznacza: wyświetl poprzedni element bazy
 - klawisz   „->”  oznacza: wyświetl następny element bazy
 - klawisz   „ESC” oznacza: zakończ przeglądanie
 
 
 
Zadanie alternatywne
-      (6p.) Zdefiniuj strukturę definiującą liczby ułamkowe (ułamki  zwykłe) oraz funkcje operujące na niej. Powinny być zdefiniowane funkcje  do wczytywania wartości, wyświetlania (+1p. za zdefiniowanie operatorów  strumieni), czterech działań arytmetycznych (+0,5p. za zdefiniowanie  operatorów) oraz skracanie ułamka i wydzielania części całkowitej.  Przydadzą się też pomocnicze funkcje: NWD, NWW i sprowadzające do  wspólnego mianownika.
 
//alg. Euklidesa
int NWD(int a, int b)
{  int pom;
  while(b!=0)
  {
    pom = b;
    b = a%b;
    a = pom;  
  }
  return a;
}
//lub rekurencyjnie
int NWD(int a, int b)
{
  if (b == 0)
    return a;
  return NWD(b,a%b);
}
//NWW
int NWW(int a, int b)
{
  return a*b/NWD(a,b);
}
 
Przykład z operatorami