其他。。。。

7-1 数组排序

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int a=in.nextInt();

        int []b=new int[a];

        int index;

        for(int i=0;i<b.length;i++){

            b[i]=in.nextInt();

        }

        for(int i=b.length-1;i>0;i--){

            for(int j=0;j<i;j++){

                if(b[j]<b[j+1])  {

                    index=b[j];b[j]=b[j+1];b[j+1]=index;}

          

        }

        }for(int i=0;i<b.length;i++){

         System.out.print(b[i]+" ");}

    }

    }

7-2 数组合并

import java.util.Scanner;

import java.util.Arrays;

public class Main{

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int a=in.nextInt();

        int b=in.nextInt();

        int []c=new int [a];

        int []d=new int [b];

        int []e=new int [a+b];

        for(int i=0;i<c.length;i++){

            c[i]=in.nextInt();

        }

        for(int j=0;j<d.length;j++){

            d[j]=in.nextInt();

        }

        for(int k=0;k<c.length;k++){

            e[k]=c[k];

        }

         for(int k=c.length,i=0;k<e.length;k++,i++){

            e[k]=d[i];

        }

        Arrays.sort(e);

        for(int k=0;k<e.length;k++){

            System.out.print(e[k]+" ");

        }

}}

7-3 数组重排

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int a=in.nextInt();

        int [] b=new int [a];

        for(int i=0;i<b.length;i++){

            b[i]=in.nextInt();

        }

        if (b == null || b.length < 2) {

            for(int i=0;i<b.length;i++){

            System.out.print(b[i]+" ");

        }

        }

        int start = 0;

        int end = b.length - 1;

        while (start < end) {

            while (start < end && b[start] % 2 != 0) {

                start++;

            }

            while (start < end && b[end] % 2 == 0) {

                end--;

            }

            int temp = b[start];

            b[start] = b[end];

            b[end] = temp;

        }

        for(int i=0;i<b.length;i++){

            System.out.print(b[i]+" ");

        }}

}

7-1 二维数组转置

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int a=sc.nextInt();

        int [][] b=new int [a][a];

        int [][] c=new int [a][a];

        for(int i=0;i<b.length;i++){

            for(int j=0;j<b[i].length;j++){

                b [i][j]=sc.nextInt();

            }}

        for(int i=0;i<c.length;i++){

            for(int j=0;j<c[i].length;j++){

                c[i][j]=b[j][i];

            }}

    for(int i=0;i<c.length;i++){

        for(int j=0;j<c[i].length;j++){

            System.out.print(c[i][j]+" ");

        }

        System.out.println();

    }

}}

7-2 求对角线的和 

import java.util.Scanner;

public class Main{

    public static void main(String[] args)

    {

        Scanner sc = new Scanner(System.in);

        int n=sc.nextInt();

        int i,j;

        int sum1=0,sum2=0,sum=0;

        int[][] a= new int[n][n];

        for(i=0;i<n;i++){

            for(j=0;j<n;j++){

                a[i][j]=sc.nextInt();

                if(i==j)sum1+=a[i][j];

                if(i+j==n-1)sum2+=a[i][j];

                if(n%2!=0)sum = sum1+sum2-a[(n-1)/2][(n-1)/2];

                else sum=sum1+sum2;

            }

        }

        System.out.print(sum);

    }

}

7-3 求二维数组的最大最小值

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int n=in.nextInt();

        int[][]  a = new int[n][n];

        for(int i=0;i<n;i++){

            for(int j=0;j<n;j++){

                a[i][j]=in.nextInt();

            }

        }

        int min=a[0][0],mini=0,minj=0;

        int max=a[0][0],maxi=0,maxj=0;

        for(int i=0;i<n;i++){

            for(int j=0;j<n;j++){

                if(max<a[i][j])

                {

                    max=a[i][j];

                    maxj=j;

                    maxi=i;

                }

            }

        }

        for(int i=0;i<n;i++){

            for(int j=0;j<n;j++){

                if(min>a[i][j])

                {

                    min=a[i][j];

                    minj=j;

                    mini=i;

                }

            }

        }

        System.out.println("MAX=("+maxi+","+maxj+")");

        System.out.print("MIN=("+mini+","+minj+")");

    }

}

