1、简单的登录

2、管理端

1、查阅书籍
2、增加书籍
3、删除书籍
4、打印书籍列表
5、退出系统

3、用户端

1、查找书籍
2.、借阅书籍
3.、归还书籍
4、打印书籍列表
5、退出系统

4、类的设计

1、创建图书相关的类
2、创建操作相关的类
3、创建用户相关的类
4、进行整合

5、代码

1、图书类book

1、Book

package com.bit.book;public class Book {public String name;public String author;public int price;public String type;//小说public boolean isBorrowed;//是否被借出public Book(String name, String author, int price, String type) {this.name = name;this.author = author;this.price = price;this.type = type;}@Overridepublic String toString() {return "Book{" +"name='" + name + '\'' +", author='" + author + '\'' +", price=" + price +", type='" + type + '\'' +((isBorrowed==true)?",已经被借出":",未借出")+//", isBorrowed=" + isBorrowed +'}';}
}

2、BookList

package com.bit.book;public class BookList {public Book[] books=new Book[10];private int size;//有效数据个数public BookList(){books[0]=new Book("三国演义","罗贯中",12,"小说");books[1]=new Book("西游记","吴承恩",13,"小说");books[2]=new Book("水浒传","施耐庵",14,"小说");this.size=3;}public void setBooks(int pos,Book book){this.books[pos] = book;}public Book getBooks(int pos) {return books[pos];}public int getSize() {return size;}public void setSize(int size) {this.size = size;}
}

2、操作类operation

1、AddOperation(增加书籍)

package com.bit.operation;import com.bit.book.Book;
import com.bit.book.BookList;public class AddOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("AddOperation");System.out.println("请输入图书的名字:");String name = scanner.next();System.out.println("请输入图书的作者");String author = scanner.next();System.out.println("请输入图书的价格");int price = scanner.nextInt();System.out.println("请输入图书的类型");String type = scanner.next();Book book = new Book(name,author,price,type);//没有考虑满的情况int curSize = bookList.getSize();bookList.setBooks(curSize,book);bookList.setSize(curSize+1);System.out.println("添加书籍成功!");}
}

2、BorrowOperation(借阅书籍)

package com.bit.operation;import com.bit.book.Book;
import com.bit.book.BookList;public class BorrowOperation implements IOperation {@Overridepublic void work(BookList bookList) {System.out.println("BorrowOperation");System.out.println("输入需要借阅书籍的名称");String name = scanner.next();//不会从bookList-》进行删除-》isBorrowed true//1、找这本书 是否存在int i = 0;for (; i < bookList.getSize(); i++) {if(bookList.getBooks(i).name.equals(name)) {break;}}if(i >= bookList.getSize()) {System.out.println("没有此书");return;}//2、他是否被借出   false  可以借Book book = bookList.getBooks(i);if(book.isBorrowed) {System.out.println("已经借出去了");}else {book.isBorrowed = true;System.out.println("书籍成功借阅");}}
}

3、DelOperation(删除书籍)

package com.bit.operation;import com.bit.book.Book;
import com.bit.book.BookList;public class DelOperation implements IOperation {@Overridepublic void work(BookList bookList) {System.out.println("DelOperation");System.out.println("输入需要删除书籍的名称");String name = scanner.next();//不会从bookList-》进行删除-》isBorrowed true//1、找这本书 是否存在int i = 0;for (; i < bookList.getSize(); i++) {if(bookList.getBooks(i).name.equals(name)) {break;}}if(i >= bookList.getSize()) {System.out.println("没有此书");return;}//2、开始删除int pos = i;for (int j = pos; j < bookList.getSize()-1; j++) {Book nextBook = bookList.getBooks(j+1);bookList.setBooks(j,nextBook);}bookList.setSize(bookList.getSize()-1);System.out.println("删除成功!");}
}

前面增加了《活着》这本书,现在删除《西游记》并打印列表,会发现,没有西游记这本书了。

4、DisplayOperation(打印书籍列表)

package com.bit.operation;import com.bit.book.BookList;public class DisplayOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("DisplayOperation");for (int i = 0; i < bookList.getSize(); i++) {System.out.println(bookList.getBooks(i));}}
}

5、ExitOperation(退出系统)

