Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.88/40: Рейтинг темы: голосов - 40, средняя оценка - 4.88
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 8

Написать простой прототип системы регистрации пользователей

06.04.2018, 00:02. Показов 8483. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
задание такое, что я сделала не правильно? подскажите
1. Создавать новый экземпляр объекта UserList (с пустым свойством-массивом пользователей)

2. Открывать диалог подсказки с указанием имени и фамилии пользователя для регистрации (одна строкой через пробел)

3. После создания ОК должен создать новый экземпляр объекта Пользователь с заполнением свойств firstName, lastName и regDate (текущая дата и время)

4. Созданный экземпляр объекта должен сохраняться в свойства-массиве пользователей созданного ранее объекта типа UserList (при помощи метода добавить)

5. Диалог prompt должен повтоться, пока пользователь не нажмет «Отмена»

6. После получения «Отмена» выведите на экран (в консоль или при помощи оповещения) список всех пользователей с именами и датами регистрации (используйте для этого метода getAllUsers)

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
function User(x,y,z){
    this.firstName = x,// имя
    this.lastName = y,// фамилия
    this.regDate = z// дата и время регистрации
}
 
function UserList(){
    // внутреннее свойство-массив, в которое будут попадать объекты типа User
    this.users = [],
    // метод получает в качестве параметра объект типа User и сохраняет его в массив users
    this.add = function(user) {
        this.users.push([user]);
    },
    this.getAllUsers = function() {
        var arr = this.users;
        var text = '';
        for(var i = 0; i < arr.length; i++){
            for(var j in arr[i]){
                text += arr[i][j]+"\n";
            }
        }
        alert(text);
    }
 
 
// циклируем пока кнопка "отмена" НЕ нажата
while(eUser != null){
    eUser = prompt("Введите ваше Имя и Фамилию через пробел","");
    if(eUser != null){
        var nameUser = eUser.split(' ');
        if(nameUser[1] !== undefined){
            var param1 = nameUser[0];
            var param2 = nameUser[1];
            var param3 = getDateNow();
            var newObject = new User(param1,param2,param3);
            var twoObj = new UserList();
            twoObj.add(newObject);
        }
        else{
            alert("Между Имя и Фамилия должен быть пробел");
        }
    }
    else{
        new UserList().getAllUsers();
    }
}
 
// функция получения текущей даты и времени
function getDateNow(){
    var now = new Date();
    var date = now.getDate();//получаем число месяца
    // получаем месяц
    var month = 'января,февраля,марта,апреля,мая,июня,июля,августа,сентября,октября,ноября,декабря'.split(',');
    var monthWord = month[now.getMonth()];
    var year = now.getFullYear();//получаем год
    //получаем день недели
    var dayWeek = 'воскресенье,понедельник,вторник,среда,четверг,пятница,суббота'.split(',');
    var dayWeekWord = dayWeek[now.getDay()];
    //получаем часы, минуты, секунды
    var hour = now.getHours();
    var minute = now.getMinutes();
    var second = now.getSeconds(); 
    if(hour.length == 1){hour = '0' + hour} 
    if(minute.length == 1){minute = '0' + minute} 
    if(second.length == 1){second = '0' + second}
    var regDate = 'Регистрация: ' + date + ' ' + monthWord + ' ' + year + ' года, ' + hour + ':' + minute + ':' + second;
    return regDate;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.04.2018, 00:02
Ответы с готовыми решениями:

Сделал простой сайт на PHP. Как "прицепить" функцию регистрации пользователей.
Сделал простой сайт на PHP. Как &quot;прицепить&quot; функцию регистрации пользователей, для расширение их возможностей на сайте? Не просто сделать...

Простой конструктор учетных систем (прототип) ( GWT / GXT )
Добрый день. Была идея сделать легко конфигурируемый конструктор учетных систем. Что бы простой пользователь мог бы очень просто...

Написать скрипт, который выводит имена всех пользователей системы и их идентификаторы (UID)
написать скрипт, который выводит имена всех пользователей системы и их идентификаторы (UID) таким образом: имя1 uid=999 имя2 ...

11
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
06.04.2018, 08:29
Вы на каждой итерации цикла создаёте новый экземпляр класса UserList, создайте его до цикла и заполняйте / выводите его.
Переменная eUser - не вижу объявления / инициализации.
1
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 8
18.04.2018, 21:48  [ТС]
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
function User(x,y,z){
    this.firstName = x,// имя
    this.lastName = y,// фамилия
    this.regDate = z// дата и время регистрации
}
 
function UserList(){
    // внутреннее свойство-массив, в которое будут попадать объекты типа User
    this.users = [],
    // метод получает в качестве параметра объект типа User и сохраняет его в массив users
    this.add = function(user) {
        this.users.push([user]);
    },
    // метод возвращает список пользователей из массива users
    this.getAllUsers = function() {
        var arr = this.users;
        for(var i in arr){
            console.log(i + ': ' + arr[i]);
        }
    }
}
var eUser = '';
 
// циклируем пока кнопка "отмена" НЕ нажата
while(eUser != null){
    eUser = prompt("Введите ваше Имя и Фамилию через пробел","");
    if(eUser != null){
        var nameUser = eUser.split(' ');
        if(nameUser[1] !== undefined){
            var param1 = nameUser[0];
            var param2 = nameUser[1];
            var param3 = getDateNow();
            var newObject = new User(param1,param2,param3);
            var twoObj = new UserList();
            twoObj.add(newObject);
        }
        else{
            alert("Между Имя и Фамилия должен быть пробел");
        }
    }
    else{
        new UserList().getAllUsers();
    }
}
 
// функция получения текущей даты и времени
function getDateNow(){
    var now = new Date();
    var date = now.getDate();//получаем число месяца
    // получаем месяц
    var month = 'января,февраля,марта,апреля,мая,июня,июля,августа,сентября,октября,ноября,декабря'.split(',');
    var monthWord = month[now.getMonth()];
    var year = now.getFullYear();//получаем год
    //получаем день недели
    var dayWeek = 'воскресенье,понедельник,вторник,среда,четверг,пятница,суббота'.split(',');
    var dayWeekWord = dayWeek[now.getDay()];
    //получаем часы, минуты, секунды
    var hour = now.getHours();
    var minute = now.getMinutes();
    var second = now.getSeconds(); 
    if(hour.length == 1){hour = '0' + hour} 
    if(minute.length == 1){minute = '0' + minute} 
    if(second.length == 1){second = '0' + second}
    var regDate = 'Регистрация: ' + date + ' ' + monthWord + ' ' + year + ' года, ' + hour + ':' + minute + ':' + second;
    return regDate;
}
Добавлено через 1 минуту
j2FunOnly, можно еще вопрос? мне теперь надо ограничить вводимость слов до 3 помогите плиз))))
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
18.04.2018, 21:52
olikbel, неужели в задании не было пункта о проверке занятости первого и второго имён -- в России много людей с с именем Кузнецов Иван, а в Америке много Джонов Смитов
0
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 8
18.04.2018, 22:03  [ТС]
не было(((
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
19.04.2018, 08:37
Лучший ответ Сообщение было отмечено olikbel как решение

Решение

olikbel, то есть вы проигнорировали и ничего не исправили.
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// function User(x,y,z){
function User(firstName, lastName, middleName) {
  this.firstName = firstName; // имя
  this.lastName = lastName; // фамилия
  this.middleName = middleName;
  // this.regDate = z // дата и время регистрации
  this.regDate = new Date();
}
 
User.prototype.toString = function() {
  return this.firstName + ' ' +
    this.lastName + ' ' +
    this.middleName + ' ' +
    'Дата регистрации: ' + this.regDate.toLocaleDateString('ru-RU', {
      weekday: 'long',
      year: 'numeric',
      month: 'long',
      day: 'numeric',
      hour: 'numeric',
      minute: 'numeric'
    });
}
 
function UserList() {
  // внутреннее свойство-массив, в которое будут попадать объекты типа User
  this.users = [];
}
 
// метод получает в качестве параметра объект типа User и сохраняет его в массив users
UserList.prototype.add = function(user) {
  this.users.push(user);
};
 
// метод возвращает список пользователей из массива users
UserList.prototype.getAllUsers = function() {
  // var arr = this.users;
  //   for (var i in arr) {
  for (var user of this.users) {
    console.log(user.toString());
  }
}
 
var userList = new UserList(),
  eUser;
 
// циклируем пока кнопка "отмена" НЕ нажата
// while (eUser != null) {
while (eUser = prompt("Введите ваше Имя, Фамилию и Отчество через пробел", "")) {
  // eUser = prompt("Введите ваше Имя и Фамилию через пробел", "");
  // if (eUser != null) {
  var nameUser = eUser.split(' ');
  // if (nameUser[1] !== undefined) {
  if (nameUser.length === 3) {
    //  var param1 = nameUser[0];
    //  var param2 = nameUser[1];
    //  var param3 = getDateNow();
    // var newObject = new User(param1, param2, param3);
    var user = new User(nameUser[0], nameUser[1], nameUser[2]);
    // var twoObj = new UserList();
    // twoObj.add(newObject);
    userList.add(user);
  } else {
    alert("Введите ваше Имя, Фамилию и Отчество через пробел");
  }
  // } else {
  //   new UserList().getAllUsers();
  // }
}
 
userList.getAllUsers();
1
0 / 0 / 0
Регистрация: 06.03.2017
Сообщений: 8
19.04.2018, 08:56  [ТС]
а я просто переменную eUser добавила, и все! спасибо вам огромное сейчас разбираться буду
0
0 / 0 / 0
Регистрация: 12.01.2019
Сообщений: 2
13.01.2019, 22:51
Привет, а как этот же код написать с анонимными функциями?
0
14.01.2019, 08:03

Не по теме:

bvv96, olikbel, вы что всей группой решили по одной теме создать каждый? :D
Простая система регистрации пользователей

0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
14.01.2019, 08:18
Всем здравствуйте!
Цитата Сообщение от olikbel Посмотреть сообщение
датами регистрации
olikbel, j2FunOnly, Qwerty_Wasd, а где в задании указано, что надо разбирать минуты с секундами?

Почему все дружно бросились вытаскивать строковые компоненты даты и минуты с секундами?

Добавлено через 2 минуты
regDate (текущая дата и время)
Секунды можно хранить. Но это не означает, что их строго обязательно выводить для всего списка из двух миллионов пользователей.
Секунды хороши для анализа кишок одного взятого пользователя.
0
Эксперт JSЭксперт HTML/CSS
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
14.01.2019, 08:22
amr-now, так как в задании не указан формат - я оставил вывод на свое усмотрение. Или по Вашему мне нужно было у Вас разрешения спросить? Если ТС в той теме, где я код оставил не понадобятся секунды, достаточно просто убрать
JavaScript
1
second: "numeric"
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
14.01.2019, 08:39
Цитата Сообщение от bvv96 Посмотреть сообщение
а как этот же код написать с анонимными функциями?
А где здесь потребность в анонимных функциях?

В задаче явный намек на использование двух именованных классов, имеющих именованные свойства и именованные методы.

Диалог prompt должен повторяться, пока пользователь не нажмет «Отмена»
Теоретически анонимные функции можно навертеть в цикле обработки событий интерфейса. Но зачем?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.01.2019, 08:39
Помогаю со студенческими работами здесь

Прототип системы домашней автоматизации
Примерно после года борьбы с ленью готов прототип системы домашней автоматизации, а по совместительству моя ВКР. В двух словах: ...

Форма регистрации пользователей
Добрый день! Помогите, пожалуйста, разобраться с глюком в форме регистрации пользователей она же форма заказа. Форма долго и успешно...

Форма для регистрации пользователей
Посоветуйет кто сталкивался. Мне нужно компонент для создания форм. Надо чтобы пользователь сайта мог оставить заявку на участие в...

Веб-страничка регистрации пользователей
Нужно создать веб-страничку регистрации пользователей с полями для ввода: имени, фамилии, email-адреса, логина и двух полей для ввода...

Исходники Аутентификации пользователей и их регистрации
Кому не трудно и не лень прошу выложите пожалуйста исходники Аутентификации пользователей и их регистрацией и как я понял с шифрованием или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru