diff --git a/EvenFinal.js b/EvenFinal.js new file mode 100644 index 0000000..843aa94 --- /dev/null +++ b/EvenFinal.js @@ -0,0 +1,86 @@ +function Event() { + return { + startTime : undefined, + endTime : undefined, + /** + * Объект с информацией о рейтинге события. + * + * @type {ratingStruct} + * @field {Number} rating Величина рейтинга события. + * @field {Number} numberOfVoters Величина рейтинга события. + */ + rating : { + rating : 0, + numberOfVoters : 0 + }, + /** + * Объект с информацией о участниках события. + * + * @type {membersStruct} + * @field {Number} numberOfParticipants Число участников. + * @field {Array} namesOfParticipants ФИО участников. + */ + members : { + numberOfParticipants : 0, + namesOfParticipants : [] + }, + link : undefined, + /** + * Объект с информацией о месте события. + * + * @type {coordinateStruct} + * @field {Number} house Дом события. + * @field {String} street Улица события. + * @field {String} city Город события. + */ + coordinate : { + city : undefined, + street : undefined, + house : undefined + }, + /** + * Голосование за событие. + * + * @param {Number} mark Оценка от 0 до 5 за это событие. + */ + vote : function (mark) { + if (mark >= 0 && mark <= 5) { + ++this.rating.numberOfVoters; + this.rating.rating = (this.rating.rating + mark) / this.rating.numberOfVoters; + } + }, + /** + * Конструктор события. + * + * @param {Number} start Начало события в формате "ггггммдд". + * @param {Number} end Конец события в формате "ггггммдд". + * @param {String} link Ссылка события. + * @param {String} city Город события. + * @param {String} street Улица события. + * @param {Number} house Номер дома события. + */ + createEvent : function (start, end, link, city, street, house) { + if (typeof start === "number" && start / 20000000 > 0 && end > start) { + this.startTime = start; + this.endTime = end; + (typeof link === "string") && (this.link = link); + if(typeof house === "number" && house > 0) { + this.coordinate.street = street; + this.coordinate.house = house; + this.coordinate.city = city; + } + } + }, + /** + * Добавление человека в список участников события. + * + * @param {String} name ФИО участника события. + */ + addParticipant : function (name) { + if (typeof name === "string") { + ++this.members.numberOfParticipants; + this.members.namesOfParticipants[this.members.numberOfParticipants] = name; + } + } + }; +} \ No newline at end of file diff --git a/Event.js b/Event.js new file mode 100644 index 0000000..d06e701 --- /dev/null +++ b/Event.js @@ -0,0 +1,108 @@ +function Event() { + return { + /** + * number, "". + */ + startTime : undefined, + /** + * number, "". + */ + endTime : undefined, + /** + *, . + */ + rating : { + /** + * number, . + */ + rating : 0, + /** + * number, , . + */ + numberOfVoters : 0 + }, + /** + *, , . + */ + members : { + /** + * number, , . + */ + numberOfParticipants : 0, + /** + * string, , . + */ + namesOfParticipants : [] + }, + /** + * string, . + */ + link : undefined, + /** + *, . + */ + coordinate : { + /** + * string, , . + */ + city : undefined, + /** + * String, , . + */ + street : undefined, + /** + * number, , . + */ + house : undefined + }, + /** + * . + * + *@param {Number} mark 0 5 . + */ + vote : function (mark) { + if ((mark >= 0) && (mark <= 5)) { + ++this.rating.numberOfVoters; + this.rating.rating = (this.rating.rating + mark) / this.rating.numberOfVoters; + } + }, + /** + * . + * + *@param {Number} start . number, , . + * + *@param {Number} end . number, , , , . + * + *@param {String} link , string, . + * + *@param {String} city , , string, coordinate . + * + *@param {String} street , , string, coordinate . + * + *@param {Number} house , , number, coordinate . + */ + createEvent : function (start, end, link, city, street, house) { + if (((typeof start === "number") && (start / 20000000 > 0)) && ((typeof end === "number") && (end / 20000000 > 0) && (end > start))) { + this.startTime = start; + this.endTime = end; + (typeof link === "string") && (this.link = link); + if(((typeof house === "number") && (house > 0)) && (typeof city === "string") && (typeof street === "string")) { + this.coordinate.street = street; + this.coordinate.house = house; + this.coordinate.city = city; + } + } + }, + /** + * . + * + *@param {String} name . + */ + addParticipant : function (name) { + if (typeof name === "string") { + ++this.members.numberOfParticipants; + this.members.namesOfParticipants[this.members.numberOfParticipants] = name; + } + } + }; +} \ No newline at end of file diff --git a/EventUTF8.js b/EventUTF8.js new file mode 100644 index 0000000..b945bea --- /dev/null +++ b/EventUTF8.js @@ -0,0 +1,108 @@ +function Event() { + return { + /** + *Переменная типа number, хранящая начало события в виде "ггггммдд". + */ + startTime : undefined, + /** + *Переменная типа number, хранящая конец события в виде "ггггммдд". + */ + endTime : undefined, + /** + *Объект, отвечающий за рейтинг события. + */ + rating : { + /** + *Переменная типа number, хранящая рейтинг события. + */ + rating : 0, + /** + *Переменная типа number, хранящая количество человек, принявших участие в голосовании. + */ + numberOfVoters : 0 + }, + /** + *Объект, отвечающий за хранение людей, принимающих участие в данном событии. + */ + members : { + /** + *Переменная типа number, хранящая число людей, принимающих участие в данном событии. + */ + numberOfParticipants : 0, + /** + *Массив string, хранящий ФИО людей, принимающих участие в данном событии. + */ + namesOfParticipants : [] + }, + /** + *Переменная типа string, хранящая ссылку со стороннего ресурса на описание этого события. + */ + link : undefined, + /** + *Объект, хранящий координаты данного события. + */ + coordinate : { + /** + *Переменная типа string, хранящая название города, в котором будет проходить событие. + */ + city : undefined, + /** + *Переменная типа String, хранящая название улицы, на которой будет проходить событие. + */ + street : undefined, + /** + *Переменная типа number, хранящая номер дома, в котором будет проходить событие. + */ + house : undefined + }, + /** + *Голосование за событие. + * + *@param {Number} mark Оценка от 0 до 5 за это событие. + */ + vote : function (mark) { + if ((mark >= 0) && (mark <= 5)) { + ++this.rating.numberOfVoters; + this.rating.rating = (this.rating.rating + mark) / this.rating.numberOfVoters; + } + }, + /** + *Конструктор события. + * + *@param {Number} start Дата начала события. Если не является типом number, дата не верна, событие не создаётся. + * + *@param {Number} end Дата конца события. Если не является типом number, дата не верна, или дата конца больше, чем дата начала события, событие не создаётся. + * + *@param {String} link Ссылка со стороннего ресурса, если не является типом string, инициализация ссылки не происходит. + * + *@param {String} city Название города,в котором пройдёт событие, если не является типом string, инициализация объекта coordinate не произойдёт. + * + *@param {String} street Название улицы, на которой пройдёт событие, если не является типом string, инициализация объекта coordinate не произойдёт. + * + *@param {Number} house Номер дома, в котором пройдёт событие, если не является типом number, инициализация объекта coordinate не произойдёт. + */ + createEvent : function (start, end, link, city, street, house) { + if (((typeof start === "number") && (start / 20000000 > 0)) && ((typeof end === "number") && (end / 20000000 > 0) && (end > start))) { + this.startTime = start; + this.endTime = end; + (typeof link === "string") && (this.link = link); + if(((typeof house === "number") && (house > 0)) && (typeof city === "string") && (typeof street === "string")) { + this.coordinate.street = street; + this.coordinate.house = house; + this.coordinate.city = city; + } + } + }, + /** + *Добавление человека в список участников события. + * + *@param {String} name ФИО участника события. + */ + addParticipant : function (name) { + if (typeof name === "string") { + ++this.members.numberOfParticipants; + this.members.namesOfParticipants[this.members.numberOfParticipants] = name; + } + } + }; +} \ No newline at end of file diff --git a/EventUTF8Correct.js b/EventUTF8Correct.js new file mode 100644 index 0000000..843aa94 --- /dev/null +++ b/EventUTF8Correct.js @@ -0,0 +1,86 @@ +function Event() { + return { + startTime : undefined, + endTime : undefined, + /** + * Объект с информацией о рейтинге события. + * + * @type {ratingStruct} + * @field {Number} rating Величина рейтинга события. + * @field {Number} numberOfVoters Величина рейтинга события. + */ + rating : { + rating : 0, + numberOfVoters : 0 + }, + /** + * Объект с информацией о участниках события. + * + * @type {membersStruct} + * @field {Number} numberOfParticipants Число участников. + * @field {Array} namesOfParticipants ФИО участников. + */ + members : { + numberOfParticipants : 0, + namesOfParticipants : [] + }, + link : undefined, + /** + * Объект с информацией о месте события. + * + * @type {coordinateStruct} + * @field {Number} house Дом события. + * @field {String} street Улица события. + * @field {String} city Город события. + */ + coordinate : { + city : undefined, + street : undefined, + house : undefined + }, + /** + * Голосование за событие. + * + * @param {Number} mark Оценка от 0 до 5 за это событие. + */ + vote : function (mark) { + if (mark >= 0 && mark <= 5) { + ++this.rating.numberOfVoters; + this.rating.rating = (this.rating.rating + mark) / this.rating.numberOfVoters; + } + }, + /** + * Конструктор события. + * + * @param {Number} start Начало события в формате "ггггммдд". + * @param {Number} end Конец события в формате "ггггммдд". + * @param {String} link Ссылка события. + * @param {String} city Город события. + * @param {String} street Улица события. + * @param {Number} house Номер дома события. + */ + createEvent : function (start, end, link, city, street, house) { + if (typeof start === "number" && start / 20000000 > 0 && end > start) { + this.startTime = start; + this.endTime = end; + (typeof link === "string") && (this.link = link); + if(typeof house === "number" && house > 0) { + this.coordinate.street = street; + this.coordinate.house = house; + this.coordinate.city = city; + } + } + }, + /** + * Добавление человека в список участников события. + * + * @param {String} name ФИО участника события. + */ + addParticipant : function (name) { + if (typeof name === "string") { + ++this.members.numberOfParticipants; + this.members.namesOfParticipants[this.members.numberOfParticipants] = name; + } + } + }; +} \ No newline at end of file