通过对图书的增删改查操作 用数组实现

Manager类

package demo55;
import java.util.*;
public class Manager {
Scanner sc = new Scanner(System.in);
int size = 0; public void Menu(){
int num;
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("7.退出");
System.out.println("8.排行榜");
System.out.println("请选择");
num = sc.nextInt(); switch (num) {
case 1:
System.out.println("1.查看图书");
System.out.println("图书名称\t图书状态\t借出次数");
//init(); 这里不能放在这里不然size会自动增加 4、5、6
//查看图书(遍历数组)
for(int i= 0;i<size;i++){
String content ="";
if(books[i].status==0)
{
System.out.println("未借");
}else{
System.out.println("已借");
} System.out.println(books[i].Bookname+"\t"+books[i].lendCount+"\t"+books[i].status);
}
break;
case 2:
addBook();//构造方法
break;
case 3:
System.out.println("3.删除图书");
break;
case 4:
System.out.println("4.修改图书");
break;
case 5:
System.out.println("5.借书图书");
break;
case 6:
System.out.println("6.还书图书");
break;
case 7:
System.out.println("7.退出");
break;
case 8:
System.out.println("8.排行榜");
break; default: break;
}
method();//记得写入这个方法
} String answer = null;
public void method(){
System.out.println("是否继续(Y/N):");
answer= sc.next();
if(answer.equalsIgnoreCase("y")){
Menu();
}else{
System.out.println("欢迎下次使用!");
}
} Book[] books = new Book[50];//生成对象数组
public void init(){ //初始化三本书的方法
//第一本书
books[0]= new Book(); //创建book[0] 的一个对象
books[0].Bookname = "活着";
books[0].lendCount = 0;
books[0].status = 1;
size++; //第二本书
books[1]= new Book();
books[1].Bookname = "希望";
books[1].lendCount = 0;
books[1].status = 1;
size++; //第三本书
books[2]= new Book();
books[2].Bookname = "软件工程";
books[2].lendCount = 0;
books[2].status = 1;
size++;
} //2.添加图书操作
public void addBook(){
System.out.print("2.添加图书");
System.out.println("请输入你要添加的书名:");
String inputbookname = sc.next(); //创建新图书的一个对象
Book newBook = new Book();
newBook.Bookname = inputbookname; //把新创建的图书对象存入到数组中的位置,
//books[3]= new Book();这个方法定死了
for(int i=0;i<books.length;i++){
if(books[i]==null){
books[i]=newBook;
size++;
break;//如果没有加这个就会输出50本书
}
}
/*通过size来控制当前位置 books[size] = newBook;
size++;//size要改变,+1
*/
} //检索图书的存在
public int searchBook(String delBookName){
for(int i=0;i<size;i++){
if(books[i].Bookname.equals(delBookName)){
return i;
}
}
return -1;//没有找到书
}
public void delBook(){
System.out.println("请选择你需要删除的图书名字:");
String delBookName = sc.next(); //输入的 书去数组库中检索,检索到了,则返回当前此书的下标
int index = searchBook(delBookName);
if(index!=-1){
if(books[index].status==0){
//可以删除
books[index] = null;
System.out.println("恭喜,已成功删除图书!");
//每次删除一本新书,size-1
size--; //位置
while(books[index]!=null){
books[index] = books[index+1];
index++;
} //查看所有图书 }else{
//不可以删除
System.out.println("此书为已借出状态,不可删除!");
}
}else{
//此书不存在
System.out.println("你输入的删除图书不存在");
}
}
}

