目录
图书管理系统权限
图书管理系统程序框图
图书管理系统架构
管理员执行流程
学生执行流程
详细代码
源码获取
毕设专栏
图书管理系统权限
- 管理员:具有 1、查找图书 2、增加图书 3、删除图书 4、显示图书 等功能
- 学生:具有 1、查找图书 2、借阅图书 3、归还图书 4、显示图书 等功能
图书管理系统程序框图
图书管理系统架构
管理员执行流程
学生执行流程
详细代码
Book
package book;
public class Book {
/*一本书的属性包括书名,作者,价格,类型,编号,以及状态*/
private String name;
private String author;
private int price;
private String type;
private int num;
private boolean status;
//提供构造方法
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 {
//书都是同一类型的元素,创建一个Book类型的数组
private Book[] books;
private int size;
//先给书架放三本书
public BookList() {
this.books = new Book[10];
books[0] = new Book("狂人日记","鲁迅",10,"小说",1);
books[1] = new Book("将进酒","李白",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("请输入图书的名字:");
String name = sc.nextLine();
System.out.println("请输入图书的作者:");
String author = sc.nextLine();
System.out.println("请输入图书价格:");
int price = sc.nextInt();
System.out.println("请输入图书的类型:");
String type = sc.next();
System.out.println("请输入图书的编号:");
int num = sc.nextInt();
Book book = new Book(name,author,price,type,num);
int curSize = bl.getSize();//拿到长度
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("请输入需要借阅的书籍名字:");
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("请取走您要的书籍!");
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("请输入需要删除的书籍名字:");
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("退出系统");
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("请输入要查找的书籍名字:");
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("请输入您要归还的书籍名字!");
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 + "进入图书管理系统!");
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.退出系统");
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 + "同学进入图书管理系统!");
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.退出系统");
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("请输入姓名:");
String name = sc.next();
System.out.println("请确认您的身份:1 > 管理员 0 > 学生");
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);
}
}
}
以上为全部源码,有不太明白的同学可以去下载链接直接获取源码
源码获取
毕设专栏
https://download.csdn.net/download/m0_54925305/86236726文章来源:https://www.toymoban.com/news/detail-479749.html
https://blog.csdn.net/m0_54925305/category_11702151.html?spm=1001.2014.3001.5482文章来源地址https://www.toymoban.com/news/detail-479749.html
到了这里,关于图书管理系统(借还图书)--Java实现(附源码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!