需求:

利用面向对象的思想设计一个图书管理系统。图书的属性有:编号,书名,作者,价格。要求提供如下功能:

1、提供操作菜单,可以选择要进行的操作。

2、可以添加图书,添加图书时,编号需要唯一,添加成功,返回到菜单。

3、可以查询图书,显示所有图书信息,然后返回到菜单。

4、可以根据书名,查询单本图书信息,显示信息后,返回到菜单。

5、可以删除图书,通过编号删除,删除成功后,返回到菜单。

6、可以修改图书的信息,但编号不可以修改,修改成功后,返回到菜单。

7、可以退出系统,结束程序运行。

运行展示

书类实现:

//利用面向对象的思想设计一个图书管理系统。
// 图书的属性有:编号,书名,作者,价格。要求提供如下功能:
public class Books {private int serNum;private String title;private String author;private double price;public Books() {}public Books(int serNum, String title, String author, double price) {this.serNum = serNum;this.title = title;this.author = author;this.price = price;}public int getSerNum() {return serNum;}public void setSerNum(int serNum) {this.serNum = serNum;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}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 void show(){System.out.println("编号:"+serNum+"  书名:《" + title + "》  作者:" + author + "  价格:" + price);}}

测试类实现:

import java.util.ArrayList;
import java.util.Scanner;
/*
* 1、提供操作菜单,可以选择要进行的操作。
2、可以添加图书,添加图书时,编号需要唯一,添加成功,返回到菜单。
3、可以查询图书,显示所有图书信息,然后返回到菜单。
4、可以根据书名,查询单本图书信息,显示信息后,返回到菜单。
5、可以删除图书,通过编号删除,删除成功后,返回到菜单。
6、可以修改图书的信息,但编号不可以修改,修改成功后,返回到菜单。
7、可以退出系统,结束程序运行。
*
*
* */
public class DemoBooks {public static void main(String[] args) {Scanner sc = new Scanner(System.in);ArrayList<Books> list = new ArrayList<>();while (true) {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.println("请输入序号:(1-6)");int choice = sc.nextInt();boolean aNull = isNull(list);switch (choice) {case 1:
//                    System.out.println("添加图书");addBoo(sc,list);break;case 2:
//                    System.out.println("查询所有图书");if(aNull){lookBooks(list);}else {System.out.println("请先添加图书!");}break;case 3:
//                    System.out.println("查询单本图书");if(aNull){lookDanBook(list,sc);}else {System.out.println("请先添加图书!");}break;case 4:
//                    System.out.println("删除图书");if(aNull){reBook(list,sc);}else {System.out.println("请先添加图书!");}break;case 5:
//                    System.out.println("修改图书");if(aNull){changBook(list,sc);}else {System.out.println("请先添加图书!");}break;case 6:System.out.println("欢迎使用");System.exit(0);default:System.out.println("输入有误,请输入(1-6)");break;}}}//    判断集合是否 有值public static boolean isNull(ArrayList<Books> list){if(list.size() == 0 || list == null){
//            没有值return false;}return true;}
//    判断是否存在public static int isHave(ArrayList<Books> list,int id){for (int i = 0; i < list.size(); i++) {
//            如果存在if (id == list.get(i).getSerNum()){return i;}}
//        不存在返回 -1return -1;}//    添加图书public static void addBoo(Scanner sc, ArrayList<Books> list) {int id = 0;while (true) {System.out.println("请输入图书编号:");id = sc.nextInt();int index = isHave(list, id);if(index == -1){break;}else {System.out.println("该图书编号已经存在,请重新输入!");}}System.out.println("请输入图书的书名:");String name = sc.next();System.out.println("请输入图书的作者:");String author = sc.next();System.out.println("请输入图书的价格:");double price = sc.nextDouble();Books b1 = new Books(id,name,author,price);list.add(b1);System.out.println("添加成功!");}
//    查看所有图书public static void lookBooks(ArrayList<Books> list){
//        System.out.println("================================");
//        System.out.println("   编号   书名    作者    价格");for (int i = 0; i < list.size(); i++) {list.get(i).show();}}
//    查看单个图书  根据编号查找public static void lookDanBook(ArrayList<Books> list,Scanner sc){System.out.println("请输入要查看的图书编号:");int lookBookId = sc.nextInt();//        查找是否存在  存在 返回索引  不存在 -1int index = isHave(list, lookBookId);if(index != -1){
//            System.out.println("   编号   书名    作者    价格");list.get(index).show();}else {System.out.println("您要查找的图书不存在!");}}
//    删除图书public static void reBook(ArrayList<Books> list,Scanner sc){System.out.println("请输入要删除的图书编号:");int reId = sc.nextInt();
//        进行判断是否存在  存在  返回但前值  不存在 -1int index = isHave(list, reId);if(index != -1){Books b1 = list.get(index);list.remove(b1);System.out.println("删除成功!!");}else {System.out.println("您要删除的图书不存在!");}}
//    修改图书public static void changBook(ArrayList<Books> list, Scanner sc){System.out.println("请输入要修改的图书编号:");int changeId = sc.nextInt();
//        进行判断是否存在  存在  返回但前值  不存在 -1int index = isHave(list, changeId);if(index != -1){System.out.println("请输入该图书新的图书名:");String newName = sc.next();System.out.println("请输入改图书新的作者:");String newAuthor = sc.next();System.out.println("请输入该图书新的价格:");double newPrice = sc.nextDouble();Books b1 = new Books(changeId,newName,newAuthor,newPrice);list.set(index,b1);System.out.println("修改成功!");}else {System.out.println("您输入的图书不存在!!");}}}

图书管理系统Java(ArrayList版)相关推荐

