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[i]=in.nextInt(); } for(int i=b.length-1;i>0;i--){ for(int j=0;j
if(b[j]
index=b[j];b[j]=b[j+1];b[j+1]=index;} } }for(int i=0;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[i]=in.nextInt(); } for(int j=0;j d[j]=in.nextInt(); } for(int k=0;k e[k]=c[k]; } for(int k=c.length,i=0;k e[k]=d[i]; } Arrays.sort(e); for(int k=0;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[i]=in.nextInt(); } if (b == null || b.length < 2) { for(int i=0;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 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 for(int j=0;j
b [i][j]=sc.nextInt(); }} for(int i=0;i for(int j=0;j c[i][j]=b[j][i]; }} for(int i=0;i for(int j=0;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 for(j=0;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 for(int j=0;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 for(int j=0;j if(max { max=a[i][j]; maxj=j; maxi=i; } } } for(int i=0;i for(int j=0;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盘类实现它,具体要求是: 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 for(int j=0;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; }裁判测试程序样例:
裁判测试程序样例:
裁判测试程序样例:
1.接口名字为USB,里面包括两个抽象方法:
void work();描述可以工作
void stop(); 描述停止工作
2.完成类Mouse,实现接口USB,实现两个方法:裁判测试程序样例:
裁判测试程序样例:



