java 图书馆初级编写
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 图书馆初级编写的更多相关文章
- java通过poi编写excel文件
public String writeExcel(List<MedicalWhiteList> MedicalWhiteList) { if(MedicalWhiteList == nul ...
- 初识Java程序,编写简单代码?
Dear All: 初识Java程序,编写简单代码? 首先小编在这里说下我们今天编写Java程序使用的是 eclipse 开发工具! 1.下载eclipse 官网地址:http://www.eclip ...
- 第一个Java代码的编写 :HelloWorld代码的编写
HelloWorld代码的编写 创建一个新的文件夹,通过Notepad++编写第一个Java程序 , 文件名为"Hello.java" 在文件中编写,如下代码: public cl ...
- Java mac 上编写Java代码
看视频学JAVA,不想下载 notepad++之类的,虽然知道mac有内嵌的JAVA sdk ,但是还是不知道怎么编写,今天终于编写了我的第一个JAVA程序,还是以 Hello World 开始吧 1 ...
- Java基础-继承-编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight。小车类Car是Vehicle的子类,其中包含的属性有载人数 loader。卡车类Truck是Car类的子类,其中包含的属性有载重量payload。每个 类都有构造方法和输出相关数据的方法。最后,写一个测试类来测试这些类的功 能。
#29.编写一个Java应用程序,设计一个汽车类Vehicle,包含的属性有车轮个数 wheels和车重weight.小车类Car是Vehicle的子类,其中包含的属性有载人数 loader.卡车类T ...
- 利用java反射机制编写solr通用的java客户端
一.前言 通过上一篇的讲解,我们知道了dynamicFiled字段,它是动态的,不需要显示的声明.而且一些常用的基本类型solr已经默认给我们创建好了. 例如:*_i,*_is,等. 如果我们要使用动 ...
- 用java和junit编写app自动化测试用例
package myTest; import static org.junit.Assert.*; import io.appium.java_client.android.AndroidDriver ...
- Java中初级数值类型的大小, volatile和包装类wrapped type的比较
Java中的初级数值类型 Java是静态类型语言, 所有的变量必须先声明再使用. 其初级类型一共8种: boolean: 数据只包含1bit信息, 但是占空间为8-bit, 默认值为false byt ...
- [JNA系列]Java调用Delphi编写的Dll之JNA使用
介绍 给大家介绍一个最新的访问本机代码的 Java 框架 —JNA . JNA(Java Native Access) 框架是一个开源的 Java 框架,是 SUN 公司主导开发的,建立在经典的 JN ...
随机推荐
- git设置github的远程仓库的相关操作
git能够把github作为远程仓库,本地可以进行推送有关变更,从而多人可以进行协作开发工作. 1 ssh-keygen -t rsa -C "your-email@163. ...
- 概要设计文档(final)
1. 引言部分 引言部分主要说明编写目的.系统的范围和参考资料等. 1.1目的 该文档的目的是描述“自习吧”微信小程序的概要设计,主要内容包括系统功能简介.系统结构设计.模块设计和界面设计等. 本文档 ...
- [20191011]拆分rowid 2.txt
[20191011]拆分rowid 2.txt --//有了链接http://blog.itpub.net/267265/viewspace-2659612/=>[20191011]bash任意 ...
- Windows 10 路由表管理
基本管理命令: route print route命令基本格式: ROUTE [-f] [-p] [-|-] command [destination] [MASK netmask] [gateway ...
- Python中 if __name__ == '__main__' 的作用
Python文件可以直接运行,也可以 import 到其它文件中使用 if __name__ == '__main__' 就是控制代码在这两种情况下的执行过程 每个Python模块都包含内置变量,直接 ...
- anaconda换源及创建虚拟环境
0x01:换源,依次输入一下两条命令 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/fr ...
- Chatbot:
讲清了一些最最基本的概念 - Intents(意图)和Entities(关键字) - 基于意图(Intent-based)的对话 和 基于流程(Flow-based)的对话 聊天机器人教学:使用Di ...
- python科学计算库-pandas
------------恢复内容开始------------ 1.基本概念 在数据分析工作中,Pandas 的使用频率是很高的, 一方面是因为 Pandas 提供的基础数据结构 DataFrame 与 ...
- 杂记(C语言中的不知怎么归类的细小点。)
1.int a; printf("%d",2a); 从数学上讲,没有丝毫问题,但是在计算机上,就无法识别! 纠正:应写成2*a. 2.关于输出结果保留一位小数的:不应 ...
- mq代替db
系统有个很严重的性能问题,法国人浪费了半年多都没有解决,他们试图从sql的角度分析哪里能有改善,大方向错了,再努力也没用. 我接手以后,也走了点弯路,一上手觉得肯定能用cache解决问题,结果cach ...