2017.12.14 Java实现-----图书管理系统的更多相关文章

  1. Gitlab一键端的安装汉化及问题解决(2017/12/14目前版本为10.2.4)

    Gitlab的安装汉化及问题解决 一.前言 Gitlab需要安装的包太TM多了,源码安装能愁死个人,一直出错,后来发现几行命令就装的真是遇到的新大陆一样... ... 装完之后感觉太简单,加了汉化补丁 ...

  2. Java GUI 图书管理系统

    01 概述 一款功能强大的图书馆管理系统,功能齐全,小白/大学生项目实训,学习的不二之选. 02 技术 此系统使用 java awt 实现.java.awt是一个软件包,包含用于创建用户界面和绘制图形 ...

  3. 用java实现图书管理系统。

    图书管理系统. 一.项目设计到的知识 1.MVC设计模式思想(分包) >项目分包 >MVC简单介绍 2.GUI(图形化界面) 3.JDBC连接MySql数据库 4.I/O流 5.面向对象思 ...

  4. 2017.10.14 Java的流程控制语句switch&&随机点名器

    今日内容介绍 1.流程控制语句switch 2.数组 3.随机点名器案例 ###01switch语句解构     * A:switch语句解构       * a:switch只能针对某个表达式的值作 ...

  5. 2017.12.20 Java中的 IO/XML学习总结 File类详细

    IO / XML 一.File类 1.定义/概念 Java是面向对象的语言,要想把数据存到文件中,就必须要有一个对象表示这个文件.File类的作用就是代表一个特定的文件或目录,并提供了若干方法对这些文 ...

  6. 2017.12.14 Mybatis物理分页插件PageHelper的使用(一)

    参考来自: http://www.360doc.com/content/15/0728/15/12642656_487954693.shtml https://www.cnblogs.com/digd ...

  7. 2017.12.9 Java中的排序---冒泡排序、快速排序、选择排序

    //冒泡排序 public class demo{ public static void main(String[] args) { int[] sum={2,9,10,1,5,88}; System ...

  8. 2017.12.25 Java中面向对象思想的深刻理解

    今日内容介绍 1.面向对象思想 2.类与对象的关系 3.局部变量和成员变量的关系 4.封装思想 5.private,this关键字 6.随机点名器 01面向对象和面向过程的思想 * A: 面向过程与面 ...

  9. 2017.12.24 Java序列化你不知道的事(二)

    1 序列化允许重构 序列化允许一定数量的类变种,甚至重构之后也是如此,ObjectInputStream 仍可以很好地将其读出来. Java Object Serialization 规范可以自动管理 ...

随机推荐

  1. uoj #5. 【NOI2014】动物园

    #5. [NOI2014]动物园 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己的真才实学向游客要吃的园长决定开设算法班,让 ...

  2. 洛谷P3396 哈希冲突(分块)

    传送门 题解在此,讲的蛮清楚的->这里 我就贴个代码 //minamoto #include<iostream> #include<cstdio> #include< ...

  3. 1、gitlab的理论知识

    2.1 svn与git对比 . svn git 分布式 不是 是 在线阅读 不支持 不仅支持,而且可以在线编辑 存储方式 按文件 按元数据 完整性 一般 优 离线工作 日志都没法看 完全没问题 分支 ...

  4. git教程1-gitlab部署

    https://about.gitlab.com/install/#centos-7 https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/ gitla ...

  5. JMeter - 实时结果 - InfluxDB和Grafana - 第2部分 - 添加自定义字段

    我已经使用InfluxDB + Grafana来获取我的JMeter测试的实时结果.您可以在此处找到有关基本设置的更多详细信息.在本文中,让我们看看我们如何在InfluxDB测量中添加一些自定义字段, ...

  6. JMeter - 连续性能测试 - JMeter + ANT + Jenkins集成 - 第2部分

    目标: 创建包含性能测试流程的持续交付管道,以尽早检测任何与性能相关的问题. 通常,全面的性能测试将在分段/预生产环境中完成,该环境可能与您的生产环境相同.在完成QA功能/回归验证后,将代码推送到分段 ...

  7. Spring对数据库的操作

    Spring结合Hibernate                   HibernateTemplate http://www.jb51.net/article/41541.htm //////// ...

  8. Sqoop架构

    Sqoop 架构 Sqoop 架构是非常简单的,它主要由三个部分组成:Sqoop client.HDFS/HBase/Hive.Database.下面我们来看一下 Sqoop 的架构图. 用户向 Sq ...

  9. Hadoop实战:微博数据分析

    项目需求 自定义输入格式,将明星微博数据排序后按粉丝数 关注数 微博数 分别输出到不同文件中. 数据集 下面是部分数据,猛戳此链接下载完整数据集 数据格式: 明星   明星微博名称    粉丝数    ...

  10. SQLServer数据库语句大全汇总

    目录清单CONTEXT LIST1.数据库DataBase 1.1数据库建立/删除create/drop database 1.2数据库备份与恢复backup/restore database2.数据 ...