为了账号安全,请及时绑定邮箱和手机立即绑定

借书系统的编程

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("欢迎再次使用!"); 

     }

}

希望大神能指点一下,其中还有一些不足,有时间我想把两种查询方式改成两个类,然后用一个测试类调用,就可以在打印出借的三本书后,如果不满意可以重新再选择

正在回答

2 回答

有空再写

0 回复 有任何疑惑可以回复我~

//书名查找类

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("欢迎再次使用!");

}

}


2 回复 有任何疑惑可以回复我~
#1

Beyond_Dream_

请问下你equals()方法没重写怎么就行了,我的没重写就怎么都不相等呢
2017-07-17 回复 有任何疑惑可以回复我~
#2

慕斯1379455 提问者 回复 Beyond_Dream_

那你看一下你的循环语句是否正确
2017-07-17 回复 有任何疑惑可以回复我~
#3

Beyond_Dream_ 回复 慕斯1379455 提问者

我在输入水浒传时,必须按下下方向键,让光标到下一行此时输入水浒传才能录入,如果不让光标移至下一行,直接输入,显示屏上显示的是水浒传,但事实录入的并不是
2017-07-18 回复 有任何疑惑可以回复我~
#4

Beyond_Dream_ 回复 Beyond_Dream_

String booknames=input.next(); for(int i=0;i<4;i++){ if(books[i].equals(booknames)){System.out.println("您查找的图书是"+booknames);} else{System.out.println("111");} } 这是我的代码
2017-07-18 回复 有任何疑惑可以回复我~
#5

慕斯1379455 提问者 回复 Beyond_Dream_

数组第一位是0,水浒传在数组4,你看一下你的数组是不是对应的数组4
2017-07-18 回复 有任何疑惑可以回复我~
查看2条回复

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409788    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

借书系统的编程

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信