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 ...
随机推荐
- 重新安装和更新所有的 nuget包
重新安装指定项目中所有的 nuget 包 Update-Package -ProjectName MyProject –reinstall 更新指定项目中所有的 nuget 包 Update-Pack ...
- sqlserver2008R2 本地不能用localhost连接
问题 在重新安装sql Server2008R2的时候,本地安装完成之后,想用localhost或者127.0.0.1登录的时候发现一直报错,无法连接,以下是解决方案. 打开Sql Server配置管 ...
- CodeForces - 1250B The Feast and the Bus (贪心+暴力)
题意 https://vjudge.net/problem/CodeForces-1250B 每个人属于队伍ai,汽车一次至多载两只队伍(全员),费用为车的容量*载人次数,问最少花费. 思路 k(队伍 ...
- 网络流(3)——找到最小st-剪切
在大规模战争中,后勤补给是重中之重,为了尽最大可能满足前线的物资消耗,后勤部队必然要充分利用每条运输网.与此同时,交战双方也想要以最小的代价切断敌军的补给,从而使敌军处于孤立无援的境地.在古今中外的各 ...
- 1.Python网络编程_UDP(简略版)
# -*- coding: utf-8 -*- #2019-11-24 import socket def recv(): udp_socket=socket.socket(socket.AF_INE ...
- 【西北师大-2108Java】第三次作业成绩汇总
[西北师大-2108Java]第三次作业成绩汇总 熟悉PTA平台线上测试环境: 理解用户自定义类的定义: 掌握对象的声明: 学会使用构造函数初始化对象: 使用类属性与方法的使用掌握使用: 掌握pack ...
- day50_9_11 bootstarp使用
一.下载官网. https://www.bootcss.com/ 使用3版本 https://www.bootcdn.cn/ CDN搜索网址. 配置代码: <link rel="sty ...
- jmeter连接不上MySQL数据库的原因以及解决方法
1.Cannot create PoolableConnectionFactory (Client does not support authentication protocol requested ...
- 鲜贝7.3--python安装
方法一:google 搜索 anaconda 进入官网下载64位最新版本 勾选加入环境变量 +默认3.7 打开cmd pip 发现已经完成安装 右键此电脑 属性 高级属性 环境变量 ’ 已经被加入 方 ...
- java4wifidog_server_README
项目地址:https://github.com/C-hill/java4wifidog_server 开发环境:Windows JDK7 Tomcat6 Myeclipse8.5 MySQL5 ...