


Comment implémenter un système de gestion de bibliothèque en utilisant du code Java
1. Introduction aux fonctions
Ce système de gestion de bibliothèque est implémenté à l'aide des outils de développement IDEA
Il existe deux identités pour accéder au système de bibliothèque :
1. Identité d'administrateur :
2. identité de l'utilisateur :
Nous avons un total de trois packages, à savoir le livre, les opérations et la mise en œuvre de l'utilisateur.
Deuxièmement, package principal
La fonction principale exécute principalement le processus général et initialisation de la bibliothèque. Connexion au système de gestion de la bibliothèque et sélection d'opérations spécifiques, c'est-à-dire mise en œuvre
import book.BookList; import user.AdminUser; import user.NormalUser; import user.User; import java.util.Scanner; public class Main { public static void main(String[] args) { //1.先初始化图书库,以及初始化: BookList bookList = new BookList(); //2.登录 User user = login();//向上转型,User接受管理员或者用户对象 //3.打印菜单,进行具体操作 while(true) { int choice = user.menu(); user.doOperation(choice,bookList); } } }
Fonction de connexion :
public static User login() { System.out.println("请输入你的姓名: "); Scanner scanner = new Scanner(System.in); String userName = scanner.nextLine(); System.out.println("请输入你的身份: 1-> 管理员 2-> 用户"); int choice = scanner.nextInt(); if(choice == 1) { return new AdminUser(userName); }else { return new NormalUser(userName); } }
3. Package utilisateur
Parce qu'il existe deux systèmes, les administrateurs et utilisateurs ordinaires, nous partagerons donc les attributs Extraire une classe abstraite User pour réaliser la réutilisation du code
1 User
package user; import book.BookList; import operations.IOperation; public abstract class User { protected String name; IOperation[] iOperations; public User(String name) { this.name = name; } public abstract int menu(); public void doOperation(int choice, BookList bookList) { iOperations[choice].work(bookList); } }
2 AdminUser
package user; import operations.*; import java.util.Scanner; public class AdminUser extends User{ public AdminUser(String name) { super(name); this.iOperations = new IOperation[]{ new ExitOperation(), new FindOperation(), new AddOperation(), new DelOperation(), new DisplayOperation() }; } public int menu() { System.out.println("欢迎: "+name+"来到图书馆"); System.out.println("**********************************"); System.out.println("1. 查找图书"); System.out.println("2. 新增图书"); System.out.println("3. 删除图书"); System.out.println("4. 显示图书"); System.out.println("0. 退出图书"); System.out.println("**********************************"); System.out.println("请输入你的操作: "); Scanner scanner = new Scanner(System.in); int choice = scanner.nextInt(); return choice; } }
3. NormalUser
package user; import operations.*; import java.util.Scanner; public class NormalUser extends User{ public NormalUser(String name) { super(name); this.iOperations = new IOperation[]{ new ExitOperation(), new FindOperation(), new BorrowOperation(), new ReturnOperation() }; } public int menu() { System.out.println("欢迎: "+name+"来到图书馆"); System.out.println("**********************************"); System.out.println("1. 查找图书"); System.out.println("2. 借阅图书"); System.out.println("3. 归还图书"); System.out.println("0. 退出图书"); System.out.println("**********************************"); System.out.println("请输入你的操作: "); Scanner scanner = new Scanner(System.in); int choice = scanner.nextInt(); return choice; } }
4. book, et dans le type BookList Initialisez les livres de la bibliothèque
1. Book
package book; public class Book { private String name;//书名 private String author;//作者 private int price;//价格 private String type;//书的类型 private boolean isBorrowed;//书默认未借出 public Book(String name, String author, int price, String type) { this.name = name; this.author = author; this.price = price; this.type = type; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public String getType() { return type; } public void setType(String type) { this.type = type; } public boolean isBorrowed() { return isBorrowed; } public void setBorrowed(boolean borrowed) { isBorrowed = borrowed; } @Override public String toString() { return "Book{" + "name='" + name + '\'' + ", author='" + author + '\'' + ", price=" + price + ", type='" + type + '\'' + ","+ ((isBorrowed == true) ? "该书已借出" : "该书未借出" )+ '}'; } }
2. BookList
package book; public class BookList { public Book[] books = new Book[100]; public int usedSize;//用来存当前共有多少本书 /** * 事先通过代码块 * * 事先存进去三本书 */ { books[0] = new Book("java","高斯林",95,"IT"); books[1] = new Book("C++","姚琳",93,"IT"); books[2] = new Book("python","马瑟斯",80,"IT"); this.usedSize = 3; } public Book getPos(int pos) { //获取某一位置的书 return books[pos]; } public void setBooks(Book book,int pos) { //存储一本书 到指定位置 books[pos] = book; } public int getUsedSize() { return usedSize; } public void setUsedSize(int usedSize) { this.usedSize = usedSize; } }
5. Notre système de gestion de bibliothèque comporte de nombreuses opérations spécifiques afin de faciliter le polymorphisme et les erreurs. vérifiant plus tard, nous implémentons donc une interface IOperation spécifique, et chaque opération spécifique implémente cette interface.
1. Interface IOperation
package operations; import book.BookList; public interface IOperation { void work(BookList bookList); }
2 AddOperation
Ajouter des livres :
package operations; import book.Book; import book.BookList; import java.util.Scanner; public class AddOperation implements IOperation{ @Override public void work(BookList bookList) { System.out.println("新增图书! "); System.out.println("请输入要新增的图书的名字: "); Scanner scanner = new Scanner(System.in); String name = scanner.nextLine(); System.out.println("请输入要新增的图书的作者: "); String author = scanner.nextLine(); System.out.println("请输入要新增的图书的价格: "); int price = scanner.nextInt(); System.out.println("请输入要新增的图书的类型: "); String type = scanner.nextLine(); Book book = new Book(name,author,price,type); //1.获取当前书存放的位置 int curSize = bookList.getUsedSize(); //2.把书放在指定位置 bookList.setBooks(book,curSize); //3.更新书的个数 bookList.setUsedSize(curSize+1); } }
3. 4 . DelOperation
Supprimer les livres :
package operations; import book.Book; import book.BookList; import java.util.Scanner; public class BorrowOperation implements IOperation{ @Override public void work(BookList bookList) { System.out.println("借阅图书! "); System.out.println("请输入要借阅的图书的名字: "); Scanner scanner = new Scanner(System.in); String name = scanner.nextLine(); for (int i = 0; i < bookList.getUsedSize(); i++) { Book book = bookList.getPos(i); if(name.equals(book.getName())) { if(book.isBorrowed()) { System.out.println("该书已经被借出! "); }else { book.setBorrowed(true); System.out.println("借阅图书成功! "); return; } } } System.out.println("没有你要借阅的书! "); } }
5. DisplayOperation
Afficher les livres :
package operations; import book.Book; import book.BookList; import java.util.Scanner; public class DelOperation implements IOperation{ @Override public void work(BookList bookList) { System.out.println("删除图书! "); System.out.println("请输入要删除的图书: "); Scanner scanner = new Scanner(System.in); String name = scanner.nextLine(); //查找图书是否有此图书,记录下标 int index = -1; for (int i = 0; i < bookList.getUsedSize(); i++) { Book book = bookList.getPos(i); if(name.equals(book.getName())) { index = i; break; } } if(index == -1) { System.out.println("没有 "+name+"这本书!"); return; } for (int i = index; i < bookList.getUsedSize()-1; i++) { Book book = bookList.getPos(i+1); bookList.setBooks(book,i); } //删除的书,要置空 bookList.setBooks(null, bookList.getUsedSize()-1); bookList.setUsedSize(bookList.getUsedSize()-1); } }
6. 8. Opération de retour
Retour Retour des livres :
package operations; import book.Book; import book.BookList; public class DisplayOperation implements IOperation{ @Override public void work(BookList bookList) { System.out.println("显示图书! "); for (int i = 0; i < bookList.getUsedSize(); i++) { Book book = bookList.getPos(i); System.out.println(book); } } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds





Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.

Les capsules sont des figures géométriques tridimensionnelles, composées d'un cylindre et d'un hémisphère aux deux extrémités. Le volume de la capsule peut être calculé en ajoutant le volume du cylindre et le volume de l'hémisphère aux deux extrémités. Ce tutoriel discutera de la façon de calculer le volume d'une capsule donnée en Java en utilisant différentes méthodes. Formule de volume de capsule La formule du volume de la capsule est la suivante: Volume de capsule = volume cylindrique volume de deux hémisphères volume dans, R: Le rayon de l'hémisphère. H: La hauteur du cylindre (à l'exclusion de l'hémisphère). Exemple 1 entrer Rayon = 5 unités Hauteur = 10 unités Sortir Volume = 1570,8 unités cubes expliquer Calculer le volume à l'aide de la formule: Volume = π × r2 × h (4

Java est un langage de programmation populaire qui peut être appris aussi bien par les développeurs débutants que par les développeurs expérimentés. Ce didacticiel commence par les concepts de base et progresse vers des sujets avancés. Après avoir installé le kit de développement Java, vous pouvez vous entraîner à la programmation en créant un simple programme « Hello, World ! ». Une fois que vous avez compris le code, utilisez l'invite de commande pour compiler et exécuter le programme, et « Hello, World ! » s'affichera sur la console. L'apprentissage de Java commence votre parcours de programmation et, à mesure que votre maîtrise s'approfondit, vous pouvez créer des applications plus complexes.
