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

По ежедневным данным выручки из трёх магазинов найти лучший/худший магазин

02.12.2017, 20:15. Показов 1884. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер уважаемые программисты и просто хорошие люди) Не могу решить задачу по java, так как я только начинающий студент (не программист)и пока все дается тяжело(. Нам задали задачу, я ее решил (конечно же не правильно), хотел бы попросить исправить все ошибки, заранее всем спасибо)


Задача:

Выручка в магазине
У вас есть ежедневные данные выручки из трёх магазинов за неделю
Вам нужно найти:
1. Лучший магазин (по суммарной выручке за неделю)
2. Лучший магазин (по средней ежедневной выручке)
3. Магазин с лучшей за день выручкой
4. Магазин с худшей за день выручкой
Условие: данные о выручке хранить в виде массивов в программе (не
считывать с клавиатуры и не генерировать случайным образом)


Мое решение:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 public class Main { 
public static void main(String[] args) { 
int min = receipts[0]; //минимальная выручка 
int max = receipts[0];//максимальная выручка 
int[] shops1 = {35, 75, 50, 40}; 
int[] shops2 = {35, 75, 50, 40}; 
int[] shops3 = {35, 75, 50, 40}; 
int min1 = shops1[0]; 
int min2 = shops2[0]; 
int min3 = shops3[0]; 
for (int shopN = 0; shopN[i] < min1; min1 = shopN[i]) { 
} 
for (int shopN = 0; shopN[i] < min2; min2 = shopN[i]) { 
} 
for (int shopN = 0; shopN[i] < min3; min3 = shopN[i]) { 
if (min > shopN) { 
} 
if (shopN[i] > max) { 
} 
} 
System.out.println(max - min); 
} 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2017, 20:15
Ответы с готовыми решениями:

Дана ведомость выручки трех магазинов
Дана ведомость выручки трех магазинов за неделю. Определить, у какого магазина и в какой день недели была наименьшая выручка.

Определите и выведите на экран лучший и худший результаты с номерами спортсменов
Результаты соревнований по прыжкам в воду и порядковый номер участников хранятся в массиве.Нечетный элемент массива определяет номер...

Определите и выведите на экран лучший и худший результаты с номерами спортсменов
Прошу помочь решить задачу. &quot;Результаты соревнований по прыжкам в воду и порядковый номер участников хранятся в массиве. Нечетный ...

10
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
02.12.2017, 21:06
Цитата Сообщение от Dinar_1985 Посмотреть сообщение
int[] shops1 = {35, 75, 50, 40};
Это что? Выручка по дням?
0
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
02.12.2017, 21:17
Лучший ответ Сообщение было отмечено Dinar_1985 как решение

Решение

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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
import java.util.Arrays;
import java.util.Random;
 
public class Task006 {
    public static void main(String[] args) {
        int length = 10;
 
        WorkShops shops = new WorkShops();
        shops.addShop(new Shop("OneShop", randomArray(length, 0, 1_000)));
        shops.addShop(new Shop("TwoShop", randomArray(length, 0, 1_000)));
        shops.addShop(new Shop("ThreeShop", randomArray(length, 0, 1_000)));
 
        System.out.println("Shops:\n" + shops.toString());
 
        System.out.println("Best shop to week:\n" + shops.bestIncomeToWeek() + "\n");
        System.out.println("Best by average income:\n" + shops.bestAverage() + "\n");
        System.out.println("Best shop to day:\n" + shops.bestIncomeLastDay() + "\n");
        System.out.println("Bad shop to day:\n" + shops.badIncomeLastDay() + "\n");
 
    }
 
    public static int[] randomArray(int length, int min, int max) {
        int[] result = length > 0 ? new int[length] : new int[0];
        if (length > 0) {
            Random rand = new Random();
            for (int i = 0; i < length; i++) {
                result[i] = rand.nextInt(Math.abs(max - min) + 1) + min;
            }
        }
        return result;
    }
}
 
class WorkShops {
    private Shop[] shops = new Shop[0];
 
    public void addShop(Shop shop) {
        shops = Arrays.copyOf(shops, shops.length + 1);
        shops[shops.length - 1] = shop;
    }
 
    public Shop bestIncomeLastDay() {
        Shop result = null;
        if (shops.length != 0) {
            int max = Integer.MIN_VALUE;
            for (Shop shop : shops) {
                if (max < shop.getIncomeLastDay()) {
                    result = shop;
                    max = shop.getIncomeLastDay();
                }
            }
        }
        return result;
    }
 
    public Shop badIncomeLastDay() {
        Shop result = null;
        if (shops.length != 0) {
            int min = Integer.MAX_VALUE;
            for (Shop shop : shops) {
                if (min > shop.getIncomeLastDay()) {
                    result = shop;
                    min = shop.getIncomeLastDay();
                }
            }
        }
        return result;
    }
 
    public Shop bestIncomeToWeek() {
        Shop result = null;
        if (shops.length != 0) {
            int max = Integer.MIN_VALUE;
            for (Shop shop : shops) {
                if (max < shop.getSumIncomeToWeek()) {
                    result = shop;
                    max = shop.getSumIncomeToWeek();
                }
            }
        }
        return result;
    }
 
 
 
    public Shop bestAverage() {
        Shop result = null;
        if (shops.length != 0) {
            double max = Double.MIN_VALUE;
            for (Shop shop : shops) {
                if (max < shop.getAverage()) {
                    result = shop;
                    max = shop.getAverage();
                }
            }
        }
        return result;
    }
 
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        if (shops.length > 0) {
            for (Shop shop : shops) {
                sb.append(shop).append(System.lineSeparator()).append(System.lineSeparator());
            }
        }
        return sb.toString();
    }
}
 
