package com.democ1;
import java.util.*;//调用Java包
public class Book {
public static void main(String[] args) {
System.out.println("##欢迎使用借书系统##");
System.out.println("请浏览书籍:");
String[] bookname={"论语","三字经","诗经","西游记","水浒传","三国演义","红楼梦"};
System.out.println(Arrays.toString(bookname));//打印输出系统中的丛书
System.out.println("1.书名查找;2.序号查找");
System.out.print("请输入您使用的查找方法:");
@SuppressWarnings("resource")
Scanner input=new Scanner(System.in);
int chioce=input.nextInt();//创建选择查找方法的输入口
switch(chioce){//使用switch循环语句
case 1:
int j=0;
String[] names=new String[3];//创建一个数组,储存选择的书名
for(int i=0;i<bookname.length;i++){//for循环语句
System.out.print("请输入书名:");
String booknames=input.next();//创建输入书名的入口
if(i>2){//if条件语句
System.out.println("抱歉!您最多可以借三本书!");//规定每次只能借三本书
break;//使用关键字break跳出循环
}else{
for(int n=0;n<=bookname.length;n++){//for循环语句
if(n>=bookname.length){
/*
* if条件语句,当n大于等于bookname数组的长度时,说明在数组中没有发现与输入书名相同的字符串
* 那么就会执行该条件语句,进行异常处理使用try-catch语句块
*/
try{
throw new Exception("此书不存在!"); //抛出异常说明“此书不存在”
}
catch(Exception e){
e.printStackTrace();//使用printStrackTrace()方法打印输出异常位置
System.out.println("请重新输入!");
i--;//i减去1,忽略此次循环次数
continue;//使用continue关键字重新开始循环,重新输入书名
}
}
if(bookname[n].equals(booknames)){
/*
* if条件语句,寻遍bookname数组,是否有字符串与输入的书名相同
* 如果有则将该书名储存在数组names中
* 若果没有则在上一个if语句中会判断出
*/
names[j]=booknames;
j++;
System.out.println("您的选择是:《"+booknames+"》");
break;//使用break关键字跳出内部for循环,再输入下一本要借的书名
}
}
}
}System.out.println("下面是您选的三本书:");
System.out.println(Arrays.toString(names));//打印输出所借的三本书名
break;//使用break关键字跳出switch循环结束借书操作
case 2:
int m=0;
String[] names1=new String[3];//创建一个数组,储存选择的书名
for(int i=0;i<bookname.length;i++){
System.out.print("请输入书序号:");
int booknumber=input.nextInt();//创建输入书序号的入口
if(i>2){
System.out.println("抱歉!您最多可以借三本书!");
break;
}else if(booknumber-1>6||booknumber-1<=0){
try{
throw new Exception("此书不存在!");
}
catch(Exception e){
e.printStackTrace();
System.out.println("请重新输入!");
i--;
continue;
}
}else if(booknumber-1>0&&booknumber-1<=6){
names1[m]=bookname[booknumber-1];
m++;
System.out.println("您的选择是:《"+bookname[booknumber-1]+"》");
}
}System.out.println("下面是您选的三本书:");
System.out.println(Arrays.toString(names1));
}System.out.println("欢迎再次使用!");
}
}
希望大神能指点一下,其中还有一些不足,有时间我想把两种查询方式改成两个类,然后用一个测试类调用,就可以在打印出借的三本书后,如果不满意可以重新再选择
有空再写
//书名查找类
package com.democ2;
import java.util.*;
public class Bookname {
public void run(){
System.out.println("请浏览书籍:");
String[] bookname={"论语","三字经","诗经","西游记","水浒传","三国演义","红楼梦"};
System.out.println(Arrays.toString(bookname));//打印输出系统中的丛书
int j=0;
@SuppressWarnings("resource")
Scanner input=new Scanner(System.in);
String[] names=new String[3];//创建一个数组,储存选择的书名
for(int i=0;i<bookname.length;i++){//for循环语句
System.out.print("请输入书名:");
String booknames=input.next();//创建输入书名的入口
if(i>2){//if条件语句
System.out.println("抱歉!您最多可以借三本书!");//规定每次只能借三本书
break;//使用关键字break跳出循环
}else{
for(int n=0;n<=bookname.length;n++){//for循环语句
if(n>=bookname.length){
/*
* if条件语句,当n大于等于bookname数组的长度时,说明在数组中没有发现与输入书名相同的字符串
* 那么就会执行该条件语句,进行异常处理使用try-catch语句块
*/
try{
throw new Exception("此书不存在!"); //抛出异常说明“此书不存在”
}
catch(Exception e){
e.printStackTrace();//使用printStrackTrace()方法打印输出异常位置
System.out.println("请重新输入!");
i--;//i减去1,忽略此次循环次数
continue;//使用continue关键字重新开始循环,重新输入书名
}
}
if(bookname[n].equals(booknames)){
/*
* if条件语句,寻遍bookname数组,是否有字符串与输入的书名相同
* 如果有则将该书名储存在数组names中
* 若果没有则在上一个if语句中会判断出
*/
names[j]=booknames;
j++;
System.out.println("您的选择是:《"+booknames+"》");
break;//使用break关键字跳出内部for循环,再输入下一本要借的书名
}
}
}
}System.out.println("下面是您选的三本书:");
System.out.println(Arrays.toString(names));//打印输出所借的三本书名
}
}
//书序号查找类
package com.democ2;
import java.util.*;
public class Booknumber {
public void run(){
System.out.println("请浏览书籍:");
String[] bookname={"论语","三字经","诗经","西游记","水浒传","三国演义","红楼梦"};
System.out.println(Arrays.toString(bookname));//打印输出系统中的丛书
int m=0;
@SuppressWarnings("resource")
Scanner input=new Scanner(System.in);
String[] names1=new String[3];//创建一个数组,储存选择的书名
for(int i=0;i<bookname.length;i++){
System.out.print("请输入书序号:");
int booknumber=input.nextInt();//创建输入书序号的入口
if(i>2){
System.out.println("抱歉!您最多可以借三本书!");
break;
}else if(booknumber-1>6||booknumber-1<0){
try{
throw new Exception("此书不存在!");
}
catch(Exception e){
e.printStackTrace();
System.out.println("请重新输入!");
i--;
continue;
}
}else if(booknumber-1>=0&&booknumber-1<=6){
names1[m]=bookname[booknumber-1];
m++;
System.out.println("您的选择是:《"+bookname[booknumber-1]+"》");
}
}System.out.println("下面是您选的三本书:");
System.out.println(Arrays.toString(names1));
}
}
//测试类
package com.democ2;
import java.util.Scanner;
public class Intiail {
public static void main(String[] args) {
System.out.println("##欢迎使用借书系统##");
System.out.println("1.书名查找;2.序号查找");
System.out.print("请输入您使用的查找方法:");
@SuppressWarnings("resource")
Scanner input=new Scanner(System.in);
int chioce=input.nextInt();//创建选择查找方法的输入口
switch(chioce){
case 1:
Bookname name=new Bookname();
name.run();
int num =1;
while(num>=1){
System.out.println("请您确认1.是,2.否");
int num1=input.nextInt();
num=num1;
switch(num1){
case 1:
break;
case 2:
name.run();
break;
}continue;
}
case 2:
Booknumber number=new Booknumber();
number.run();
int num2=1;
while(num2>=1){
System.out.println("请您确认1.是,2.否");
int num1=input.nextInt();
num2=num1;
switch(num1){
case 1:
break;
case 2:
number.run();
break;
}
continue;
}
}System.out.println("欢迎再次使用!");
}
}