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> ...
随机推荐
- zoj-3872 Beauty of Array (dp)
]Edward has an array A with N integers. He defines the beauty of an array as the summation of all di ...
- 记一次 Billu_b0x渗透
目录: 0x01 寻找ip 1.这边我们是使用的nmap来寻找我们的靶机IP地址,开始Ip是1,结束是254,153是我kali的ip,所以158就是我们的靶机的ip地址了. 2. 查看端口服务 这边 ...
- JVM系列之一 JVM的基础概念与内存区域
前言 作为一名 Java 语言的使用者,学习 JVM 有助于解决程序运行过程中出现的问题.写出性能更高的代码. 可以说:学好 JVM 是成为中高级 Java 工程师的必经之路. 有感于从未整理归纳 J ...
- js uppercase first letter
js uppercase first letter const str = `abc`; str.slice(0, 1).toUpperCase(); // "A" str.sli ...
- git whoami
git whoami $ git config --list $ git config --global --list # quit $ q $ git config user.name xgqfrm ...
- Flutter 使用Tabbar不要Title
原文 Demo 1 import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp ext ...
- 一层逻辑的网页scrapy爬虫
1 import scrapy 2 import re 3 from fake_useragent import UserAgent 4 5 6 class DoubanSpider(scrapy.S ...
- Oracle RMAN scripts to delete archivelog
vi del_arch.shexport ORACLE_SID=pdcsdbrman target / cmdfile=/home/oracle/scripts/del_arch.sql log=/h ...
- 下载HLS视频到本地
现在绝大多数网站播放视频都采用HLS技术,像腾讯优酷爱奇艺等等.本篇博文将介绍如何下载这样的视频到本地. 前言 因疫情影响,上课部分课程采用腾讯课堂上课,腾讯课堂有直播回放功能,但这个功能腾讯显然没有 ...
- SpringBoot(十一): Spring Boot集成Redis
1.在 pom.xml 中配置相关的 jar 依赖: <!-- 加载 spring boot redis 包 --> <dependency> <groupId>o ...