那些年出现的作业

2020-07-03  本文已影响0人  公子请留步LookMe

Java面向对象之类的练习之模拟计算器

demo
import java.util.Scanner;

public class Calculation {

    //设计一个方法
    public float add(float a,float b){//加
        return a+b;
    }
    public float substact(float a,float b){//减
        return a-b;
    }
    public float multiply(float a,float b){//乘
        return a*b;
    }
    public float divide(float a,float b){//除
        return a/b;
    }
    //设计一个计算过程
    public void calculation(){
        Scanner input = new Scanner(System.in);
        System.out.println("请输入第一个数");
        String one = input.nextLine();
        float a = Float.parseFloat(one);
        while (true) {
            System.out.println("请输入符号");
            String symbol = input.nextLine();
            if (symbol.equals("=")){
                break;
            }
            if (!(symbol.equals("-")||symbol.equals("+")||symbol.equals("*")||symbol.equals("/"))){
                System.out.println("输入的符号有误");
                continue;
            }
            System.out.println("请输入第二个数");
            String two = input.nextLine();
            float b = Float.parseFloat(two);
            switch (symbol) {
                case "+":
                    a = this.add(a, b);
                    break;
                case "-":
                    a = this.substact(a, b);
                    break;
                case "*":
                    a = this.multiply(a, b);
                    break;
                case "/":
                    a = this.divide(a, b);
                    break;
            }
            System.out.println(a);
        }
    }
}
public class Test {
    public static  void main(String[] args){
        Calculation ca = new Calculation();
        ca.calculation();
    }


}

Java面向对象之类的练习之ArrayBox封装

demo

public class ArrayBox {
    //属性
    private  static  final  int DEFAULT_CAPACITY =10;
    private int[] elementData;
    private int size;
    //构造方法
    public ArrayBox(){
        elementData = new int[DEFAULT_CAPACITY];
    }
    public ArrayBox(int capacity){
        elementData =new int[capacity];
    }
    //小D同学
    public void rangeCheck(int index){
        if (index < 0 || index>=size){
            throw new BoxIndexOutOfBoundsException("Index:"+index+",size"+size);

        }
    }
    //小A需要去判断这个容器是否能装下要放的东西
    public void ensureCapacityInternal(int minCapacity){
        if (minCapacity-elementData.length>0){

            //如果不够 得进行扩容
            //可以自干 , 也可以在找一个人帮你干创建另一个方法
            //找了小B帮忙
            this.grow(minCapacity);
        }
    }
    //小B帮助扩容
    public void grow(int minCapacity){
        //获取久房间的容量
        int oldCapacity =elementData.length;
        //小B同学 做了一个算法
        int newCapacity = oldCapacity + (oldCapacity >> 1);
        //若按照这个很好的算法扩容 所需要的空间还不够 直接用minCapacity
        if (newCapacity - minCapacity < 0 ){
            newCapacity = minCapacity;
        }
        //经过通计算 最终获取到一个合理的长度newCapacity
        // 按照这个新的长度创建一个新的教室旧教室的椅子全部搬入到新教室中
        elementData = this.copyOf(elementData,newCapacity);
    }
    //小C同学->设计一个方法负贵创建-个新数组
    // 将旧数组的元素全部移入新数组内 干体力活的
    //需要新数组的长度需 要提供旧数组
    //需要告知新数组的位置---返回新数组
    //需要设计一个方法 用来添加元素
    public int[] copyOf(int[] oldArray,int newCapacity){
        //创建一个新的数组(新的小教师)
        int[] newArray = new int[newCapacity];
        //将旧数组元素全部
        for(int i=0;i<oldArray.length;i++){
            newArray[i] = oldArray[i];
        }
        return newArray;
    }
    //需要存一把椅子,告知用户一个结果是否存成功
    //一位同学拿了一把椅子想要存进教室
    //不知道教室容量多大 老师教给小A一个任务
    //小A去数教室能不能放下
    public boolean add(int element){
        this.ensureCapacityInternal(size+1);
        elementData[size++] = element;
        return true;
    }
    //设计一个方法 学生想要取椅子
    //提供什么条件(参数) 返回结果(返回参数)
    //提供获取元素的位置  获取位置上的那个元素
    public int get(int index){
        //你要获取椅子你要告诉我你要几把
        //然后在判断教师够不够你要的
        //叫小D同学去数
        this.rangeCheck(index);
        return elementData[index];
    }
    //删除
    public int remove (int index){
        this.rangeCheck(index);
        int oldValue = elementData[index];
        for (int i =index ;i<size-1;i++){
            elementData[i] = elementData[i+1];
        }
        elementData[--size] = 0;
        return oldValue;
    }
    public int size(){
        return this.size;
    }
}
public class BoxIndexOutOfBoundsException extends RuntimeException {
    public BoxIndexOutOfBoundsException(){}
    public BoxIndexOutOfBoundsException(String msg){
        super(msg);
    }
}
public class Test {

    public static  void main(String[] args){
/*        int[] array= new int[10];
        int[] newArray = new int[16];
        array = newArray;
        System.out.println(array+"="+newArray);*/
        ArrayBox box = new ArrayBox();
        for (int i =1;i<=6;i++){
            box.add(i*10);
        }
        System.out.println("有效元素个数:"+box.size());

        //获取全部元素
        for (int i = 0;i<box.size();i++){
            int value = box.get(i);
            System.out.print(value+" ");

        }
        System.out.println();
        //删除位置元素
        int removValue = box.remove(2);
        System.out.println(removValue);
        System.out.println(box.size());
        for (int i=0;i<box.size();i++){
            int value = box.get(i);
            System.out.print(value+" ");
        }


    }

}
上一篇下一篇

猜你喜欢

热点阅读