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

java作业。。

老师布置胡作业谁做了,借我看看哦

正在回答

5 回答

package library;

import java.util.Scanner;

public class BookScanner {



public static void main(String[] args) { 

 String []bookName={"毛概","光纤通信","星系奇缘","量子力学","goutou大美","都市妖侠传","七剑下天山"};

while(true){

System.out.println("欢迎来到工大图书馆查询系统");

System.out.println("请输入命令:1-按照名称查找图书;2-按照序号查询图书");

Scanner input=new Scanner(System.in);

String book;

try{

int a=input.nextInt();

switch(a){

case 1:

System.out.println("请输入你要查找的图书名");

book=bookname(bookName);

System.out.println("book:"+"《"+book+"》");

break;

case 2:

System.out.println("请输入你所查找图书序号");

book=booknum(bookName);

System.out.println("book:"+"《"+book+"》");

break;

default://其他值的命令均认为是错误命令

System.out.println("命令输入错误!");

continue;

}

break;

}catch(Exception e){


}

}

}

public static String bookname(String[] bookName)throws Exception {

System.out.println("输入图书名称:");

Scanner in=new Scanner(System.in);

//获取输入的图书名称

String name = in.next();

for (int i = 0; i < bookName.length; i++) {

if (name.equals(bookName[i]))

//输入的名称与某一图书名称匹配,返回该图书

return bookName[i];

}

//若无匹配,抛出”图书不存在异常“

throw new Exception("图书不存在!");

}

public static String booknum(String[] bookName)throws Exception {

System.out.println("输入图书序号:");

Scanner in=new Scanner(System.in);

//获取输入的图书名称

int b = in.nextInt();

for (int i = 0; i < bookName.length; i++) {

if (b==i)

//输入的名称与某一图书名称匹配,返回该图书

return bookName[i];

}

//若无匹配,抛出”图书不存在异常“

throw new Exception("图书不存在!");

}

}



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

珂珂凉 提问者

非常感谢!你的帮助
2016-04-16 回复 有任何疑惑可以回复我~

public static void Bookstart()throws Exception{
        System.out.println("******书号查询号请按:1;书名查询请按:0******");
        Scanner sc = new Scanner(System.in);
        try {
            int ture = sc.nextInt();
            if(ture==1){
                System.out.println("******输入图书"+"序号******");
                    BookNum();
            }
            else if(ture==0){
                System.out.println("******输入图书"+"名称******");    
                    BookName();
                }
            else{
                    throw new Exception("******输入信息有误请重新输入(1/0)******");
                }
        } catch (Exception e) {
            System.out.println("******输入信息有误请重新输入(1/0)******");
            Bookstart();
        }
    }

这段输入非数字不会死循环么?比如说输入“ssss”

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

package test5;

import java.util.Scanner;

public class Booksystem {

    static String[] bookname={"高数","程序编程","大学英语","操作系统","Java"};

    public static void main(String[] args) throws Exception {
        Bookstart();
    }
    
    public static void Bookstart()throws Exception{
        System.out.println("******书号查询号请按:1;书名查询请按:0******");
        Scanner sc = new Scanner(System.in);
        try {
            int ture = sc.nextInt();
            if(ture==1){
                System.out.println("******输入图书"+"序号******");
                    BookNum();
            }
            else if(ture==0){
                System.out.println("******输入图书"+"名称******");    
                    BookName();
                }
            else{
                    throw new Exception("******输入信息有误请重新输入(1/0)******");
                }
        } catch (Exception e) {
            System.out.println("******输入信息有误请重新输入(1/0)******");
            Bookstart();
        }
    }
    
    public static void BookNum()throws Exception{
        Scanner sc = new Scanner(System.in);
        try {        
            int num = sc.nextInt();
            if(num<=bookname.length&&num>0){
                System.out.println("******序号"+num+"."+bookname[num-1]+"******");
            }
            else{
                throw new Exception();
            }
        } catch (Exception e) {
            System.out.println("******输入信息有误请重新输入******");
            BookNum();
        }
        Bookstart();
    }
    
    public static void BookName() throws Exception{
        Scanner sc = new Scanner(System.in);
        try {
            String name = sc.next();
            for(int i = 0;i<bookname.length;i++){
                if(bookname[i].equals(name)){
                    int num=i+1;
                System.out.println("******序号"+num+"."+bookname[i]+"******");   
                break;
                    }else{
                        throw new Exception();
                    }                    
            }
           
        } catch (Exception e) {
            System.out.println("******输入信息有误请重新输入******");
            BookName();
        }
        Bookstart();
    }  
}



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

ran1021

