Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Второе ДЗ #18

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
108 changes: 108 additions & 0 deletions Event.js
Original file line number Diff line number Diff line change
@@ -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, �������� ����� ����, � ������� ����� ��������� �������.
*/
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Старайся использовать /**/ только для больших коментариев. То что у тебя влезет и в строчный комент //

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 �� ���������.
*/
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JSDoc фактически правильно оформлен, но так же не читается.

/**
 * Конструктор события
 *
 * @param {Number} start Дата начала события. Если не является типом number, дата не верна, событие не создаётся.
 * @param {Number} end  Дата конца события. Ес...
 */

createEvent : function (start, end, link, city, street, house) {
if (((typeof start === "number") && (start / 20000000 > 0)) && ((typeof end === "number") && (end / 20000000 > 0) && (end > start))) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это не читается. Много лишних скобочек и длинная строка.

if (typeof start === "number" &&
    start / 20000000 > 0) {
    // your stuff
}

this.startTime = start;
this.endTime = end;
(typeof link === "string") && (this.link = link);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Это плохо воспринимается - фактически это if-стейтмент.

if(((typeof house === "number") && (house > 0)) && (typeof city === "string") && (typeof street === "string")) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Аналогично с первым.

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;
}
}
};
}
108 changes: 108 additions & 0 deletions EventUTF8.js
Original file line number Diff line number Diff line change
@@ -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;
}
}
};
}
75 changes: 75 additions & 0 deletions EventUTF8Correct.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
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);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Нууу

if(typeof house === "number" && house > 0) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if ()
  ^ пробел

this.coordinate.street = street;
this.coordinate.house = house;
this.coordinate.city = city;
}
}
},
/**Добавление человека в список участников события.
*@param {String} name ФИО участника события.
*/
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

plz fix it

http://ru.wikipedia.org/wiki/JSDoc#.D0.9F.D1.80.D0.B8.D0.BC.D0.B5.D1.80

/**
 * Создает экземпляр Circle.
 *
 * @constructor
 * @this {Circle}
 * @param {number} r Радиус окружности.
 */

Все это делаеться не для того, чтобы вы помучались, а чтобы соблюдать формат, который всем привычен и легко воспринимается.

addParticipant : function (name) {
if (typeof name === "string") {
++this.members.numberOfParticipants;
this.members.namesOfParticipants[this.members.numberOfParticipants] = name;
}
}
};
}