• 慕课学习手记!(完成查找书籍小程序~)


    首先贴一下程序要完成的功能的要求!

    QQ截图20161031223300QQ截图20161031223242

    接下来贴一下主程序!

    初学者写的代码。。。用JAVA写的 

    package exc;
    //输入错误异常
    public class ErrorException extends Exception {
        public ErrorException(){
            System.out.println("命令输入错误!请根据提示输入数字命令!");
        }; 
    }
    
    
    package exc;
    //书籍不存在异常
    public class NoException extends Exception {
        //两个含参构造方法,第一个是‘图书名称不存在’异常
        public NoException(String name){
            System.out.println("图书"+name+"不存在");
        }
        //第二个是‘图书序号不存在’异常
        public NoException(int num){
            System.out.println("图书序号为"+num+"的书不存在");
        }
    }
    
    package exc;
    //建造的书籍类
    public class Book {
         String name;
         int num;
         public Book(){};
         //含参的构造方法 用来建造带有名字和序号的书籍类
        public Book(String name,int num){
            this.name=name;
            this.num=num;
        }        
    }
    
    
    
    package exc;
    
    
    import java.util.Scanner;
    
    public class Test {
        static Test qwer=new Test();
        Scanner reader=new Scanner(System.in);
        //构建书籍类数组
        Book[] books={new Book("高数", 1),
                new Book("语文", 2),
                new Book("英语", 3),
                new Book("物理", 4),
                new Book("化学", 5),
                new Book("生物", 6)
                };
        
        public static void main(String[] args) throws NoException  {
            // TODO Auto-generated method stub
            qwer.welcome();//提示欢迎
            qwer.xunhuan();    //调用循环函数,当出现错误时一直运行程序,直到找到正确的书籍
        }
        
        
        //程序运行的主体
            public void inputWelcome(int a) throws ErrorException, NoException{
                
                if (a==1) {
                    System.out.println("输入图书名称"    );//采用名称查找方法
                    String b=reader.next();
                    qwer.corrcetName(b);//用名称确认方法查找是否存在对应书籍
                    
                }else if (a==2) {
                    System.out.println("输入图书序号");//采用序号查找方法
                    int c=reader.nextInt();
                    qwer.corrcetNum(c);//用序号确认方法查找是否存在对应书籍
                    
                }else {
                    throw new ErrorException();//抛出输入错误异常
                }
            }
            
    //主干程序,完成框架
            public void retime() throws NoException{
                int a=reader.nextInt();
                try {
                    qwer.inputWelcome(a);
                } catch (ErrorException e) {
                    // TODO Auto-generated catch block
                    qwer.welcome();
                    qwer.retime();
                }
            }    
            
            
        //循环函数,当出现异常时,捕获输入错误异常,并继续执行    
        public void xunhuan(){
            try {
                qwer.retime();
            } catch (NoException e) {//捕获到输入错误异常时,继续执行程序,重新查找书籍
                // TODO Auto-generated catch block
                System.out.println("输入有误,请重新选择");
                qwer.welcome();
                qwer.xunhuan();
            }
        }
        
        
    //查找输入序号时的确认函数
        public void corrcetNum(int b) throws NoException{
            int i=0;
            //如果输入的序号大于数组长度或者为复数,则抛出输入错误异常
            if (b>books.length||b<0) {
                throw new NoException(b);
            }
            //数组一个个遍历,确认是否存在此序号书籍
            for (; i < books.length; i++) {
                 if(books[i].num==b){
                        System.out.println("book:"+books[i].name);
                        System.out.println("恭喜您找到自己需要的书籍了!");
                        break;
                    };
            }
            }
        
        
        
        
    //查找输入名称时的确认函数
        public void corrcetName(String b) throws NoException{
            int i = 0;
            //数组一个个遍历,确认是否存在此名称书籍
            for (; i < books.length;i++) {
                  if(books[i].name.equals(b)){
                        System.out.println("book:"+books[i].name);
                        System.out.println("恭喜您找到自己需要的书籍了!");
                        break;
                    };    
            }
            //当遍历完整个程序,还是没有找到输入名称书籍,则抛出书籍不存在异常
            if (i==books.length) {
                throw new NoException(b);
            }    
            }
        
        
        
        
    
    
        //欢迎界面
        public void welcome(){
            System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找名称");
        }
    }

    希望大家看到程序的可以去跑一跑!一起参考交流一下~!

  • 相关阅读:
    第04组 Alpha冲刺(4/6)
    第04组 Alpha冲刺(3/6)
    第04组 Alpha冲刺(2/6)
    第04组 Alpha冲刺(1/6)
    第04组 团队Git现场编程实战
    第04组 团队项目-需求分析报告
    团队项目-选题报告
    第二次结对编程作业
    第04组 Alpha冲刺(6/6)
    第04组 Alpha冲刺(5/6)
  • 原文地址:https://www.cnblogs.com/blackiesong/p/6035939.html
Copyright © 2020-2023  润新知