Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Потребно е да се креира Tourist Guide онлајн алатка, која ќе овозможи на еден турист да ги пронајде најблиските и најдобрите хотели. Дадена ни е основната класа Object во која се информациите за:
- id-то (со хеширање на името)
- Име на објект (name)
- Бројот на години од кога е изграден објектот (years)
- Градот каде се наоѓа објектот (city)
- Класата Hotel ги наследува карактеристиките на Object класата и воедно ги содржи и дополнителните информации:
- Колку ѕвезди има хотелот (stars)
- Рејтинг од клиентите на booking (rating)
- Функцијата get_rаting() → Печати колкав е рејтингот на хотелот според:
- Ако има помалку или еднакво 2 ѕвезди, рејтинг од клиентите помал од 7 и постои помалку или еднакво 2 години → low rаting
- Ако има помалку или еднакво 2 ѕвезди, рејтинг од клиентите поголем или еднаков на 7 и постои повеќе од 2 години → average rаting
- Ако има 3 или 4 ѕвезди, рејтинг од клиентите помал од 7 и постои повеќе од 2 години → low rаting
- Ако има 3 ѕвезди, рејтинг од клиентите поголем или еднаков на 7 → average rаting
- Ако има 4 или 5 ѕвезди и рејтинг од клиентите поголем или еднаков на 7 → high rating
- Ако има 5 ѕвезди и рејтинг од клиентите помал од 7 → average rating
- Класата TouristGuide се состои од листа од хотели, каде е потребно да ги имплементирате следните функционалности:
- додади нов хотел (add_hotel): додавање хотел во листата
- проверка на рејтинг на хотелите (get_rating(city)): се проверуваат сите хотели кои се наоѓаат во градот даден како аргумент на функцијата. Излезот на оваа функција е печатење на имињата на хотелите со додаден рејтинг според функцијата (get_rаting()) со празно место. (секој хотел е даден во нов ред)
- проверка дали градот е туристичко место или не според бројот на хотели (tourist_place): се печати процентот на хотели во градот според формулата:
- број на хотели во градот/вкупен број хотели *100 (заокружено на две децимали)
- печати (print()): се печати секој хотел од листата
- */
- class TouristGuide {
- constructor() {
- this.lista = [];
- }
- add_hotel(a) {
- this.lista.push(a);
- }
- get_rating(city) {
- var hotelgrad = 0;
- var vkupnohoteli = 0;
- for(var i=0; i<this.lista.length; i++) {
- vkupnohoteli++;
- if(this.lista[i].city == city) {
- hotelgrad++;
- console.log(this.lista[i].get_rating());
- }
- }
- }
- tourist_place(grad) {
- var hotelgrad = 0;
- var vkupnohoteli = 0;
- for(var i=0; i<this.lista.length; i++) {
- vkupnohoteli++;
- if(this.lista[i].city == grad) {
- hotelgrad++;
- }
- }
- var help = hotelgrad / vkupnohoteli * 100;
- console.log(grad + " is " + help.toFixed(2) + "% tourist place");
- // број на хотели во градот/вкупен број хотели *100 (заокружено на две децимали)
- }
- print() {
- for(var i=0; i<this.lista.length;i++) {
- var h = this.lista[i];
- console.log("Hotel {")
- for(var j in h) {
- if(j=="name" || j == "city") {
- console.log(j + ": " + "'" + h[j] + "',");
- continue;
- }
- if(j == "rating") {
- console.log(j + ": " + h[j] + " }");
- }
- else {
- console.log(j + ": " + h[j] + ",");
- }
- }
- }
- }
- }
- class Object {
- constructor(name, years, city) {
- this.name = name;
- this.id=hashCode(name);
- this.years = years;
- this.city = city;
- }
- }
- class Hotel extends Object {
- constructor(name, years, city, stars, rating) {
- super(name, years, city);
- this.stars = stars;
- this.rating = rating;
- }
- get_rating() {
- if(this.stars <= 2 && this.rating <7 && years<=2) return "The hotel " + this.name + " has low rating + oti ima <=2 stars i <7 raatoing i <=2 yrs";
- if(this.stars <=2 && this.rating >= 7 && this.years >2) return "The hotel "+ this.name + " has average rating";
- if((this.stars==3 || this.stars==4) && this.rating < 7 && this.years > 2) return "The hotel " + this.name + " has low rating";
- if(this.stars ==3 && this.rating >=7) return "The hotel " + this.name + " has average rating";
- if(this.stars == 4 || this.stars == 5 && this.rating >=7) return "The hotel " + this.name + " has high rating";
- if(this.stars == 5 && this.rating < 7) return "The hotel " + this.name + " has average rating"
- }
- }
- var hashCode = function(s){
- return String(s).split("").reduce(function(a,b){a=((a<<3)-a)+b.charCodeAt(0);return a&a},0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement