2012-05-02 3 views
1

Задача под рукой приведена ниже:Температурный массив, потенциально 2D?

Напишите программу, которая использует массив для хранения температуры для пятидневных объектов.
Каждый объект должен инкапсулировать его имя дня (например: понедельник, вторник ... и т. Д.) И температура Контрольная программа отобразит среднюю температуру на этой неделе.

Теперь я понимаю, основной принцип массива и как они используются, но я запутался о двух вещах:

public class TemperatureAndDay { 
    public static void main(String[] args) { 

    double [] temperature = new double [4]; 

    temperature[0] = 45.24; 
    temperature[1] = 67.30; 
    temperature[2] = 55.23; 
    temperature[3] = 49.20; 
    temperature[4] = 50.22; 

    } 
} 

Может кто-нибудь дать мне некоторые советы/подсказки/примеры кода, которые дали бы мне лучшее понимание того, что мой профессор хочет, чтобы я сделал? Спасибо.

+2

«пяти объектов дня» выглядит, как вам нужно создавать объекты одного класса здесь, может быть, вы должны написать этот класс? – esej

+0

P.S. помните, что «новый массив [n]» означает, что новый массив может содержать n элементов, а не n - максимальный индекс (максимальный индекс - фактически n-1). – arshajii

ответ

3

Согласно заявлению о проблеме, я думаю, вам следует создать класс Day с полями данных name (String) и temp (double). Затем вы можете сохранить пять таких объектов в массиве, чтобы представить неделю, и написать метод, который проходит через этот массив, чтобы определить среднюю температуру.

public static double avgTemp(Day[] week) { 
    double avg = 0; 
    for (Day d : week) avg += d.temp(); 
    return avg/week.length; 
} 
1
  1. Написать класс, который держит день и температуру (сделать атрибуты общественности или использовать методы получения и установки).
  2. Сделайте массив из 5 элементов (не 4, как в вашем примере) этого класса.
  3. Итерируйте по массиву, чтобы рассчитать среднюю температуру.
0
  1. создать класс под названием День (или что-то еще).
  2. создать атрибуты: двойную температуру Строки DAYNAME
  3. создать конструктор: Day (String DAYNAME, двойная температура)
  4. в каком-нибудь другом классе, например, имя его TestProgram, создать массив объектов Day:

Пример:

Day[] days = new Day[4]; 
days[0] = new Day("Monday", 22.44); 
... 

ли это теперь ясно?

+0

Да, спасибо за вашу помощь / – user1316703

0

Я согласен с @ m0skit0 и хочу добавить:

Нет, это не 2 одномерный массив нужен как ваш заголовок состояния. Вам нужен 1-мерный массив, который содержит измерения, подобные вашему образцу кода.

0

Напишите программу, которая использует массив для хранения температуры для пятидневных объектов.

Я думаю, что вам нужен массив в main(), но нигде больше.

Каждый объект должен инкапсулировать его имя дня (например: понедельник, вторник ... и т. Д.) И температуру. Контрольная программа отобразит среднюю температуру на этой неделе.

So ...то, что вам нужно сделать, в двух словах:

  1. Создание объектов типа TempDay или что вы хотите назвать это (надеюсь смысл).
  2. Есть поля в объекте для температуры того дня. Вы можете заполнить их любым способом - через конструктор или мутаторы.
  3. Сохраните эти объекты в массиве в main() (скорее всего).
  4. Остальное - это просто сырое математическое определение «среднее».

Может кто-нибудь дать мне некоторые советы/подсказки/примеры кода, которые дают бы мне лучшее понимание того, что мой профессор хочет, чтобы я сделал? Спасибо вы.

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

EDIT: код, который вы в настоящее время также бросает ArrayIndexOutOfBoundsException при попытке поставить пять элементов в массиве размера 4.

Смежные вопросы