class Shop {
    private String nameShop;
    private int[] arrayIncome;
 
    public Shop(String nameShop, int[] arrayIncome) {
        this.nameShop = nameShop;
        this.arrayIncome = arrayIncome;
    }
 
    public int getSumIncome() {
        int result = 0;
        if (arrayIncome != null && arrayIncome.length != 0) {
            for (int value : arrayIncome) {
                result += value;
            }
        }
        return result;
    }
 
    public int getIncomeLastDay() {
        int result = 0;
        if (arrayIncome != null && arrayIncome.length != 0) {
            result = arrayIncome[arrayIncome.length - 1];
        }
        return result;
    }
 
    public int getSumIncomeToWeek() {
        int result = 0;
        if (arrayIncome != null && arrayIncome.length != 0) {
            for (int i = arrayIncome.length - 1; i >= 0 || arrayIncome.length - i == 6; i--) {
                result += arrayIncome[i];
            }
        }
        return result;
    }
 
    public double getAverage() {
        return arrayIncome.length != 0 ? getSumIncome() / arrayIncome.length : 0;
    }
 
    @Override
    public String toString() {
        return String.format("%s: %s;\naverage: %.2f;\nSum income week: %d;",
                this.nameShop, Arrays.toString(arrayIncome), getAverage(), getSumIncomeToWeek());
    }
}
Добавлено через 14 секунд
Я б типа такого сделал
2
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
02.12.2017, 21:27
Лучший ответ Сообщение было отмечено Dinar_1985 как решение

Решение

ArtemFM, респект!
Только не поверят ведь...
1
0 / 0 / 0
Регистрация: 02.12.2017
Сообщений: 10
02.12.2017, 21:37  [ТС]
Артем благодарствую)))) Спасибо)))

Добавлено через 36 секунд
Помогли очень))))

Добавлено через 1 минуту
скорее всего не поверят, что студент такую комбинацию сделал))) Ну и ладно
0
0 / 0 / 0
Регистрация: 02.12.2017
Сообщений: 10
02.12.2017, 21:45  [ТС]
Артем, а можно раза в 3 сократить?))) точно не поверят, да я и сам ничего не понял совсем)) простой ответ, можно совсем примитивный))) по условиям задачи можно внести любые значения))
Миниатюры
По ежедневным данным выручки из трёх магазинов найти лучший/худший магазин  
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
02.12.2017, 22:09
Лучший ответ Сообщение было отмечено Dinar_1985 как решение