6-1 toString方法 (10 分)

给Student类添加toString方法,返回Student的信息,格式为学号,姓名,年龄

public String toString(){

   return sno+","+name+","+age;

}

6-2 初识构造方法 (10 分)

定义Student类,要求类中定义一个无参构造方法,用于输出"This is a constructor"

裁判测试程序样例:

class Student{

    public Student() {

        System.out.print("This is a constructor");

 }

}

6-3 初识构造方法 (10 分)

在Student类中添加带String参数的构造方法,用于对设置name的值。

裁判测试程序样例:

public Student(String name) {

        this.name = name;

    }

    public void fun(){

        System.out.println(name);

}

6-1 学生、大学生、研究生类 (20 分)

定义Student学生类,拥有学号、姓名、性别属性,提供构造函数,以及相应属性的get set函数,提供函数attendClass(String className)表示上课。 定义CollegeStudent大学生类继承自Student类,拥有新增属性专业,提供构造函数,提供新增属性的get和set函数 定义GraduateStudent研究生类继承自CollegeStudent类,拥有新增属性导师,提供构造函数,提供新增属性的get和set函数,提供函数doResearch() 表示做研究(打印xx is doing research)。

main函数中对构造的类进行测试

class Student{

int no;

String name;

String sex;

public Student(int no,String name,String sex) {

this.no=no;

this.name=name;

this.sex=sex;

}

public void print() {

System.out.println("no: "+this.no);

System.out.println("name: "+this.name);

System.out.println("sex: "+this.sex);

}

}

class CollegeStudent extends Student{

String major;

public CollegeStudent(int no, String name, String sex,String major) {

super(no, name, sex);

this.major=major;

}

public void print() {

super.print();

System.out.println("major: "+this.major);

}

}

class GraduateStudent extends CollegeStudent{

String tutor;

public GraduateStudent(int no, String name, String sex, String major,String tutor) {

super(no, name, sex, major);

this.tutor=tutor;

}

public void print() {

super.print();

System.out.println("supervisor: "+this.tutor);

}

public void doResearch() {

System.out.println(this.name+" is doing research");

}

}

6-2 Shape类 (20 分)

定义一个形状类Shape,提供计算周长getPerimeter()和面积getArea()的函数 定义一个子类正方形类Square继承自Shape类,拥有边长属性,提供构造函数

abstract class Shape{

abstract double getPerimeter();

abstract double getArea();

}

class Square extends Shape{

double len;

public Square(double len) {

this.len=len;

    }

public double getPerimeter() {

return 4*this.len;

}

public double getArea() {

return this.len*this.len;

}

}

class Rectangle extends Square{

double broad;

public Rectangle(double len,double broad) {

super(len);

this.broad=broad;

}

@Override

public double getPerimeter() {

return 2*this.len+2*this.broad;

}

@Override

public double getArea() {

return this.len*this.broad;

}

}

class Circle extends Shape{

double r;

public Circle(double r) {

this.r=r;

}

@Override

public double getPerimeter() {

return 2*Math.PI*r;

}

@Override

public double getArea() {

return Math.PI*this.r*this.r;

}

}

6-3 Student继承Person (10 分)

Student继承Person类,增加int型成员变量sno。根据测试程序补充Student类。

裁判测试程序样例:

 int sno;

    public Student(int sno,String name,int age) {

super(name, age);

        this.sno=sno;

}

    public String toString(){

        return this.sno+","+name+","+age;

    }

6-1 面积求和 (5 分)

由于各种图形 求面积的方式不一样,为了使编写的程序能够适应求不同形状的面积和,当新增加一个图形的时候,不需要修改其他类,采用面向接口的编程,其类图如下图所示:

import java.awt.*;

import java.util.*;

import javax.swing.JPanel;