哭笑不得...(根据书名的方法还是不对...
2016-05-11 回复 有任何疑惑可以回复我~
#2

ran1021

我已经解决了。在 throw new Exception()前加个条件if(i==bookname.length-1),循环完了再提示没找到。
2016-05-11 回复 有任何疑惑可以回复我~
#3

森特 回复 ran1021

噢噢!偷懒只试了高数没有试其他的书名_(:з」∠)_
2016-05-11 回复 有任何疑惑可以回复我~

package tushu;


import java.util.Scanner;


public class book {

    int bookNum;

    String bookName;

    

    public book(int bookNum,String bookName){

    this.bookNum=bookNum;

    this.bookName=bookName;

    }

    

    public  static void choose1(String  bookName,book[] book){

    int k=0;

    for(int i=0;i<book.length;i++){

    if(book[i].bookName.equals(bookName)){

    System.out.println("book:"+book[i].bookName);

    k=1;

    }

    }  

    if(k!=1){  

      System.out.println("图书不存在!");

    }

    }

    

    public static void choose2(int bookNum,book[] book){

    int k=0;

    for(int i=0;i<book.length;i++){

    if(book[i].bookNum==bookNum){

    System.out.println("book:"+book[i].bookName);

    k=1;

   

    }

    }

    if(k!=1){

      System.out.println("图书不存在!");

     

    }

   

    }

    

    

public static void main(String[] args) {

// TODO Auto-generated method stub

book[] book=new book[10];

book book0=new book(1,"高数");

book book1=new book(2,"数据结构");

book book2=new book(3,"体育");

book book3=new book(4,"离散数学");

book book4=new book(5,"微机");

book book5=new book(6,"PHP");

book book6=new book(7,"MySql");

book book7=new book(8,"英语");

book book8=new book(9,"计算机网络");

book book9=new book(10,"C语言");

book[0]=book0;

book[1]=book1;

book[2]=book2;

book[3]=book3;

book[4]=book4;

book[5]=book5;

book[6]=book6;

book[7]=book7;

book[8]=book8;

book[9]=book9;

while(true){

          System.out.println("输入命令:1--按照名称查找图书   2--按照序号查找图书 ");

          Scanner i=new Scanner(System.in);

          try {

              int choose = i.nextInt();

              if (choose == 1) {

             System.out.println("请输入要查找图书的书名:");

             Scanner t=new Scanner(System.in);

             String bookName=t.next();

             choose1(bookName,book);

             

              } else if (choose == 2) {

             System.out.println("请输入要查找图书的编号:");

             Scanner t=new Scanner(System.in);

             int bookNum=t.nextInt();

             choose2(bookNum,book);

              } else {

                  //重新初始化系统

                  main(null);

              }

          } catch (Exception e) {

              System.out.println("输入类型有误");

          }

      }

}



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

public class Booksystem {
    static Scanner sc = new Scanner(System.in);
    static String[] bookname={"高数","程序编程","大学英语","操作系统","Java"};

    public static void main(String[] args) throws Exception {
        System.out.println("******书号查询号请按:1;书名查询请按:0:******");
        Bookstart();
    }
    
    public static void Bookstart()throws Exception{
        try {
            int ture = sc.nextInt();
            if(ture==1){
                System.out.println("******输入图书"+"序号******");
                    BookNum();
            }
            else if(ture==0){
                System.out.println("******输入图书"+"名称******");    
                    BookName();
                }
            else{
                    throw new Exception("******输入信息有误请重新输入(1/0)******");
                }
        } catch (Exception e) {
            System.out.println("******输入信息有误请重新输入(1/0)******");
            Bookstart();
        }
    }
    
    public static void BookNum()throws Exception{
        try {        
            int num = sc.nextInt();
            if(num<=bookname.length&&num>0){
                System.out.println("******序号"+num+"."+bookname[num-1]+"******");
            }
            else{
                throw new Exception("******输入信息有误请重新输入******");
            }
        } catch (Exception e) {
            System.out.println("******输入信息有误请重新输入******");
            BookNum();
        }
    }
    
    public static void BookName() throws Exception{
        try {
            String name = sc.next();
            for(int i = 0;i<bookname.length;i++){
                if(name == bookname[i]){
                System.out.println("******序号"+i+1+"."+name+"******");            
                    }else{
                        throw new Exception("******输入信息有误请重新输入******");
                    }                            
            }
        } catch (Exception e) {
            System.out.println("******输入信息有误请重新输入******");
            BookName();
        }
    }  
}

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

ran1021

根据书名的方法好像有错误,不过我没找到...
2016-05-06 回复 有任何疑惑可以回复我~
#2

森特 回复 ran1021

抱歉啊,居然放上了错误的代码。错误的地方是BookName()中的if语句不能用双等要用equals方法(而且漏了写break;),还有其中syso语句中的“"****"+i+1+"****"”,需要再定义变量num=i+1。
2016-05-07 回复 有任何疑惑可以回复我~
#3

ran1021 回复 森特

嗯嗯,我也发现了,不过还是谢谢。
2016-05-10 回复 有任何疑惑可以回复我~
#4

ran1021 回复 森特

这么改了还是不对哎,可以请教下哪里有问题吗
2016-05-10 回复 有任何疑惑可以回复我~
#5

森特 回复 ran1021

因为我用的是出现异常重新执行该方法,scanner创建实例不能用static方法公用,要每个类定义一个,否则输入错误的时候会造成无法获取键盘输入而造成死循环。
2016-05-11 回复 有任何疑惑可以回复我~
#6

森特 回复 ran1021

修改之后的代码放在楼下了_(:з」∠)_
2016-05-11 回复 有任何疑惑可以回复我~
查看3条回复

举报

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

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

进入课程

java作业。。

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