Přejít k hlavnímu obsahu
SŠMG
  • Titulní stránka
  • Další
Momentálně na stránky přistupujete s právy hosta.
Přihlášení
Titulní stránka
  1. PVA 4.I - 2023/2024
  2. 06 Správa zoologické zahrady

06 Správa zoologické zahrady

Požadavky na absolvování
Otevřené: Středa, 8. listopadu 2023, 12.00
Termín: Úterý, 21. listopadu 2023, 23.59

Vytvořte systém pro správu zoologické zahrady v Javě, který bude zahrnovat správu zvířat, zaměstnanců a zařízení. Systém by měl umožňovat přidávání, odebírání a vyhledávání zvířat a zaměstnanců, správu veřejných ploch a výběhů pro zvířata, a organizaci událostí pro veřejnost.

Struktura projektu

Projekt bude rozdělen do balíčků podle funkcionalit: animals, collection, employees, facilities, a základní třídy a rozhraní budou ve výchozím balíčku ssmg.exercise.

Základní třídy a rozhraní
  1. Animal (Abstraktní třída pro všechna zvířata)
  2. Diet (Rozhraní definující metodu pro jídlo)
  3. Employee (Třída pro všechny zaměstnance)
  4. Facility (Základní třída pro všechna zařízení v zoologické zahrady)
  5. Maintenance (Rozhraní definující metodu pro údržbu)
Specifické třídy
  • Pro zvířata: Bird, Mammal, Reptile
  • Pro zaměstnance: Technician, ZooKeeper
  • Pro zařízení: Enclosure, PublicArea
  • Pro kolekce: Zoo, ZooFacility, ZooStaff
Funkcionalita systému
  1. Abstraktní třída Animal

    • Atributy:
      • protected String name
      • protected int age
      • protected String species
    • Metody:
      • Konstruktor: public Animal(String name, int age, String species)
      • Abstraktní metoda: public abstract void makeSound();
      • public String getName()
      • public String getSpecies()
  2. Rozhraní Diet

    • Metody:
      • void eat();
  3. Třída Employee

    • Atributy:
      • protected String name
      • protected String position
    • Metody:
      • Konstruktor: public Employee(String name, String position)
      • public String getName()
      • public void setName(String name)
      • public String getPosition()
      • public void setPosition(String position)
  4. Třída Facility

    • Atributy:
      • protected String location
      • protected String type
    • Metody:
      • Konstruktor: public Facility(String location, String type)
      • public String getLocation()
      • public void setLocation(String location)
      • public String getType()
      • public void setType(String type)
  5. Rozhraní Maintenance

    • Metody:
      • void maintain();
  6. Třída Bird (dědí z Animal, implementuje Diet)

    • Atributy:
      • private String dietType
    • Metody:
      • Konstruktor: public Bird(String name, int age, String species, String dietType)
      • public void eat() - výpis: "[name] the [species] (Bird) eats [dietType]."
      • public void makeSound() - výpis: "[name] the [species] (Bird) sings."
  7. Třída Mammal (dědí z Animal, implementuje Diet)

    • Atributy:
      • private String dietType
    • Metody:
      • Konstruktor: public Mammal(String name, int age, String species, String dietType)
      • public void eat() - výpis: "[name] eats as a [dietType]."
      • public void makeSound() - výpis: "[name] says: 'Generic mammal sound!'"
  8. Třída Reptile (dědí z Animal, implementuje Diet)

    • Atributy:
      • private String dietType
    • Metody:
      • Konstruktor: public Reptile(String name, int age, String species, String dietType)
      • public void eat() - výpis: "[name] the [species] (Reptile) eats [dietType]."
      • public void makeSound() - výpis: "[name] the [species] (Reptile) hisses."
  9. Třída Technician (dědí z Employee, implementuje Maintenance)

    • Metody:
      • Konstruktor: public Technician(String name)
      • public void maintain() - výpis: "[name], the Technician is performing maintenance."
  10. Třída ZooKeeper (dědí z Employee)

  • Metody:
    • Konstruktor: public ZooKeeper(String name)
    • public void feedAnimals(Animal[] animals) - výpis pro každé zvíře: "[name], the ZooKeeper feeds [animal's name]."
  1. Třída Enclosure (dědí z Facility, implementuje Maintenance)
  • Atributy:
    • private String environmentType
  • Metody:
    • Konstruktor: public Enclosure(String location, String type, String environmentType)
    • public void simulateEnvironment() - výpis: "Simulating [environmentType] environment in enclosure located at [location] of type [type]"
    • public void upgradeFacility() - výpis "Upgrading the [type] facility at [location]"
  1. Třída PublicArea (dědí z Facility)
  • Atributy:
    • private String description
  • Metody:
    • Konstruktor: public PublicArea(String location, String type, String description)
    • public void organizeEvent(String eventName) - výpis: "Organizing event: [eventName] at the [type] located at [location]"
    • public void maintainCleanliness() - výpis: "Maintaining cleanliness at the [type] located at [location]"
  1. Třída Zoo
  • Atributy:
    • private List<Animal> animal
    • private ZooFacilities facilities
    • private ZooStaff staff
  • Metody:
    • public void addAnimal(Animal animal) - přidává zvíře do seznamu.
    • public void removeAnimal(Animal animal) - odebírá zvíře ze seznamu.
    • public List<Animal> getAnimals() - vrací seznam zvířat.
    • public void addFacility(Facility facility) - přidává zařízení do seznamu.
    • public void removeFacility(Facility facility) - odebírá zařízení ze seznamu.
    • public void addEmployee(Employee employee) - přidává zaměstnance do seznamu.
    • public void removeEmployee(Employee employee) - odebírá zaměstnance ze seznamu.
    • public Animal findAnimalBySpecies(String species) - hledá zvíře podle druhu.
  1. Třída ZooStaff
  • Atributy:
    • public List<Employee> employees
  • Metody:
    • void hireEmployee(Employee employee)
    • void fireEmployee(String name)
  1. Třída ZooFacilities
  • Atributy:
    • public List<Facility> facilities
  • Metody:

Hodnocení

Hodnocení je založeno na počtu průchozích testů. V případě pochybností o implementaci bude žák prozkoušen s dvojnásobnou váhou známky.

  • 27 testů: známka 1
  • 26 - 23 testů: známka 2
  • 22 - 17 testů: známka 3
  • 16 - 12 testů: známka 4
  • 11 a méně testů: známka 5

  • ZooConsoleOutputTest.java ZooConsoleOutputTest.java
    7. listopadu 2023, 21.10
  • ZooTest.java ZooTest.java
    7. listopadu 2023, 21.10
  • ZooTestPublicAtributies.java ZooTestPublicAtributies.java
    7. listopadu 2023, 21.10
Kontaktujte podporu stránek
Momentálně na stránky přistupujete s právy hosta. (Přihlášení)
Souhrn uchovávaných dat
Stáhněte si mobilní aplikaci
Používá Moodle