package com.bit.operation;import com.bit.book.BookList;public class ExitOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("byebye!");System.exit(0);}
}


0退出系统

6、FindOperation(查找书籍)

package com.bit.operation;import com.bit.book.BookList;public class FindOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("FindOperation");System.out.println("输入需要查找书籍的名称");String name = scanner.next();//不会从bookList-》进行删除-》isBorrowed true//1、找这本书 是否存在int i = 0;for (; i < bookList.getSize(); i++) {if(bookList.getBooks(i).name.equals(name)) {System.out.println(bookList.getBooks(i));break;}}if(i >= bookList.getSize()) {System.out.println("没有此书");return;}System.out.println("书籍查找成功");}
}

7、IOperation(接口)

package com.bit.operation;import com.bit.book.BookList;import java.util.Scanner;public interface IOperation {Scanner scanner=new Scanner(System.in);void work(BookList bookList);
}

8、ReturnOperation(归还书籍)

package com.bit.operation;import com.bit.book.Book;
import com.bit.book.BookList;public class ReturnOperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("ReturnOperation");System.out.println("输入需要归还书籍的名称");String name = scanner.next();//不会从bookList-》进行删除-》isBorrowed true//1、找这本书 是否存在int i = 0;for (; i < bookList.getSize(); i++) {if(bookList.getBooks(i).name.equals(name)) {break;}}if(i >= bookList.getSize()) {System.out.println("没有此书");return;}//2、他是否被借出   false  可以借Book book = bookList.getBooks(i);if(book.isBorrowed) {book.isBorrowed = false;System.out.println("书籍归还成功!");}else {System.out.println("书籍归还失败");}}
}

3、用户类

1、Admin(管理员)

package com.bit.usr;import com.bit.operation.*;import java.util.Scanner;public class Admin extends User{public Admin(String name) {this.name = name;this.operations = new IOperation[]{new ExitOperation(),new FindOperation(),new AddOperation(), new DelOperation(), new DisplayOperation()};}@Overridepublic int menu() {System.out.println("=============================");System.out.println("Hello " + this.name + ", 欢迎使用图书管理系统!");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;}
}

2、NormalUser(普通用户)