Решение

Попроще? Если не к спеху, завтра с утра набросаю.
1
0 / 0 / 0
Регистрация: 02.12.2017
Сообщений: 10
02.12.2017, 22:13  [ТС]
iSmokeJC, спасибо вам большое заранее)) завтра только сдавать ее до 11-00( прошу прощения за наглость, если будет не сложно до этого времени накидать))) тему плохо освоил, как говорят опыт приходит с годами))))
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
02.12.2017, 22:51
Алгоритм, конечно, КРАЙНЕ отстойный. Но, думаю, тебе попонятней немного будет, да и препод поверит, что совсем начинающий прогу сваял
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
public class Main {
 
    public static void main(String[] args) {
 
        int[][] shops = {{27, 39, 11, 32, 44}, {34, 52, 22, 33, 99}, {12, 34, 56, 78, 0}};     //Выручка по дням}
//------------------------------------------------------------------------------------------
        int[] sum = new int[3];                //Здесь хранятся выручки за неделю по магазинам
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 5; j++) {
                sum[i] += shops[i][j];
            }
        }
        int max, min;        //Номер магазина
        if (sum[0] > sum[1] && sum[0] > sum[2]) max = 1;
        else if (sum[1] > sum[0] && sum[1] > sum[2]) max = 2;
        else max = 3;
        System.out.println("Лучший магазин по суммарной выручке за неделю - " + max + "-й");
//------------------------------------------------------------------------------------------
        // Среднедневная выручка
        for (int i = 0; i < 3; i++) {
            sum[i] /= 5;                        //Значение не точное, т.к. деление целочисленное
        }
        if (sum[0] > sum[1] && sum[0] > sum[2]) max = 1;
        else if (sum[1] > sum[0] && sum[1] > sum[2]) max = 2;
        else max = 3;
        System.out.println("Лучший магазин по средней дневной выручке - " + max + "-й");
//------------------------------------------------------------------------------------------
        // по дням
        for (int i = 0; i < 5; i++) {
            if ((shops[0][i] > shops[1][i]) && (shops[0][i] > shops[2][i])) max = 1;
            else if ((shops[1][i] > shops[0][i]) && (shops[1][i] > shops[2][i])) max = 2;
            else max = 3;
 
            if ((shops[0][i] < shops[1][i]) && (shops[0][i] < shops[2][i])) min = 1;
            else if ((shops[1][i] < shops[0][i]) && (shops[1][i] < shops[2][i])) min = 2;
            else min = 3;
 
            System.out.println("За " + (i + 1) + "-й день: лучший магазин - " + max + "-й, худший - " + min + "-й.");
        }
//------------------------------------------------------------------------------------------
    }
}
1
 Аватар для ArtemFM
746 / 493 / 285
Регистрация: 10.09.2015
Сообщений: 1,530
02.12.2017, 23:12
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
import java.util.Arrays;
 
public class Task006 {
    public static final int COUNT_SHOPS = 3;
 
    public static int[] shopOne = {11, 30, 20, 50, 70, 80, 90, 120};
    public static int[] shopTwo = {20, 25, 33, 44, 58, 66, 95, 111};
    public static int[] shopThree = {12, 18, 34, 56, 44, 55, 76, 144};
 
    public static void main(String[] args) {
        //создаём и заполняем массив магазинов
        Shop[] shops = new Shop[COUNT_SHOPS];
        shops[0] = new Shop("Shop1", shopOne);
        shops[1] = new Shop("Shop2", shopTwo);
        shops[2] = new Shop("Shop3", shopThree);
 
        //печатаем магазины в консоль
        System.out.println("Магазины:");
        for (Shop shop : shops) {
            System.out.println(shop.name + ": " + Arrays.toString(shop.incomes));
        }
 
        bestShopToWeek(shops);
        bestAndBadForLastDay(shops);
        bestAverage(shops);
    }
 
