---------------------------------------------------------------------------
图书管理系统
1.登陆
2.退出
---------------------------------------------------------------------------
请选择:1
请输入用户名:root
请输入密码:52Java
登陆成功.欢迎光临:root
---------------------------------------------------------------------------
图书管理系统 > 主界面
1.查询所有图书信息
2.添加一本图书信息
3.修改一本图书信息
4.删除一本图书信息
5.查询一本图书信息
6.退出系统
---------------------------------------------------------------------------
请选择相应的操作:1
所有图书信息如下:
---------------------------------------------------------------------------
编号 作者 书名 数量 价格 页码 描述
---------------------------------------------------------------------------
1001 罗贯中 三国演义 10 100.0 800 《水浒传》的故事...
1002 施耐庵 水浒传 10 100.0 880 《三国演义》故事...
1003 吴承恩 西游记 10 100.0 900 《西游记》在明代...
1004 曹雪芹 红楼梦 10 100.0 690 《红楼梦》讲述的...
---------------------------------------------------------------------------
按n返回上一级菜单: n
---------------------------------------------------------------------------
图书管理系统 > 主界面
1.查询所有图书信息
2.添加一本图书信息
3.修改一本图书信息
4.删除一本图书信息
5.查询一本图书信息
6.退出系统
---------------------------------------------------------------------------
请选择相应的操作:2
请输入图书编号:1005
请输入图书名称:Java编程
请输入图书作者:Java
请输入图书价格:100
请输入图书数量:10
请输入图书页数:1000
请输入简介:面向对象的编程
保存成功!!!
所有图书信息如下:
---------------------------------------------------------------------------
编号 作者 书名 数量 价格 页码 描述
---------------------------------------------------------------------------
1001 罗贯中 三国演义 10 100.0 800 《水浒传》的故事...
1002 施耐庵 水浒传 10 100.0 880 《三国演义》故事...
1003 吴承恩 西游记 10 100.0 900 《西游记》在明代...
1004 曹雪芹 红楼梦 10 100.0 690 《红楼梦》讲述的...
1005 Java Java编程 10 100.0 1000 面向对象的编程
---------------------------------------------------------------------------
按n返回上一级菜单: n
---------------------------------------------------------------------------
图书管理系统 > 主界面
1.查询所有图书信息
2.添加一本图书信息
3.修改一本图书信息
4.删除一本图书信息
5.查询一本图书信息
6.退出系统
---------------------------------------------------------------------------
请选择相应的操作:3
请输入要修改的图书编号:1005
请输入图书名称:Java设计
请输入图书作者:Java
请输入图书价格:99
请输入图书数量:18
请输入图书页数:1000
请输入简介:来学
修改成功!!!
所有图书信息如下:
---------------------------------------------------------------------------
编号 作者 书名 数量 价格 页码 描述
---------------------------------------------------------------------------
1001 罗贯中 三国演义 10 100.0 800 《水浒传》的故事...
1002 施耐庵 水浒传 10 100.0 880 《三国演义》故事...
1003 吴承恩 西游记 10 100.0 900 《西游记》在明代...
1004 曹雪芹 红楼梦 10 100.0 690 《红楼梦》讲述的...
1005 Java Java设计 18 99.0 1000 来学
---------------------------------------------------------------------------
按n返回上一级菜单: n
---------------------------------------------------------------------------
图书管理系统 > 主界面
1.查询所有图书信息
2.添加一本图书信息
3.修改一本图书信息
4.删除一本图书信息
5.查询一本图书信息
6.退出系统
---------------------------------------------------------------------------
请选择相应的操作:4
请输入要删除的图书编号:1005
删除成功!!!
所有图书信息如下:
---------------------------------------------------------------------------
编号 作者 书名 数量 价格 页码 描述
---------------------------------------------------------------------------
1001 罗贯中 三国演义 10 100.0 800 《水浒传》的故事...
1002 施耐庵 水浒传 10 100.0 880 《三国演义》故事...
1003 吴承恩 西游记 10 100.0 900 《西游记》在明代...
1004 曹雪芹 红楼梦 10 100.0 690 《红楼梦》讲述的...
---------------------------------------------------------------------------
按n返回上一级菜单: n
---------------------------------------------------------------------------
图书管理系统 > 主界面
1.查询所有图书信息
2.添加一本图书信息
3.修改一本图书信息
4.删除一本图书信息
5.查询一本图书信息
6.退出系统
---------------------------------------------------------------------------
请选择相应的操作:5
请输入要查找的图书名称:记
你查找的图书内容如下:
---------------------------------------------------------------------------
编号 作者 书名 数量 价格 页码 描述
---------------------------------------------------------------------------
1003 吴承恩 西游记 10 100.0 900 《西游记》在明代...
---------------------------------------------------------------------------
按n返回上一级菜单: n
---------------------------------------------------------------------------
图书管理系统 > 主界面
1.查询所有图书信息
2.添加一本图书信息
3.修改一本图书信息
4.删除一本图书信息
5.查询一本图书信息
6.退出系统
---------------------------------------------------------------------------
请选择相应的操作:6
欢迎下次再来使用本系统。
Process finished with exit code -1
结构如下
package book.entity;
public class Book {
/**
* 图书编号
*/
private Integer id;
/**
* 书名
*/
private String name;
/**
* 书的作者
*/
private String author;
/**
* 书的价格
*/
private double price;
/**
* 书的数量
*/
private int number;
/**
* 书的页数
*/
private int page;
/**
* 书的简介
*/
private String info;
public Book() {
}
public Book(int id, String name, String author, double price, int number,
int page, String info) {
super();
this.id = id;
this.name = name;
this.author = author;
this.price = price;
this.number = number;
this.page = page;
this.info = info;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
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 int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
}
package book.dao;
import book.entity.Book;
import java.util.List;
public interface BookDao {
/**
* 添加
*
* @param book
* @return
*/
int add(Book book);
/**
* 修改
*
* @param book
* @return
*/
int update(Book book);
/**
* 根据id删除
*
* @param id
* @return
*/
int del(Integer id);
/**
* 查单个
*
* @param id
* @return
*/
Book findOne(Integer id);
/**
* 查所有
*
* @return
*/
List<Book> findAll();
/**
* 按姓名模糊查询
*
* @param name
* @return
*/
List<Book> findByName(String name);
}
package book.dao.impl;
import book.dao.BookDao;
import book.entity.Book;
import java.util.ArrayList;
import java.util.List;
public class BookDaoImpl implements BookDao {
public static ArrayList<Book> books = new ArrayList<Book>();
static {
books.add(new Book(1001, "三国演义", "罗贯中", 100, 10, 800,
"《水浒传》的故事源起于北宋宣和年间,出现了话本《大宋宣和遗事》描述了宋江、吴加亮(吴用)、晁盖等36人起义造反的故事,成为《水浒传》的蓝本。"));
books.add(new Book(
1002,
"水浒传",
"施耐庵",
100,
10,
880,
"《三国演义》故事开始黄巾兵起义,结束于司马氏灭吴开晋,以描写战争为主,反映了魏、蜀汉、吴三个政治集团之间的政治和军事斗争,展现了从东汉末年到西晋初年之间近一百年的历史风云,并成功塑造了一批叱咤风云的英雄人物。"));
books.add(new Book(1003, "西游记", "吴承恩", 100, 10, 900,
"《西游记》在明代刚出现时曾被列为禁书,因为书中充满了崇佛抑道的思想,与当时的明朝皇帝所信奉的道教思想有冲突。"));
books.add(new Book(
1004,
"红楼梦",
"曹雪芹",
100,
10,
690,
"《红楼梦》讲述的是发生在一个虚构朝代的封建大家庭中的人事物,其中以贾宝玉、林黛玉、薛宝钗三个人之间的感情纠葛为主线通过对一些日常事件的描述体现了在贾府的大观园中以金陵十二钗为主体的众女子的爱恨情愁。而在这同时又从贾府由富贵堂皇走向没落衰败的次线反映了一个大家族的没落历程和这个看似华丽的家族的丑陋的内在。"));
}
@Override
public int add(Book book) {
int i = books.add(book) ? 1 : 0;
return i;
}
@Override
public int del(Integer id) {
for (int i = 0; i < books.size(); i++) {
if (books.get(i).getId().equals(id)) {
books.remove(i);
return 1;
}
}
return 0;
}
//修改某个人
@Override
public int update(Book book) { // 1001 张三 999 xxx xxx
//找出这个人
//找学号
int id = book.getId();
//得到它在集合中的下标 iter
for (int i = 0; i < books.size(); i++) {
if (books.get(i).getId() == id) {
books.set(i, book);
return 1;
}
}
return 0;
}
//找到某个人
@Override
public Book findOne(Integer id) {
for (int i = 0; i < books.size(); i++) {
Book book = books.get(i);
if (book.getId().equals(id)) {
return books.get(i);
}
}
return null;
}
@Override
public List<Book> findAll() {
return books;
}
@Override
public List<Book> findByName(String name) {
List<Book> names = new ArrayList<>();
for (int i = 0; i < books.size(); i++) {
if (books.get(i).getName().contains(name)) {
//满足要求的就装入names
names.add(books.get(i));
}
}
return names;
}
}
package book.service;
import book.entity.Book;
import java.util.List;
/**
* @ClassName BookService
* @Description: TODO
* @Author 汤永红
* @Date 2020/8/10 0010-15:22
* @Version V1.0
**/
public interface BookService {
/**
* 添加学生
*
* @param book
* @return
*/
boolean add(Book book);
/**
* 修改学生
*
* @param book
* @return
*/
boolean update(Book book);
/**
* 根据id删除
*
* @param id
* @return
*/
boolean del(Integer id);
/**
* 查单个
*
* @param id
* @return
*/
Book findOne(Integer id);
/**
* 查所有
*
* @return
*/
List<Book> findAll();
/**
* 按姓氏查询
*
* @param name
* @return
*/
List<Book> findByName(String name);
}
package book.service.impl;
import book.dao.BookDao;
import book.dao.impl.BookDaoImpl;
import book.entity.Book;
import book.service.BookService;
import java.util.List;
/**
* @ClassName BookServiceImpl
* @Description: TODO
* @Author 汤永红
* @Date 2020/8/10 0010-15:29
* @Version V1.0
**/
public class BookServiceImpl implements BookService {
BookDao bookDao = new BookDaoImpl();
@Override
public boolean add(Book book) {
return bookDao.add(book) > 0 ? true : false;
}
@Override
public boolean update(Book book) {
return bookDao.update(book) > 0 ? true : false;
}
@Override
public boolean del(Integer id) {
return bookDao.del(id) > 0 ? true : false;
}
@Override
public Book findOne(Integer id) {
return bookDao.findOne(id);
}
@Override
public List<Book> findAll() {
return bookDao.findAll();
}
@Override
public List<Book> findByName(String name) {
return bookDao.findByName(name);
}
}
package book;
import book.entity.Book;
import book.service.BookService;
import book.service.impl.BookServiceImpl;
import java.util.List;
import java.util.Scanner;
public class TestBook {
Scanner input = new Scanner(System.in);
BookService bookService = new BookServiceImpl();
public static void main(String[] args) {
new TestBook().menu();
}
public void menu() {
// 图书管理系统
// 1.登陆
// 2.退出
System.out.println("---------------------------------------------------------------------------");
System.out.println("\t\t\t\t\t\t图书管理系统\n\t\t\t\t\t\t 1.登陆\n\t\t\t\t\t\t 2.退出");
System.out.println("---------------------------------------------------------------------------");
System.out.print("请选择:");
int i = input.nextInt();
switch (i) {
case 1:
login();
break;
case 2:
System.exit(-1);
break;
default:
break;
}
}
//
public void login() {
System.out.print("请输入用户名:");
String name = input.next();
System.out.print("请输入密码:");
String pwd = input.next();
if ("root".equals(name) && "52Java".equals(pwd)) {
System.out.println("登陆成功.欢迎光临:" + name);
menu2();
} else {
System.out.println("用户名或密码错误,退出程序");
System.exit(-1);
}
}
private void menu2() {
System.out.println("---------------------------------------------------------------------------");
System.out.println("图书管理系统 > 主界面");
System.out.println("1.查询所有图书信息");
System.out.println("2.添加一本图书信息");
System.out.println("3.修改一本图书信息");
System.out.println("4.删除一本图书信息");
System.out.println("5.按图书名称查信息");
System.out.println("6.退出系统");
System.out.print("---------------------------------------------------------------------------");
System.out.print("\n请选择相应的操作:");
int i = input.nextInt();
switch (i) {
case 1:
findAll();
break;
case 2:
add();
break;
case 3:
update();
break;
case 4:
del();
break;
case 5:
find();
break;
case 6:
System.out.println("欢迎下次再来使用本系统。");
System.exit(-1);
break;
default:
break;
}
System.out.print("按n返回上一级菜单: ");
String a = input.next();
if ("n".equals(a)) {
menu2();
}
}
private void findAll() {
System.out.println("所有图书信息如下:");
System.out.println("---------------------------------------------------------------------------");
System.out.println("编号\t作者\t\t书名\t\t数量\t价格\t页码\t\t描述");
System.out.println("---------------------------------------------------------------------------");
List<Book> list = bookService.findAll();
for (Book book : list) {
System.out.println(book.getId() + "\t" + book.getAuthor() + "\t\t"
+ book.getName() + (book.getName().length() > 3 ? "\t" : "\t\t") + book.getNumber() + "\t\t"
+ book.getPrice() + "\t" + book.getPage() + "\t\t" + (book.getInfo().length() > 8 ? book.getInfo().substring(0, 8) + "..." : book.getInfo()));
}
System.out.println("---------------------------------------------------------------------------");
}
private void add() {
Book book = new Book();
System.out.print("请输入图书编号:");
int id = input.nextInt();
book.setId(id);
System.out.print("请输入图书名称:");
String name = input.next();
book.setName(name);
System.out.print("请输入图书作者:");
String author = input.next();
book.setAuthor(author);
System.out.print("请输入图书价格:");
double price = input.nextDouble();
book.setPrice(price);
System.out.print("请输入图书数量:");
int number = input.nextInt();
book.setNumber(number);
System.out.print("请输入图书页数:");
int page = input.nextInt();
book.setPage(page);
System.out.print("请输入简介:");
String info = input.next();
book.setInfo(info);
if (bookService.add(book)) {
System.out.println("保存成功!!!");
findAll();
} else {
System.out.println("保存失败!!!");
}
}
private void update() {
System.out.print("请输入要修改的图书编号:");
int id = input.nextInt();
Book book = bookService.findOne(id); //先查找出这一本书
//修改
System.out.print("请输入图书名称:");
String name = input.next();
book.setName(name);
System.out.print("请输入图书作者:");
String author = input.next();
book.setAuthor(author);
System.out.print("请输入图书价格:");
double price = input.nextDouble();
book.setPrice(price);
System.out.print("请输入图书数量:");
int number = input.nextInt();
book.setNumber(number);
System.out.print("请输入图书页数:");
int page = input.nextInt();
book.setPage(page);
System.out.print("请输入简介:");
String info = input.next();
book.setInfo(info);
if (bookService.update(book)) {
System.out.println("修改成功!!!");
findAll(); //显示所有
} else {
System.out.println("修改失败!!!");
}
}
private void del() {
System.out.print("请输入要删除的图书编号:");
int id = input.nextInt();
if (bookService.del(id)) {
System.out.println("删除成功!!!");
findAll(); //显示所有
} else {
System.out.println("删除失败!!!");
}
}
private void find() {
System.out.print("请输入要查找的图书名称:");
String name = input.next();
List<Book> list = bookService.findByName(name);
System.out.println("你查找的图书内容如下:");
System.out.println("---------------------------------------------------------------------------");
System.out.println("编号\t作者\t\t书名\t\t数量\t价格\t页码\t\t描述");
System.out.println("---------------------------------------------------------------------------");
for (Book book : list) {
System.out.println(book.getId() + "\t" + book.getAuthor() + "\t\t"
+ book.getName() + (book.getName().length() > 3 ? "\t" : "\t\t") + book.getNumber() + "\t\t"
+ book.getPrice() + "\t" + book.getPage() + "\t\t" + (book.getInfo().length() > 8 ? book.getInfo().substring(0, 8) + "..." : book.getInfo()));
}
System.out.println("---------------------------------------------------------------------------");
}
}