OOP_IO-2x_2023-mirror/laba6/Main.java

118 lines
6.1 KiB
Java
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import java.util.Scanner;
import java.util.InputMismatchException;
public class Main {
public static void main(String[] args) {
// Вмикаємо прибори
TurnOn();
// Виводимо відомості про систему
String totalPower = Integer.toString(ElectroAppliance.getTotalPower());
System.out.println("Загальна споживана потужість:" + totalPower + " Вт");
String totalWater = Integer.toString(WashingMashines.getTotalWaterConsumption());
System.out.println("Загальна споживана вода:" + totalWater + " Л");
String totalHeat = Integer.toString(HeatingDevices.getTotalHeatTransfer());
System.out.println("Загальне виділення тепла:" + totalHeat + " Дж");
String totalMech = Integer.toString(MechanicDevices.getTotalMechanicPower());
System.out.println("Загальн механічна потужність:" + totalMech + " Вт");
System.out.println("-------------------------");
//Виводимо сортовані потужності
ElectroAppliance.printSortedPowers();
System.out.println("-------------------------");
//Виводимо електромагнітні випромінювання в шуканому діапазоні
ElectroAppliance.printDiapasonedElectromagneticRadiation(getLimits());
}
public static void TurnOn() {
if (AskTrueOrFalse("Ввімкнути в розетку посудомийну машину(введіть так або ні)?")) {
WashingMashines DishWasher = new WashingMashines(11, 1000, 30, "Посудомийна машина");
}
if (AskTrueOrFalse("Ввімкнути в розетку пральну машину(введіть так або ні)?")) {
WashingMashines ClothesWasher = new WashingMashines(50, 2000, 10, "Пральна машина");
}
if (AskTrueOrFalse("Ввімкнути в розетку мікрохвильовку(введіть так або ні)?")) {
HeatingDevices MicroWawe = new HeatingDevices(2000, 1100, 10000, "Мікрохвильвка");
}
if (AskTrueOrFalse("Ввімкнути в розетку духову піч(введіть так або ні)?")) {
HeatingDevices Oven = new HeatingDevices(1000, 800, 1000, "Духова піч");
}
if (AskTrueOrFalse("Ввімкнути в розетку блендер(введіть так або ні)?")) {
MechanicDevices Blender = new MechanicDevices(200, 400, 1, "Блендер");
}
if (AskTrueOrFalse("Ввімкнути в розетку пилосос(введіть так або ні)?")) {
MechanicDevices VacuumCleaner = new MechanicDevices(50, 300, 3, "Пилосос");
}
/**
* Цей метод створений для того, щоб запитати у користувача, які він прилади хоче ввімкнути в розетку і потім,
* якщо відповідь буде позитивна, створює об'єект цього класу.
*/
}
public static int[] getLimits(){
int[] limits = new int[2];
while (true) {
int low = 0;
System.out.println("Введіть нижню границю пошуку");
Scanner scanner = new Scanner(System.in);
while (true) {
try {
low = scanner.nextInt();
break;
} catch (InputMismatchException e) {
System.out.println("Введені символи не є цілим числом, спробуйте ще раз.");
scanner.nextLine();
}
}
System.out.println("Введіть нижню границю пошуку");
int top = 0;
while (true) {
try {
top = scanner.nextInt();
break;
} catch (InputMismatchException e) {
System.out.println("Введені символи не є цілим числом, спробуйте ще раз.");
scanner.nextLine();
}
}
if (top >= low) {
limits[0]=low;
limits[1]=top;
break;
} else {
System.out.println("Нижня границя більна верхньої");
}
}
return limits;
/**
* Цей метод створений для того, щоб запитати у користувача нижню і верхню границю пошуку, і при цьому оброботи
* всі можливі помилки, такі як ввід не цілого числа, та перевищення нижньої границі верхньої
*/
}
public static boolean AskTrueOrFalse(String question) {
System.out.println(question);
Scanner scanner = new Scanner(System.in);
boolean x = true;
while (true) {
String anwser = scanner.nextLine();
if (anwser.equalsIgnoreCase("так")) {
x = true;
break;
} else if (anwser.equalsIgnoreCase("ні")) {
x = false;
break;
} else {
System.out.println("Ви ввели не правильний текст, спробуйте ще раз");
}
}
return x;
}
/**
* Цей метод створений для того, щоб запитати у користвуча відповідь так або ні. Він приймає текстовий аргумент,
* виводить його на екран і очікує ввід. Потім він перевіряє відповіть на рівність "так" або "ні"
* і повертає значення true або false.
*/
}