import java.io.*;
///定义一个接口
interface Manage{
void display(StuAttribute a[]);
}
///定义学生的个个属性
class StuAttribute {
private String namber,name,sex;
private int grade;
StuAttribute(String namber,String name,String sex,int grade)
{
this.namber=namber;
this.name=name;
this.sex=sex;
this.grade=grade;
}
public String getNamber()
{
return namber;
}
public String getName()
{
return name;
}
public String getSex() {
return sex;
}
public int getGrade() {
return grade;
}
}
//对学生成绩进行处理,排序还有输出
class StuManage implements Manage
{
StuManage(StuAttribute a[],int n)
{
StuAttribute temp;
int incr=n/2;
while(incr>=1)//shell排序
{
for(int i=incr;i<n;i++)
{ temp=a[i];
int j=i;
while(j>=incr && temp.getGrade()<a[j-incr].getGrade())
{
a[j]=a[j-incr];
j-=incr;
}
a[j]=temp;
}
incr/=2;
}
}
public void display(StuAttribute a[])
{
System.out.println(a.length);
for(int i=0;i<a.length;i++)
{
System.out.println(a[i].getNamber());
System.out.println(a[i].getName());
System.out.println(a[i].getSex());
System.out.println(a[i].getGrade());
}
}
}
/
/student 类
public class Student{
public static void main(String args [])throws IOException
{
StuAttribute stu[]; //只是定义了只是一个StuAttribute对象没有分配内存空间
int n=0; //必须对n进行初始化否则将报错
System.out.println("输入你所输入学生信息的人数");
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
n=Integer.parseInt(in.readLine());
stu=new StuAttribute[n]; ///给stu这个对象分配内存空间;
char m[]=new char[2];
for(int i=0;i<n;i++)
{
System.out.println("输入你所输入学生学号");
BufferedReader in1=new BufferedReader(new InputStreamReader(System.in));
String namber=in1.readLine();
System.out.println("输入你所输入学生姓名");
String name=in1.readLine();
System.out.println("输入你所输入学生性别");
String sex=in1.readLine();
System.out.println("输入你所输入学生成绩");
BufferedReader in4=new BufferedReader(new InputStreamReader(System.in));
int grade=Integer.parseInt(in4.readLine());
stu[i]=new StuAttribute(namber,name,sex,grade);//非常重要 尤其是这个new
//这是创建构造方法 虽然已经创建了StuAttribute的对象类 但是对构造方法进行
//初始化时必须要创建构造方法
}
StuManage zzg=new StuManage(stu,n) ;
zzg.display(stu);
}
}