Я получаю ошибки в строках (temperaturearrayone = new temperature[getrandomarraysize()]; и readtemperaturearray(temperaturearrayone); ). методы не определены для типа temperaturedemowitharrays
Arrays are a very powerful data structure with which you must become very familiar. Arrays hold more than one object. The objects must be of the same type. If the array is an integer array then all the objects in the array must be integers. The an object in the array is associated with an integer index which can be used to locate the object. The first object of the array has index 0. There are many problems where arrays can be used. After the topic of arrays has been covered create arrays of class Temperature. Write a program that satisfies the next 6 requirements using Temperatures. Create a class similar to the Math class. Put the next 5 static methods in it. (These static methods could also be in the Demo class.) Use the random number generator as described on the bottom of page 412 to create 3 arrays of random sizes of 1 to 5 elements.
Создайте статический метод void, который имеет параметр массива и вызывается 3 раза для считывания значений температуры для каждого массива.
Создайте статический метод, который вычисляет и возвращает среднюю температуру для каждого массива и также вызывается 3 раза.
Создайте статический метод, который печатает температуру массива.
Создайте статический вспомогательный метод, который имеет 3 параметра массива и либо возвращает самый большой массив, либо самый большой размер.
Создайте статический метод, который возвращает массив температур, содержащий то же число элементов, что и самый большой из трех массивов. Этот метод будет иметь 3 параметра массива и, возможно, целочисленный параметр. Он определяет наибольшее значение температуры из трех массивов в каждом индексе и создает копию этой температуры и сохраняет ее в этом индексе нового массива. Затем этот массив возвращается.
Поскольку эта программа работает, она должна генерировать удобный текст для ввода и вывода, объясняющий, что делает программа.
Создайте набор тестовых значений температуры, которые показывают, что ваша программа работает правильно.
Что я уже пробовал:
import java.util.Random; import java.util.Scanner; public class Temperature { public double temperature; char scale; Temperature() { } public Temperature(double temperature, char scale) { this.temperature = temperature; this.scale = scale; } private void set(double temperature, char scale) { switch(scale) { case 'C': if(this.temperature <= -273.15) { System.out.println("Temperature value is out of range. "); System.exit(0); } else { this.temperature = temperature; } break; case 'F': if(this.temperature <= -459.67) { System.out.println("Temperature value is out of range. "); } else { this.temperature = temperature; } break; case 'K': if(this.temperature <= 0) { System.out.println("Temperature value is out of range. "); } else { this.temperature = temperature; } break; } } public void read() { Scanner keyboard = new Scanner(System.in); System.out.println("Please enter a temperature in this form 45 C: "); Temperature[] array = new Temperature[5]; for(int i = 0; i < array.length; i++) { array[i] = new Temperature(); } } /* public void read() { Scanner keyboard = new Scanner(System.in); System.out.println("Enter the temperature: "); temperature = keyboard.nextDouble(); System.out.println("Enter C if you want the temperature converted to Celsius, F if you want the temperature " + " converted to Fahrenheit or K if you want the temperature converted to Kelvin: "); scale = keyboard.next().charAt(0); } */ public Temperature toCelsius() { Temperature temp = new Temperature(); temp.scale = 'C'; switch(this.scale) { case 'F': temp.temperature = (this.temperature - 32) * 5 / 9; break; case 'K': temp.temperature = this.temperature - 273.15; break; default: temp.temperature = this.temperature; } return temp; } public Temperature toFahrenheit() { Temperature temp = new Temperature(); temp.scale = 'F'; switch(this.scale) { case 'C': temp.temperature = this.temperature * 9 / 5 + 32; break; case 'K': temp.temperature = this.temperature * 9 / 5 - 459.67; break; default: temp.temperature = this.temperature; } return temp; } public Temperature toKelvin() { Temperature temp = new Temperature(); temp.scale = 'K'; switch(this.scale) { case 'C': temp.temperature = this.temperature + 273.15; break; case 'F': temp.temperature = (this.temperature + 459.67) * 5 / 9; break; default: temp.temperature = this.temperature; } return temp; } public Temperature add(Temperature t) { Temperature new_temp = new Temperature(); new_temp.scale = this.scale; switch(this.scale) { case 'C': new_temp.temperature = new_temp.temperature + t.toCelsius().temperature; break; case 'F': new_temp.temperature = new_temp.temperature + t.toFahrenheit().temperature; break; case 'K': new_temp.temperature = new_temp.temperature + t.toKelvin().temperature; break; } return new_temp; } public Temperature subtract(Temperature t) { Temperature new_temp = new Temperature(); switch(this.scale) { case 'C': new_temp.temperature = this.temperature - t.toCelsius().temperature; break; case 'F': new_temp.temperature = this.temperature - t.toFahrenheit().temperature; break; case 'K': new_temp.temperature = this.temperature - t.toKelvin().temperature; break; } return new Temperature(new_temp.temperature, this.scale); } public Temperature multiply(Temperature t) { Temperature new_temp = new Temperature(); new_temp.scale = this.scale; switch(this.scale) { case 'C': new_temp.temperature = new_temp.temperature * t.toCelsius().temperature; break; case 'F': new_temp.temperature = new_temp.temperature * t.toFahrenheit().temperature; break; case 'K': new_temp.temperature = new_temp.temperature * t.toKelvin().temperature; break; } return new_temp; } public Temperature divide(double t) { Temperature new_temp = new Temperature(); switch(this.scale) { case 'C': new_temp.temperature = this.temperature / toCelsius().temperature; break; case 'F': new_temp.temperature = this.temperature / toFahrenheit().temperature; break; case 'K': new_temp.temperature = this.temperature / toKelvin().temperature; break; } return new Temperature(new_temp.temperature, this.scale); } public boolean equalsTo(Temperature t) { boolean result = false; switch(this.scale) { case 'C': if(this.temperature == t.toCelsius().temperature) { result = true; } else { return result; } break; case 'F': if(this.temperature == t.toFahrenheit().temperature) { result = true; } else { return result; } break; case 'K': if(this.temperature == t.toKelvin().temperature) { result = true; } else { return result; } break; } return result; } public boolean greaterThan(Temperature t) { boolean result = false; switch(this.scale) { case 'C': if(this.temperature > t.toCelsius().temperature) { result = true; } else { return result; } break; case 'F': if(this.temperature > t.toFahrenheit().temperature) { result = true; } else { return result; } break; case 'K': if(this.temperature > t.toKelvin().temperature) { result = true; } else { return result; } break; } return result; } public String toString() { return " " + temperature + scale; } public static int getRandomArraySize() { return (int)(6.0 * Math.random()) + 1; } public static void readTemperatureArray(Temperature[] array) { for(int i = 0; i < array.length; i++) { array[i] = new Temperature(); array[i].read(); } } } import java.util.Random; import java.util.Scanner; public class TemperatureDemoWithArrays { public static final int Array_Size = 5; public static void main(String[] args) { int x; Temperature average; System.out.println("You will be asked to fill 3 randomly sized arrays."); Temperature[] temperatureArrayOne; Temperature[] temperatureArrayTwo; Temperature[] temperatureArrayThree; temperatureArrayOne = new Temperature[getRandomArraySize()]; readTemperatureArray(temperatureArrayOne); System.out.println("The values of temperature array one are "); printTemperatureArray(temperatureArrayOne); average = getAverage(temperatureArrayOne); System.out.println("The average of temperature array one is " + average); temperatureArrayTwo = new Temperature[getRandomArraySize()]; readTemperatureArray(temperatureArrayTwo); System.out.println("The values of temperature array two are "); printTemperatureArray(temperatureArrayTwo); average = getAverage(temperatureArrayTwo); System.out.println("The average of temperature array two is " + average); temperatureArrayThree = new Temperature[getRandomArraySize()]; readTemperatureArray(temperatureArrayThree); System.out.println("The values of temperature array three are "); printTemperatureArray(temperatureArrayThree); average = getAverage(temperatureArrayThree); System.out.println("The average of temperature array three is " + average);