    public static void bestAverage(Shop[] shops) {
        double maxAverage = 0;
        double average;
        Shop best = null;
        int sum;
        for (Shop shop : shops) {
            sum = 0;
            average = 0;
            for (int i = 0; i < shop.incomes.length; i++) {
                sum += shop.incomes[i];
            }
            average = sum / shop.incomes.length;
            if (average > maxAverage) {
                maxAverage = average;
                best = shop;
            }
        }
        System.out.println("\nЛучший магазин по среднему доходу:");
        System.out.println(best.name + ": " + Arrays.toString(best.incomes));
        System.out.println("Его средний доход: " + maxAverage);
    }
 
    public static void bestAndBadForLastDay(Shop[] shops) {
        Shop bad = null;
        Shop best = null;
        int min = Integer.MAX_VALUE;
        int max = Integer.MIN_VALUE;
        for (Shop shop : shops) {
            if (min > shop.incomes[shop.incomes.length - 1]) {
                min = shop.incomes[shop.incomes.length - 1];
                bad = shop;
            }
            if (max < shop.incomes[shop.incomes.length - 1]) {
                max = shop.incomes[shop.incomes.length - 1];
                best = shop;
            }
        }
        System.out.println("\nХудший магазин за последний день:");
        System.out.println(bad.name + ": " + Arrays.toString(bad.incomes));
        System.out.println("Его доход составил: " + min);
 
        System.out.println("\nЛучший магазин за последний день:");
        System.out.println(best.name + ": " + Arrays.toString(best.incomes));
        System.out.println("Его доход составил: " + max);
    }
 
    public static void bestShopToWeek(Shop[] shops) {
        int sumIncome;
        Shop result = null;
        int maxSum = Integer.MIN_VALUE;
        for (int i = 0; i < shops.length; i++) {
            sumIncome = 0;
            for (int j = shops[i].incomes.length - 1; j >= 0 && shops[i].incomes.length - j < 7; j--) {
                sumIncome += shops[i].incomes[j];
            }
            if (sumIncome > maxSum) {
                maxSum = sumIncome;
                result = shops[i];
            }
        }
        System.out.print("\nЛучший магазин по выручке за неделю: ");
        System.out.println(result.name + ": " + Arrays.toString(result.incomes));
        System.out.println("Его недельная выручка (7 дней): " + maxSum);
    }
}
 
class Shop {
    String name;
    int[] incomes;
 
    public Shop(String name, int[] incomes) {
        this.name = name;
        this.incomes = incomes;
    }
}
Добавлено через 2 минуты
сократил кода в 1,5 раза, как велено )
1
0 / 0 / 0
Регистрация: 02.12.2017
Сообщений: 10
03.12.2017, 09:13  [ТС]
Спасибо Ребята)))))) Очень выручили))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.12.2017, 09:13
Помогаю со студенческими работами здесь

Средний балл студентов, лучший и худший ученик (понедельник - крайний срок)
Дан список студентов группы и оценки экзаменационной сессии. Напечатать список, средний балл каждого и фамилии лучшего и худ- шего...

Нужно найти общую максимальную прибыль трёх магазинов за день
Всем привет. В этом задании мне нужно найти общую максимальную прибыль за день. Т.е сложить прибыль трех магазинах за каждый день. Я сделал...

Найти трёх студентов у кого средний балл лучший
Структуры. Даны фамилии студентов и массив из 5-ти элементов (это баллы студентов). Выводится кол-во студентов-n. Вывести на экран...

Надо отнять значение Выручки 2015 от значения Выручки 2016
Есть две таблицы 2015 и 2016 с значениями Выручка. Надо отнять значение Выручки 2015 от значения Выручки 2016 и вывести в отдельную строку


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
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, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru