问答详情
源自:1-9 经验总结

借书系统的编程

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

     }

}

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

提问者:慕斯1379455 2017-07-13 21:47

个回答

  • SNOOPY_PRO
    2017-07-23 18:01:49

    有空再写

  • 慕斯1379455
    2017-07-13 23:08:03

    //书名查找类

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

    }

    }