问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图package com.unit4.test;
import java.util.Scanner;
public class test2 {
static String[] shuming = {"java教程","py入门","c语言","c++"};
static String[] yonhu = {"张三","李四","王二","麻子"};
static int[] kjzt = {1,1,2,2 };// 1可借,2,不可借
static int[] jccs = {10,20,35,45 };// 累计借出次数
static Scanner str = new Scanner(System.in);
//删除图书
public static void shanchubook() {
System.out.println("请输入书名:");
String name=str.next();
int index=0;
int msg=1;
for(int i=0;i<shuming.length;i++) {
if (shuming[i].equals(name)) {
index=i;
msg=2;
}
}
if (msg==2) {
String[]shuming2=new String[shuming.length-1];
String[]yonhu2=new String[shuming.length-1];
int[]kjzt2=new int[shuming.length-1];
int[]jccs2=new int[shuming.length-1];
for(int i=0;i<shuming2.length;i++) {
if (i<index) {
shuming2[i] =shuming[i];
yonhu2[i]=yonhu[i];
kjzt2[i]=kjzt[i];
jccs2[i]=jccs[i];
}else if(i>=index){
shuming2[i]=shuming[i+1];
yonhu2[i]=yonhu[i+1];
kjzt2[i]=kjzt[i+1];
jccs2[i]=jccs[i+1];
}
}
System.out.println("删除成功!");
xianshibooks(shuming2,yonhu2,kjzt2,jccs2);
}else {
System.out.println("图书不存在!");
}
}
//增加图书
public static void zengJiabook(){
if (shuming.length>=6) {
System.out.println("书架已满!");
}else {
System.out.println("请输入书名:");
String xuanzhe1=str.next();
System.out.println("请输入作者:");
String xuanzhe2=str.next();
int msg=1;
for(String x:shuming) {
if (x.equals(xuanzhe1)) {
msg=2;
}
}
if (msg==1) {
String[]shuming2=new String[shuming.length+1];
String[]yonhu2=new String[shuming.length+1];
int[]kjzt2=new int[shuming.length+1];
int[]jccs2=new int[shuming.length+1];
for(int i=0;i<shuming.length;i++) {
shuming2[i] =shuming[i];
yonhu2[i]=yonhu[i];
kjzt2[i]=kjzt[i];
jccs2[i]=jccs[i];
}
shuming2[shuming.length-1] =xuanzhe1;
yonhu2[shuming.length-1]=xuanzhe2;
kjzt2[shuming.length-1]=1;
jccs2[shuming.length-1]=0;
System.out.println("你添加图书是:"+xuanzhe1);
xianshibooks(shuming2,yonhu2,kjzt2,jccs2);
}else {
System.out.println("此书名已存在!");
}
}
}
//显示所有图书
public static void xianshibooks(String[] a,String[] b,int[] c,int[] d) {
System.out.println("书名,作者,状态,借出次数");
for(int i=0;i<shuming .length;i++) {
String s="不可借";
if (c[i]==1) {
s="可借";
}
System.out.println(a[i]+", "+b[i]+","+s+","+d[i] );
}
}
// 登入
public static String dengru() {
String uyhm = "aaa";
String umima = "123";
String msg = "失败";
System.out.println("请输入用户名");
String yhm = str.next();
System.out.println("请输入密码");
String mima = str.next();
if (yhm.equals(uyhm) && mima.equals(umima)) {
msg = "成功";
}
return msg;
}
// 显示主菜单
public static void zhucaidan() {
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("请选择菜单编号:");
}
public static void main(String[] args) {
while (1==1) {
String msg = dengru();
if ("失败".equals(msg)) {
System.out.println("登入失败,请重新登入");
continue;
} else if ("成功".equals(msg)) {
while (1==1) {
zhucaidan();
int xuanzhe1=str.nextInt();
if (xuanzhe1==1) {
xianshibooks(shuming,yonhu,kjzt,jccs);
}else if (xuanzhe1==2) {
zengJiabook();
}else if (xuanzhe1==3) {
shanchubook();
}else if (xuanzhe1==4) {
}else if (xuanzhe1==5) {
}else if (xuanzhe1==6) {
}
}
}
}
}
}
运行结果及报错内容
请输入用户名
请输入密码
123
欢迎来到图书管理系统!
主菜单
1,查看所有图书
2,增加图书
3,删除图书
4,借出图书
5,归还图书
6,退出
请选择菜单编号:
3
请输入书名:
c语言
删除成功!
,书名,作者,状态,借出,次数
java教程, 张三,可借,10
py入门, 李四,可借,20
c++, 麻子,不可借,45
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
at com.unit4.test.test2.xianshibooks(test2.java:99)
at com.unit4.test.test2.shanchubook(test2.java:45)
at com.unit4.test.test2.main(test2.java:154)
我的解答思路和尝试过的 我想要达到的结果