import java.util.Scanner;
import java.util.Arrays;
public class book {
public static void main(String[] args){
//初始化数据
String[] bookName = {"西游记", "红楼梦", "三国演义", "水浒传","海贼王",null};
String[] state = {"可借","可借","可借","可借","可借","可借"};
int[] count = {0,0,0,0,0,0};
int num;
do {
System.out.println("欢迎使用图书借阅系统");
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("-------------------------------");
System.out.println("请选择:");
Scanner scanner = new Scanner(System.in);
num = scanner.nextInt();
//打印输入的值
//System.out.println(num);
switch(num) {
case 1:
System.out.println("---》查看图书");
System.out.println("序号\t\t名称\t\t状态\t\t借出次数");
//int i = 1;
for(int i = 1; i<=bookName.length; i++) {
System.out.print(i);
System.out.print("\t\t"+bookName[i-1]);
System.out.print("\t\t"+state[i-1]);
System.out.println("\t\t"+count[i-1]);
}
/*
for(String name:bookName) {
System.out.print(i);
System.out.print("\t\t"+name);
System.out.print("\t\t"+state[i-1]);
System.out.println("\t\t"+count[i-1]);
i++;
}*/
break;
case 2:
System.out.println("---》新增图书");
//判断数组中是否有位置增加书名
if(bookName[bookName.length-1] == null) {
System.out.println("请输入书名:");
String name = scanner.next();
//检测数组中是否已经存在该书名
//int index = Arrays.binarySearch(bookName, name);
//默认数组中没有用户输入的书
boolean flag = false; for(String name2:bookName) {
if(name.equals(name2)){
flag = true;
break;
}
}
if(flag) {
System.out.println("《"+name+"》"+"书名已经存在");
break;
}else{
for(int i = 0; i < bookName.length; i++) {
if(bookName[i] == null) {
bookName[i] = name;
break;
}
} System.out.println("已添加该书名");
} }else{
System.out.println("-----书架已满-----"); }
break;
case 3:
System.out.println("----》删除图书");
//遍历图书
for(int i = 1; i<=bookName.length; i++) {
System.out.print(i);
System.out.println("\t"+bookName[i-1]);
}
//检测书架是否为空
boolean flag = false;
for(String name2:bookName) {
if(name2 != null){
flag = true;
break; }
} if(flag) {
System.out.println("-------请输入你要删除的书名------");
String name = scanner.next();
boolean flag2 = false; //证明该书是否存在
for(String name2:bookName) {
if(name.equals(name2)) {
flag2 = true;
break;
}
}
if(flag2) {
//找到被删除的书的数组下标
int index = 0;
for(int i = 0; i< bookName.length; i++) {
if(name.equals(bookName[i])) {
index = i;
break;
}
}
//index之后的数据往前提
for(int i = index; i < bookName.length-1; i++) {
bookName[i] = bookName[i+1];
}
//将数组最后一位置为null
bookName[bookName.length-1] = null;
System.out.println("删除成功");
}else{
System.out.println("该书不存在");
} }else {
System.out.println("-------空书架-------");
}
//for(int i = 1; i<=bookName.length; i++) {
// System.out.print(i);
// System.out.println("\t"+bookName[i-1]);
//}
//num = scanner.nextInt();
//bookName[num-1] =null;
break;
case 4:
System.out.println("借阅图书");
//1.检测bookName是否为空
flag = false;
for(String name:bookName) {
if(name != null) {
flag = true;
break;
}
}
if(flag) {
//2.检测用户输入的书是否存在
System.out.print("请输入你要借阅的书名:");
String name = scanner.next();
boolean flag2 = false;
for(String name2:bookName) {
if(name.equals(name2)) {
flag2 = true;
break;
}
}
if(flag2) {
//将图书对应的状态改为已借
int index = 0;
for(int i = 0; i < bookName.length; i++) {
if(name.equals(bookName[i])) {
index = i;
break;
}
}

             //判断该书的状态
             if(state[index].equals("已借出")) {
                System.out.println("------该图书已借出------");
             }else{
                state[index] = "已借出";
                //将图书对应的借出数量加
                count[index] = ++count[index];
                System.out.println("该书已借阅成功");
             }

                }else{
System.out.println("你输入的书名不存在");
}
}else{
System.out.println("书架已空,没有可以借阅的书籍");
} break;
case 5:
System.out.println("----》归还图书");
//2.检测用户输入的书是否存在
System.out.print("请输入你要归还的书名:");
String name = scanner.next();
boolean flag2 = false;
for(String name2:bookName) {
if(name.equals(name2)) {
flag2 = true;
break;
}
}
if(flag2) {
int index = 0;
for(int i = 0; i < bookName.length; i++) {
if(name.equals(bookName[i])) {
index = i;
break;
}
}
if(state[index].equals("可借")) {
System.out.println("该书已归还");
}else{
state[index] = "可借";
System.out.println("该书已归还");
}
}else{
System.out.println("该书不存在");
}
break;
case 6:
System.out.println("退出系统");
return;
}
System.out.println("输入0返回");
num = scanner.nextInt();
System.out.println(num);
int bb = 0;
while(num !=0) {
System.out.println("----------输入错误请继续输入-----------");
System.out.println("\t\t\t需要输入0才能返回");
num = scanner.nextInt();
if(bb >= 3){
System.out.print("再输入错误就要打屁屁了");
}
bb++;
}
}while(num == 0 );
}
}

