Java_小项目书城
1.概述
书城的基本功能:
- 展示书籍
- 上新书籍
- 下架书籍
- 退出应用
书城项目所涉及到的知识点:
- 用户交互–键盘录入
- 分支结构,循环结构
- 面向对象的思维,封装对象
- 集合的使用
2.菜单的编写
这部分代码就是读取用户键盘的录入,然后执行菜单功能
package bookstorw;import java.util.Scanner;public class Test {public static void main(String[] args) {while(true) {System.out.println("欢迎来到书城:");System.out.println("1.展示书籍:");System.out.println("2.上新书籍:");System.out.println("3.下架书籍:");System.out.println("4.退出应用:");//借助Scanner类,扫描键盘输入Scanner sc = new Scanner(System.in);System.out.println("请输入整数序号。");//获取键盘输入的整数值int choice = sc.nextInt();if (choice == 1) {System.out.println("1>>>>>展示书籍");}if (choice == 2) {System.out.println("2>>>>>上新书籍");}if (choice == 3) {System.out.println("3>>>>>下架书籍");}if (choice == 4) {System.out.println("4>>>>>退出应用");break;}}}}
3.上新书籍
此处应当抽象出来一个书籍的类。每新增书籍,我们都应该实例化该类。
创建一个书籍对象,他有三个属性,书号,书籍名字还有作者名
package bookstorw;public class Book {//书籍编号private int bno;//书籍名称private String bname;//书籍作者private String bwriter;public int getBno() {return bno;}public void setBno(int bno) {this.bno = bno;}public String getBwriter() {return bwriter;}public void setBwriter(String bwriter) {this.bwriter = bwriter;}public String getBname() {return bname;}public void setBname(String bname) {this.bname = bname;}public Book() {}public Book(int bno, String bname, String bwriter) {this.bno = bno;this.bname = bname;this.bwriter = bwriter;}public static void main(String[] args) {}
}
然后重写choice==2这个分支
if (choice == 2) {System.out.println("2>>>>>上新书籍");//从键盘录入书籍信息System.out.println("请输入书籍编号:");int bNo = sc.nextInt();System.out.println("请输入书籍名字:");String bName = sc.next();System.out.println("请输入书籍作者:");String bWriter = sc.next();//创建一个书籍对象Book b = new Book();b.setBno(bNo);b.setBname(bName);b.setBwriter(bWriter);list.add(b); }
在while循环前创建一个集合,这样这个集合的作用域更大,在choice==1的时候也可以使用
4.展示书籍与下架书籍
重写choice==1
for循环来遍历输出集合里的所有对象
if (choice == 1) {System.out.println("1>>>>>展示书籍");for(int i = 0;i <= list.size() - 1; i++){//获取到i之后,将他强制转换为book类型的对象Book b = (Book)(list.get(i));System.out.println(b.getBno()+"----"+b.getBname()+"-----"+b.getBwriter());}}
下架书籍
遍历整个集合对象,寻找与所输入的整型相等的书籍编号,然后删除
if (choice == 3) {System.out.println("3>>>>>下架书籍");System.out.println("录入需要下架的书籍的编号:");int deleteBook = sc.nextInt();for(int i = 0;i <= list.size() - 1; i++){//获取到i之后,将他强制转换为book类型的对象Book b = (Book)(list.get(i));if(b.getBno() == deleteBook){list.remove(b);System.out.println("书籍下架成功。");break;}}}
5.全部代码
总共两个文件
Test.java
package bookstorw;import java.util.ArrayList;
import java.util.Scanner;public class Test {public static void main(String[] args) {//创建一个集合,存放书籍对象ArrayList list = new ArrayList();while(true) {System.out.println("欢迎来到书城:");System.out.println("1.展示书籍:");System.out.println("2.上新书籍:");System.out.println("3.下架书籍:");System.out.println("4.退出应用:");//借助Scanner类,扫描键盘输入Scanner sc = new Scanner(System.in);System.out.println("请输入整数序号。");//获取键盘输入的整数值int choice = sc.nextInt();if (choice == 1) {System.out.println("1>>>>>展示书籍");for(int i = 0;i <= list.size() - 1; i++){//获取到i之后,将他强制转换为book类型的对象Book b = (Book)(list.get(i));System.out.println(b.getBno()+"----"+b.getBname()+"-----"+b.getBwriter());}}if (choice == 2) {System.out.println("2>>>>>上新书籍");//从键盘录入书籍信息System.out.println("请输入书籍编号:");int bNo = sc.nextInt();System.out.println("请输入书籍名字:");String bName = sc.next();System.out.println("请输入书籍作者:");String bWriter = sc.next();//创建一个书籍对象Book b = new Book();b.setBno(bNo);b.setBname(bName);b.setBwriter(bWriter);list.add(b);}if (choice == 3) {System.out.println("3>>>>>下架书籍");System.out.println("录入需要下架的书籍的编号:");int deleteBook = sc.nextInt();for(int i = 0;i <= list.size() - 1; i++){//获取到i之后,将他强制转换为book类型的对象Book b = (Book)(list.get(i));if(b.getBno() == deleteBook){list.remove(b);System.out.println("书籍下架成功。");break;}}}if (choice == 4) {System.out.println("4>>>>>退出应用");break;}}}}
Book.java
package bookstorw;public class Book {//书籍编号private int bno;//书籍名称private String bname;//书籍作者private String bwriter;public int getBno() {return bno;}public void setBno(int bno) {this.bno = bno;}public String getBwriter() {return bwriter;}public void setBwriter(String bwriter) {this.bwriter = bwriter;}public String getBname() {return bname;}public void setBname(String bname) {this.bname = bname;}public Book() {}public Book(int bno, String bname, String bwriter) {this.bno = bno;this.bname = bname;this.bwriter = bwriter;}public static void main(String[] args) {}
}
相关文章:
Java_小项目书城
1.概述 书城的基本功能: 展示书籍上新书籍下架书籍退出应用 书城项目所涉及到的知识点: 用户交互–键盘录入分支结构,循环结构面向对象的思维,封装对象集合的使用 2.菜单的编写 这部分代码就是读取用户键盘的录入࿰…...
Unreal Engine08:Pawn的实现
写在前面 Pawn继承于Actor,增加了一些用于控制和提供玩家视角的功能,这里主要是介绍一下Pawn类的实现。 一、创建一个Pawn的C类 创建的C类也是放在Source文件夹中的Public和Private文件夹中;选择Pawn作为继承的父类;头文件中除…...
408强化(二)线性表纯享版
目录 一、顺序表(数组)和链表总览 二、考情分析 2.1 从历年考情可以看出,如果一个方法出现了第2次,一般是以下情况: 2.2 没有考过的地方 三、 共同操作或考法 3.1 多指针后移 3.2 逆置 3.3 空间换时间的操作 3.…...
ubuntu下如何使用wireshark抓包,保姆级教程
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。 一、安装wireshark 打开终端&…...
世界上最健康的程序员作息表!「值得一看」
昨晚看了一篇“传说中”的“世界上最健康的作息时间表”,开始纠结自己还要不要5点半起床。 都说程序员这一行,猝死概率极高,究其原因还是加班太狠、作息不规律、缺乏运动… 今天和大家分享一下这篇文章,还是非常值得参考的&#…...
Java中多继承的实现
1 问题Java是一种面向对象的只允许单继承的语言,那么怎样在Java中实现多继承呢?2 方法多层继承如果要直接继承类,子类是不可以直接多继承的,但是可以通过多层继承来实现多继承,但多层继承一般不建议超过三次。接口接口…...
蓝桥杯 stm32 USART 串口发送数据
文章代码使用 HAL 库。 文章目录 前言一、串口原理图二、CubeMX 创建工程。三、串口发送函数:四、串口助手 配置:五、详细代码:注意:连续发送数据六、printf 重定向问题代码示例:实验效果:总结前言 USART : ( Universal Synchronous/Asynchronous Receiver/Transmitter…...
Spring之AOP底层源码解析
Spring之AOP底层源码解析 1、动态代理 代理模式的解释:为其他对象提供一种代理以控制对这个对象的访问,增强一个类中的某个方法,对程序进行扩展。 举个例子 public class UserService {public void test() {System.out.println("test.…...
人脸识别——景联文科技提供3D头模数据采集业务!
“拿起手机刷脸解锁、上下班考勤、支付订单,刷脸已极大地便利了我们的生活。清华大学新闻学院教授沈阳表示,中国人平均每天要暴露在各种摄像头下超过500次。人脸识别已成了我们生活中重要的一部分。由于2D人脸识别容易受到姿态、表情、光照等因素影响&am…...
SpringBoot集成Flink-CDC 采集PostgreSQL变更数据发布到Kafka
最近做的一个项目,使用的是pg数据库,公司没有成熟的DCD组件,为了实现数据变更消息发布的功能,我使用SpringBoot集成Flink-CDC 采集PostgreSQL变更数据发布到Kafka。 一、业务价值 监听数据变化,进行异步通知…...
酷开系统壁纸模式,将氛围感死死拿捏!
古希腊哲学家柏拉图曾经说过:“美感是起于视觉、听觉产生的快感,以人的感官所能达到的范围为极限。”而电视则恰恰就是视觉听觉的完美融合体,当一台开启的电视可以给我们带来视听享受的时候,一台待机状态下的电视又如何取悦于我们…...
第0章 一些你可能正感到迷惑的问题
操作系统是什么 操作系统是控制管理计算机系统的硬软件,分配调度资源的系统软件。 由操作系统把资源获取到后台给用户进程,但为了保护计算机系统不被损坏,不允许用户进程直接访问硬件资源。 操作系统相当于是一个分配资源的机构,…...
MYSQL实战
SQL的处理 缓存解析查询优化(查询优化器) 重写查询;表的读取顺序;选择索引1.不要在索引上做任何操作 表达式函数 2.尽量全值匹配 联合索引中搜素条件后会根据最优条件排序进行查询,联合索引尽量都使用起来。搜索条…...
少儿户外拓展北斗定位解决方案
一、项目背景户外拓展训练是指通过专业的机构,对久居城市的人进行的一种野外生存训练。拓展训练通常利用崇山峻岭、翰海大川等自然环境,通过精心设计的活动达到“磨练意志、陶冶情操、完善人格、熔炼团队”的培训目的。针对户外拓展人员安全管理存在的实…...
更换ssl证书
更换ssl证书常用证书查看以及转换网址阿里云判断流量以及配置证书判断接入点阿里云控制台配置证书WAFAzure判断流量以及配置证书:判断接入点Azure配置证书CDNAPP GateWay常用证书查看以及转换网址 https://www.chinassl.net/ssltools/convert-ssl.htmlhttps://myss…...
线程池源码解析项目中如何配置线程池
目录 基础回顾 线程池执行任务流程 简单使用 构造函数 execute方法 execute中出现的ctl属性 execute中出现的addWorker方法 addWorker中出现的addWorkerFailed方法 addWorker中出现的Worker类 Worker类中run方法出现的runWorker方法 runWorker中出现的getTask runWo…...
Echarts 更改K线度颜色,解释K线图4个数字意义
第019个点击查看专栏目录本示例修改K线度的颜色,方法参考源代码。 这里面讲一下K线图的四个数字,如[20, 34, 10, 38], 第一位:20代表开盘价格, 第二位:34代表闭盘价格, 第三位:10代表最低价&…...
JavaScript和Java两种方法实现百度地图和高德、腾讯地图的相互转换
目录一、常见的经纬度标准二、百度地图和高德、腾讯地图经纬度的转换1、前端JavaScript转换2、后端Java实现转换一、常见的经纬度标准 高德、腾讯(使用GCJ02) GCJ-02坐标系,也称火星坐标系,由中国国家测绘局在02年发布࿰…...
Vue中常见的几种组件间通信方法
1.props(父传子) 父组件Parent.vue <template><child :msg"message"></child> </template>父组件通过:val"value"的形式定义要传给子组件的值value绑定到val上 子组件Child.vue export default {//写法一…...
Outcome VS. Output:研发效能提升中,谁会更胜一筹?
2007 年,网景通信公司(Netscape)的联合创始人 Marc Andreessen 在博客 The Pmarca Guide to Startups 中提出 「Product/Market Fit」 ,他写道, 「这意味着在一个良好的市场中,拥有能够满足该市场的产品。」…...
ptp4l与phc2sys进行系统时钟同步
linuxptp用于时钟同步。安装采用apt install linuxptp主要包含2个程序,ptp4l 进行时钟同步,实时网卡时钟与远端的时钟同步,支持1588 和 802.1AS 两种协议phc2sys 将网卡上的时钟同步到操作系统,或者反之命令demo:某主机P通过eth2连…...
使用注解JSON序列化
JsonSerialize(using ToStringSerializer.class) 将返回数据转成String序列化 JsonFormat(pattern "yyyy-MM-dd hh:mm",timezone"GMT8") 将日期数据转换成特定格式 使用JsonSerialize自定义注解接口 定义接口 import java.lang.annotation.ElementTyp…...
kubernetes教程 --Pod生命周期
Pod生命周期 pod创建过程运行初始化容器(init container)过程运行主容器(main container)过程 容器启动后钩子(post start)、容器终止前钩子(pre stop)容器的存活性探测(…...
高校房产管理系统用到了哪些技术?
数图互通高校房产管理系统是基于公司自主研发的FMCenterV5.0平通过在中国100多所高校的成功实施和迭代,形成了一套成熟、完善、全生命周期的房屋资源管理解决方案。台,是针对中国高校房产的管理特点和管理要求,研发的一套标准产品;…...
【Python学习笔记】37.Python3 MySQL - mysql-connector 驱动(2)
前言 本章继续介绍MySQL - mysql-connector 驱动。 where 条件语句 如果我们要读取指定条件的数据,可以使用 where 语句: demo_mysql_test.py 读取 name 字段为 CSDN 的记录: import mysql.connectormydb mysql.connector.connect(host…...
【高级Java】高级Java实验
一、反射与动态代理1、(4分)请通过反射技术,为附件中的Person.class生成相应的.java代码,java代码中的方法的方法体为空,即方法内部代码不用生成。请注意生成的java代码的格式。2、(3分)请为第1…...
SYN480R 解码
目录1.空载情况下2.当有按键被按下3.数据帧分析4.同步码5.数据码6.对24位数据帧分析1.空载情况下 在空载情况下,syn480r 输出引脚,输出的是杂乱无序的波形 2.当有按键被按下 按下按键,会连续输出相同的脉冲波形,放大分析 3.数据…...
ASP .NET(基于.NET 6.0)源码解读
这几天一直在琢磨在我现有技术认知基础上,未来如何做技术提升。 日思夜想,我整理出了我自己的一套学习规划方案,并希望在实施过程中能够不断调整学习方案与方式,以接近自我提升的效率最大化。 从以下几个大的方面来得到提升&…...
阿里工作7年,一个30岁女软件测试工程师的心路历程
简单的先说一下,坐标杭州,14届本科毕业,算上年前在阿里巴巴的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少) 其中成功的有4家&am…...
学生党必备的 Keychron 无线机械键盘
学生党必备的 Keychron 无线机械键盘 由于专业需要,之间的键盘使用起来不太舒服,于是准备重新买一个适合工作学习的键盘,于是通过朋友介绍了解到了keychron k3pro,当时也看到网上一些资料说道这款键盘比较到位,今天就来带大家了解…...
做什么网站能吸引流量/长沙靠谱关键词优化服务
建议的采用顺序是List中泛型顺序依次为T、?、Object (1)、List是确定的某一个类型 List表示的是List集合中的元素都为T类型,具体类型在运行期决定;List<?>表示的是任意类型,与List类似,而List则表示List集合中的…...
江门企业做网站/全国疫情最新消息今天实时
【Jenkins】Jenkins 构建SVN项目 按需求创建任务 添加svn地址...
建设通是什么/seo网站建设
为什么80%的码农都做不了架构师?>>> 1、功能介绍 数据规则通过配置自定义sql来实现数据权限的控制,自定义SQL支持表达式取值 其中自定义sql 条件中字段的名称和数据库表的字段名保持一致。 2、角色授权 用户角色授权,权限测试不要…...
河北 石家庄 网站建设/百度推广有效果吗
作者:老齐与本文相关的图书推荐:《跟老齐学Python:轻松入门》《Python正则表达式》这个系列,已经完成了两篇,本文是第三篇,请继续阅读。如果错过了前两篇,请关注微信公众号:老齐教室…...
电子工程世界app下载/精准网站seo诊断报告
think-tests1. 简介在实际开发中,在开发阶段,其实并不是完全测试,更多的是调试,如果用phpunit进行测试驱动,其实有很多不方便,当然在项目开发完后,也建议大家写测试用例,保证代码的可…...
上海市建设工程安全质量监督总站网站/竞价推广培训课程
一,定义 英文名字:Decorator Pattern,又称装饰者模式。 装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。 二,总结 装饰…...