当前位置:编程学习 > JAVA >>

跪求JAVA编程高手。帮我编两道题。

1、编写application,对6、1、4、8、5按照从小到大排序。

 

2、编写java应用程序,声明三个类:Ren、Teacher、Student,其中Ren是抽象类,Teacher类和Student类继承Person类,运行程序,分别输出一个Teacher类对象和一个Student类对象的详细信息。

答案:2,类的问题


abstract class Person {//建立一个抽象类人
 String name;
 int age;
 int id;//三个成员变量
 Person(String name,int age,int id) {//人的构造方法
  this.name = name;
  this.age = age;
  this.id = id;
 }
 
 public abstract void getInfo();//抽象法法得到信息
}

class Student extends Person {//学生类继承人类
 String school;//多了school成员变量
 Student(String name,int age,int id,String school) {//学生的构造方法
  super( name, age, id);//从父类继承构造方法
  this.school = school;//自己多出来的
  }
 
  public void getInfo() {//重写父类方法
  System.out.println("i am " +name+"i am "+age+
  " old"+"i in "+ school);
  
 }
}

class Teacher extends Person {
 String subject;
 Teacher(String name,int age,int id,String subject) {
  super(name,age,id);
  this.subject = subject;
 }
 
  public void getInfo() {
   System.out.println("i am "+name+"i am "+age+"old "+
  " i am teaching " +subject);
  
  }
 
}

public class Test01 {
 public static void main(String args[]) {
  Student s1 = new Student("jack",13,1,"xiaoxue");
  Teacher t1 = new Teacher("mike",33,23,"shuxue");
  s1.getInfo();
  t1.getInfo();
  }
}

1,数组排序      我根本贴补了 ,说我的答案太类似了,问问太垃圾了

1.给你一个全面点的

import java.util.Scanner;
import java.util.regex.Pattern;

/**
 * 排序算法练习
 *
 * @author yangpengwei
 */
public class SortTest {
 /**
  * 换杯算法
  *
  * @param arr 数组
  * @param i arr数组的下标
  * @param j arr数组的下标
  */
 public static void swap(int[] arr, int i, int j) {
  int temp = arr[i];
  arr[i] = arr[j];
  arr[j] = temp;
 }

 // 选择排序
 public static void sortSelection(int[] arr) {
  long begin = System.currentTimeMillis();
  for (int t = 0; t < 1000000; t++) {
   for (int i = 0; i < arr.length; i++) {
    for (int j = i; j < arr.length; j++) { //随着j的递增,依次排 j之前的序
     if (arr[j] < arr[i]) { //前第arr.length-j个就是排好序的,所以只用排序j之后的数
      swap(arr, i, j);
     }
    }
   }
  }
  long end = System.currentTimeMillis();
  for (int i = 0; i < arr.length; i++) {
   System.out.print(arr[i]);
   if (i < arr.length - 1) {
    System.out.print(",");
   }
  }
  System.out.println("");
  System.out.println("选择排序耗时:" + (end - begin));

 }

 //冒泡排序
 public static void sortBubble(int[] arr) {
  long begin = System.currentTimeMillis();
  for (int t = 0; t < 1000000; t++) {
   for (int i = 0; i < arr.length; i++) {
    for (int j = i; j < arr.length - 1; j++) { //循环j~arr.length之间的数
     if (arr[j + 1] < arr[j]) { //如是自己j小于后一个(j+1),就交换两个数的位置
      swap(arr, j + 1, j);
     }
    }
   }
  }
  long end = System.currentTimeMillis();
  for (int i = 0; i < arr.length; i++) {
   System.out.print(arr[i]);
   if (i < arr.length - 1) {
    System.out.print(",");
   }
  }
  System.out.println("");
  System.out.println("冒泡排序耗时:" + (end - begin));
 }

 //插入排序
 public static void sortInsertion(int[] arr) {
  long begin = System.currentTimeMillis();
  for (int t = 0; t < 1000000; t++) {
   for (int n = 1; n < arr.length; n++) {
    int m = n;
    while (arr[m - 1] > arr[m] && m <= 0) {
     arr[m] = arr[m - 1];
     m--;
    }
    arr[m] = arr[n];
   }
  }
  long end = System.currentTimeMillis();
  for (int i = 0; i < arr.length; i++) {
   System.out.print(arr[i]);
   if (i < arr.length - 1) {
    System.out.print(",");
   }
  }
  System.out.println("");
  System.out.println("插入排序耗时:" + (end - begin));
 }

 public static int partition(int[] arr, int low, int high) {
  int pivot, p_pos, i;
  p_pos = low;
  pivot = arr[p_pos];
  for (i = low + 1; i <= high; i++) {
   if (arr[i] < pivot) {
    p_pos++;
    swap(arr, p_pos, i);
   }
  }
  swap(arr, low, p_pos);
  return p_pos;
 }

 public static void quickSort(int[] arr, int low, int high) {
  int pivot;
  if (low < high) {
   pivot = partition(arr, low, high);
   quickSort(arr, low, pivot - 1);
   quickSort(arr, pivot + 1, high);
  }
 }

 //快速排序
 public static void sortQuick(int[] arr) {
  long begin = System.currentTimeMillis();
  for (int t = 0; t < 1000000; t++) {
   quickSort(arr, 0, 5);
  }
  long end = System.currentTimeMillis();
  for (int i = 0; i < arr.length; i++) {
   System.out.print(arr[i]);
   if (i < arr.length - 1) {
    System.out.print(",");
   }
  }
  System.out.println("");
  System.out.println("快速排序耗时:" + (end - begin));
 }

 public static void main(String[] args) {
int[] arr = new int[] { 6, 1, 4, 8,  5 };
  sortSelection(arr);
  sortBubble(arr);
  sortInsertion(arr);
  sortQuick(arr);
 }
}

public static void main(String[] args) {
    int []nums={6,1,4,8,5};
    Arrays.sort(nums);
    for (int i : nums) {
        System.out.println(i);
    }
第二题有四个类,不知道哪冒出来的Person
可以用这些数字来打印这种图形也算吧。

上一个:怎样精通C,C++,C#,VC和JAVA?
下一个:java面向对象程序设计做个简单是介绍啊谢谢

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,