目錄
圖書管理系統(tǒng)權(quán)限
圖書管理系統(tǒng)程序框圖
圖書管理系統(tǒng)架構(gòu)
管理員執(zhí)行流程
學(xué)生執(zhí)行流程
詳細(xì)代碼
源碼獲取
畢設(shè)專欄
圖書管理系統(tǒng)權(quán)限
- 管理員:具有? 1、查找圖書 2、增加圖書 3、刪除圖書 4、顯示圖書 等功能
- 學(xué)生:具有? 1、查找圖書 2、借閱圖書 3、歸還圖書 4、顯示圖書 等功能
圖書管理系統(tǒng)程序框圖
圖書管理系統(tǒng)架構(gòu)
管理員執(zhí)行流程
學(xué)生執(zhí)行流程
詳細(xì)代碼
Book
package book;
public class Book {
/*一本書的屬性包括書名,作者,價(jià)格,類型,編號(hào),以及狀態(tài)*/
private String name;
private String author;
private int price;
private String type;
private int num;
private boolean status;
//提供構(gòu)造方法
public Book(String name, String author, int price, String type, int num) {
this.name = name;
this.author = author;
this.price = price;
this.type = type;
this.num = num;
}
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 int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public boolean isStatus() {
return status;
}
public void setStatus(boolean status) {
this.status = status;
}
//toString 方法打印
@Override
public String toString() {
return "Book{" +
"name='" + name + '\'' +
", author='" + author + '\'' +
", price=" + price +
", type='" + type + '\'' +
", num=" + num +
((status == true) ? " 已借出 " : " 未借出 ") +
'}';
}
}
BookList
package book;
public class BookList {
//書都是同一類型的元素,創(chuàng)建一個(gè)Book類型的數(shù)組
private Book[] books;
private int size;
//先給書架放三本書
public BookList() {
this.books = new Book[10];
books[0] = new Book("狂人日記","魯迅",10,"小說",1);
books[1] = new Book("將進(jìn)酒","李白",23,"詩",3);
books[2] = new Book("清明上河圖","張擇端",20,"書法",2);
this.size = 3;
}
public int getSize() {
return size;
}
public void setSize(int size) {
this.size = size;
}
public void setBooks(int pos, Book book) {
this.books[pos] = book;
}
public Book getBook(int pos) {
return this.books[pos];
}
}
AddOperation
package operation;
import book.Book;
import book.BookList;
import java.util.Scanner;
public class AddOperation implements IOperation {
@Override
public void work(BookList bl) {
Scanner sc = new Scanner(System.in);
System.out.println("添加圖書");
System.out.println("請(qǐng)輸入圖書的名字:");
String name = sc.nextLine();
System.out.println("請(qǐng)輸入圖書的作者:");
String author = sc.nextLine();
System.out.println("請(qǐng)輸入圖書價(jià)格:");
int price = sc.nextInt();
System.out.println("請(qǐng)輸入圖書的類型:");
String type = sc.next();
System.out.println("請(qǐng)輸入圖書的編號(hào):");
int num = sc.nextInt();
Book book = new Book(name,author,price,type,num);
int curSize = bl.getSize();//拿到長(zhǎng)度
bl.setBooks(curSize,book);
bl.setSize(curSize+1);
System.out.println("添加成功!");
}
}
BorrOperation
package operation;
import book.Book;
import book.BookList;
import java.util.Scanner;
public class BorrOperation implements IOperation{
@Override
public void work(BookList bl) {
System.out.println("借閱書籍");
System.out.println("請(qǐng)輸入需要借閱的書籍名字:");
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
for (int i = 0; i < bl.getSize(); i++) {
Book book = bl.getBook(i);
if(book.getName().equals(name)) {
System.out.println("請(qǐng)取走您要的書籍!");
book.setStatus(true);
System.out.println(book);
return;
}
}
System.out.println("沒有你需要的書籍!");
}
}
DelOperation
package operation;
import book.Book;
import book.BookList;
import java.util.Scanner;
public class DelOperation implements IOperation{
@Override
public void work(BookList bl) {
System.out.println("刪除圖書");
System.out.println("請(qǐng)輸入需要?jiǎng)h除的書籍名字:");
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
int i = 0;
for (; i < bl.getSize(); i++) {
Book book = bl.getBook(i);
if(book.getName().equals(name)){
break;
}
}
if(i >= bl.getSize()){
System.out.println("沒有找到此書籍");
return;
}
int j = i;
for(; j < bl.getSize() - 1; j++){
Book book = bl.getBook(j + 1);
bl.setBooks(j,book);
}
int cueSize = bl.getSize();
bl.setSize(cueSize-1);
System.out.println("成功刪除此書籍!");
}
}
DisOperation
package operation;
import book.Book;
import book.BookList;
public class DisOperation implements IOperation{
@Override
public void work(BookList bl) {
System.out.println("顯示圖書");
for (int i = 0; i < bl.getSize(); i++) {
Book book = bl.getBook(i);
System.out.println(book);
}
}
}
ExiOperation
package operation;
import book.BookList;
public class ExiOperation implements IOperation{
@Override
public void work(BookList bl) {
System.out.println("退出系統(tǒng)");
System.exit(0);
}
}
Finoperation
package operation;
import book.Book;
import book.BookList;
import java.util.Scanner;
public class FinOperation implements IOperation{
@Override
public void work(BookList bl) {
System.out.println("查找書籍");
Scanner sc = new Scanner(System.in);
System.out.println("請(qǐng)輸入要查找的書籍名字:");
String name = sc.next();
for (int i = 0; i < bl.getSize(); i++) {
Book book = bl.getBook(i);
if(book.getName().equals(name)){
System.out.println("有此書籍!");
System.out.println(book);
return;
}
}
System.out.println("未找的您需要的書籍!");
}
}
IOperation
package operation;
import book.BookList;
public interface IOperation {
void work(BookList bl);
}
RetOperation
package operation;
import book.Book;
import book.BookList;
import java.util.Scanner;
public class RetOperation implements IOperation{
@Override
public void work(BookList bl) {
System.out.println("歸還圖書");
Scanner sc = new Scanner(System.in);
System.out.println("請(qǐng)輸入您要?dú)w還的書籍名字!");
String name = sc.nextLine();
for (int i = 0; i < bl.getSize(); i++) {
Book book = bl.getBook(i);
if(book.getName().equals(name)) {
book.setStatus(false);
System.out.println(book);
return;
}
}
}
}
Administrator
package user;
import operation.*;
import java.util.Scanner;
public class Administrator extends User{
public Administrator(String name) {
super(name);
this.operation = new IOperation[]{new ExiOperation(),new FinOperation(),new AddOperation(),new DelOperation(),new DisOperation()};
}
@Override
public int menu() {
System.out.println("歡迎" + this.name + "進(jìn)入圖書管理系統(tǒng)!");
Scanner sc = new Scanner(System.in);
System.out.println("=============");
System.out.println("1.查找圖書");
System.out.println("2.增加圖書");
System.out.println("3.刪除圖書");
System.out.println("4.顯示圖書");
System.out.println("0.退出系統(tǒng)");
System.out.println("=============");
int choice = sc.nextInt();
return choice;
}
}
Ordinary
package user;
import operation.*;
import java.util.Scanner;
public class Ordinary extends User {
public Ordinary(String name) {
super(name);
this.operation = new IOperation[]{new ExiOperation(),new FinOperation(),new BorrOperation(),new RetOperation(),new DisOperation()};
}
@Override
public int menu() {
System.out.println("歡迎" + this.name + "同學(xué)進(jìn)入圖書管理系統(tǒng)!");
Scanner sc = new Scanner(System.in);
System.out.println("==============");
System.out.println("1.查找圖書");
System.out.println("2.借閱圖書");
System.out.println("3.歸還圖書");
System.out.println("4.顯示圖書");
System.out.println("0.退出系統(tǒng)");
System.out.println("==============");
int choice = sc.nextInt();
return choice;
}
}
User
package user;
import book.BookList;
import operation.IOperation;
//抽象類,主要為了被繼承
public abstract class User {
public String name;
public IOperation[] operation;
public User(String name) {
this.name = name;
}
public abstract int menu();
public void doOperation(int choice, BookList bl) {
this.operation[choice].work(bl);
}
}
Main
import book.BookList;
import user.Administrator;
import user.Ordinary;
import user.User;
import java.util.Scanner;
public class Main {
public static User login() {
Scanner sc = new Scanner(System.in);
System.out.println("請(qǐng)輸入姓名:");
String name = sc.next();
System.out.println("請(qǐng)確認(rèn)您的身份:1 > 管理員 0 > 學(xué)生");
int choice = sc.nextInt();
if(choice == 1){
return new Administrator(name);
}else{
return new Ordinary(name);
}
}
public static void main(String[] args) {
BookList bl = new BookList();
//登錄
User user = login();
//選擇菜單
while(true){
int choice = user.menu();
user.doOperation(choice,bl);
}
}
}
以上為全部源碼,有不太明白的同學(xué)可以去下載鏈接直接獲取源碼
源碼獲取
畢設(shè)專欄
?https://download.csdn.net/download/m0_54925305/86236726文章來源:http://www.zghlxwxcb.cn/news/detail-479749.html
https://blog.csdn.net/m0_54925305/category_11702151.html?spm=1001.2014.3001.5482文章來源地址http://www.zghlxwxcb.cn/news/detail-479749.html
到了這里,關(guān)于圖書管理系統(tǒng)(借還圖書)--Java實(shí)現(xiàn)(附源碼)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!