面向对象练习

面向对象练习

需求:

学生类:

成员变量:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值