  1. java图书管理系统目的_java_图书管理系统java版,本文的目的就是通过图书管理 - phpStudy...

    图书管理系统java版 本文的目的就是通过图书管理系统掌握数据库编程技术,能正确连接数据库,能对数据库中信息进行查询.插入.删除.修改. 内容:在数据库中创建一张书目信息表,包括书名.作者.出版社.出 ...

  2. 基于javaweb的图书管理系统(java+jsp+layui+bootstrap+servlet+mysql)

    基于javaweb的图书管理系统(java+jsp+layui+bootstrap+servlet+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse ...

  3. 图书管理系统java+Oracle

    图书管理系统java+Oracle 一.课程设计实验目的 二.课程设计任务及要求 三.数据库设计 四.程序设计 五.软件使用说明 六.课程设计总结 七.附录 一.课程设计实验目的 课程设计围绕课程的整 ...

  4. 基于java+mysql的Swing+MySQL图书管理系统(java+swing+gui+mysql)

    基于java+mysql的Swing+MySQL图书管理系统(java+swing+gui+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclip ...

  5. Java窗体图书管理系统Java图书借阅管理系统(图书借阅系统)

    Java窗体图书管理系统Java图书借阅管理系统(图书借阅系统)

  6. 实训总结(图书管理系统java)

    实训总结(图书管理系统java) 1设计任务 完成用户登录验证,图书品类的增.删.查.改并保存到数据库中,打印购买图书订单,并将购买图书订单信息数据保存到数据库中. 2总体设计 序号 类名 说明 1 ...

  7. 图书管理系统java项目jsp web项

    图书管理系统java项目jsp web项 源码+数据库+文档+运行环境齐全! 图书信息浏览,图书借阅,图书归还,个人信息管理,最佳读者,借阅排行,问题反馈等. 管理员功能可以实现读者管理,图书管理,借 ...

  8. 基于PHP的图书管理系统(图片详情版)

    前言 项目可包部署 Q 1115487855 交流群:758350964(已满) 交流群2:511496356 一 项目介绍 基于AJAX+PHP的图书管理系统(图片详情版) 系统分为前后台 管理员可 ...

  9. 手撸图书管理系统!(java版)

    废话少说,上代码!!! 先写一个图书类.(我一般称这个类有手就行) package homework.test5;public class Book {private String booklist; ...

最新文章

  1. 实例介绍Cocos2d-x开关菜单
  2. linux利用grep查看打印匹配的下几行或前后几行的命令
  3. 【C++ 第七章 个人银行账户管理程序案例】
  4. 牛客多校2 - Just Shuffle(置换群的幂)
  5. asp版新闻发布今日弄好
  6. python新手输出错误,Python 新手常犯错误(第一部分)
  7. word根据目录切块php,PHP导出Word文档如何自定义目录?
  8. JavaScript之一: 闭包、执行环境、作用域链
  9. adb下载、安装、环境配置
  10. java实现中国象棋3:走棋规则的实现
  11. oracle创建一个永久性表空间,Oracle表空间简单管理永久表空间
  12. python计算圆周率_用python程序求圆周率到任意位
  13. 软件保护技术 - 基础
  14. 海致大数据京信_2018华为全联接大会|海致网聚提出公安大数据个人计算新理念...
  15. 利用单片机给直流升压
  16. 利用命令行实现图片转换等操作--ImageMagick
  17. 优化算法之指数加权平均详解
  18. Lync 客户端:无法登陆到Lync,验证服务器中的证书时遇到问题
  19. 【Pytorch】第 5 章 :解决多臂老虎机问题
  20. 郭炜:CTO、技术VP、技术总监、首席架构师的区别?

热门文章

  1. html中锚链接作用和特点,HTMLa标签作为锚链接
  2. 2020年中国研究生数学建模竞赛F题——飞行器质心平衡供油策略优化研究
  3. 微信小程序——后管平台配置讲解
  4. 【linux】循序渐进学运维-基础篇-kill命令
  5. 如何快速部署积分商城小程序
  6. 办理上海居住证资料__网址
  7. VR+消防应急演练制作
  8. hangfire 过期记录_极简主义:记录生命中的重要事物
  9. 最新JustNews资讯博客类模板源码+WordPress内核
  10. 大学计算机考试内容,大学计算机基础考试内容 | 手游网游页游攻略大全