import java.io.*;

interface IGeometry {

    public double getArea();

}

class Rect implements IGeometry {

    public double a;

    public double b;

    public Rect(double a, double b) {

        super();

        this.a = a;

        this.b = b;

}

    public double getArea() {

        return a * b;

}

}

class Circle implements IGeometry {

    public double r;

    public Circle(double r) {

        super();

        this.r = r;

}

    public double getArea() {

        return r * r * 3.14;

}

}

class TotalArea {

    public IGeometry[] tuxing;

    public void setTuxing(IGeometry[] t) {

        this.tuxing = t;

}

    public double computerTotalArea() {

        double sum = 0.0;

        for (IGeometry i : tuxing) {

            sum += i.getArea();

}

        return sum;

}

}

6-2 Student排序 (10 分)

设计Student类,包括成员变量:String name和int age。实现Comp

class Student implements Comparable {

    private String name;

    private int age;

    public Student(String name,int age){

        super();

        this.name=name;

        this.age=age;

}

    public Student(){

        super();

}

    public String getName(){

        return name;

}

    public void setName(String name){

        this.name=name;

}

    public int getAge(){

        return age;

}

    public void setAge(int age){

        this.age=age;

}

    @Override

    public int compareTo(Object o){

        if(o instanceof Student){

            Student s=(Student) o;

            if(this.age>s.age){

                return 1;

            }else if(this.age==s.age){

                return 0;

            }else{

                return -1;

            }}

            return 0;

}

    @Override

    public String toString(){

        return name;

}

}

7-1 USB接口的定义 (10 分)

定义一个USB接口,并通过Mouse和U盘类实现它,具体要求是:
1.接口名字为USB,里面包括两个抽象方法:
void work();描述可以工作
void stop(); 描述停止工作
2.完成类Mouse,实现接口USB,实现两个方法:

interface USB{

    void work();

    void stop();

}

class Mouse implements USB{

    public void work() {

        System.out.println("我点点点");

}

    public void stop() {

    System.out.println("我不能点了");

}

}

class UPan implements USB{

public void work() {

        System.out.println("我存存存");

}

    public void stop() {

        System.out.println("我走了");

}

}

public class Main {

    public static void main(String[] args) {

    USB usb1;

    usb1=new Mouse();

    usb1.work();

    usb1.stop();

    USB[] usbs;

    usbs=new USB[2];

    usbs[0]=new UPan();

    usbs[1]=new Mouse();

    for(USB i:usbs)

    {

        i.work();

        i.stop();

}}}

6-1 动物体系 (20 分)

