Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Main {
- public static void main(String[] args) {
- Book b1=new Book(100,"Посторонний","Альбер Камю",1942,5);
- Book b2=new Book(102,"В поисках утраченного времени","Марсель Пруст",1913,4);
- Book b3=new Book(78,"Процесс","Франц Кафка",1925,5);
- Book b4=new Book(32,"Маленький принц","Антуан де Сент-Экзюпери",1943,2);
- Book b5=new Book(56,"Удел человеческий","Андре Мальро",1933,3);
- Library library=new Library();
- library.add(b1); //добавление книг
- library.add(b2);
- library.add(b3);
- library.show();
- library.addBefore(b4,b2); //добавление книги перед заданной
- library.show();
- library.addAfter(b5,b4); //добавление книги после заданной
- library.show();
- library.remove(b3); //удаление книги
- library.show();
- library.out(); //изъятие книги из библиотеки
- library.comeback(); //возврат книги в библиотеку
- }
- }
- ////////////
- package VoblikovaTIMP.L1;
- import java.util.Scanner;
- public class Library { //класс-библиотека
- private Node head; //голова списка
- private boolean isEmpty(){ //проверка списка на пустоту
- return head==null;
- }
- public void show(){ //вывод всех книг библиотеки на экран
- Node temp=head;
- while (temp!=null){
- System.out.println(temp.book);
- temp=temp.next;
- }
- System.out.println("_________________________________________________________");
- }
- public void add(Book book){ //добавление книги в библиотеку
- Node node=new Node(book);
- if(isEmpty())
- head=node;
- else{
- node.next=head;
- head=node;
- }
- }
- public void addBefore(Book book1,Book book2){//добавление книги в библиотеку перед указанной
- Node node=new Node(book1);
- Node temp=head;
- while (temp!=null){
- if(temp.book.equals(book2))
- break;
- temp=temp.next;
- }
- if(temp!=null){
- node.next=temp.next;
- temp.next=node;
- }
- }
- public void addAfter(Book book1,Book book2){//добавление книги в библиотеку после указанной
- Node node=new Node(book1);
- Node temp=head;
- while (temp!=null){
- if(temp.next.book.equals(book2))
- break;
- temp=temp.next;
- }
- if(temp!=null){
- node.next=temp.next;
- temp.next=node;
- }
- }
- public void remove(Book book){ //удаление книги из библиотеке
- Node temp=head;
- if(head.book.equals(book)){
- head=head.next;
- }
- else {
- while (temp != null) {
- if (temp.next.book.equals(book)) {
- temp.next = temp.next.next;
- }
- temp = temp.next;
- }
- }
- }
- public void out(){ //взятие книги из библиотеки
- Scanner scanner=new Scanner(System.in);
- System.out.println("Введите УДК");
- int udk=scanner.nextInt();
- Node temp=head;
- while (temp!=null){
- if(temp.book.getNumber()==udk){
- if(temp.book.getCount()==0)
- System.out.println("Книг больше нет");
- else{
- temp.book.setCount(temp.book.getCount()-1);
- System.out.println("Книга взята, текущее количество данных книг: "+temp.book.getCount());
- }
- }
- temp=temp.next;
- }
- }
- public void comeback(){ //возврат книги в библиотеку
- Scanner scanner=new Scanner(System.in);
- System.out.println("Введите УДК");
- int udk=scanner.nextInt();
- Node temp=head;
- while (temp!=null){
- if(temp.book.getNumber()==udk){
- temp.book.setCount(temp.book.getCount()+1);
- System.out.println("Книга возвращена, текущее количество данных книг: "+temp.book.getCount());
- }
- temp=temp.next;
- }
- }
- private static class Node { //узел списка
- public Book book;
- public Node next;
- public Node(Book book) {
- this.book = book;
- }
- }
- }
- //////////////
- package VoblikovaTIMP.L1;
- public class Book { //класс-книга
- private int number; //номер УДК
- private String title; //название книги
- private String author; //автор
- private int year; //год издания
- private int count; //количество книг
- public Book(int number, String title,String author, int year, int count) { //конструктор
- this.number = number;
- this.title = title;
- this.year = year;
- this.count = count;
- this.author=author;
- }
- public int getNumber() {
- return number;
- }
- public String getTitle() {
- return title;
- }
- public String getAuthor() {
- return author;
- }
- public int getYear() {
- return year;
- }
- public void setCount(int count) {
- this.count = count;
- }
- public int getCount() {
- return count;
- }
- @Override
- public String toString() { //приведение к строки, чтобы можно было выводить через sout
- return String.format("\"%s\", %s %s, число экземпляров: %s, номер УДК: %s",title,author,year,count,number);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment