面向对象练习
需求:
学生类:
成员变量:
id、姓名、年龄、性别、成绩(需要使用数组保存学生信息)
成员方法:
1.根据学生的id或者姓名,找到对应的学生;
2.添加新学生;
3.删除指定学生;
4.展示数组中所有学生信息;
5.根据学生成绩完成降序排序;
/*学生类*/
public class Student {
//成员变量
private int[] id;
private String[] name;
private int[] age;
private char[] gender;
private float[] score;
//构造方法
public Student() {
super();
// TODO Auto-generated constructor stub
}
public Student(int[] id, String[] name, int[] age, char[] gender, float[] score) {
super();
this.id = id;
this.name = name;
this.age = age;
this.gender = gender;
this.score = score;
}
/**
* 展示当前已录入的学生信息
*/
public void show() {
int index = id.length - 1;
for (int i = 0; i < id.length; i++) {
if (0 == id[i]) {
index = i;
break;
}
}
for (int i = 0; i < id.length; i++) {
if (i < index) {
System.out.println("id:" + this.id[i] + " " +
"姓名:" + this.name[i] + " " + "性别:" + this.gender[i] + " " +
"成绩:" + this.score[i]);
}
}
}
/**
* 添加
* @param id
* @param name
* @param age
* @param gender
* @param score
*/
public void add(int id, String name, int age, char gender, float score) {
//判断当前数组中第一个未录入数据的数组下标
int index = -1;
for (int i = 0; i < this.id.length; i++) {
if (0 == this.id[i]) {
index = i;
break;
}
}
//如果当前下标为this.id.length - 1则提示内存已满
if (index == this.id.length - 1) {
System.out.println("内存已满");
}
this.id[index] = id;
this.name[index] = name;
this.age[index] = age;
this.gender[index] = gender;
this.score[index] = score;
}
/**
* 根据指定id检索对应学生信息
* @param id
*/
public void select(int id) {
int index = -1;
for (int i = 0; i < this.id.length; i++) {
if (id == this.id[i]) {
index = i;
System.out.println("id:" + this.id[i] + " " +
"姓名:" + this.name[i] + " " + "性别:" + this.gender[i] + " " +
"成绩:" + this.score[i]);
}
}
if (-1 == index) {
System.out.println("检索id不存在");
}
}
/**
* 根据姓名检索对应学生信息
* @param name
*/
public void select(String name) {
int index = -1;
for (int i = 0; i < this.name.length; i++) {
if (name.equals(this.name[i])) {
index = i;
System.out.println("id:" + this.id[i] + " " +
"姓名:" + this.name[i] + " " + "性别:" + this.gender[i] + " " +
"成绩:" + this.score[i]);
}
}
if (-1 == index) {
System.out.println("检索人员不存在");
}
}
/**
* 删除对应id的学生信息
* @param id
*/
public void remove(int id) {
//判断当前数组中第一个未录入数据的数组下标
int index = -1;
for (int i = 0; i < this.id.length; i++) {
if (id == this.id[i]) {
index = i;
break;
}
}
if (index == -1) {
System.out.println("当前删除id不存在");
return;
}
for (int i = index; i < this.id.length - 1; i++) {
this.id[i] = this.id[i+1];
this.name[i] = this.name[i+1];
this.age[i] = this.age[i+1];
this.gender[i] = this.gender[i+1];
this.score[i] = this.score[i+1];
}
this.id[this.id.length - 1] = 0;
this.name[this.name.length - 1] = null;
this.age[this.age.length - 1] = 0;
this.gender[this.gender.length - 1] = 0;
this.score[this.score.length - 1] = 0F;
}
/**
* 对当前录入学生信息的学生,根据成绩进行从高到低排序
*/
public void descendingSort() {
int index = -1;;
for (int i = 0; i < id.length; i++) {
if (0 == id[i]) {
index = i;
break;
}
}
for (int i = 0; i < index - 1; i++) {
int maxIndex = i;
for (int j = i + 1; j < index; j++) {
if (score[maxIndex] < score[j]) {
maxIndex = j;
}
}
if (maxIndex != i) {
float temp = score[i];
score[i] = score[maxIndex];
score[maxIndex] = temp;
int temp1 = id[i];
id[i] = id[maxIndex];
id[maxIndex] = temp1;
String temp2 = name[i];
name[i] = name[maxIndex];
name[maxIndex] = temp2;
int temp3 = age[i];
age[i] = age[maxIndex];
age[maxIndex] = temp3;
char temp4 = gender[i];
gender[i] = gender[maxIndex];
gender[maxIndex] = temp4;
}
}
}
//setter与getter方法
public int[] getId() {
return id;
}
public void setId(int[] id) {
this.id = id;
}
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;
}
public char[] getGender() {
return gender;
}
public void setGender(char[] gender) {
this.gender = gender;
}
public float[] getScore() {
return score;
}
public void setScore(float[] score) {
this.score = score;
}
}
结果展示:
public class Demo {
public static void main(String[] args) {
Student student = new Student(new int[10], new String[10], new int[10], new char[10], new float[10]);
student.add(1010, "小明", 16, '男', 90.0F);
student.add(1011, "小王", 16, '女', 86.5F);
student.add(1012, "小黄", 16, '男', 98.0F);
student.add(1013, "小郑", 15, '男', 59.5F);
student.add(1014, "小赵", 17, '女', 78.6F);
student.add(1015, "小孙", 17, '女', 66.0F);
student.show();
System.out.println("--------------------------------------");
student.add(1016, "小李", 13, '女', 100.0F);
student.show();
System.out.println("--------------------------------------");
student.select(1013);
System.out.println("--------------------------------------");
student.select(1039);
System.out.println("--------------------------------------");
student.remove(1012);
student.show();
System.out.println("--------------------------------------");
student.remove(1012);
student.show();
System.out.println("--------------------------------------");
student.add(1017, "小周", 16, '女', 100.0F);
student.show();
System.out.println("--------------------------------------");
student.descendingSort();
student.show();
System.out.println("--------------------------------------");
student.add(1018, "小吴", 12, '女', 100.0F);
student.show();
System.out.println("--------------------------------------");
student.add(1019, "小张", 14, '女', 100.0F);
student.show();
System.out.println("--------------------------------------");
student.add(1020, "小贺", 16, '女', 100.0F);
student.show();
System.out.println("--------------------------------------");
student.select("小明");
}
}
运行结果:
id:1010 姓名:小明 性别:男 成绩:90.0
id:1011 姓名:小王 性别:女 成绩:86.5
id:1012 姓名:小黄 性别:男 成绩:98.0
id:1013 姓名:小郑 性别:男 成绩:59.5
id:1014 姓名:小赵 性别:女 成绩:78.6
id:1015 姓名:小孙 性别:女 成绩:66.0
--------------------------------------
id:1010 姓名:小明 性别:男 成绩:90.0
id:1011 姓名:小王 性别:女 成绩:86.5
id:1012 姓名:小黄 性别:男 成绩:98.0
id:1013 姓名:小郑 性别:男 成绩:59.5
id:1014 姓名:小赵 性别:女 成绩:78.6
id:1015 姓名:小孙 性别:女 成绩:66.0
id:1016 姓名:小李 性别:女 成绩:100.0
--------------------------------------
id:1013 姓名:小郑 性别:男 成绩:59.5
--------------------------------------
检索id不存在
--------------------------------------
id:1010 姓名:小明 性别:男 成绩:90.0
id:1011 姓名:小王 性别:女 成绩:86.5
id:1013 姓名:小郑 性别:男 成绩:59.5
id:1014 姓名:小赵 性别:女 成绩:78.6
id:1015 姓名:小孙 性别:女 成绩:66.0
id:1016 姓名:小李 性别:女 成绩:100.0
--------------------------------------
当前删除id不存在
id:1010 姓名:小明 性别:男 成绩:90.0
id:1011 姓名:小王 性别:女 成绩:86.5
id:1013 姓名:小郑 性别:男 成绩:59.5
id:1014 姓名:小赵 性别:女 成绩:78.6
id:1015 姓名:小孙 性别:女 成绩:66.0
id:1016 姓名:小李 性别:女 成绩:100.0
--------------------------------------
id:1010 姓名:小明 性别:男 成绩:90.0
id:1011 姓名:小王 性别:女 成绩:86.5
id:1013 姓名:小郑 性别:男 成绩:59.5
id:1014 姓名:小赵 性别:女 成绩:78.6
id:1015 姓名:小孙 性别:女 成绩:66.0
id:1016 姓名:小李 性别:女 成绩:100.0
id:1017 姓名:小周 性别:女 成绩:100.0
--------------------------------------
id:1016 姓名:小李 性别:女 成绩:100.0
id:1017 姓名:小周 性别:女 成绩:100.0
id:1010 姓名:小明 性别:男 成绩:90.0
id:1011 姓名:小王 性别:女 成绩:86.5
id:1014 姓名:小赵 性别:女 成绩:78.6
id:1015 姓名:小孙 性别:女 成绩:66.0
id:1013 姓名:小郑 性别:男 成绩:59.5
--------------------------------------
id:1016 姓名:小李 性别:女 成绩:100.0
id:1017 姓名:小周 性别:女 成绩:100.0
id:1010 姓名:小明 性别:男 成绩:90.0
id:1011 姓名:小王 性别:女 成绩:86.5
id:1014 姓名:小赵 性别:女 成绩:78.6
id:1015 姓名:小孙 性别:女 成绩:66.0
id:1013 姓名:小郑 性别:男 成绩:59.5
id:1018 姓名:小吴 性别:女 成绩:100.0
--------------------------------------
id:1016 姓名:小李 性别:女 成绩:100.0
id:1017 姓名:小周 性别:女 成绩:100.0
id:1010 姓名:小明 性别:男 成绩:90.0
id:1011 姓名:小王 性别:女 成绩:86.5
id:1014 姓名:小赵 性别:女 成绩:78.6
id:1015 姓名:小孙 性别:女 成绩:66.0
id:1013 姓名:小郑 性别:男 成绩:59.5
id:1018 姓名:小吴 性别:女 成绩:100.0
id:1019 姓名:小张 性别:女 成绩:100.0
--------------------------------------
内存已满
id:1016 姓名:小李 性别:女 成绩:100.0
id:1017 姓名:小周 性别:女 成绩:100.0
id:1010 姓名:小明 性别:男 成绩:90.0
id:1011 姓名:小王 性别:女 成绩:86.5
id:1014 姓名:小赵 性别:女 成绩:78.6
id:1015 姓名:小孙 性别:女 成绩:66.0
id:1013 姓名:小郑 性别:男 成绩:59.5
id:1018 姓名:小吴 性别:女 成绩:100.0
id:1019 姓名:小张 性别:女 成绩:100.0
--------------------------------------
id:1010 姓名:小明 性别:男 成绩:90.0