图书管理系统Java(ArrayList版)
需求:
利用面向对象的思想设计一个图书管理系统。图书的属性有:编号,书名,作者,价格。要求提供如下功能:
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版)相关推荐
- java图书管理系统目的_java_图书管理系统java版,本文的目的就是通过图书管理 - phpStudy...
图书管理系统java版 本文的目的就是通过图书管理系统掌握数据库编程技术,能正确连接数据库,能对数据库中信息进行查询.插入.删除.修改. 内容:在数据库中创建一张书目信息表,包括书名.作者.出版社.出 ...
- 基于javaweb的图书管理系统(java+jsp+layui+bootstrap+servlet+mysql)
基于javaweb的图书管理系统(java+jsp+layui+bootstrap+servlet+mysql) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse ...
- 图书管理系统java+Oracle
图书管理系统java+Oracle 一.课程设计实验目的 二.课程设计任务及要求 三.数据库设计 四.程序设计 五.软件使用说明 六.课程设计总结 七.附录 一.课程设计实验目的 课程设计围绕课程的整 ...
- 基于java+mysql的Swing+MySQL图书管理系统(java+swing+gui+mysql)
基于java+mysql的Swing+MySQL图书管理系统(java+swing+gui+mysql) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclip ...
- Java窗体图书管理系统Java图书借阅管理系统(图书借阅系统)
Java窗体图书管理系统Java图书借阅管理系统(图书借阅系统)
- 实训总结(图书管理系统java)
实训总结(图书管理系统java) 1设计任务 完成用户登录验证,图书品类的增.删.查.改并保存到数据库中,打印购买图书订单,并将购买图书订单信息数据保存到数据库中. 2总体设计 序号 类名 说明 1 ...
- 图书管理系统java项目jsp web项
图书管理系统java项目jsp web项 源码+数据库+文档+运行环境齐全! 图书信息浏览,图书借阅,图书归还,个人信息管理,最佳读者,借阅排行,问题反馈等. 管理员功能可以实现读者管理,图书管理,借 ...
- 基于PHP的图书管理系统(图片详情版)
前言 项目可包部署 Q 1115487855 交流群:758350964(已满) 交流群2:511496356 一 项目介绍 基于AJAX+PHP的图书管理系统(图片详情版) 系统分为前后台 管理员可 ...
- 手撸图书管理系统!(java版)
废话少说,上代码!!! 先写一个图书类.(我一般称这个类有手就行) package homework.test5;public class Book {private String booklist; ...
最新文章
- 实例介绍Cocos2d-x开关菜单
- linux利用grep查看打印匹配的下几行或前后几行的命令
- 【C++ 第七章 个人银行账户管理程序案例】
- 牛客多校2 - Just Shuffle(置换群的幂)
- asp版新闻发布今日弄好
- python新手输出错误,Python 新手常犯错误(第一部分)
- word根据目录切块php,PHP导出Word文档如何自定义目录?
- JavaScript之一: 闭包、执行环境、作用域链
- adb下载、安装、环境配置
- java实现中国象棋3:走棋规则的实现
- oracle创建一个永久性表空间,Oracle表空间简单管理永久表空间
- python计算圆周率_用python程序求圆周率到任意位
- 软件保护技术 - 基础
- 海致大数据京信_2018华为全联接大会|海致网聚提出公安大数据个人计算新理念...
- 利用单片机给直流升压
- 利用命令行实现图片转换等操作--ImageMagick
- 优化算法之指数加权平均详解
- Lync 客户端:无法登陆到Lync,验证服务器中的证书时遇到问题
- 【Pytorch】第 5 章 :解决多臂老虎机问题
- 郭炜:CTO、技术VP、技术总监、首席架构师的区别?