文章

Practice2

2020.10.9 ・ 共 2070 字,您可能需要 5 分钟阅读

Tags: 代码

public class Test1 {
  public static void main(String[] args) {
    int[][] a =
        new int[][] {
          {1, 2, 3, 4, 5},
          {1, 2, 3, 4, 5},
          {1, 2, 3, 4, 5},
          {1, 2, 3, 4, 5},
          {1, 2, 3, 4, 5}
        };
    for (int[] b : a) {
      for (int c : b) {
        System.out.println(c);
      }
    }
  }
}

public class Test2 {
  public static void main(String[] args) {
    for (int i = 1; i < 6; ++i) {
      for (int j = 1; j <= i; ++j) {
        if (j != i) System.out.print(j);
        else {
          System.out.println(j);
        }
      }
    }
  }
}

public class Test3 {
  public static void main(String[] arg) {
    int[][] a = new int[][] {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
    int[][] d = new int[3][3];
    for (int i = 0; i < a.length; ++i) {
      for (int j = 0; j < a[i].length; ++j) {
        d[i][j] = a[j][i];
      }
    }

    for (int[] b : d) {
      for (int c : b) {
        System.out.print(c);
      }
      System.out.println(" ");
    }
  }
}

// 1、	定义一个计算类,属性:两个整形数;方法:构造函数、求两个数的和,求两个数的差;定义一个对象,调用求和、求差的函数计算结果。
public class Test4 {
  public static void main(String[] args) {
    Cal a = new Cal(1, 2);
    System.out.println(a.plus());
    System.out.println(a.minus());
  }
}

class Cal {
  private int a;
  private int b;

  Cal(int a, int b) {
    this.a = a;
    this.b = b;
  }

  public int plus() {
    return this.a + this.b;
  }

  public int minus() {
    return this.a - this.b;
  }
}

// 2、	定义一个长方形类,属性:长、宽;方法:构造函数、计算求面积、计算求周长;定义一个对象,计算长方形的面积和周长。
public class Test5 {
  public static void main(String[] args) {
    T a = new T(6f, 8f);
    System.out.println(a.mianji());
    System.out.println(a.zhouchang());
  }
}

class T {
  private float a;
  private float b;

  T(float a, float b) {
    this.a = a;
    this.b = b;
  }

  public float mianji() {
    return a * b;
  }

  public float zhouchang() {
    return 2 * (a + b);
  }
}

// 3、	定义一个人类,属性:姓名,年龄,性别;方法:构造函数,修改年龄;定义一个对象,设置年龄为20,输出姓名、年龄和性别。
public class Test6 {
  public static void main(String[] args) {
    Person a = new Person("名字", 10, "男");
    a.changeAge(20);
    System.out.printf("%s %d %s", a.name, a.age, a.sex);
  }
}

class Person {
  String name;
  int age;
  String sex;

  Person(String name, int age, String sex) {
    this.name = name;
    this.age = age;
    this.sex = sex;
  }

  public void changeAge(int newAge) {
    this.age = newAge;
  }
}

// 4、
//	定义一个日期类,属性:年、月、日;方法:设置日期(包括年、月、日)、计算是否是闰年、比较日期的前后(输入一个日期,计算两者的差);定义一个对象,设置日期为当前日期,查看今年是否为闰年,计算距离2019年12月31日还有几天。
public class Test7 {
  public static void main(String[] args) {
    Date a = new Date();
    a.setDate(2020, 10, 6);
    System.out.println(a.isLeap());
  }
}

class Date {
  int year;
  int month;
  int day;

  public void setDate(int year, int month, int day) {
    this.day = day;
    this.month = month;
    this.year = year;
  }

  public boolean isLeap() {
    if (this.year % 4 == 0 && this.year % 100 != 0) return true;
    else if (this.year % 400 == 0 && this.year % 3200 != 0) return true;
    else if (this.year % 80000 == 0) return true;
    else return false;
  }
}

// 5、	定义一个数类,属性:一个浮点型数;方法:构造函数、输出它的整数部分、输出它的小数部分、输出它的绝对值、输出它的相反数;定义一个对象(1.2),调用它的所有方法。
public class Test8 {
  public static void main(String[] args) {
    Num a = new Num(3.32f);
    a.outAbsoluteValue();
    a.outDecimal();
    a.outInteger();
    a.outOppositeNumber();
  }
}

class Num {
  float num;

  Num(float num) {
    this.num = num;
  }

  public void outInteger() {
    System.out.println((int) this.num);
  }

  public void outDecimal() {
    String str = String.valueOf(num).replaceAll("\\d+\\.", "");
    System.out.println("0." + str);
  }

  public void outAbsoluteValue() {
    System.out.println(this.num >= 0 ? this.num : 0 - this.num);
  }

  public void outOppositeNumber() {
    System.out.println(0 - this.num);
  }
}

// 6、	定义一个向量类,属性:一个维度为3的向量(int a[]=new int[3]; int
// x1,x2,x3;);方法:设置向量的值、求向量的长度(Math.sqrt(num))、求两个向量的内积(输入另外一个向量);定义一个对象,设置向量的值为(1,0,0),求向量的长度,计算该向量和(0,1,0)的内积。
public class Test9 {
  public static void main(String[] args) {
    Vector a = new Vector();
    a.setV(1, 0, 0);
    a.outLength();
    System.out.println(a.getNei(0, 1, 0));
  }
}

class Vector {
  int[] a = new int[3];
  int x1, x2, x3;

