Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ федеральное государственное автономное образовательное учреждение высшего образования «САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ» КАФЕДРА № 43 ОТЧЁТ ЗАЩИЩЕН С ОЦЕНКОЙ ПРЕПОДАВАТЕЛЬ Асс. С. Ю. Гуков должность, уч. степень, звание подпись, дата инициалы, фамилия ОТЧЁТ О ЛАБОРАТОРНОЙ РАБОТЕ №2 Классы и методы по дисциплине: ВВЕДЕНИЕ В РАЗРАБОТКУ КОРПОРАТИВНЫХ ПРИЛОЖЕНИЙ НА Java РАБОТУ ВЫПОЛНИЛА СТУДЕНТКА ГР. 4931 23.10.2022 Е.А. Екименко подпись, дата инициалы, фамилия Санкт-Петербург 2022 Цель работы: Научиться писать программы с использованием классов и методов. Задание: Создать классы, спецификации которых приведены ниже. Определить конструкторы и методы setТип(), getТип(), toString(). Определить дополнительно методы в классе, создающем массив объектов. Задать критерий выбора данных и вывести эти данные на консоль. В каждом классе, обладающем информацией, должно быть объявлено несколько конструкторов. Листинг программы 1 (Patient): import java.util.Objects; public class Patient { private Long id; private String surname; private String name; private String patronymic; private String address; private String phoneNumber; private Long medicalCardNumber; private String Diagnosis; public Patient(Long id, String surname, String name, String patronymic, String address, String phoneNumber, Long medicalCardNumber, String diagnosis) { this.id = id; this.surname = surname; this.name = name; this.patronymic = patronymic; this.address = address; this.phoneNumber = phoneNumber; this.medicalCardNumber = medicalCardNumber; Diagnosis = diagnosis; } public Patient() { } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getSurname() { return surname; } public void setSurname(String surname) { this.surname = surname; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } public Long getMedicalCardNumber() { return medicalCardNumber; } public void setMedicalCardNumber(Long medicalCardNumber) { this.medicalCardNumber = medicalCardNumber; } public String getDiagnosis() { return Diagnosis; } public void setDiagnosis(String diagnosis) { Diagnosis = diagnosis; } public String getPatronymic() { return patronymic; } public void setPatronymic(String patronymic) { this.patronymic = patronymic; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Patient patient = (Patient) o; return Objects.equals(id, patient.id) && Objects.equals(surname, patient.surname) && Objects.equals(name, patient.name) && Objects.equals(patronymic, patient.patronymic) && Objects.equals(address, patient.address) && Objects.equals(phoneNumber, patient.phoneNumber) && Objects.equals(medicalCardNumber, patient.medicalCardNumber) && Objects.equals(Diagnosis, patient.Diagnosis); } @Override public int hashCode() { return Objects.hash(id, surname, name, patronymic, address, phoneNumber, medicalCardNumber, Diagnosis); } @Override public String toString() { return "Patient{" + "id=" + id + ", surname='" + surname + '\'' + ", name='" + name + '\'' + ", patronymic='" + patronymic + '\'' + ", address='" + address + '\'' + ", phoneNumber='" + phoneNumber + '\'' + ", medicalCardNumber=" + medicalCardNumber + ", Diagnosis='" + Diagnosis + '\'' + '}'; } } import java.util.*; public class Client { public static void main(String[] args) { run(); } public static void run() { Patient patient1 = new Patient(10L, "surname1", "name1", "patronymic1", "address1", "123456789", 225588L, "diag1"); Patient patient2 = new Patient(11L, "surname2", "name2", "patronymic2", "address2", "223453789", 425588L, "diag2"); Patient patient3 = new Patient(12L, "surname3", "name3", "patronymic3", "address3", "323256789", 925588L, "diag3"); List<Patient> listOfPatients = new ArrayList<>(); listOfPatients.add(patient1); listOfPatients.add(patient2); listOfPatients.add(patient3); listOfPatients.add(new Patient()); System.out.println("Please enter the Diagnosis"); Scanner in = new Scanner(System.in); String diagnosis = in.next(); System.out.println("Please enter the medicalCardNumber"); System.out.println("from: "); Long medicalCardNumberFrom = in.nextLong(); System.out.println("to: "); Long medicalCardNumberTo = in.nextLong(); getPatientsByDiagnosis(listOfPatients, diagnosis); getPatientsByMedicalCardInterval(listOfPatients, medicalCardNumberFrom, medicalCardNumberTo); } public static void getPatientsByDiagnosis(List<Patient> list, String diag) { System.out.println("list of patients with this diagnosis: "); list.stream() .filter(m -> m.getDiagnosis() != null) .filter(m -> m.getDiagnosis().equals(diag)) .forEach(System.out::println); } public static void getPatientsByMedicalCardInterval(List<Patient> list, Long medicalCardNumberFrom, Long medicalCardNumberTo) { System.out.println("list of patients whose medical card number is in the specified interval: "); list.stream() .filter(m -> m.getMedicalCardNumber() != null) .filter(m -> m.getMedicalCardNumber() <= medicalCardNumberTo && m.getMedicalCardNumber() >= medicalCardNumberFrom) .forEach(System.out::println); } } Результат работы программы (Patient): Листинг программы 2 (Product): import java.util.Date; import java.util.Objects; public class Product { private Long id; private String name; private Long upc; private String maker; private Double price; private Date shelfLife; public Product(Long id, String name, Long upc, String maker, Double price, Date shelfLife) { this.id = id; this.name = name; this.upc = upc; this.maker = maker; this.price = price; this.shelfLife = shelfLife; } public Product() { } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Long getUpc() { return upc; } public void setUpc(Long upc) { this.upc = upc; } public String getMaker() { return maker; } public void setMaker(String maker) { this.maker = maker; } public Double getPrice() { return price; } public void setPrice(Double price) { this.price = price; } public Date getShelfLife() { return shelfLife; } public void setShelfLife(Date shelfLife) { this.shelfLife = shelfLife; } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Product product = (Product) o; return id.equals(product.id) && Objects.equals(name, product.name) && Objects.equals(upc, product.upc) && Objects.equals(maker, product.maker) && Objects.equals(price, product.price) && Objects.equals(shelfLife, product.shelfLife); } @Override public int hashCode() { return Objects.hash(id, name, upc, maker, price, shelfLife); } @Override public String toString() { return "Product{" + "id=" + id + ", name='" + name + '\'' + ", upc=" + upc + ", Maker='" + maker + '\'' + ", price=" + price + ", shelfLife=" + shelfLife + '}'; } } import java.util.*; public class Client { public static void main(String[] args) { run(); } public static void run() { Product product1 = new Product(10L, "Milk", 123456789L, "Eco Company", 20.4, new Date(2022, Calendar.DECEMBER, 10)); Product product2 = new Product(11L, "Bread", 123426389L, "Eco Company", 8.5, new Date(2022, Calendar.NOVEMBER, 1)); Product product3 = new Product(13L, "Tea", 122456784L, "Test Company", 5.7, new Date(2023, Calendar.JANUARY, 22)); List<Product> listOfProduct = new ArrayList<>(); listOfProduct.add(product1); listOfProduct.add(product2); listOfProduct.add(product3); listOfProduct.add(new Product()); System.out.println("Please enter the product name"); Scanner in = new Scanner(System.in); String name = in.next(); System.out.println("Please enter the price"); Double price = in.nextDouble(); System.out.println("Please enter the day of shelfLife"); int day = in.nextInt(); System.out.println("Please enter the month of shelfLife"); int month = in.nextInt(); System.out.println("Please enter the year of shelfLife"); int year = in.nextInt(); Date shelfLife = new Date(year, month, day); getProductByName(listOfProduct, name); getProductByNameAndPriceWhichDoesntExceeded(listOfProduct, name, price); getProductWhoseShelfLifeIsLonger(listOfProduct, shelfLife); } public static void getProductByName(List<Product> list, String name) { System.out.println("list of products for a given name: "); list.stream().filter(m -> m.getName() != null).filter(m -> m.getName().equals(name)).forEach(System.out::println); } public static void getProductByNameAndPriceWhichDoesntExceeded(List<Product> list, String name, Double price) { System.out.println("a list of products for a given name, the price of which does not exceed the specified: "); list.stream().filter(m -> m.getName() != null).filter(m -> m.getName().equals(name) && m.getPrice() <= price).forEach(System.out::println); } public static void getProductWhoseShelfLifeIsLonger(List<Product> list, Date shelfLife) { System.out.println("a list of products whose shelf life is longer than the specified one: "); list.stream().filter(m -> m.getShelfLife() != null).filter(m -> m.getShelfLife().compareTo(shelfLife) > 0).forEach(System.out::println); } } Результат работы программы 2 (Product):