基于继承关系编写一个动物体系,具体的动物包含小狗和小猫。每只动物都有名字和颜色,都能够做自我介绍(introduce)。此外,小狗有智商属性(整数),能接飞盘(catchFrisbee(),方法体内输出一行“catch frisbee”即可),小猫有眼睛颜色属性,能抓老鼠(catchMouse(),方法体内输出一行“

abstract class Animal{

    String name;

    String color;

    public Animal(String name,String color){

        this.name=name;

        this.color=color;

    }

    public abstract void introduce();

}

class Dog extends Animal{

    int iq;

    public Dog(String name,String color,int iq){

        super(name,color);

        this.iq=iq;

    }

    public void introduce(){

        System.out.println("My name is "+this.name+","+" my color is "+this.color+","+" my IQ is "+this.iq);

    }

    public void catchFrisbee(){

        System.out.println("catch frisbee");

    }

}

class Cat extends Animal{

    String eyecolor;

    public Cat(String name,String color,String eyecolor){

        super(name,color);

        this.eyecolor=eyecolor;

    }

    public void introduce(){

        System.out.println("My name is "+this.name+","+" my color is "+this.color+","+" my eyecolor is "+this.eyecolor);

    }

    public void catchMouse(){

        System.out.println("catch mouse");

    }

}

class TestAnimal{

    public static void introduce(Animal a){

        if(a instanceof Dog){

            Dog d=(Dog) a;

            d.introduce();

        }else if(a instanceof Cat){

            Cat c=(Cat) a;

            c.introduce();

        }}

    public static void action(Animal a){

        if(a instanceof Dog){

            Dog d=(Dog) a;

            d.catchFrisbee();

        }else if(a instanceof Cat){

            Cat c=(Cat) a;

            c.catchMouse();

        }

}}

6-2 员工的工资 (10 分)

假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资(都是整数): (1)经理(Manager)——每月获得一份固定的工资 (2)销售

import java.util.*;

class Employee {

    int salary;

    public Employee() {

        this.salary = 0;

    }

    public Employee(int salary) {

        this.salary = salary;

    }

    public int getSalary() {

        return salary;

    }

    public void setSalary(int salary) {

        this.salary = salary;

    }

}

class Manager extends Employee {

    int salary;

    public Manager(int salary) {

        this.salary = salary;

    }

    public int getSalary() {

        return salary;

    }

    public void setSalary(int salary) {

        this.salary = salary;

    }

}

class Salesman extends Employee {

    int salary;

    int commission;

    public Salesman(int salary, int commission) {

        this.salary = salary;

        this.commission = commission;

    }

    public int getSalary() {

        return salary + commission;

    }

    public void setSalary(int salary, int commission) {

        this.salary = salary;

        this.commission = commission;

    }

}

class Worker extends Employee {

    int day;

    int daySalary;

    public Worker(int day, int daySalary) {

        this.day = day;

        this.daySalary = daySalary;

    }

    public int getSalary() {

        return daySalary * day;

    }

    public void setSalary(int day, int daySalary) {

        this.day = day;

        this.daySalary = daySalary;

}}

6-1 static属性成员 (10 分)

完成Student类的设计,类中包含一个static整型变量count,代表所有学生的人数。当实例化一个Student对象时,count值增加1,同时按格式输出当前的总Student人数。

class Student{

    static int count = 0;

    public Student(){

        count++;

        System.out.println("当前的Student总人数是:"+count);

    }

}

6-2 static方法成员

public static int max(int a,int b){

     return (a>b)?a:b;

}

6-1 匿名内部类 (10 分)

在下面的空白处填入代码,完成一个打印机的创建,完成输入输出功能。输出打印出this is print out;输入打印出the print getData:+输入的字符串。

裁判测试程序样例:

new IODevice() {

    @Override

    public void getData(String msg) {

        System.out.println("the print getData:"+msg);

}

    @Override

    public void out() {

        System.out.println("this is print out");

}

}

7-1 成绩录入时的及格与不及格人数统计 (10 分)

编写一个程序进行一个班某门课程成绩的录入,能够控制录入成绩总人数,对录入成绩统计其及格人数和不及格人数。设计一个异

import java.util.*;

class MyException extends Exception

{

 MyException(int s)

 {

  super(s+"invalid!");

 }

}

public class Main{

public static void main(String[] args) {

    Scanner in = new Scanner(System.in);

    int n =in.nextInt();

   int count1=0,count2=0;

   ArrayList<Integer> c = new ArrayList <> (n);

   for(int j=0;j<n;j++)

   {

    int z= in.nextInt();

    c.add(z);

    if(z>100||z<0)

     n++;

   }  

   for(int a:c)

 {

     try{

       if(a>100||a<0)

        throw new MyException(a);

       if(a<=100&&a>=60)

        count1++;

       if(a>=0&&a<60)

        count2++;

      }

     catch(MyException e)

     {

      System.out.println(e.getMessage());

     }

 }

 System.out.println(count1);

    System.out.println(count2);

}}

6-1 equals方法 (10 分)

重写Point类的equals方法(两个Point对象相等的条件是xPos和yPos都相等)。

裁判测试程序样例:

public boolean equals(Object obj) {

        if (obj.getClass().equals(this.getClass())) {

                Point that = (Point) obj;

                if (this.xPos == that.xPos && this.yPos ==that.yPos)

                    return true;

}

        return false;

}

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值