JAVA练习:学生对象数组管理系统
题目:定义一个长度为3的数组,存储1~3名学生对象作为初始数据。
学生的属性:学号,姓名,年龄
要求1:再次添加一个学生对象,并在添加的时候进行学号的唯一性判断,添加完毕之后,遍历所有学生信息。
要求2:通过id删除学生信息,若存在,则删除,如果不存在,则提示删除失败。删除完毕之后,遍历所有学生信息。
要求3:通过id修改一个学生的信息,若存在,则将他的年龄+1岁,若不存在,则输出查询失败。
1.实现思路:
2.代码实现截图:
3.实现代码:
学生类:
public class Student {
private int id;
private String name;
private int age;
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 Student(int id, String name, int age) {
this.id = id;
this.name = name;
this.age = age;
}
public void show(){
System.out.println("ID:"+id) ;
System.out.println("姓名:"+name);
System.out.println("年龄:"+age) ;
}
}
测试代码:
public class StudentTest {
public static void main(String[] args) {
Student[] arr = new Student[3];
//初始化数组
Student s1 = new Student(101, "张三", 18);
Student s2 = new Student(102, "赵八", 19);
Student s3 = new Student(103, "李四", 16);
arr[0] = s1;
arr[1] = s2;
arr[2] = s3;
//加入功能
//jr(arr);
//删除功能
//sc(arr,102);
//修改功能
xg(arr,102);
}
public static void jr(Student[] a){
//加入数组元素
Student s4 = new Student(104, "朱七", 24);
//加入数组元素功能
//判断是否可以加入
//判断数组中是否存在此id
boolean temp = pd(a, s4.getId());
if (temp == true) {
if (num(a) == a.length) {
//1.数组满了需要创建新的数组
//首先新建一个数组,长度为老数组长度+1
//然后在新数组的最后加入新数组
Student[] newarr=cr(a);
newarr[num(a)]=s4;
bl(newarr);
}
else {
//2.数组未满,在空位置添加
a[num(a)]=s4;
bl(a);
}
}
else if (temp == false) {
System.out.println("id重复,请重新输入:");
}
}
public static boolean pd(Student[] a, int i) {
for (int j = 0; j < a.length; j++) {
if(a[j]!=null){
if (i == a[j].getId()) {
return false;
} else {
continue;
}
}
}
return true;
}
//获取数组元素数量
public static int num(Student[] a) {
int temp = 0;
for (int i = 0; i < a.length; i++) {
if (a[i] != null) {
temp++;
}
}
return temp;
}
//数组满的情况
//首先新建一个数组,长度为老数组长度+1
//然后在新数组的最后加入新数组
public static Student[] cr(Student[] a){
Student[] newarr=new Student[a.length+1];
for (int i = 0; i < newarr.length-1; i++) {
newarr[i]=a[i];
}
return newarr;
}
//遍历数组
public static void bl(Student[] a){
for (int i = 0; i < a.length; i++) {
if(a[i]!=null){
a[i].show();
}
}
}
//删除数组元素
public static boolean scpd(Student [] a,int id){
for (int i = 0; i < a.length; i++) {
if(a[i].getId()==id){
a[i]=null;
return true;
}
}
return false;
}
public static void sc(Student[] a,int id){
if(scpd(a,id)){
bl(a);
}else{
System.out.println("未查询到该学生id");
}
}
//修改数据(修改年龄数据)
public static boolean xgpd(Student[] a,int id){
for (int i = 0; i < a.length; i++) {
if(a[i].getId()==id){
int temp=a[i].getAge();
temp-=1;
a[i].setAge(temp);
return true;
}
}
return false;
}
public static void xg(Student[] a,int id){
if(xgpd(a,id)){
bl(a);
}else{
System.out.println("未查询到该学生id");
}
}
}