Witam, próbuje rozwiązać takie zadanko w którym mam napisać definicje klasy sala która ma niepubliczne pola
id - stale pole tekstowe określające nazwę sali, maxOsob - akt. liczba miejsc zajętych w sali oraz metodę Wykorzystanie - % wykorzystania miejsc siedzących w sali oraz publiczne metody:
- 3 parametrowy konstruktor określający nazwę sali, liczbę miejsc w sali (domyślnie 30) i zajętych (dom. 0)
- doSali z 1 parametrem typu całkowitego, określającym ile osób chce wejść do sali, jeśli wartość parametru jest za duża metoda odpowiednio zmienia liczbę miejsc zajętych (do pełnego wykorzystania sali) i rzuca wyjątek z komunikatem, że nie wszyscy chętni weszli do sali; w pozostałych przyp. zmienia odpowiednio liczbę miejsc zajętych a wynikiem metody jest liczba miejsc zajętych.
Do tej pory napisałem tyle:
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
class Sala
{
protected:
string id;
int maxOsob;
int ileosob;
double Wykorzystanie()
{return ileosob/maxOsob*100;}
public:
Sala(string id,int maxos=30,int ileos=0):id(id),maxOsob(maxos),ileosob(ileos){}
void doSali(int osoby){
if(osoby<0){
string wyjatek="Nie może być liczba ujemna";
throw wyjatek;
}
if (osoby>(maxOsob-ileosob)){
int iloraz=maxOsob-ileosob;
string wyjatek="Za duza liczba osob ale wpuściliśmy";
ileosob=maxOsob;
throw wyjatek;
}
else{
ileosob+=osoby;
cout<<ileosob;
}
}
void zSali(int osoby){
ileosob-=osoby;
}
Czy dobrze mam zapisaną metodę doSali?