Advertisement
sfrsnyz

TIMP 1 V

May 31st, 2021
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.15 KB | None | 0 0
  1.  
  2. public class Main {
  3. public static void main(String[] args) {
  4. Book b1=new Book(100,"Посторонний","Альбер Камю",1942,5);
  5. Book b2=new Book(102,"В поисках утраченного времени","Марсель Пруст",1913,4);
  6. Book b3=new Book(78,"Процесс","Франц Кафка",1925,5);
  7. Book b4=new Book(32,"Маленький принц","Антуан де Сент-Экзюпери",1943,2);
  8. Book b5=new Book(56,"Удел человеческий","Андре Мальро",1933,3);
  9. Library library=new Library();
  10. library.add(b1); //добавление книг
  11. library.add(b2);
  12. library.add(b3);
  13. library.show();
  14. library.addBefore(b4,b2); //добавление книги перед заданной
  15. library.show();
  16. library.addAfter(b5,b4); //добавление книги после заданной
  17. library.show();
  18. library.remove(b3); //удаление книги
  19. library.show();
  20. library.out(); //изъятие книги из библиотеки
  21. library.comeback(); //возврат книги в библиотеку
  22. }
  23. }
  24.  
  25. ////////////
  26. package VoblikovaTIMP.L1;
  27.  
  28. import java.util.Scanner;
  29.  
  30. public class Library { //класс-библиотека
  31. private Node head; //голова списка
  32. private boolean isEmpty(){ //проверка списка на пустоту
  33. return head==null;
  34. }
  35. public void show(){ //вывод всех книг библиотеки на экран
  36. Node temp=head;
  37. while (temp!=null){
  38. System.out.println(temp.book);
  39. temp=temp.next;
  40. }
  41. System.out.println("_________________________________________________________");
  42. }
  43. public void add(Book book){ //добавление книги в библиотеку
  44. Node node=new Node(book);
  45. if(isEmpty())
  46. head=node;
  47. else{
  48. node.next=head;
  49. head=node;
  50. }
  51. }
  52. public void addBefore(Book book1,Book book2){//добавление книги в библиотеку перед указанной
  53. Node node=new Node(book1);
  54. Node temp=head;
  55. while (temp!=null){
  56. if(temp.book.equals(book2))
  57. break;
  58. temp=temp.next;
  59. }
  60. if(temp!=null){
  61. node.next=temp.next;
  62. temp.next=node;
  63. }
  64. }
  65. public void addAfter(Book book1,Book book2){//добавление книги в библиотеку после указанной
  66. Node node=new Node(book1);
  67. Node temp=head;
  68. while (temp!=null){
  69. if(temp.next.book.equals(book2))
  70. break;
  71. temp=temp.next;
  72. }
  73. if(temp!=null){
  74. node.next=temp.next;
  75. temp.next=node;
  76. }
  77. }
  78. public void remove(Book book){ //удаление книги из библиотеке
  79. Node temp=head;
  80. if(head.book.equals(book)){
  81. head=head.next;
  82. }
  83. else {
  84. while (temp != null) {
  85. if (temp.next.book.equals(book)) {
  86. temp.next = temp.next.next;
  87. }
  88. temp = temp.next;
  89. }
  90. }
  91. }
  92. public void out(){ //взятие книги из библиотеки
  93. Scanner scanner=new Scanner(System.in);
  94. System.out.println("Введите УДК");
  95. int udk=scanner.nextInt();
  96. Node temp=head;
  97. while (temp!=null){
  98. if(temp.book.getNumber()==udk){
  99. if(temp.book.getCount()==0)
  100. System.out.println("Книг больше нет");
  101. else{
  102. temp.book.setCount(temp.book.getCount()-1);
  103. System.out.println("Книга взята, текущее количество данных книг: "+temp.book.getCount());
  104. }
  105. }
  106. temp=temp.next;
  107. }
  108. }
  109. public void comeback(){ //возврат книги в библиотеку
  110. Scanner scanner=new Scanner(System.in);
  111. System.out.println("Введите УДК");
  112. int udk=scanner.nextInt();
  113. Node temp=head;
  114. while (temp!=null){
  115. if(temp.book.getNumber()==udk){
  116. temp.book.setCount(temp.book.getCount()+1);
  117. System.out.println("Книга возвращена, текущее количество данных книг: "+temp.book.getCount());
  118. }
  119. temp=temp.next;
  120. }
  121. }
  122.  
  123. private static class Node { //узел списка
  124. public Book book;
  125. public Node next;
  126.  
  127. public Node(Book book) {
  128. this.book = book;
  129. }
  130. }
  131. }
  132. //////////////
  133. package VoblikovaTIMP.L1;
  134.  
  135. public class Book { //класс-книга
  136. private int number; //номер УДК
  137. private String title; //название книги
  138. private String author; //автор
  139. private int year; //год издания
  140. private int count; //количество книг
  141.  
  142. public Book(int number, String title,String author, int year, int count) { //конструктор
  143. this.number = number;
  144. this.title = title;
  145. this.year = year;
  146. this.count = count;
  147. this.author=author;
  148. }
  149.  
  150. public int getNumber() {
  151. return number;
  152. }
  153.  
  154. public String getTitle() {
  155. return title;
  156. }
  157.  
  158. public String getAuthor() {
  159. return author;
  160. }
  161.  
  162. public int getYear() {
  163. return year;
  164. }
  165.  
  166. public void setCount(int count) {
  167. this.count = count;
  168. }
  169.  
  170. public int getCount() {
  171. return count;
  172. }
  173.  
  174. @Override
  175. public String toString() { //приведение к строки, чтобы можно было выводить через sout
  176. return String.format("\"%s\", %s %s, число экземпляров: %s, номер УДК: %s",title,author,year,count,number);
  177. }
  178. }
  179.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement