Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
 Аватар для xikaxex
0 / 0 / 0
Регистрация: 14.06.2017
Сообщений: 24

Интерактивное консольное приложение с использованием паттерна MVC

14.06.2017, 23:13. Показов 5617. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Требование:
Разработайте специальный класс-контейнер, который будет хранить значе-ния целевой последовательности (вектора, списка и т.п.) и предоставлять ме-тоды доступа к данным значениям.

Задание:
В векторе, состоящем из n целых элементов, вычислить: произведение эле-ментов вектора с четными номерами и сумму элементов вектора, расположенных между первым и последним нулевыми элементами.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.06.2017, 23:13
Ответы с готовыми решениями:

Реализация MVC паттерна в несложном desktop приложение на Java
Добрый вечер! Я новичок в Java и решил написать своё первое приложение, в котором будет использоваться MVC паттерн. Идея простая: есть...

Вывод модулей на страницы с использованием паттерна MVC
Пишу систему управления с использованием MVC паттерна, написал клсс маршрутизации который в зависимости от запрошенного пользователем...

Создать консольное приложение с использованием API
Условие задачи: Создать консольное приложение с использованием API. Создать контейнер STL из фигур (прямоугольники, эллипсы и...

6
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
15.06.2017, 09:28
Лучший ответ Сообщение было отмечено xikaxex как решение

Решение

Простой пример:
Model:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Container {
    private List<Integer> data;
 
    public Container(final List<Integer> data) {
        this.data = data;
    }
 
    public int dataSize() {
        return data.size();
    }
 
    public void set(final int index, final int value) {
        data.set(index, value);
    }
 
    public int get(final int index) {
        return data.get(index);
    }
}
View:
Java
1
2
3
4
5
6
public class ContainerView {
    public void printProductAndSum(final long product, final long sum) {
        System.out.println("Product of elements with even indices: " + product);
        System.out.println("Sum of elements between zeroes: " + sum);
    }
}
Controller:
Java
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
71
72
73
74
public class ContainerController {
    private Container container;
    private ContainerView view;
 
    public ContainerController(final Container container, final ContainerView view) {
        this.container = container;
        this.view = view;
    }
 
    public void setContainerElement(final int index, final int value) {
        container.set(index, value);
    }
 
    public int getContainerElement(final int index) {
        return container.get(index);
    }
 
    public void updateView() {
        view.printProductAndSum(Helper.calculateEvenIndexedElementsProduct(container),
                Helper.calculateSumBetweenZeroes(container));
    }
 
    private static class Helper {
        public static long calculateEvenIndexedElementsProduct(final Container container) {
            long result = 1;
 
            for (int i = 0; i < container.dataSize(); i += 2)
                result *= container.get(i);
 
            return result;
        }
 
        public static long calculateSumBetweenZeroes(final Container container) {
            final int firstZeroElementIndex = findFirstZeroElementIndex(container, Direction.FROM_BEGIN);
            final int lastZeroElementIndex = findFirstZeroElementIndex(container, Direction.FROM_END);
 
            long result = 0;
 
            if ((firstZeroElementIndex != -1) && (lastZeroElementIndex != -1) &&
                    (firstZeroElementIndex != lastZeroElementIndex)) {
                for (int i = firstZeroElementIndex + 1; i < lastZeroElementIndex; i++)
                    result += container.get(i);
            }
 
            return result;
        }
 
        private static int findFirstZeroElementIndex(final Container container, Direction direction) {
            int elementIndex = -1;
 
            if (direction == Direction.FROM_BEGIN) {
                int i = 0;
                while ((i < container.dataSize()) && (elementIndex == -1)) {
                    if (container.get(i) == 0)
                        elementIndex = i;
                    i++;
                }
            } else {
                int i = container.dataSize() - 1;
                while ((i > -1) && (elementIndex == -1)) {
                    if (container.get(i) == 0)
                        elementIndex = i;
                    i--;
                }
            }
 
            return elementIndex;
        }
 
        private enum Direction {
            FROM_BEGIN, FROM_END
        }
    }
}
Main:
Java
1
2
3
4
5
6
7
8
9
10
11
public class Main {
    public static void main(String[] args) {
        Container container = new Container(Arrays.asList(1, 2, 3, 0, 4, 5, 6, 7, 8, 0, 9));
        ContainerView view = new ContainerView();
        ContainerController controller = new ContainerController(container, view);
 
        controller.updateView();
        controller.setContainerElement(0, 0);
        controller.updateView();
    }
}
1
 Аватар для xikaxex
0 / 0 / 0
Регистрация: 14.06.2017
Сообщений: 24
16.06.2017, 14:22  [ТС]
HighPredator, Вам большое спасибо! Выручили.
0
 Аватар для xikaxex
0 / 0 / 0
Регистрация: 14.06.2017
Сообщений: 24
16.06.2017, 16:25  [ТС]
HighPredator, пытаюсь подключить к main остальные файлы
выдает ошибку.
Миниатюры
Интерактивное консольное приложение с использованием паттерна MVC  
0
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
16.06.2017, 16:37
Честно говоря не могу вам ничего конкретного посоветовать, ибо не знаю в чем вы проект себе создали и как. Из общего могу только посоветовать поставить себе полноценную среду разработки и работать.
1
 Аватар для xikaxex
0 / 0 / 0
Регистрация: 14.06.2017
Сообщений: 24
16.06.2017, 16:41  [ТС]
HighPredator, код пишу в Notepad++
и командой javac Main.java
компилирую. через консоль CMD
см.рисунок выше. и вылезают след.ошибки.
хочу прикрутить к main таким образом

package by.111.start;

import by.111.controller.Controller;
import by.111.model.Model;
import by.111.view.View;
0
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
16.06.2017, 17:11
Лучший ответ Сообщение было отмечено xikaxex как решение

Решение

Ну вам еще нужно будет
а) проверить иерархию каталогов на соответствие пакетам
б) передать джаваку класспасс

Начните работать в среде, там вы сможете наглядно разобрать механику работы
Ну или гайд найдите..
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.06.2017, 17:11
Помогаю со студенческими работами здесь

Какое консольное mini-приложение можно сделать с использованием классов (для практики)?
Подскажите пожалуйста какое то консольное mini-приложение можно сделать с использованием классов. А то книгу читаю но все бистро забивается...

Создать в среде MSVS C + + консольное приложение , реализующее веб -службу с использованием библиотеки gSOAP
Если можно - сделайте в коде комменты к каждой строке, пожалуйста, с подробным объяснением а-ля для тупых. Почему и как, какие заглавники...

Реализация паттерна MVC
Доброго времени суток. Допустим у меня есть класс Database в котором 2 метода: class Database { public OleDbConnection...

Реализация паттерна Prototype в MVC через открытые члены
Всем доброго времени суток! Реализую приложение с родительской формой и несколькими дочерними. Для каждой дочерней формы применяется...

Как открыть консольное приложение в .NET через другое консольное приложение .NET
Есть один вопрос. Как открыть консольное приложение .NET через другое консольное приложение .NET, чтобы при этом второе приложение...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru