基于Java的简单图书管理系统的实现(增删改查)

基于Java的简单图书管理系统的实现(增删改查)

package com.situ.lib;public class Book {//对象:书-----定义书的属性:private String name;private String isbn;private String author;private double price;//无参构造方法:public Book(){}//get,set方法:public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public String getAuthor() {return author;}public void setAuthor(String author) {this.author = author;}public String getIsbn() {return isbn;}public void setIsbn(String isbn) {this.isbn = isbn;}public String getName() {return name;}public void setName(String name) {this.name = name;}//功能方法:打印图书信息:public void print(){System.out.println("书名:" + this.name +"书号:" + this.isbn +"作者:" + this.author +"价格:" + this.price);}}
package com.situ.lib;import java.util.Scanner;public class Manager {//用来保存所有的图书信息:private Book[] books = new Book[10];private int index = 0;public static void main(String[] args) {Manager manager = new Manager();manager.menu();}public void menu() {//提供一个主菜单:menu: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("请输入您的操作序号:");//用户进行输入选择对应的操作:Scanner sc = new Scanner(System.in);int option = sc.nextInt();switch (option) {case 1:add();break;case 2:delete();break;case 3:update();break;case 4:query();break;case 5://退出 break;单纯写一个break只会退出switch还会在while里面//break menu;System.out.println("退出系统,感谢您的使用!!!");return;//System.exit(0);default:System.out.println("您的输入有误,请重新输入");break;}}}/*这作为功能类,功能是:增,删,改,查---封装成不同的方法;可以定义成静态方法,也可以定义成非静态的方法,但是对于功能性方法,尽量不要定义成静态方法*///增public void add() {System.out.println("添加图书");//输入图书信息:Scanner sc = new Scanner(System.in);System.out.println("请输入图书编号:");String isbn = sc.next();System.out.println("请输入图书名称:");String name = sc.next();System.out.println("请输入作者:");String author = sc.next();System.out.println("请输入图书价格:");double price = sc.nextDouble();//创建对象:Book book = new Book();book.setIsbn(isbn);book.setName(name);book.setAuthor(author);book.setPrice(price);//将对象保存到数组中:if(index>=books.length){//数组已经放满了,扩容:Book[] newBooks = new Book[books.length*2];//将老数组中的元素拷贝到新数组里面:for(int i=0;i<books.length;i++){newBooks[i] = books[i];}books = newBooks;}books[index] = book;index++;}//删public void delete() {//输入要删除的书号:System.out.println("删除图书");Scanner sc = new Scanner(System.in);System.out.println("请输入要删除的书号");String isbn = sc.next();//如何删除?//先找到这本书的下标int index = -1;for (int i = 0; i < this.index; i++) {//字符串的比较相等要用.equals方法比较if (books[i].getIsbn().equals(isbn)) {index = i;break;}}if (index >= 0) {//删除:books[index] = null;//后面的书往前移动一个for (int i = index; i < this.index - 1; i++) {books[i] = books[i + 1];}this.index--;System.out.println("删除成功");} else {System.out.println("未找到指定图书!");}}//改public void update() {System.out.println("修改图书:");System.out.println("请输入要修改的图书的编号:");Scanner sc = new Scanner(System.in);String isbn = sc.next();//先找到这本书的下标int index = -1;for (int i = 0; i < this.index; i++) {//字符串的比较相等要用.equals方法比较if (books[i].getIsbn().equals(isbn)) {index = i;break;}}if (index >= 0) {//才能修改books[index];书名,作者,价格//书名:System.out.println("请输入新的书名:");books[index].setName(sc.next());//作者:System.out.println("请输入新的作者");books[index].setAuthor(sc.next());//价格:System.out.println("请输入新的价格:");books[index].setPrice(sc.nextDouble());System.out.println("修改成功");} else {//找不到System.out.println("未找到指定的图书!");}}//查public void query() {//        //遍历打印:
//        for(int i=0;i<index;i++){
//            //System.out.println(books[i]);
//            books[i].print();
//        }while (true) {System.out.println("查询图书:");System.out.println("1.查询所有图书");System.out.println("2.根据书名查询");System.out.println("3.返回主菜单");System.out.println("请输入您的操作");Scanner sc = new Scanner(System.in);int option = sc.nextInt();switch (option) {case 1:queryAll();break;case 2:quertByName();break;case 3:return ;default:System.out.println("输入有误,请重新输入:");break;}}}private void quertByName() {System.out.println("请输入要查询的书名");Scanner sc = new Scanner(System.in);String name = sc.next();for(int i=00;i<index;i++){if(books[i].getName().equals(name)){books[i].print();}}}private void queryAll() {for(int i=0;i<index;i++){books[i].print();}}
}

补充:关于数组的扩充可以使用现成的Arrays实现(可以参考JDK API 1.6中文版)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/466095.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言必做30道练习题

C语言练习30题&#xff08;分支循环&#xff0c;数组&#xff0c;函数&#xff0c;递归&#xff0c;操作符&#xff09; 目录 分支循环1.闰年的判断2.阅读代码&#xff0c;计算代码输出的结果3.输入一个1~7的数字&#xff0c;打印对应的星期几4.输入任意一个整数值&#xff0c;…

tp接口 入口文件 500 错误原因

一、描述 二、可能的原因 1、runtime目录没权限 2、关闭了Tp记录日志的功能 3、关闭debug调试模式 4、关闭了debug模式还是报错 一、描述 Thinkphp项目本地正常&#xff0c;上传到线上后静态文件访问正常&#xff0c;访问tp接口报500错误。 经调试发现&#xff0c;在php入…

思源笔记轻松连接本地Ollama大语言模型,开启AI写作新体验!

文章目录 前言1. 下载运行Ollama框架2. Ollama下载大语言模型3. 思源笔记设置连接Ollama4. 测试笔记智能辅助写作5. 安装Cpolar工具6. 配置Ollama公网地址7. 笔记设置远程连接Ollama8. 固定Ollama公网地址 前言 今天我们要聊聊如何通过cpolar内网穿透技术&#xff0c;把国产笔…

CAS 详解

Java 中 CAS 是如何实现的&#xff1f; 在 Java 中&#xff0c;实现 CAS&#xff08;Compare-And-Swap, 比较并交换&#xff09;操作的一个关键类是Unsafe。 Unsafe类位于sun.misc包下&#xff0c;是一个提供低级别、不安全操作的类。由于其强大的功能和潜在的危险性&#xf…

九识智能与徐工汽车达成战略合作,共绘商用车未来新蓝图

近日&#xff0c;九识智能与徐工汽车签署战略合作协议&#xff0c;标志着双方在智能驾驶技术与新能源商用车融合应用、联合生产及市场推广等方面迈入深度合作的新篇章&#xff0c;将共同引领智能驾驶技术商业化浪潮。 近年来&#xff0c;在国家智能化发展战略的引领下&#xff…

【vue2.7.16系列】手把手教你搭建后台系统__登录使用状态管理(15)

使用store进行登录信息管理 其实就是把登录放到vuex的actions中去执行&#xff0c;然后保存用户信息、权限等 在store/modules/account.js中添加如下代码&#xff1a; import { login, logout, getInfo, menusApi } from /api/account; // getExpiresTime import {getToken,s…

sql报错信息将字符串转换为 uniqueidentifier 时失败

报错信息&#xff1a; [42000] [Microsoft][SQL Server Native Client 10.0][SQL Server]将字符串转换为 uniqueidentifier 时失败 出错行如下&#xff1a; 表A.SourceCode 表B.ID 出错原因&#xff1a; SourceCode是nvarchar,但ID是uniqueidentifier 数据库查询字段和类…

「Mac畅玩鸿蒙与硬件22」鸿蒙UI组件篇12 - Canvas 组件的动态进阶应用

在鸿蒙应用中&#xff0c;Canvas 组件可以实现丰富的动态效果&#xff0c;适合用于动画和实时更新的场景。本篇将介绍如何在 Canvas 中实现动画循环、动态进度条、旋转和缩放动画&#xff0c;以及性能优化策略。 关键词 Canvas 组件动态绘制动画效果动态进度条旋转和缩放性能优…

Python练习10

Python日常练习 题目&#xff1a; 编写程序&#xff0c;输出如下所示图案。 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 要求&#xff1a; 使用for循环的方式完成 --------------------------------------------------------- 注意&#xff1a; …

【前端】html的8个常用标签

HTML html 超文本链接(标记)语言 H5 HTML v5 get/post/delete/put —— restful 网络规划 Web开发 结构样式动作 架构 装饰 交互&#xff08;动作&#xff09; 装饰做好了–> UI工程师 标签 文本相关 图片、图像、声音 导航 表格* 列表 表单标签* 布局标签 H5…

Java高效学习家教平台系统小程序源码

&#x1f4da; 家教平台系统&#xff1a;让孩子学习更高效的秘密武器 &#x1f680; &#x1f469;‍&#x1f3eb; 引言&#xff1a;家教新风尚&#xff0c;线上平台引领教育潮流 在这个信息爆炸的时代&#xff0c;家教平台系统如同雨后春笋般涌现&#xff0c;为孩子们的学习…

Qt多边形填充/不填充绘制

1 填充多边形绘制形式 void GraphicsPolygonItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) {Q_UNUSED(option);Q_UNUSED(widget);//painter->setPen(pen()); // 设置默认画笔//painter->setBrush(brush()); // 设置默…

OpenAI大事记;GPT到ChatGPT参数量进化

目录 OpenAI大事记 GPT到ChatGPT参数量进化 OpenAI大事记 GPT到ChatGPT参数量进化 ChatGPT是从初代 GPT逐渐演变而来的。在进化的过程中,GPT系列模型的参数数量呈指数级增长,从初代GPT的1.17亿个参数,到GPT-2的15 亿个参数,再到 GPT-3的1750 亿个参数。模型越来越大,训练…

一文了解Java序列化

Java 序列化&#xff08;Serialization&#xff09;是将对象的状态转换为字节流&#xff0c;以便将对象的状态保存到文件中或通过网络传输的过程。反序列化&#xff08;Deserialization&#xff09;则是将字节流恢复为原始对象。Java 序列化主要通过 Serializable 接口实现。 为…

vue解决跨域问题

1、在vue项目的根目录创建vue.config.js的文件 复制以下带代码 devServer: {proxy: {/api: {target: http://localhost:3000, // 目标服务器地址changeOrigin: true, // 是否改变源pathRewrite: {^/api: // 重写路径&#xff0c;例如将/api/user重写为/user}}}}2、将接口的地…

是时候用开源降低AI落地门槛了

过去三十多年&#xff0c;从Linux到KVM&#xff0c;从OpenStack到Kubernetes&#xff0c;IT领域众多关键技术都来自开源。开源技术不仅大幅降低了IT成本&#xff0c;也降低了企业技术创新的门槛。 那么&#xff0c;在生成式AI时代&#xff0c;开源能够为AI带来什么&#xff1f;…

基于SSM+VUE守护萌宠宠物网站JAVA|VUE|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统&#xff1a;Window操作系统 2、开发工具&#xff1a;IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…

Oh My Posh安装

nullSet up your terminalhttps://ohmyposh.dev/docs/installation/windows Git ee oh-my-posh: Windows上的oh-my-zsh&#xff0c;源地址 https://github.com/JanDeDobbeleer/oh-my-posh.git (gitee.com)https://gitee.com/efluent/oh-my-posh

基于Spring Boot+Vue的助农销售平台(协同过滤算法、限流算法、支付宝沙盒支付、实时聊天、图形化分析)

&#x1f388;系统亮点&#xff1a;协同过滤算法、节流算法、支付宝沙盒支付、图形化分析、实时聊天&#xff1b; 一.系统开发工具与环境搭建 1.系统设计开发工具 后端使用Java编程语言的Spring boot框架 项目架构&#xff1a;B/S架构 运行环境&#xff1a;win10/win11、jdk1…

Webserver(4.8)UDP、广播、组播

目录 UDP通信server.cclient.c 广播client.cserver.c 组播client.cserver.c UDP通信 server.c #include<arpa/inet.h> #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<string.h> int main(){//1.创建一个通信的socketint f…