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

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. UVA - 12563 Jin Ge Jin Qu hao (01背包)

    InputThe first line contains the number of test cases T (T ≤ 100). Each test case begins with two po ...

  2. CF987A Infinity Gauntlet 模拟

    You took a peek on Thanos wearing Infinity Gauntlet. In the Gauntlet there is a place for six Infini ...

  3. Mysql常见问题集锦

    缺少libstdc++.so.6库的原因及解决办法 https://blog.csdn.net/u010417185/article/details/69951312 https://www.cnbl ...

  4. 使用jmeter往指定文件中插入一定数量的数据(转)

    有一个需求,新建一批账号,把获取的账号相关信息存入文本文件,当文本文件保存的数据达到一定的数量,就自动停止新建账号. 分析下需求: 1.把账号信息保存到文件,需要使用bean shell脚本(bean ...

  5. element-ui国际化探索(大型项目适用)

    配置好了,自己感觉是比较简单的,就是有一点点繁琐,加油吧. 由于保密,无法拿出项目,故写了一个小demo,记录一下,适用于大型项目: 项目中需要自定义切换中/英文(国际化),基于vue.js,结合vu ...

  6. KMP 串的模式匹配 (25 分)

    给定两个由英文字母组成的字符串 String 和 Pattern,要求找到 Pattern 在 String 中第一次出现的位置,并将此位置后的 String 的子串输出.如果找不到,则输出“Not ...

  7. JavaScript跨域资源请求(CORS)解决方案

    跨域:当协议.主域名.子域名.端口号中任意一个不相同时都不算同一个域,而在不同域之间请求数据即为跨域请求.解决方法有以下几种(如有错误欢迎指出)以请求图片url为例: 1.通过XMLHttpReque ...

  8. JAVA内存模型(Java Memory Model ,JMM)

    http://blog.csdn.net/hxpjava1/article/details/55189077 JVM有主内存(Main Memory)和工作内存(Working Memory),主内存 ...

  9. phpcms文件结构

    主要目录部分 /admin 管理后台目录       -- /skin/    后台样式       -- /templates/    后台样式模板 /api api接口 /corpandresiz ...

  10. Quartz.NET实现作业调度(3.0版本实现)定时执行一个任务

    2.0版本请参考https://www.cnblogs.com/best/p/7658573.html这里的文章很详细: 我们现在想每5秒钟往txt文件夹里存储一个时间 首先:定义一个类,实现Quar ...