Proszę o sprawdzenie poprawności kodu oraz ew. poprawki,
Napewno jakieś błędy się znajdą ale proszę o wyrozumiałość.
Ogólnie wszystko działa tak jak powinno.
<?php
/**
* AirConditioning
* Klasa odpowiedzialna za wyliczanie mocy klimatyzatora
*/
class AirConditioning {
const HOME = 20; //Dzielenie wyniku m3 dla pomieszczeń mieszkalnych
const HOME_ROOF = 0.2; //Dodatek 20% dla okien dachowych, mieszkalnych
const COMPANY = 10; //Dzielenie wyniku m3 dla pomieszczeń handlowych
const COMPANY_PERCENT = 0.1; //Dodatek 10% dla pomieszczeń handlowych
const COMPANY_ROOF = 0.1; //Dodatek 10% dla okien dachowych, handlowych
const PEOPLE = 0.1; //Dodatek 0.1 kW za każdego człowieka
const COMPANY_SOUTH = 0.05; //Dodatek 5% za okna skierowane na południe, pomieszczenia handlowe
const COMPANY_WEST = 0.05; //Dodatek 5% za okna skierowane na zachód, pomieszczenia handlowe
const HOME_SOUTH = 0.1; //Dodatek 10% za okna skierowane na południe, pomieszczenia mieszkalne
const HOME_WEST = 0.1; //Dodatek 10% za okna skierowane na zachód, pomieszczenia mieszkalne
public $people;
public $roof;
public $south;
public $west;
/**
* AirConditioning::__construct()
* Pobranie danych z formularza
* @param mixed $room informacje o pomieszczeniu
* @param mixed $height wysokość pomieszzenia
* @param mixed $area powierzchnia pomieszczenia
* @param mixed $people informacje o osobach w pomieszczeniu
* @param mixed $roof okna dachowe
* @param mixed $south kierunek okien, południe
* @param mixed $west kierunek okien, zachód
*/
public function __construct($room, $height, $area, $people, $roof, $south, $west)
{
$this->room = $room;
$this->height = $height;
$this->area = $area;
$this->north = $north;
}
$this->south = $south;
}
$this->east = $east;
}
$this->west = $west;
}
$this->people = $people;
}
$this->roof = $roof;
}
}
/**
* AirConditioning::check()
* Pobranie danych o pomieszczeniu
*/
public function check()
{
if ($this->room == 1) {
return $this->home($this->height, $this->area);
}
if ($this->room == 2) {
return $this->company($this->height, $this->area);
}
}
/**
* AirConditioning::home()
* Obliczanie mocy klimatyzatora dla pomieszczeń mieszkalnych
*/
public function home($height, $area)
{
$count = $height * $area / self::HOME;
$add = '';
if ($this->roof == 1) {
$add += self::HOME_ROOF;
}
if ($this->people > 0) {
$people = $this->people($this->people);
}
if ($this->west == 1) {
$add += self::HOME_WEST;
}
if ($this->south == 1) {
$add += self::HOME_SOUTH;
}
$count = $count + $count * $add;
if (isset($people) and
$people > 0
) { $count = $count + $people;
}
return $count;
}
/**
* AirConditioning::company()
* Obliczanie mocy klimatyzatora dla pomieszczeń handlowych
*/
public function company($height, $area)
{
$count = $height * $area;
$count = $count / self::COMPANY;
$add = self::COMPANY_PERCENT;
if ($this->west == 1) {
$add += self::COMPANY_WEST;
}
if ($this->south == 1) {
$add += self::COMPANY_SOUTH;
}
if ($this->roof == 1) {
$add += self::COMPANY_ROOF;
}
if ($this->people > 0) {
$people = $this->people($this->people);
}
$count = $count + $count * $add;
if (isset($people) and
$people > 0
) { $count = $count + $people;
}
return $count;
}
/**
* AirConditioning::people()
* Wylicza moc dla każdej osoby w pomieszczeniu
*/
public function people($people)
{
$people = $this->people * self::PEOPLE;
return $people;
}
}
?>
Przykład użycia
<?php
$ob = new AirConditioning($room, $height, $area, $people, $roof, $north, $south, $east, $west);
echo 'Wyliczone zapotrzebowanie na moc klimatyzatora wynosi '. $ob->check(). ' kW.'; ?>