  public void setV(int x1, int x2, int x3) {
    this.x1 = x1;
    this.x2 = x2;
    this.x3 = x3;
  }

  public void outLength() {
    int num = x1 * x1 + x2 * x2 + x3 * x3;
    System.out.println(Math.sqrt(num));
  }

  public int getNei(int x, int y, int z) {
    return x1 * x + x2 * y + x3 * z;
  }
}

// 7、	定义一个成绩类,属性:一个int数组(有10个元素),均分;方法:输入成绩、求均分、求最高分、求不及格人数;定义一个对象,输入10个人成绩,求均分、求最高分和不及格人数。
public class Test10 {
  public static void main(String[] args) {
    Grades a = new Grades();
    a.setGrades(new int[] {65, 34, 87, 45, 67, 25, 28, 89, 59, 19});
    System.out.println(a.getAvg());
    System.out.println(a.getMax());
    System.out.println(a.getNotPass());
  }
}

class Grades {
  int[] arr = new int[10];
  int avg;

  public void setGrades(int[] a) {
    for (int i = 0; i < 10; ++i) {
      arr[i] = a[i];
    }
  }

  public int getAvg() {
    for (int i : arr) {
      avg += i;
    }
    return avg /= 10;
  }

  public int getMax() {
    int max = arr[0];
    for (int i : arr) {
      if (i > max) {
        max = i;
      }
    }
    return max;
  }

  public int getNotPass() {
    int a = 0;
    for (int i : arr) {
      if (i < 60) {
        a++;
      }
    }
    return a;
  }
}

// 8、	定义一个排序类,属性:一个int数组(有5个元素);方法:实现冒泡排序、实现选择排序;定义一个对象(1,12,-5,90,11),调用函数实现排序。
public class Test11 {
  public static void main(String[] args) {
    Sort a = new Sort(new int[] {1, 12, -5, 90, 11});
    a.bubbleSort();
    for (int i : a.arr) {
      System.out.println(i);
    }
    a.selectSort();
    for (int i : a.arr) {
      System.out.println(i);
    }
  }
}

class Sort {
  int[] arr = new int[5];

  Sort(int[] a) {
    for (int i = 0; i < 5; ++i) {
      arr[i] = a[i];
    }
  }

  public void bubbleSort() {
    for (int i = 0; i < arr.length - 1; i++) {
      for (int j = 0; j < arr.length - i - 1; j++) {

        if (arr[j] > arr[j + 1]) {
          int tmp = arr[j];
          arr[j] = arr[j + 1];
          arr[j + 1] = tmp;
        }
      }
    }
  }

  public void selectSort() {
    if (arr == null || arr.length == 0) {
      return;
    }

    for (int i = 0; i < arr.length - 1; i++) {
      int min = i;
      for (int j = i + 1; j < arr.length; j++) {
        if (arr[j] < arr[min]) {
          min = j;
        }
      }

      if (i != min) {
        int tmp = arr[i];
        arr[i] = arr[min];
        arr[min] = tmp;
      }
    }
  }
}

// 9、
//	定义一个线性表类,属性:一个int数组(有10个元素)、表头、表尾;方法:输出表头元素、在第i个位置插入元素a,在表尾删除元素,遍历(输出所有元素);定义一个线性表,在表尾分别插入1,2,3,4,5,输出表头元素,删除最后一个元素,输出所有元素。
public class Test12 {
  public static void main(String[] args) {
    List a = new List();
    a.insertNum(1, 1);
    a.insertNum(2, 2);
    a.insertNum(3, 3);
    a.insertNum(4, 4);
    a.insertNum(5, 5);
    a.outHead();
    a.deleteTailNum();
    a.outAll();
  }
}

class List {
  int[] arr = new int[10];
  int head = 0;
  int tail = -1;

  public void outHead() {
    System.out.println(arr[head]);
  }

  public void insertNum(int num, int i) {
    for (int h = tail; h > i - 2; --h) {
      arr[h + 1] = arr[h];
    }
    arr[i - 1] = num;
    tail++;
  }

  public void deleteTailNum() {
    arr[tail--] = 0;
  }

  public void outAll() {
    for (int i = head; i <= tail; ++i) {
      System.out.println(arr[i]);
    }
  }
}

import java.util.ArrayList;

// 10、	定义一个堆栈类,属性:堆栈、堆栈实际大小、堆顶;方法:入栈、出堆、得到栈顶元素;定义一个堆栈,将5、10、2依次入栈,输出栈顶元素,将2出栈。
public class Test13 {
  public static void main(String[] args) {
    Stack s = new Stack();
    s.push(5);
    s.push(10);
    s.push(20);
    s.pop();
    System.out.println(s.getTop());
  }
}

class Stack {
  ArrayList<Integer> list = new ArrayList<>();
  // 栈大小
  int n = 0;
  int top;

  public void push(int o) {
    list.add(o);
    top = o;
    n++;
  }

  public int getTop() {
    return top;
  }

  public int pop() {
    int temp = list.get(n - 1);
    list.remove(n - 1);
    top = list.get(n - 2);
    n--;
    return temp;
  }
}