BladehelpRunner
@BladehelpRunner
Гений мысли

Как найти итоговые поступления каждого маршрута за 7 дней?

Транспортная компания осуществляет работу 10 маршрутов городских автобусов. В конце каждого дня регистрируется выручка по каждому из маршрутов, а в конце недели составляется итоговый отчёт.
Напишите класс, который моделирует сбор соответствующей информации и выводит на экран итоговые недельные поступления от каждого из 10 маршрутов.
Я сделал большую часть, но подсчитать сумму не могу, в основном получалось, что компилятор считал от i-го числа до конца массива :( Я условился, что за маршрут можно получить от 1000 до 10000. help
import java.util.Scanner;
import java.util.*;
public class Sasu3 {
public static Scanner eva = new Scanner(System.in);
public static void main(String[] args) {
int m[] = new int [10];
for(int i = 0; i<7;i++) {
	System.out.println();
fill(m);
write(m);
System.out.println();
int count[] = new int[10];

gocount(m,count);}
		
}
static void gocount(int m[], int count[]) {
int sum = 0;
	for(int i=0; i<m.length; i++)
		count[i]=m[i];
	for(int i=0; i<10; i++) 
		System.out.println((i+1)+"="+count[i]);
}

static void write(int m[]) {
	for(int i = 0; i<m.length; i++)
		System.out.print(m[i]+" ");
}
static void fill(int m[]) {
	for(int i = 0; i<m.length; i++)
		m[i] = 1000+(int)(Math.random()*9000);
}
}
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Добрый день.
Это тестовое задагние или реальный проект?
На всякий случай отмечу, что если вы оперируете с валютой, то для высокой точности стоит использовать тип данных BigDecimal вместо примитивов. Тип данных int тем более не подойдет, так как могут быть не только целые значения.

Транспортная компания осуществляет работу 10 маршрутов городских автобусов. В конце каждого дня регистрируется выручка по каждому из маршрутов, а в конце недели составляется итоговый отчёт.
Напишите класс, который моделирует сбор соответствующей информации и выводит на экран итоговые недельные поступления от каждого из 10 маршрутов.

Предположу, что это тестовое задание или домашка и потому вместо ответа дам вам несколько подсказок.
1) Создайте класс, который хранит в себе информацию по каждому из маршрутов. Приведу простой пример. Можно учесть много аспектов например, дату и т.д., но не будем.
Например, (псевдокод):
class Route {
    int busNum;
    Map<DayOfWeek, BigDecimal> incomePerDay;
}

далее вы можете создать массив или использовать jcf для хранения данных.
Не будем морочиться и возьмем массив:
Route [] routes = new Route [];
Инициализируем массив маршрутов. В мапу кладем доход. Ключом является день недели, а значением доход на этот день.
Далее остается при помощи класса Scanner, который вы используете принять выручку на каждый день недели для каждого из маршрутов.
После того, как вы примете значения остается итерировать по массиву Route. Внутри цикла получить мапу. Проитерировав по мапе получить значения (доходы) по ключу и вывести сумму (недельный доход) в консоль

Я условился, что за маршрут можно получить от 1000 до 10000.

За маршрут можно получить и 550 руб. 50 коп. Целых значений может и не быть
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Akela_wolf
Extreme Programmer
1. Код нужно форматировать. Выкладывать такой код - неуважение к читающему его.
2. А где у вас считается сумма? Я не вижу ни одного оператора сложения.
count[i]=m[i]; - вот тут не должно ли быть +=?
3. А где у вас инициализируется массив под сумму? int count[] = new int[10]; - упс... при каждой итерации цикла. Вынесите за пределы цикла и заполните его нулями.

По идее этого достаточно чтобы ваша программа заработала как вы желаете.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
21 нояб. 2024, в 19:31
500 руб./за проект
21 нояб. 2024, в 19:28
200000 руб./за проект
21 нояб. 2024, в 19:09
5000 руб./за проект