图书管理系统(0基础食用)

图书管理系统

本栏所写均为面向基础小白食物,本文涉及知识均为JavaSE基础篇,望悉知!!!

图书管理系统(0基础食用)_第1张图片

文章目录

  • 图书管理系统
    • 实现功能
    • 核心代码
      • Dao层
          • 书籍模糊查找
          • 四种遍历方式
            • 默认输出
            • 按照价格升序
            • 按照价格降序
            • 按照日期先后排序
        • view层
          • 书籍添加
          • 输入日期转换
          • 检测登录

实现功能

1、检测登录(由于本实验未涉及IO以及数据库,所以,这里只是简单的进行匹配验证 默认账户名及密码: jinhuan  pass 可自行修改)
2、图书添加:
	图书类:书名
		   图书编号
		   出版社
		   出版日期(date类,后期录入使用日期转换)
		   价钱
		   状态值(bool类型 默认为true,为false表明被删除)
3、图书删除
	根据输入检所对应书籍
	设置其状态值为false——>即做伪删除
4、修改
	检索对应图书
	设置其各个属性值
5、查询图书
	根据书名模糊查询
	根据书籍编号模糊查询
6、查看所有图书
	查看方式:
		1、按照录入顺序
		2、按照价钱升序<使用Compator>
		3、按照价钱降序<使用Compator>
		4、按照出版日期先后<使用Compator>
	注意在进行遍历的时候,先判断书籍状态

好啦,以上就是全部内容啦,下面为实现细节,大家可以以此为鉴,则其善者,去其糟粕,老规矩,文末附上了下载链接,欢迎大家三连后食用

核心代码

Dao层

书籍模糊查找
/**
 * @param name:
 * @return
 * decription:根据书名进行模糊查询匹配
 */
public List<Book> findBookByName(String name){
    List<Book> resList = new ArrayList<>();
    for (Book book : list) {
        if (book.getStatus() && book.getName().contains(name)){
           resList.add(book);
        }
    }
    return resList;
}
四种遍历方式
默认输出
/**
 * @param books:  存储书籍的“书柜”
 * @return void
 * decription: 遍历输出该"书柜中的书籍"
 */
public void print(List<Book> books) {
    if (books == null || books.size() == 0){
        System.out.println("当前未存储任何书籍!");
        return;
    }
    for (Book book : books) {
        if (book.getStatus()){
           System.out.println(book);
        }
    }
}
按照价格升序
/**
 * 按照升序排列
 * */
public void printByUpPrice(List<Book> list) {
    if (list == null || list.size() == 0){
        System.out.println("当前未存储任何书籍!");
        return;
    }
    Collections.sort(list, new Comparator<Book>() {
        @Override
        public int compare(Book o1, Book o2) {
            if (o1.getPrice() > o2.getPrice()){
                return 1;
            }else if (o1.getPrice() < o2.getPrice()){
                return -1;
            }else{
                return 0;
            }
        }
    });
    for (Book book : list) {
        if (book.getStatus()){
           System.out.println(book);
        }
    }
}
按照价格降序
/**
 * 按照降序排列
 * */
public void printByDownPrice(List<Book> list) {
    if (list == null || list.size() == 0){
        System.out.println("当前未存储任何书籍!");
        return;
    }
    Collections.sort(list, new Comparator<Book>() {
        @Override
        public int compare(Book o1, Book o2) {
            if (o1.getPrice() > o2.getPrice()){
                return -1;
            }else if (o1.getPrice() < o2.getPrice()){
                return 1;
            }else{
                return 0;
            }
        }
    });
    for (Book book : list) {
        if (book.getStatus()){
            System.out.println(book);
        }
    }
}
按照日期先后排序
/**
 * 按照日期先后排列
 * */
public void printByDate(List<Book> list) {
    if (list == null || list.size() == 0){
        System.out.println("当前未存储任何书籍!");
        return;
    }
    Collections.sort(list, new Comparator<Book>() {
        @Override
        public int compare(Book o1, Book o2) {
            if (o2.getPublicationDate().after(o1.getPublicationDate())){
                return 1;
            }else if (o2.getPublicationDate().after(o1.getPublicationDate())){
                return -1;
            }else{
                return 0;
            }
        }
    });
    for (Book book : list) {
        if (book.getStatus()){
            System.out.print(book+"\t");
        }
    }
    System.out.println();
}

图书管理系统(0基础食用)_第2张图片

view层

书籍添加
/**
 * 添加操作界面
 * */
private void addMenu() {
    System.out.println("请输入要添加的书名:");
    String name = input.next();
    System.out.println("请输入该书的编号");
    String id = input.next();
    Double price;
    System.out.println("请输入该书的单价:");
    do{
        if (input.hasNextDouble()){
            price = input.nextDouble();
            break;
        }else{
            System.out.println("格式输入有误,请检查后重试!");
            input.next();
        }
    }while (true);
    System.out.println("请输入该书的出版社:");
    String press = input.next();
    Date publicationDate;
    while (true){
        System.out.println("请输入该书的出版日期:请依次输入年月日,以小数点隔开!如(2001.1.12)");
        String time = input.next();
        if (formateDate(time) != null){
            publicationDate = formateDate(time);
            break;
        }
    }
    System.out.println(bookDao.addBook(new Book(name,price,true,id,press,publicationDate)) ? "添加成功!" : "添加失败");
    while (true){
        System.out.println("是否继续添加图书? 1-是 0-否");
        String command = input.next();
        if ("1".equals(command)){
            addMenu();
            break;
        }else if ("0".equals(command)){
            commandMenu();
            break;
        }else {
            System.out.println("格式输入有误,请检查后重试!");
        }
    }
}
输入日期转换
/**
 * 日期转换
 * */
public Date formateDate(String date) {
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");
    try {
        return simpleDateFormat.parse(date);
    } catch (ParseException e) {
        System.out.println("格式输入有误!");
    }
    return null;
}

检测登录
/**
 * 检查登录信息
 * */
private boolean checkUser(String username, String password) {
    return "jinhuan".equals(username) && "pass".equals(password);
}

源码下载链接

以上均为本人个人观点,借此分享,希望能和大家一起进步。如有不慎之处,劳请各位批评指正!鄙人将不胜感激并在第一时间进行修改!

图书管理系统(0基础食用)_第3张图片

你可能感兴趣的