Java作业:第二次过程性考核 ——长春职业技术学院 16级网络工程

## 时间有限,脑力不足

## 只给出代码部分(附带注释)

码云 https://gitee.com/SoridoD/codes

7-5:

import java.util.Scanner;
class Person{
    private String name;    //题目要求private
    private int age;
    private boolean gender;
    private int id;
    Person(){
        System.out.println("This is constructor");
        System.out.printf("%s,%d,%b,%d\n",name,age,gender,id);    //布尔型 %b
    }
    public Person(String a,int b,boolean c){
        name=a;
        age=b;
        gender=c;
    }
    public String toString(){    //覆盖toString,要用String类型 返回,否则报错
        String className=this.getClass().getName();        //获取此对象类名
        return (className+" [name="+name+", age="+age+", gender="+gender+", id="+id+"]");
    }
    //以下是 setter,getter部分  实际题中没用到
    public void setname(String name){
        this.name=name;
    }
    public String getname(){
        return name;
    }
    public void setage(int age){
        this.age=age;
    }
    public int getage(){
        return age;
    }
    public void setgender(boolean gender){
        this.gender=gender;
    }
    public boolean getgender(){
        return gender;
    }    
    public void setid(int id){
        this.id=id;
    }
    public int getid(){
        return id;
    }
}
public class Main{
    public static void main(String[] args){
        Scanner read=new Scanner(System.in);
        int n=read.nextInt();    //对象数量
        int i;                    //用于循环
        Person[] personS;        //对象数组声明  (题中要求逆序,所以要保存数据)
        personS=new Person[n];    //对象数组初始化
        /* 
            nextInt()控制台输入后自带/n
            nextLine()获取控制台/n前的输入    
        */
        read.nextLine();        // 获取前面nextInt的/n。如果没有此行,会导致for第一次循环中的read.nextLine被跳过
        for (i=0;i<n;i++){    
            String readLine=read.nextLine();        //获取控制台的一行输入,赋值给字符串readLine
            String data[]=readLine.split(" ");        //将字符串readLine以空格为分隔,赋值给字符串组data
            personS[i]=new Person(data[0],Integer.valueOf(data[1]),Boolean.parseBoolean(data[2]));    //创建对象
        }
        for (i=n-1;i>=0;i--){    //逆序输出
            System.out.println(personS[i].toString());
        }
        Person personNone=new Person();        //无参构造
        System.out.println(personNone.toString());
    }
}

7-6:

import java.util.Scanner;
import java.util.Arrays;    //用于排序
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int[] grade = new int[5];        //声明数组
        for(int i=0; i<grade.length; i++){
            grade[i] = in.nextInt();
        }       
        RR rr = new RT(grade);
        double dd = rr.mark();
        System.out.printf("%.2f",dd);
    }
}
abstract class RR{
    int[] grade;
    public RR(int[] grade){
        this.grade = grade;
    }
    public abstract double mark();
}
class RT extends RR{
    RT(int[] grade){
        super(grade);    //调用父类有参构造函数
    }
    public double mark(){
        Arrays.sort(grade);        //将数组 升序排序
        return (double)(grade[1]+grade[2]+grade[3])/3;    //求平均值
    }
}

7-7:

 public class Main {
    public static void main(String[] args) {
        Son son = new Son();
        son.method();
    }
}
class Parent {
    Parent() {
        System.out.println("Parent's Constructor without parameter");
    }
    Parent(boolean b) {
        System.out.println("Parent's Constructor with a boolean parameter");
    }
    public void method() {
        System.out.println("Parent's method()");
    }
}
class Son extends Parent {
    Son() {
        super(true);    //调用父类有参构造 ()内true或false都可以
        System.out.println("Son's Constructor without parameter");
    }
    public void method() {
        System.out.println("Son's method()");
        super.method();
    }
}

7-8:

import java.util.Scanner;
class Point{
    double x;    //x坐标
    double y;    //y坐标
    Point(double x,double y){
        this.x=x;
        this.y=y;
    }
    public double distance(Point a){
        //和另一个点的距离
        //math.abs 绝对值,sqrt 根号,pow 幂
        return Math.abs(Math.sqrt(Math.pow((this.x-a.x),2)+Math.pow((this.y-a.y),2)));
    }
}
public class Main{
    public static void main(String[] args){
        Scanner read=new Scanner(System.in);
        //题目只输入两个点,所以未用for循环
        String readLine=read.nextLine();    //获取控制台一行 赋值给字符串readLine
        String[] data=readLine.split(" ");    //将字符串readLine以空格为分隔 赋值给字符串组data
        Point pointA=new Point(Integer.valueOf(data[0]),Integer.valueOf(data[1]));    //创建对象 点A
        readLine=read.nextLine();
        data=readLine.split(" ");    //之前有声明 所以不用String
        Point pointB=new Point(Integer.valueOf(data[0]),Integer.valueOf(data[1]));    //创建对象 点B
        System.out.printf("%.2f",pointA.distance(pointB));    //保留两位输出
    }
}

猜你喜欢

转载自www.cnblogs.com/SoridoD/p/9783714.html