经过多天学习与多位大神的帮助下,小白完成了简单的JAVA图书管理系统。
首先建立了三个子类和一个父类抽象父类
book子类
package com.www.lenovo.entity;
import java.util.Scanner;
public class Book extends BaseBooks{
// private String name;
// private double price;
// private int pages;
private String publish;
private String author;
private String code;
public Book() {}
public Book(String code,String name,double price, int pages, String publish, String author) {
super();
setName(name);
setPrice(price);
setPages(pages);
this.code = code;
this.publish = publish;
this.author = author;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getPublish() {
return publish;
}
public void setPublish(String publish) {
this.publish = publish;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
@Override
public void addBooks() {
// TODO Auto-generated method stub
Scanner sc = new Scanner (System.in);
System.out.println("请输入书名:");
sc.nextLine();
String name = sc.nextLine();
System.out.println("请输入出版社:");
String publish = sc.nextLine();
System.out.println("请输入作者:");
String author = sc.nextLine();
System.out.println("请输入页数:");
int pages = sc.nextInt();
System.out.println("请输入价格:");
double price = sc.nextDouble();
//创建一个Book对象
Book book = new Book(code,name,price,pages,publish,author);
//添加到ArrayList中
Library.bookList.add(book);
}
Ebook子类
package com.www.lenovo.entity;
import java.util.Scanner;
public class EBook extends BaseBooks{
private int downLoadTime;
private String author;
// private String name;
// private double price;
// private int pages;
//public EBook(String string, double d, int i, int j, String string2) {}
public EBook() {}
public EBook(String name, double price, int pages, int downLoadTime, String author) {
// TODO Auto-generated constructor stub
setName(name);
setPrice(price);
setPages(pages);
this.downLoadTime = downLoadTime;
this.author = author;
}
public int getDownLoadTime() {
return downLoadTime;
}
public void setDownLoadTime(int downLoadTime) {
this.downLoadTime = downLoadTime;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public void addBooks() {
// TODO Auto-generated method stub
Scanner sc = new Scanner (System.in);
System.out.println("请输入书名:");
sc.nextLine();
String name = sc.nextLine();
System.out.println("请输入价格:");
double price = sc.nextDouble();
System.out.println("请输入作者:");
String author = sc.nextLine();
System.out.println("请输入页数:");
int pages = sc.nextInt();
System.out.println("请输入下载次数:");
int download = sc.nextInt();
EBook ebook = new EBook(name,price,pages,download,author);
Library.eBookList.add(ebook);
}
}
magazine子类
package com.www.lenovo.entity;
import java.util.Scanner;
public class Magazine extends BaseBooks{
// private String name;
// private double price;
// private int pages;
private int issue;
public Magazine() {}
public Magazine(String name, double price, int pages, int issue) {
super();
setName(name);
setPrice(price);
setPages(pages);
this.issue = issue;
}
public int getIssue() {
return issue;
}
public void setIssue(int issue) {
this.issue = issue;
}
@Override
public void addBooks() {
Scanner sc = new Scanner(System.in);
// TODO Auto-generated method stub
System.out.println("请输入杂志名称");
sc.nextLine();
String name = sc.nextLine();
System.out.println("请输入杂志的价格");
double price = sc.nextDouble();
System.out.println("请输入杂志的页数");
int pages = sc.nextInt();
System.out.println();
int issue = sc.nextInt();
Magazine magazine = new Magazine(name,price,pages,issue);
Library.MagazineList.add(magazine);
}
}
Library父类
package com.www.lenovo.entity;
import java.util.ArrayList;
import java.util.Scanner;
/**
* 图书馆管理系统
*
* @author lenovo64
*
*/
public class Library {
static int abc = 0;
public static ArrayList<Book> bookList = new ArrayList<>();
public static ArrayList<EBook> eBookList = new ArrayList<>();
public static ArrayList<Magazine> MagazineList = new ArrayList();
private static int n;
public static void main(String[] args) {
init();
do {
listMenu();
} while (n != 0);
System.out.println("程序退出");
}
private static void init() {
Book b1 = new Book("B1001","三国演义", 52.6, 700, "中华书社", "罗贯中");
Book b2 = new Book("B1002","水浒传", 62.6, 600, "中华书社", "施耐庵");
Book b3 = new Book("B1003", "西游记",72.6, 800, "中华书社", "吴承恩");
Book b4 = new Book("B1004", "红楼梦",58.6, 700, "中华书社", "曹雪芹");
bookList.add(b1);
bookList.add(b2);
bookList.add(b3);
bookList.add(b4);
EBook e1 = new EBook("斗破苍穹", 9.9, 600, 0, "天蚕土豆");
EBook e2 = new EBook("斗罗大陆", 8.9, 700, 0, "唐家三少");
EBook e3 = new EBook("大主宰", 7.9, 800, 0, "天蚕土豆");
geteBookList().add(e1);
geteBookList().add(e2);
geteBookList().add(e3);
Magazine m1 = new Magazine("街头文化", 32, 56, 5);
Magazine m2 = new Magazine("男人装", 52, 35, 6);
Magazine m3 = new Magazine("天下行", 65, 35, 7);
MagazineList.add(m1);
MagazineList.add(m2);
MagazineList.add(m3);
}
/**
* 列出所有图书
*/
private static void listAllBook() {
// 列出所有纸质书
for (Book book : bookList) {
System.out.println("编号"+book.getCode()+" ,书名:" + book.getName() + ",出版社:" + book.getPublish() + ",作者:" + book.getAuthor() + ",价格:"
+ book.getPrice() + ",页数:" + book.getPages());
}
// 列出所有电子书
for (EBook eBook : geteBookList()) {
System.out.println("书名:" + eBook.getName() + ",作者:" + eBook.getAuthor() + ",价格:" + eBook.getPrice() + ",页数:"
+ eBook.getPages() + ",下载次数:" + eBook.getDownLoadTime());
// 列出所有杂志
}
for (Magazine magazine : MagazineList) {
System.out.println("杂志名称: " + magazine.getName() + " ,杂志价格" + magazine.getPrice() + "杂志页数"
+ magazine.getPages() + " 杂志期数 " + magazine.getIssue());
}
}
/**
* 添加图书
*
*/
private static void addBook() {
System.out.println("请选择您要添加的图书类型:1、Book;2、EBook;3、Magazine");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
switch (n) {
case 1:
Book book = new Book();
book.addBooks();
break;
case 2:
EBook ebook = new EBook();
ebook.addBooks();
break;
case 3:
Magazine magazine = new Magazine();
magazine.addBooks();
break;
default:
break;
}
}
// 代码复用
// 好处:1、简化代码;2、一处修改处处修改
private static void listMenu() {
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("退出程序:0");
Scanner scanner = new Scanner(System.in);
n = scanner.nextInt();
System.out.println("您选择的功能序号是:" + n);
switch (n) {
case 1:
listAllBook();
break;
case 2:
addBook();
break;
case 3:
removeBook();
break;
case 4:
searchBook();
break;
case 5:
borrowBook();
break;
default:
break;
}
}
private static void borrowBook() {
// TODO Auto-generated method stub
String bName = "";
System.out.println("请输入您要借阅的图书名(关键字即可)");
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
System.out.println("我们为您找到了以下图书");
for (Book book :bookList) {
if(book.getName().indexOf(name)>=0) {
System.out.println("编号"+book.getCode()+"书名:" + book.getName() + ",出版社:" + book.getPublish() + ",作者:" + book.getAuthor()
+ ",价格:" + book.getPrice() + ",页数:" + book.getPages());
}
}
System.out.println("请输入您要借阅的图书编号");
String code = sc.nextLine();
for(int i= 0;i<bookList.size();i++) {
if (code.equals(bookList.get(i).getCode())) {
bName = bookList.get(i).getName();
bookList.remove(i);
System.out.println("恭喜借阅成功"+bName);
}
}
}
private static void removeBook() {
abc = 0;
System.out.println("请选择您要删除的图书类型:1、Book;2、EBook;3、Magazine");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
switch (n) {
case 1:
System.out.println("请您选择要删除的图书名称");
sc.nextLine();
String aaa = sc.nextLine();
for (int i = 0; i < bookList.size(); i++) {
if (bookList.get(i).getName().equals(aaa)) {
bookList.remove(i);
System.out.println("删除成功");
abc = 1;
}
}
break;
case 2:
System.out.println("请您选择要删除的电子书名称");
sc.nextLine();
String bbb = sc.nextLine();
for (int i = 0; i < geteBookList().size(); i++) {
if (bookList.get(i).getName().equals(bbb)) {
geteBookList().remove(i);
System.out.println("删除成功");
abc = 1;
}
}
break;
case 3:
System.out.println("请您选择要删除的杂志名称");
sc.nextLine();
String ccc = sc.nextLine();
for (int i = 0; i < MagazineList().size(); i++) {
if (MagazineList.get(i).getName().equals(ccc)) {
MagazineList().remove(i);
System.out.println("删除成功");
abc = 1;
}
}
if (abc == 1) {
System.out.println("删除成功");
} else {
System.out.println("没找到啊");
}
}
}
/**
* 检索图书
*/
private static void searchBook() {
System.out.println("请输入你要查询的关键字");
Scanner sc = new Scanner(System.in);
String keyWords = sc.nextLine();
System.out.println("您输入的关键字是:" + keyWords + ",我们为您找到了下列图书:");
for (Book book : bookList) {
if (book.getName().indexOf(keyWords) >= 0) {
System.out.println("书名:" + book.getName() + ",出版社:" + book.getPublish() + ",作者:" + book.getAuthor()
+ ",价格:" + book.getPrice() + ",页数:" + book.getPages());
}
}
for (EBook eBook : geteBookList()) {
if (eBook.getName().indexOf(keyWords) >= 0) {
System.out.println("书名:" + eBook.getName() + ",作者:" + eBook.getAuthor() + ",价格:" + eBook.getPrice()
+ ",页数:" + eBook.getPages() + ",下载次数:" + eBook.getDownLoadTime());
}
}
for (Magazine magazin : MagazineList()) {
if (magazin.getName().indexOf(keyWords) >= 0) {
System.out
.println("书名:" + magazin.getName() + ",价格:" + magazin.getPrice() + ",页数:" + magazin.getPages());
}
}
}
private static ArrayList<Magazine> MagazineList() {
return MagazineList;
}
public static ArrayList<EBook> geteBookList() {
return eBookList;
}
public static void seteBookList(ArrayList<EBook> eBookList) {
Library.eBookList = eBookList;
}
}
Basebook抽象父类
package com.www.lenovo.entity;
/**
* 抽象父类
* @author lenovo
*
*/
public abstract class BaseBooks {
private String name;
private double price;
private int pages;
public abstract void addBooks();
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getPages() {
return pages;
}
public void setPages(int pages) {
this.pages = pages;
}
}