package com.bit.usr;import com.bit.operation.*;import java.util.Scanner;public class NormalUser extends User {public NormalUser(String name){this.name=name;this.operations=new IOperation[]{ new ExitOperation(), new FindOperation(),new BorrowOperation(), new ReturnOperation(), new DisplayOperation() };}@Overridepublic int menu() {System.out.println("=============================");System.out.println("Hello " + this.name + ", 欢迎使用图书管理系统!");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、User(用户)

package com.bit.usr;import com.bit.book.BookList;
import com.bit.operation.IOperation;public abstract class User {protected String name;protected IOperation[] operations;public abstract int menu();// 根据用户选项执行操作public void doOperation(int choice, BookList bookList) {operations[choice].work(bookList);}
}

4、Main(主函数)

package com.bit;import com.bit.book.BookList;
import com.bit.usr.*;import java.util.Scanner;public class Main {public static User login() {System.out.println("请输入你的名字:");Scanner scanner = new Scanner(System.in);String name = scanner.nextLine();System.out.println("请输入您的身份(1 表示管理员, 0 表示普通用户):");int who = scanner.nextInt();if(who == 1) {return new Admin(name);}else {return new NormalUser(name);}}public static void main(String[] args) {BookList bookList=new BookList();User user = login();while (true) {int choice = user.menu();// 0   bookListuser.doOperation(choice, bookList);}}
}

图书管理系统Java相关推荐

  1. 基于java+mysql的Swing+MySQL图书管理系统(java+swing+gui+mysql)

    基于java+mysql的Swing+MySQL图书管理系统(java+swing+gui+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclip ...

  2. 基于javaweb的图书管理系统(java+jsp+layui+bootstrap+servlet+mysql)

    基于javaweb的图书管理系统(java+jsp+layui+bootstrap+servlet+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse ...

  3. 图书管理系统java+Oracle

    图书管理系统java+Oracle 一.课程设计实验目的 二.课程设计任务及要求 三.数据库设计 四.程序设计 五.软件使用说明 六.课程设计总结 七.附录 一.课程设计实验目的 课程设计围绕课程的整 ...

  4. java图书管理系统目的_java_图书管理系统java版,本文的目的就是通过图书管理 - phpStudy...

    图书管理系统java版 本文的目的就是通过图书管理系统掌握数据库编程技术,能正确连接数据库,能对数据库中信息进行查询.插入.删除.修改. 内容:在数据库中创建一张书目信息表,包括书名.作者.出版社.出 ...

  5. Java窗体图书管理系统Java图书借阅管理系统(图书借阅系统)

    Java窗体图书管理系统Java图书借阅管理系统(图书借阅系统)

  6. 实训总结(图书管理系统java)

    实训总结(图书管理系统java) 1设计任务 完成用户登录验证,图书品类的增.删.查.改并保存到数据库中,打印购买图书订单,并将购买图书订单信息数据保存到数据库中. 2总体设计 序号 类名 说明 1 ...

  7. 图书管理系统java项目jsp web项

    图书管理系统java项目jsp web项 源码+数据库+文档+运行环境齐全! 图书信息浏览,图书借阅,图书归还,个人信息管理,最佳读者,借阅排行,问题反馈等. 管理员功能可以实现读者管理,图书管理,借 ...

  8. 《图书管理系统——java》

    /* (盯着先拔头筹程序) * 该计划的版权声明和版本号 * Copyright (c) 2011, 烟台大学计算机学院学生的学校 * All rights reserved. * 文件名:    & ...

  9. Java项目:图书管理系统(java+JSP+layui+bootstrap+Servlet+Mysql)

    源码获取:俺的博客首页 "资源" 里下载! 项目介绍 使用jsp+servlet.layui.mysql完成的图书馆系统,包含用户图书借阅.图书管理员.系统管理员界面,功能齐全. ...

  10. 【毕业设计】基于spring boot的图书管理系统 -java 计算机 软件工程

    文章目录 1 前言 2 系统简介 2.1 领域模型 2.2 技术栈 2.3 表结构设计 2.4 接口设计 2.4.1 接口定义 2.4.2 接口测试 2.5 权限设计 3 运行效果 3.1 系统登录 ...

最新文章

  1. Jupyter notebook 指定 Python 解释器 anaconda
  2. python selenium 浏览器设置_python+selenium webdriver.firefox()方式配置浏览器设置
  3. SparkStreaming读取Kakfa数据时发生OffsetOutOfRangeException异常
  4. Nutch关于robot.txt的处理
  5. 我的代码很好,不需要写注释
  6. Master HA源码解析
  7. 难学的十大编程语言,C++位居第二,它才是第一名!
  8. Socket编程实践(9) --套接字IO超时设置方法
  9. Atitit 面试问题高难度问题 回答不上来的分析应对法 目录 1. 问题分析法 1 1.1. 判断是否超出自己范围的,直接回复超出自己范围了 1 1.2. 根据生活中的解决方法,大概说下解决模式
  10. CISP 考试教材《第 7 章 知识域:信息安全支撑技术》知识整理
  11. ArcGIS空间分析——热点分析
  12. 中标麒麟linux操作系统下Chrome/Chromium的安装
  13. Codeforces Gym 100015F Fighting for Triangles 状压DP
  14. 学计算机打字一段话,如何快速学会电脑打字
  15. Pytorch:图像语义分割-FCN, U-Net, SegNet, 预训练网络
  16. 离线部署NFS文件系统
  17. 全能水果柠檬的保健功效和食用方法
  18. python操作Excel,xlwings排序
  19. 谁偷了我的奶酪(上)
  20. 班主任工作总结(2013年度)

热门文章

  1. 递归实现在级联选择器中选择部门下的人员
  2. 河北工业大学计算机学院考研真题,河北工业大学考研真题汇总
  3. Android 实时监听耳机拔除
  4. STM32CubeMX SDIO SD卡 FATFS
  5. BAAI 2020 北京智源大会 | Yolanda Gil | Thoughtful Artificial Intelligence
  6. win10dhcp服务器设置修复,win10不能启动dhcp如何解决_win10 dhcp服务无法启动怎么修复...
  7. Django分页,过滤:
  8. Django 数据库常用字段类型
  9. linux p4 环境配置,linux p4使用心得
  10. HDFS集群内文件移动的Java实现