лаба2ПП-1 1

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"

Інститут КНІТ
Кафедра АСУ

ЗВІТ
До лабораторної роботи № 2
На тему: “ Робота з класами”

Виконав:
ст.гр. КН-203
Москаленко.О.О

Прийняв:
Сидоренко

Львів – 2019
Завдання лабораторної роботи:
Створити проект, що складається з двох класів: основного (Main) та класу для
представлення об’єкта відповідно специфікації, що наведена у таблиці
1. Кожний клас повинен бути розміщений у окремому пакеті. У створеному класі
визначити приватні поля для зберігання указаних даних, конструктори для створення
об’єктів та відкриті методи setValue(), getValue(), toString() для доступу до полів
об’єкту.
2. В основному класі програми визначити методи, що створюють масив об'єктів.
Задати критерії вибору даних та вивести ці дані на консоль. Для кожного критерію
створити окремий метод.
3. Виконати програму, та пересвідчитись, що дані зберігаються та коректно
виводяться на екран відповідно до вказаних критеріїв.

Моє індивідуальне завдання:

Варіант 5: Book: id, Назва, Автор, Видавництво, Рік видання, Кількість

сторінок, Ціна.
Скласти масив об'єктів. Вивести:
a) список книг заданого автора;
b) список книг, що видані заданим видавництвом;
c) список книг, що випущені після заданого року.

Код програми: (Main.java)


package com.company;

import book.Book;
import book.BookController;

import java.util.List;
import java.util.Scanner;

public class Main {

public static void main(String[] args) throws InterruptedException {

Scanner scan = new Scanner(System.in);


String toSearch;

List<Book> Books = BookController.generateRandomBookArray(20);

System.out.println("Generated book array: ");


BookController.printBooksArray(Books);

System.out.println("Enter Author Name to Search: ");


toSearch = scan.nextLine();

BookController.printAuthorBooks(toSearch, Books);

System.out.println("Enter Publisher Name to Search: ");


toSearch = scan.nextLine();

BookController.printPublisherBooks(toSearch, Books);

System.out.println("Enter Year After to Search: ");


int _toSearch = scan.nextInt();

BookController.printAfterYearBooks(_toSearch, Books);

}
}
Код (BookController.java)
package book;

import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class BookController {

public static List<Book> generateRandomBookArray(int size) throws


InterruptedException {

List<Book> Books = new ArrayList<>();

for(int i = 0; i < size; i++)


Books.add(getRandomBook());

return Books;
}

public static Book getRandomBook(){

SecureRandom rand = new SecureRandom();


return new Book(
rand.nextInt(1000),
DataForRandom.BookNames[rand.nextInt(14)],
DataForRandom.Authors[rand.nextInt(8)],
DataForRandom.Publishers[rand.nextInt(8)],
Integer.toString(rand.nextInt(2020)),
rand.nextInt(1500),
Integer.toString(rand.nextInt(30))
);
}

public static void printBook(Book book){


System.out.println("\nID: " + book.getId());
System.out.println("Name: " + book.getName());
System.out.println("Author: " + book.getAuthor());
System.out.println("Publisher: " + book.getPublisher());
System.out.println("Year: " + book.getYear());
System.out.println("Page Count: " + book.getPageCount());
System.out.println("Year: " + book.getYear());
System.out.println("Price: " + book.getPrice() + "$\n");
}

public static void printBooksArray(List<Book> Books){


for(Book book : Books) printBook(book);
}

public static void printAuthorBooks(String Author, List<Book> Books){

List<Book> Filtered = Books.stream().filter(x ->


x.getAuthor().equals(Author)).collect(Collectors.toList());

if(Filtered.size() == 0){ System.out.println("There are no such book with given


parameters!"); return; }

printBooksArray(Filtered);

public static void printPublisherBooks(String Publisher, List<Book> Books){

List<Book> Filtered = Books.stream().filter(x ->


x.getPublisher().equals(Publisher)).collect(Collectors.toList());

if(Filtered.size() == 0){ System.out.println("There are no such book with given


parameters!"); return; }

printBooksArray(Filtered);

public static void printAfterYearBooks(int year, List<Book> Books){

List<Book> Filtered = Books.stream().filter(x -> Integer.parseInt(x.getYear()) >


year).collect(Collectors.toList());

if(Filtered.size() == 0){ System.out.println("There are no such book with given


parameters!"); return; }

printBooksArray(Filtered);

Код (Book.java)
package book;

public class Book {

private int id;

private String Name;

private String Author;

private String Publisher;

private String Year;

private int PageCount;

private String Price;

public Book() {
}

public Book(int id, String Name, String Author, String Publisher, String Year, int
PageCount, String Price){
this.id = id;
this.Name = Name;
this.Author = Author;
this.Publisher = Publisher;
this.Year = Year;
this.PageCount = PageCount;
this.Price = Price;
}

public String getName() {


return Name;
}

public String getAuthor() {


return Author;
}

public String getPublisher() {


return Publisher;
}

public String getYear() {


return Year;
}
public int getPageCount() {
return PageCount;
}

public String getPrice() {


return Price;
}

public int getId() {


return id;
}

public void setId(int id) {


this.id = id;
}

public void setName(String name) {


Name = name;
}

public void setAuthor(String author) {


Author = author;
}

public void setPublisher(String publisher) {


Publisher = publisher;
}

public void setYear(String year) {


Year = year;
}

public void setPageCount(int pageCount) {


PageCount = pageCount;
}

public void setPrice(String price) {


Price = price;
}

Код (DataForRandom.java)

package book;

public class DataForRandom {

public static String[] BookNames = {


"Marked for Gold",
"Year of Andromeda",
"The Glass Spider",
"Crime of the Scarred Headmaster",
"The Gold Lithograph",
"Death of the Webbed Jackal",
"The Saga of the Lost",
"City of Mars",
"Clue of the Absent Fingernail",
"Empire's Mask",
"The Return of Dawn",
"Atlantis Rising",
"The Bones of the Nameless",
"Bearly Attracted",
"Night of the Knight"};

public static String[] Publishers = {


"Akashic Books (Brooklyn, NY)",
"Dzanc Books (Detroit, MI)",
"Graywolf Press (Minneapolis, MN)",
"Hanging Loose Press (Brooklyn, NY)",
"McSweeney's (San Francisco, CA)",
"Penguin Books (London, UK)",
"Phaidon (London and New York City)",
"Random House (New York, New York)"
};

public static String[] Authors = {


"Hanya Yanagihara",
"Elena Ferrante",
"Kate Atkinson",
"Marlon James",
"Anne Tyler",
"Jonathan Franzen",
"Kazuo Ishiguro",
"Terry Pratchett"
};

}
Результат

You might also like