java实现简易的图书馆管理系统
比较适合新手练手的一个简易项目
直接上源码
Book
package code;
/**
* @author ztr
* @version 创建时间:2021年3月4日 下午8:21:40
* 类说明
*/
public class Book {
private String name;
private String author;
private double price;
private String type;
// 有参构造器
public Book(String name, String author, double price, String type) {
super();
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 double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
} }
Cuser
package code; import java.util.Iterator;
import java.util.List;
import java.util.Scanner; /**
* @author ztr
* @version 创建时间:2021年3月4日 下午8:32:15 类说明
*/
public class Cuser extends User {
Scanner sc = new Scanner(System.in);
public Cuser(String name, String sex, int age) {
super(name, sex, age);
}
// 查找书籍
@Override
public void serach(List<Book> LibraryBookDate) {
// Scanner sc = new Scanner(System.in);
System.out.println("请输入你想要查询的书籍名称");
String name = sc.next();
for (int i = 0; i < LibraryBookDate.size(); i++) {
if (name != null) {
if (LibraryBookDate.get(i).getName().equals(name)) {
System.out.println("查询成功");
System.out.println(LibraryBookDate.get(i).getName() + " "
+ LibraryBookDate.get(i).getAuthor() + " "
+ LibraryBookDate.get(i).getPrice() + " "
+ LibraryBookDate.get(i).getType());
}
} else {
System.out.println("没有此书");
}
} }
//遍历图书
@Override
public void display(List<Book> LibraryBookDate) {
// 使用lambda表达式
Iterator<Book> it = LibraryBookDate.iterator();
while (it.hasNext()) {
// 因为it.next()返回的是object类型所以需要进行类型强转
Book book = (Book) it.next();
System.out.println(book.getName() + " " + book.getAuthor() + " "
+ book.getPrice() + " " + book.getType());
}
}
//借阅书籍
@Override
public void borrow(List<Book> LibraryBookDate) {
// Scanner sc = new Scanner(System.in);
System.out.println("请输入你想要借阅的书籍书名:");
String name = sc.next();
// 获取集合的迭代器
Iterator<Book> it = LibraryBookDate.iterator();
while (it.hasNext()) {
Book book = (Book) it.next();
if (book.getName().equals(name)) {
System.out.println(book.getName() + " " + book.getAuthor()
+ " " + book.getPrice() + " " + book.getType());
UserBookDate.userdateBooks.add(book);
it.remove();
} else {
System.out.println("没有该书籍");
}
} }
// 归还书籍
public void revert(List<Book> LibraryBookDate){
// Scanner sc = new Scanner(System.in);
System.out.println("请输入需要归还的书籍:");
String name = sc.next();
Iterator<Book> it = UserBookDate.userdateBooks.iterator();
while(it.hasNext()){
Book book = (Book)it.next();
if(book.getName().equals(name)){
it.remove();
LibraryBookDate.add(book);
}
} }
}
LibraryBookDate
package code; import java.util.ArrayList;
import java.util.List; /**
* @author ztr
* @version 创建时间:2021年3月4日 下午9:21:13
* 类说明
*/
public class LibraryBookDate {
static List<Book> LibraryBookDate = new ArrayList<Book>(); }
Menu
ackage code; import java.util.Scanner; /**
* @author ztr
* @version 创建时间:2021年3月6日 下午4:28:07 类说明
*/
public class Menu {
public void menuRuser() {
Ruser ruser = new Ruser("ztr", "man", 20);
System.out.println("1.查阅书籍" + "/n" + "2.遍历书籍" + "/n" + "3.删除书籍"
+ "4.添加书籍" + "5.返回上一层");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
switch (n) { case 1:
ruser.serach(LibraryBookDate.LibraryBookDate);
menuRuser();
break;
case 2:
ruser.display(LibraryBookDate.LibraryBookDate);
menuRuser();
break;
case 3:
ruser.borrow(LibraryBookDate.LibraryBookDate); menuRuser();
break;
case 4:
ruser.insert(LibraryBookDate.LibraryBookDate);
menuRuser();
break;
case 5:
menu();
break;
default:
System.out.println("请重新输入:");
menuRuser();
break;
}
sc.close();
} public void menuCuser() {
Cuser cuser = new Cuser("x", "man", 10);
System.out.println("1.查阅书籍" + "/n" + "2.遍历书籍" + "/n" + "3.借阅书籍"
+ "4.归还书籍" + "5.返回上一层");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
switch (n) { case 1:
cuser.serach(LibraryBookDate.LibraryBookDate);
menuCuser();
break;
case 2:
cuser.display(LibraryBookDate.LibraryBookDate);
menuCuser();
break;
case 3:
cuser.borrow(LibraryBookDate.LibraryBookDate);
menuCuser();
break;
case 4:
cuser.revert(LibraryBookDate.LibraryBookDate);
menuCuser();
break;
case 5:
menu();
break;
default:
System.out.println("请重新输入:");
menuCuser();
break;
}
sc.close();
} public void menu() {
System.out.println("====图书馆管理系统===");
System.out.println("1.用户 2.管理员 3.退出");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
switch (n) {
case 1:
menuCuser();
break;
case 2:
menuRuser();
case 3:
break;
default:
System.out.println("请重新输入");
break;
}
sc.close();
} }
Operate
package code; import java.util.List; /**
* @author ztr
* @version 创建时间:2021年3月4日 下午8:25:01
* 类说明
*/
public interface Operate {
public void serach(List<Book> LibraryBookDate);
public void display(List<Book> LibraryBookDate);
public void borrow(List<Book> LibraryBookDate);
}
Ruser
package code; import java.util.Iterator;
import java.util.List;
import java.util.Scanner; /**
* @author ztr
* @version 创建时间:2021年3月6日 下午3:56:25 类说明
*/
public class Ruser extends User {
Scanner sc = new Scanner(System.in);
public Ruser(String name, String sex, int age) {
super(name, sex, age);
} // 查找书籍
@Override
public void serach(List<Book> LibraryBookDate) {
// Scanner sc = new Scanner(System.in);
System.out.println("请输入你想要查找的书籍书名:");
String name = sc.next();
// 获取集合的迭代器
Iterator<Book> it = LibraryBookDate.iterator();
while (it.hasNext()) {
Book book = (Book) it.next();
if (book.getName().equals(name)) {
System.out.println(book.getName() + " " + book.getAuthor()
+ " " + book.getPrice() + " " + book.getType());
UserBookDate.userdateBooks.add(book);
} else {
System.out.println("没有该书籍");
}
} } // 遍历图书
@Override
public void display(List<Book> LibraryBookDate) {
// 使用lambda表达式
Iterator<Book> it = LibraryBookDate.iterator();
while (it.hasNext()) {
// 因为it.next()返回的是object类型所以需要进行类型强转
Book book = (Book) it.next();
System.out.println(book.getName() + " " + book.getAuthor() + " "
+ book.getPrice() + " " + book.getType());
}
} // 删除图书
@Override
public void borrow(List<Book> LibraryBookDate) {
// Scanner sc = new Scanner(System.in);
System.out.println("请输入你要删除书籍的书名:");
String name = sc.next();
// 获取集合的迭代器
Iterator<Book> it = LibraryBookDate.iterator();
while (it.hasNext()) {
Book book = (Book) it.next();
if (book.getName().equals(name)) {
System.out.println(book.getName() + " " + book.getAuthor()
+ " " + book.getPrice() + " " + book.getType());
it.remove();
} else {
System.out.println("没有该书籍");
}
}
} // 添加图书
public void insert(List<Book> libraryBookDate) {
// Scanner sc = new Scanner(System.in);
System.out.println("请依次输入锁添加书籍的信息:1.书名2.作者3价格4类型");
String name = sc.next();
String author = sc.next();
double price = sc.nextDouble();
String type = sc.next();
Book book = new Book(name, author, price, type);
libraryBookDate.add(book); }
}
User
package code;
/**
* @author ztr
* @version 创建时间:2021年3月4日 下午8:24:46
* 类说明
*/
public abstract class User implements Operate{
private String name;
private String sex;
private int age; public User(String name, String sex, int age) {
super();
this.name = name;
this.sex = sex;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
} }
UserBookDate
package code; import java.util.ArrayList;
import java.util.List; /**
* @author ztr
* @version 创建时间:2021年3月6日 下午2:07:20
* 类说明
*/
public class UserBookDate {
static List<Book> userdateBooks = new ArrayList<Book>();
}
Test
package code;
/**
* @author ztr
* @version 创建时间:2021年3月6日 下午4:47:25
* 类说明
*/
public class Test {
public static void main(String[] args){
Menu menuone = new Menu();
menuone.menu();
}
}
Fileio
package FileIo; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator; import code.Book;
import code.LibraryBookDate; /**
* @author ztr
* @version 创建时间:2021年3月6日 下午9:29:18 类说明
*/
public class Fileio {
public void fileread() {
// 创建字符缓冲流对象
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader("src/book.txt")); String line;
while ((line = br.readLine()) != null) {
// 把读取到的字符串数据存储到集合中
String[] strArray = line.split(" ");
String name = strArray[0];
String author = strArray[1];
double price = Double.parseDouble(strArray[2]);
String type = strArray[3];
// 创建书本对象
Book book = new Book(name, author, price, type);
LibraryBookDate.LibraryBookDate.add(book);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {// 写文件是会有IO异常
// TODO: handle exception
e.printStackTrace();
} finally {
// 为了保障close一定执行
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
} public void filewrite() {
// 创建输出缓冲流对象
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter("src/book.txt"));
// 遍历集合
Iterator<Book> iterator = LibraryBookDate.LibraryBookDate
.iterator();
while (iterator.hasNext()) {
Book book = (Book) iterator.next();
bw.write(book.getName() + " ");
bw.write(book.getAuthor() + " ");
bw.write(String.valueOf(book.getPrice()) + " ");
bw.write(book.getType() + " ");
bw.newLine();
// 强制数据输出
bw.flush();
}
} catch (FileNotFoundException e) {
// TODO: handle exception
} catch (IOException e) {
e.printStackTrace();
// TODO: handle exception
} finally {
if (bw != null) {
try {
bw.close();
} catch (IOException e2) {
// TODO: handle exception
e2.printStackTrace();
}
}
}
}
}
功能非常简单,但可以自己进行功能的扩展
java实现简易的图书馆管理系统的更多相关文章
- Java写一个简单学生管理系统
其实作为一名Java的程序猿,无论你是初学也好,大神也罢,学生管理系统一直都是一个非常好的例子,初学者主要是用数组.List等等来写出一个简易的学生管理系统,二.牛逼一点的大神则用数据库+swing来 ...
- 图书馆管理系统 SRS文档
图书馆管理系统 SRS文档 编写人:魏晓 日期:2015年05月27日 1介绍 1.1编写目的 图书管理系统需求规格说明书是为了让系统的涉众就该系统的需求达成一致认可,明确该系统的需求,为后续的开发工 ...
- 图书馆管理系统SRS
1.任务概述 1.1目标 主要提供图书信息和读者基本信息的维护以及借阅等功能.本系统是提高图书管理工作的效率,减少相关人员的工作量,使学校的图书管理工作真正做到科学.合理的规划,系统.高效的实施. 1 ...
- Microsoft-pubs(图书馆管理系统)-数据库设计
ylbtech-DatabaseDesgin:微软提供-pubs(图书馆管理系统)-数据库设计 1.A,数据库关系图 1.B,数据库设计脚本 -- ======================== ...
- Android应用源码图书馆管理系统带服务端数据库
本项目是一套基于安卓的图书馆管理系统,包括jsp服务端源码,安卓客户端源码和mysql数据库.代码比较简单,供学习anroid与j2ee交互.例如Sqlite的使用.安卓客户端与jsp的web服务端的 ...
- MDA系统分析实战--图书馆管理系统
MDA系统分析实战--图书馆管理系统 本文通过MDA系统分析方法,对图书馆管理系统进行分析,简要叙述系统分析的一般过程.首先,简要介绍什么是MDA:MDA(Model-Driven Architect ...
- Java 小样例:图书馆课程设计(Java 8 版)
用 Java 模拟一个图书馆.包含创建图书.创建读者.借书.还书.列出全部图书.列出全部读者.列出已借出的图书.列出过期未还的图书等功能. 每一个读者最多仅仅能借 3 本书,每一个书最多仅仅能借 3 ...
- Java课程设计——学生成绩管理系统(201521123003 董美凤)
Java课程设计--学生成绩管理系统(201521123003 董美凤) 1.团队课程设计博客链接 学生成绩管理系统博客链接 2.个人负责模块或任务说明 信息修改 密码修改 部分界面设计 3.自己的代 ...
- C++ 文件操作(简易的学籍管理系统)
这是一个简易的学籍管理系统,大一时居然三个人写了一千多行......年少无知啊!欢迎摘果实! 1 #include <iostream> #include <fstream> ...
随机推荐
- 操作系统 part2
一.程序的内存结构 references: newcoder 运行时,程序分为:text段.data段.BSS段(2个合称数据段).堆.栈. text段:代码段,静态分配内存,只读. data段:初始 ...
- how to write an ebook that can support published by format PDF, Epub, Mobi and so on
how to write an ebook that can support published by format PDF, Epub, Mobi and so on 如何写一本自己的电子书,支持各 ...
- 密码 & 安全
密码 & 安全 拖库/脱库 如何在数据库中存储密码更安全? https://time.geekbang.org/dailylesson/detail/100044031 拖库和撞库 https ...
- 在浏览器上播放m3u8视频
在edge上有效 <video width="600" controls> <source src="https://www.gentaji.com/2 ...
- HANNAH WHITE:不拖延的人生是什么样子的?
不拖延的人生,究竟是什么样子呢?近日,星盟投资总经理HANNAH在一档人物采访栏目中表示,不拖延的人生,真的是太爽了! HANNAH在栏目中讲了一个曾经公司同事的故事.她说,那位同事总是喜欢拖延.每次 ...
- 开启算法之路,还原题目,用debug调试搞懂每一道题
文章简述 大家好,本篇是个人的第 3 篇文章. 承接第一篇文章<手写单链表基础之增,删,查!附赠一道链表题>,在第一篇文章中提过,在刷算法题之前先将基础知识过一遍,这样对后面的做算法题是很 ...
- uni-app小白入门自学笔记(一)
码文不易啊,转载请带上本文链接呀,感谢感谢 https://www.cnblogs.com/echoyya/p/14427845.html 目录 码文不易啊,转载请带上本文链接呀,感谢感谢 https ...
- Java自学第8期——多线程
1.多线程: 操作系统支持同时运行多个任务,一个任务通常是一个程序,所有运行中的程序就是一个进程().程序内部包含多个顺序执行流,每个顺序执行流就是一个线程. 并发:两个或者多个事件在同一个时间段内交 ...
- docket 缺陷
docker轻量级的虚拟机 依赖于内存和核数 相比于正常的虚拟机来说运行速度会慢
- 从微信小程序到鸿蒙js开发【15】——JS调用Java
鸿蒙入门指南,小白速来!0基础学习路线分享,高效学习方法,重点答疑解惑--->[课程入口] 目录:1.新建一个Service Ability2.完善代码逻辑3.JS端远程调用4.<从微信小 ...