Klasa TRandomGenerator ma udostępniać funkcjonalności generatora liczb losowych zarówno całkowitych jak i rzeczywistych w zadanym przedziale. Ideą opakowania generatora w klasę jest odłączenie się od szczegółów generowania liczb losowych - silnikiem generującym liczby losowe może być zarówno funkcja biblioteczna rand() jak i jakikolwiek lepszy generator, którego szczegóły nie interesują końcowego użytkownika. Definicja klasy jest następująca:
class TRandomGenerator {
public:
TRandomGenerator(void); // constructor
TRandomGenerator(int,int); // constructor - set rmin, rmax
void Initialize(double seed); // initialize random sequence
double FRandom(void); // random floating point number between 0 and 1
int IRandom(void); // random integer number within defined interval
void SetInterval(int min, int max); // set interval for IRandom
int GetRmin(void); // get rmin
int GetRmax(void); // get rmax
private:
double ran; // last random number
int rmin, rmax; // interval for IRandom
};
Proszę zaimplementować funkcje składowe klasy TRandomGenerator.
Proszę zaimplementować klasę Point, której definicja znajduje się poniżej:
class Point {
private:
int xVal, yVal;
public:
Point (int x, int y) // Cartesian coordinates
Point (float, float); // polar coordinates
Point (void) // origin
void OffsetPt (int, int); // add vector to a point
setPt(int,int); // set point
};
Korzystając z klasy Point proszę zaprojektować klasę Triangle. Jedną z metod klasy Triangle ma być rotate(int,double) obracająca trójkąt o zadany kąt (w stopniach - drugi argument) wokół jednego z wierzchołków (pierwszy argument).
Prywatny szpital powiatowy ma trzy oddziały: neurologiczny, chorób oczu i psychiatryczny. Siostra oddziałowa jest odpowiedzialna za zarządzanie trzema listami (jedna lista dla każdego oddziału) pacjentów oczekujących w kolejce na usługi świadczone na oddziałach. Każdy nowy pacjent trafia normalnie na koniec kolejki. Pacjenci z krytycznymi schorzeniami trafiają na początek kolejki. Niestety, niektórzy pacjenci przenoszą się do lepszego świata, nie doczekawszy się zabiegu.
Struktura patient przechowuje informacje o pacjencie i jest zdefiniowana następująco:
struct patient {
char FirstName[50];
char LastName[50];
char ID[20];
};
Klasa queue (kolejka dla jednego oddziału) jest zdefiniowana następująco:
class queue {
public:
queue (void);
int AddPatientAtEnd (patient p);
int AddPatientAtBeginning (patient p);
patient GetNextPatient (void);
int RemoveDeadPatient (patient * p);
void OutputList (void);
char DepartmentName[50];
private:
int NumberOfPatients;
patient List[MAXPATIENTS];
};
Proszę zaimplementować i przetestować klasę queue.