Kurs ANSI C z elementami C++ Lista zadań 11 21.12.2006

Transkrypt

Kurs ANSI C z elementami C++ Lista zadań 11 21.12.2006
Kurs ANSI C z elementami C++
Lista zadań 11
21.12.2006
Uwaga - zadania należy wykonać w C++.
(15/0) 1. Napisz klasę Liczba, umożliwiającą przechowywanie liczby w postaci
rzymskiej (http://pl.wikipedia.org/wiki/Liczby_rzymskie) i arabskiej.
class Liczba
{
public:
Liczba(char*rzymska);
Liczba(int arabska);
void Set(char*rzymska);
void Set(int arabska);
char* GetR();
int Get();
void Pisz(bool bRzymska);
};
Następnie napisz program testujący umożliwiający interaktywną konwersję pomiędzy
dwoma reprezentacjami liczb.
(15/10) 2. Napisz klasę Ulamek, przechowujący liczby w postaci licznika i
mianownika, przeciąż operatory +,-,/,*,^. Po każdej operacji ułamek powinien być
w postaci w której NWD(licznik,mianownik)==1, czyli ½ zamiast 44/88, 2 zamiast
14/7.
Napisz program testowy (nie koniecznie interaktywny), prezentujący tworzenie,
działania na, oraz wypisywanie ułamków.
(20/20) 3. Zaimplementuj klasę CString reprezentującą łańcuch znaków posiadającą
następujące metody:
1. konstruktor bezparametrowy
2. konstruktor tworzący łańcuch ze wskaźnika do znaku
3. destruktor
4. jak długi jest łańcuch?
5. czy łańcuch jest pusty?
6. operator przypisania
7. operator rzutowania na wskaźnik do stałego znaku
8. operator << łączący dwa łańcuchy
class CString
{
char *buff;
public:
CString();
CString(const char *s);
~CString();
int Length();
bool isEmpty();
CString &operator = (CString &s);
operator const char *();
CString operator << (CString &s);
};
Autorem zadania 3 jest miguel.