java编写图书管理系统
**
基本思路
**此系统的对象有 1:书籍 2:使用者(用户和图书管理员)
1. 图书:它的属性有书名,编号,作者,类别,价格,状态(是否被借出)
2. 使用者
2.1 管理员:姓名,增加书籍,删除书籍,查找书籍,打印书籍信息,退出系统一些简单的操作。
2.2 用户:姓名,查找书籍 ,借阅书籍,归还书籍,退出系统操作。
创建一个BookManage类
package Demo;public class BookManage {private String name;private String id;private String auther;private String type;private int price;private boolean isBorrow;public BookManage(String name,String id,String auther,String type,int price,boolean isBorrow){this.name = name;this.id = id;this.auther = auther;this.type = type;this.price = price;this.isBorrow = isBorrow;}public String getId(){return id;}public Boolean isBorrow(){return isBorrow;}public void setBorrow(boolean borrow){isBorrow = borrow;}public String getName(){return name;}//重写
@Overridepublic String toString() {return "BookManage{" +"name='" + name + '\'' +", id='" + id + '\'' +", auther='" + auther + '\'' +", type='" + type + '\'' +", price=" + price +", isBorrow=" + isBorrow +'}';}
创建一个类保存书籍
package Demo;import java.awt.print.Book;public class BookList {private BookManage[] books = new BookManage[100];private int size;public BookList(){books[0] = new BookManage("数据库","001","王珊","数学课本",49,false);books[1] = new BookManage("信号与系统分析","002","吴大正","数学课本",32,false);books[2] = new BookManage("计算机组成原理","003","蒋本珊","数学课本",45,false);size = 3;}public int getSize(){return size;}public void setSize(int size){this.size = size;}public BookManage getBook(int index){return books[index];}public void setBooks(int index, BookManage book) {books[index] = book;}
}
我们将所有的操作方法放到operation包里,所有方法用接口来实现。
package operation;import Demo.BookList;public interface IOperation {void work(BookList bookList);
}
1.增加书籍
import Demo.BookManage;import java.util.Scanner;public class AddBookoperation implements IOperation{@Overridepublic void work(BookList bookList) {System.out.println("新增一本书籍!");System.out.println("请输入新增书籍的书名:");Scanner scanner = new Scanner(System.in);String name = scanner.next();System.out.println("请输入新增书籍的id:");String id = scanner.next();System.out.println("请输入新增书籍的作者:");String author = scanner.next();System.out.println("请输入新增书籍的类型:");String type = scanner.next();System.out.println("请输入新增书籍的价格:");int price = scanner.nextInt();BookManage book = new BookManage(name,id,author,type,price,false);bookList.setBooks(bookList.getSize(), book);bookList.setSize(bookList.getSize()+1);}
}
2.删除书籍
package operation;import Demo.BookList;
import Demo.BookManage;import java.util.Scanner;public class DeleteOperation implements IOperation {@Overridepublic void work(BookList bookList) {System.out.println("删除书籍!");System.out.println("请输入您想要删除的书籍的id:");Scanner scanner = new Scanner(System.in);String id = scanner.next();int i = 0;for (; i < bookList.getSize(); i++) {BookManage book = bookList.getBook(i);if(book.getId().equals(id)) {break;}}if(i >= bookList.getSize()) {System.out.println("未找到要找的书籍!");return;}BookManage lastBook = bookList.getBook(bookList.getSize()-1);bookList.setBooks(i, lastBook);bookList.setSize(bookList.getSize() - 1);System.out.println("删除成功!");}
}
3.查找书籍
package operation;import Demo.BookList;
import Demo.BookManage;import java.util.Scanner;public class Findoperation implements IOperation {@Overridepublic void work(BookList bookList) {System.out.println("查找书籍!");System.out.println("请输入要查找书籍的书名:");Scanner scanner = new Scanner(System.in);String name = scanner.next();int count = 0;for(int i = 0; i < bookList.getSize(); i++) {BookManage book = bookList.getBook(i);if(book.getName().equals(name)) {System.out.println(book);count++;}}if(count == 0) {System.out.println("没找到此书籍!");} else {System.out.println("共找到" + count + "本相同书籍!");}}
}
4.借阅书籍
package operation;import Demo.BookList;
import Demo.BookManage;import java.util.Scanner;public class BorrowOperation implements IOperation {@Overridepublic void work(BookList bookList) {System.out.println("借阅书籍!");System.out.println("请输入要借阅书籍的id:");Scanner scanner = new Scanner(System.in);String id = scanner.next();for (int i = 0; i < bookList.getSize(); i++) {BookManage book = bookList.getBook(i);if (!book.getId().equals(id)) {continue;}if (book.isBorrow()) {System.out.println("此书已经被借走了!");break;}book.setBorrow(true);System.out.println("借阅成功");}}
}
- 打印所有书籍信息
import Demo.BookList;
import Demo.BookManage;public class printAlloperation implements IOperation{@Overridepublic void work(BookList bookList) {int i;for (i = 0; i < bookList.getSize(); i++) {System.out.println(bookList.getBook(i));}System.out.println("共有" + bookList.getSize() + "本书籍");}
}
6.退出系统
package operation;import Demo.BookList;
import Demo.BookManage;import javax.imageio.plugins.bmp.BMPImageWriteParam;
import java.util.Scanner;public class ReturnOperation implements IOperation {@Overridepublic void work(BookList bookList) {System.out.println("归还书籍!");System.out.println("请输入要归还书籍的id:");Scanner scanner = new Scanner(System.in);String id = scanner.next();int i = 0;for(; i < bookList.getSize(); i++) {BookManage book = bookList.getBook(i);if(!book.getId().equals(id)) {continue;}if(!book.isBorrow()) {System.out.println("这本书未借出去,归还失败!");}book.setBorrow(false);}}
}
抽象用户代码
package user;import Demo.BookList;
import operation.IOperation;abstract public class User {protected String name;protected IOperation[] operations;public User(String name) {this.name = name;}abstract public int menu();public void doOpration(int choice, BookList bookList) {operations[choice].work(bookList);}
}
管理员代码
package user;
import Demo.BookList;
import Demo.Delete;
import operation.*;import java.util.Scanner;public class Admin extends User {public Admin(String name) {super(name);operations = new IOperation[]{new ExitOperation(),new AddBookoperation(),new DeleteOperation(),new Findoperation(),new printAlloperation(),};}@Overridepublic int menu() {System.out.println("-------------------");System.out.println("hello" + 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;}
}
用户代码
package user;import operation.*;
import operation.IOperation.*;
import java.util.Scanner;public class NormalUser extends User {public NormalUser(String name) {super(name);operations = new IOperation[] {new ExitOperation(),new Findoperation(),new BorrowOperation(),new ReturnOperation(),};}@Overridepublic int menu() {System.out.println("----------------");System.out.println("hello" + name);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;}
}
结束
java编写图书管理系统相关推荐
- JavaWeb笔记(五)后端(Thymeleaf)(Tomcat类加载机制)(编写图书管理系统)
使用Thymeleaf模板引擎 虽然JSP为我们带来了便捷,但是其缺点也是显而易见的,那么有没有一种既能实现模板,又能兼顾前后端分离的模板引擎呢? Thymeleaf(百里香叶)是一个适用于Web和独 ...
- c语言图书管理系统用什么软件,编写c语言的软件 纯C语言编写图书管理系统.doc...
编写c语言的软件 纯C语言编写图书管理系统 编写c语言的软件 纯C语言编写图书管理系统WORD文档bbszp 导读:就爱阅读网友为您分享以下"纯C语言编写图书管理系统WORD文档bbszp& ...
- c语言之bbs管理系统,编写c语言的软件 纯C语言编写图书管理系统WORD文档bbszp.doc...
编写c语言的软件 纯C语言编写图书管理系统WORD文档bbszp 编写c语言的软件 纯C语言编写图书管理系统WORD文档bbszp 导读:就爱阅读网友为您分享以下"纯C语言编写图书管理系统W ...
- Java Web图书管理系统(MVC框架)-包含源码
Java Web图书管理系统 一.前言 这是大二写的系统,因此这个系统并没有用到很多框架,只是使用了MVC框架,前端使用的是Layui框架.bootstrap框架.JSP技术.JSTL表达式和EL表达 ...
- Java Swing图书管理系统桌面软件附源码
Java Swing图书管理系统桌面软件附源码,亲测可运行. 功能界面如下: 登录界面,默认账号admin密码admin 主功能界面: 添加图书功能界面: 部分源码: 完整源码下载地址: JavaSw ...
- Java web 图书管理系统
本系统由java+sevlet+mysql+eclipse实现的Java web图书管理系统,具有增删改查以及导出Excel表格的功能,需要源码或者需要定制类似的Java /Java web/ ssm ...
- Java窗体图书管理系统Java图书借阅管理系统(图书借阅系统)
Java窗体图书管理系统Java图书借阅管理系统(图书借阅系统)
- 大二小学期java:图书管理系统
大二小学期java:图书管理系统 import java.util.*;import java.text.*;public class library {public static long char ...
- 计算机毕设(附源码)JAVA-SSM基于java的图书管理系统
项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...
最新文章
- 贝叶斯推断方法 —— 从经验知识到推断未知
- 整数转换为罗马数字 Integer to Roman
- android 填满手机磁盘空间方法
- 用pycharm写python老是提示错误_python pycharm错误集锦
- matlab图像信息熵交叉熵,【机器学习】信息量,信息熵,交叉熵,KL散度和互信息(信息增益)...
- Visual Studio 2015 和 Apache Cordova 跨平台开发入门(一)
- Smarty 入手学习教程
- 定档6月11日 诺基亚手机新品发布亮点抢先看
- (附源码)spring boot小型仪器公司生产管理系统 毕业设计 031853
- CentOS mysql配置主从复制
- 淘宝网卖家必须缴纳消保保证金才能发布宝贝的商品类目
- java8分组lambda_Java 8,Lambda:在分组列表中排序并将所有组合并到列表中
- Go sync.Pool 浅析
- 短信宝发送短信验证码
- java中整数的整数次方_数值的整数次方java
- Linux服务器上设置全局代理访问外网并验证
- 王佩丰 Excel 基础24讲 | 学习笔记(全)
- 筷子兄弟的病毒营销,只用了一首歌!
- 线性代数[初等变换(一)]
- java中File的总结