CRUD

  • 18
  • Недоступна
CrUD - Create, Update, Delete. Программа запускается с одним из следующих наборов параметров: -c name sex bd -u id name sex bd -d id -i id Значения параметров: name - имя, String sex - пол, "м" или "ж", одна буква bd - дата рождения в следующем формате 15/04/1990 -c - добавляет человека с заданными
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (613)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
🦔 Виктор админ Java Android канала в telegram @LetsCodeItExpert
позавчера, 17:29
Добротная задача, поехали: 1. Сначала нужно понять, что главный метод принимает в параметрах строковой массив аргументов main(String[] args) — вот это он и есть, массив аргументов типа строки под названием args, в который при запуске программы попадают аргументы, если с таковыми она была запущена. 2. То есть, запуская нашу программу с аргументами -c name sex bd, мы получаем в главном методе массив, в индексы которого попадают введённые аргументы-строки через пробел:
args[0] = "-c";
args[1] = "name";
args[2] = "sex";
args[3] = "bd";
3. Дальше дело в шляпе нужно внимательно и последовательно элементы этого массива проверять, я прогнал их все через переключатель, сама IDEA так подсказывает.
переключатель (массивАргументов[0]) {
  совпадение "-c": {
    ПростойФорматДаты парсер = новый ПростойФорматДаты("дд/ММ/гггг");
    Дата дата = парсер.спарсить(массивАргументов[3]);
    если (массивАргументов[2].соответствует("м")) {
списокЛюдей.добавить(Человека.создатьМужчину(массивАргументов[1], дата));
    } иначе // создаём и добавляем в список женщину.
    РаспечататьНовойСтрокой(списокЛюдей.размер() - 1); // т.к. новый элемент добавляется в конец списка и -1, чтобы не вылететь за его пределы.
4. Таким образом, мы в переключателе берём нулевой элемент массива аргументов, проверяем, чему он соответствует (какому параметру по ТЗ) и выполняем нужные действия. 5. Прогоняем по аналогии все остальные совпадения через наш переключатель. 6. Всё получится! p.s. Чтобы потестить программу, можно прямо руками в главном методе прописать нужные параметры массиву аргументов, а можно в IDEA в настройках конфигурации запуска программы прописать нужные параметры. -- tlgrm: @LetsCodeIt | @SefoNotasi
jimaltair 19 уровень, Калининград
12 января, 20:27
Задача реально классная! Если вы, как и я в начале, посмотрели на условия и ни черта не поняли, не спешите впадать в панику, материть джавараш или собственную тупость=) Здесь используется материал, который мы ещё не проходили (думаю, пора уже привыкнуть). Вот алгоритм решения: 1. Смотрите видео, где объясняется тема "Аргументы командной строки": Уроки Java для начинающих #16 Аргументы командной строки 2. Повторяете то, что сделал автор видео, у себя в IDE. Лучше сразу использовать пример параметров из задачи, так быстрее дойдёт. Пытаетесь осмыслить всё проделанное. 3. Завариваете большую чашку кофе. 4. Применяете новые полученные знания и ранее пройденный материал для решения. 5. Спустя пару часов сворачиваете IDE и идёте отдыхать с чувством удовлетворённости от хорошо сделанной работы.
Евгений Коротаев Аналитик в Комус
12 января, 18:29
Для передачи параметров запуска не обязательно делать компиляцию или менять настройки проекта, просто не забываем что args массив стрингов, который можно переопределить и в коде, например, сразу после входа в метод main:
public static void main(String[] args) {
      args = new String[] {"-c", "Миронов", "м", "15/04/1990"};
Главное, перед отправкой на валидацию не забыть закомментировать строки с переопределением args.
Василий 20 уровень, Подольск
12 января, 17:30
Отличная задачка, мне понравилась. Для решения вам пригодится: 1. Как работать с параметрами. Ссылка 2. Работа с датами. SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH); sdf.parse() sdf.format() 3. Внимательность. Проверьте что ничего лишнего не выводите. Я забыл вычистить свой вывод для отладки, потратил несколько попыток... Двигаемся дальше! Всем терпения!
Дмитрий 19 уровень
8 января, 19:30
/* Комментарий удален */
Ivan Zelenkov 24 уровень
8 января, 23:40
а я только начинаю. Стоит ли ее долбать?
Ivan Zelenkov 24 уровень
9 января, 00:16
вот сижу)
Александр Матвеев 20 уровень, Самара
7 января, 14:03
Получил удовольствие от решение задачи. Больше всего мне понравилась из всех ранее встретившихся. +наконец-то узнал что значит (String [] args)
Kirill 23 уровень, Москва
3 января, 12:47
очень не хватает инфы про то, как компилить и запускать из командной строки. по примерам ниже не получилось - "class foo.foo.foo.Solution not found" приходилось тестить через Edit Configuration, но это мне кажется несерьёзно... если у кого есть полезные ссылки про javac и просто запуск java из проекта - накидайте плз, на будущее
Владислав Дуплянкин 25 уровень, Сан-Франциско
28 декабря 2020, 04:15
Задача несложная, просто нет четких инструкций по решению и это сбивает. Когда я начал ее решать, я не знал с чего начать. Но любая большая задача решается легко, если ее разделить на части. И первый вопрос, который я стал решать - это откуда берутся эти параметры? Они вводятся с клавиатуры? - Нет, в условиях написано "Программа запускается с набором параметров". Это означает что параметры уже введены еще до запуска. И я начал гуглить. Оказалась что main(String[] args) означает что принятые параметры преобразуются в строковый массив args. Как их посылать? В Idea можно нажать правой кнопкой по названию файла (Solution) и выбрать Edit. В поле Program arguments через пробел можно вписывать параметры, которые будут представлены в main как args[0], args[1], args[2]. Когда я разобрался как эти параметры вводить в main и извлекать в виде массива строк args. То следующие подзадачи были легче. Следующая задача была сделать одни параметры из строки числом, другой параметр из строки преобразовать в дату. Затем была задача научить программу вызывать разные методы в зависимости от первого параметра (сравнение через equals). И соответственно написание каждого метода Create Update Read Delete. Когда решаю такие задачи, я открываю блокнот (notepad) и выписываю туда требования дословно, это помогает: - программа должна запускать с одним из следующих наборов параметров; - -с добавляет...; Такой подход позволит вам быть внимательнее. Потому что память всегда будет вас обманывать. Если все выписывать, то вы не ошибетесь с например "-d" где вместо удаления нужно лишь заменить переменные объекта на null. Точная запись и соблюдение требований. Да программирование это творчество, но ваш код может быть лишь частью командной работы. Вот, например, тело состоит из клеток, и если часть клеток отделяется от общей системы организма - то это становится раковой опухолью. Так может быть и с кодом, код который решает задачу, но не следует требованиям - может нарушить работу всей системы.
Ильнур 27 уровень, Москва
29 декабря 2020, 14:36
Спасибо, все досканально разжевал. Особенно полезным оказалась информация про String[] args.
Benzoleum Бит в Байте
8 января, 19:09
Дай Бог здоровья
Future Man 22 уровень
26 декабря 2020, 15:23
Решилпо своему, все работало... но валидацию не прошло, принял готовое решение... Про наболевшие, проверка валидатором построена исходя и логики и решения задачи, А НЕ из проверки готового РЕШЕНИЯ и верности результатов ... И это сильно раздаражет, тк программирование - это ж творческий отчасти подход использует, один так решает другой по другому!! АВТОРЫ ЗАДАЧИ _ ПРОВЕРЯЙТЕ РЕЗУЛЬТАТ В РЕШЕНИИ!!! Тогда хотя бы намекайте как предпочтительно решить данную задачу, т.е. каким пойти путем, что бы программма скомпилировалась!! ps Было убито 10 часов
Олег Д 20 уровень, Москва
25 декабря 2020, 14:51
Кто нибудь может объяснить в чем смысл этой задачи?
Future Man 22 уровень
26 декабря 2020, 17:07
боль и страдания ))) 😅