java 图书馆初级编写的更多相关文章

  1. java通过poi编写excel文件

    public String writeExcel(List<MedicalWhiteList> MedicalWhiteList) { if(MedicalWhiteList == nul ...

  2. 初识Java程序,编写简单代码?

    Dear All: 初识Java程序,编写简单代码? 首先小编在这里说下我们今天编写Java程序使用的是 eclipse 开发工具! 1.下载eclipse 官网地址:http://www.eclip ...

  3. 第一个Java代码的编写 :HelloWorld代码的编写

    HelloWorld代码的编写 创建一个新的文件夹,通过Notepad++编写第一个Java程序 , 文件名为"Hello.java" 在文件中编写,如下代码: public cl ...

  4. Java mac 上编写Java代码

    看视频学JAVA,不想下载 notepad++之类的,虽然知道mac有内嵌的JAVA sdk ,但是还是不知道怎么编写,今天终于编写了我的第一个JAVA程序,还是以 Hello World 开始吧 1 ...

  5. Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。

    #29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类T ...

  6. 利用java反射机制编写solr通用的java客户端

    一.前言 通过上一篇的讲解,我们知道了dynamicFiled字段,它是动态的,不需要显示的声明.而且一些常用的基本类型solr已经默认给我们创建好了. 例如:*_i,*_is,等. 如果我们要使用动 ...

  7. 用java和junit编写app自动化测试用例

    package myTest; import static org.junit.Assert.*; import io.appium.java_client.android.AndroidDriver ...

  8. Java中初级数值类型的大小, volatile和包装类wrapped type的比较

    Java中的初级数值类型 Java是静态类型语言, 所有的变量必须先声明再使用. 其初级类型一共8种: boolean: 数据只包含1bit信息, 但是占空间为8-bit, 默认值为false byt ...

  9. [JNA系列]Java调用Delphi编写的Dll之JNA使用

    介绍 给大家介绍一个最新的访问本机代码的 Java 框架 —JNA . JNA(Java Native Access) 框架是一个开源的 Java 框架,是 SUN 公司主导开发的,建立在经典的 JN ...

随机推荐

  1. [转]国内阿里Maven仓库镜像Maven配置文件Maven仓库速度快

    原文地址:http://www.cnblogs.com/ae6623/p/4416256.html 国内连接maven官方的仓库更新依赖库,网速一般很慢,收集一些国内快速的maven仓库镜像以备用. ...

  2. [视频教程] 使用docker的方式安装redis

    直接使用docker拉取redis的镜像,并且进行端口映射与文件目录共享,这样可以直接在宿主机的端口上就可以进行访问了.其实本质上也是在一个简化版的ubuntu的容器内安装好的redis-server ...

  3. 让Windows的文件名区分大小写

    背景 最近在Linux官网下载了Linux内核,下载下来的是一个后缀为.tar.xz的压缩包,于是在毫不知情的情况下随随便便解压了,解压过程中出现了很多问题. 其中一个问题就是在Windows下,不区 ...

  4. fiddler---Fiddler查看get和post请求

    前几篇写了Fiddler的一些功能介绍,今天我们一起学习下如何通过fiddler查看get请求和post请求和get,post区别 get请求 1.启动fiddler,抓取安静博客地址 2.通过fid ...

  5. spark 基础

    scala版 ,基本名词概念及 rdd的基本创建及使用 var conf = new SparkConf() var sc: SparkContext = new SparkContext(conf) ...

  6. idea插件(mybatis框架下mapper接口快速跳转对应xml文件)亲测好用!

    我相信目前在绝大部分公司里,主要使用的框架是S(spring)S(spring MVC)M(mybatis),其中mybatis总体架构是编写mapper接口,框架扫描其对应的mapper.xml文件 ...

  7. c# 第35节 类的多态

    本节内容: 1:多态前戏 2:解决多态的知识点 3:多态两个实例 1:多态前戏 多态源自生活中的现象: 阿拉甲,阿拉乙,阿拉丙,阿拉丁,是人这个类产生的四个对象: 他们的父亲说:世界上女的都是女老虎, ...

  8. Pwnable-blackjack

    游戏源码 http://cboard.cprogramming.com/c-programming/114023-simple-blackjack-program.html 打开之后是一个游戏 你有5 ...

  9. 攻防世界pwn-Mary_Morton

    题目连接 https://adworld.xctf.org.cn/media/task/attachments/532c53dce1ce4f5d88461e4c2a336468 友情连接 https: ...

  10. [C1] Andrew Ng - AI For Everyone

    About this Course AI is not only for engineers. If you want your organization to become better at us ...