1.先根据自己的需求输入学生总数(有多少个学生)
2.再输入学生ID,姓名,年龄和性别
3.系统会提示你要不要输出所有学生的信息,输入1就可以输出信息
4.输出完信息后,编译器会把你刚输进去的学生信息的ID给你显示出来,通过ID可随意删除
5.编译器会提示你删除成功,并把剩下的信息打印出来。
//类Student
public class Student {
//填写学生属性
private int id;
private String name;
private int age;
private String sex;
//构造函数
public Student(){}
public Student(int id, String name, int age, String sex) {
this.id = id;
this.name = name;
this.age = age;
this.sex = sex;
}
//填写set和get方法
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 String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
//主类StudentTset(测试类)
public class StudentTest {
public static void main(String[] args) {
//创建对象数组
Scanner sc=new Scanner(System.in);
System.out.println("请输入你要输入的人的个数");
int number=sc.nextInt();
Student []arr=new Student[number];
//这是直接插进去的
Student st1=new Student(123,"艾力",20,"男");
Student a[]=getdata(arr);
System.out.println("输入成功!!");
//遍历数组
//printArray(a);
//获取数据
//printArray(a);
boolean value=contains(a,st1.getId());
Student newArry[]=newArray(a);
if(value)
{
//该ID存在
System.out.println("该ID存在!!");
}
else
{
//该ID不存在
//就判断数组满了没有
int count=getcount(arr);
if(count==arr.length)
{
//数组已经满了,就开辟新的空间
newArry[count]=st1;
System.out.println("你确定要输出学生信息吗,如果确定就输入1!!");
int choise=sc.nextInt();
if(choise==1)
{
printArray(newArry);
}
}
else
{
//数组没满,就把对应ID的人放进去
arr[count]=st1;
}
}
//根据ID删除所对应的学生信息
//获取之前先判断这个ID是否存在,如果存在,就返回这个ID在数组中所在的索引
//输出所有学生的信息
System.out.println("学生ID如下,通过ID可随意删除!!");
for (int i = 0; i < newArry.length; i++) {
Student st=newArry[i];
if(st!=null)
{
System.out.print(st.getId()+",");
}
}
int id= sc.nextInt();
System.out.println("如果你要删除你就输入:1");
int select= sc.nextInt();
if(select==1)
{
//Student newArry1[]=newArray(arr);
int index=getindex(newArry,id);
//System.out.println(index);
if(index>=0)
{
//该ID存在
newArry[index]=null;
System.out.println("删除成功!!");
System.out.println("删除后的学生信息:");
printArray(newArry);
}
else
{
System.out.println("该ID不存在!!");
}
}
else
{
System.out.println("学生基本信息如下:");
printArray(newArry);
}
}
//获取所在ID的索引
public static int getindex(Student []arr,int id)
{
for (int i = 0; i < arr.length; i++) {
Student st=arr[i];
if(st!=null)
{
if(st.getId()==id)
{
return i;
}
}
}
//如果要删除的ID和数组中的ID不相等,那么就返回-1;
return -1;
}
//开辟新的数组
public static Student[] newArray(Student[] arr)
{
Student []newarray=new Student[arr.length+1];
for (int i = 0; i < arr.length; i++) {
newarray[i]=arr[i];
}
return newarray;
}
//判断数组满了没有
public static int getcount(Student []arr)
{
int count=0;
for (int i = 0; i < arr.length; i++) {
if(arr[i]!=null)
{
count++;
}
}
return count;
}
//对ID进行唯一性判断(1)
public static boolean contains(Student []arr,int id)
{
for (int i = 0; i < arr.length; i++) {
Student s=arr[i];
if(s!=null)
{
if(id==s.getId())
{
return true;
}
}
}
return false;
}
//获取学生信息的方法
public static Student[] getdata(Student []arr)
{
//键盘输入吧
Scanner sc=new Scanner(System.in);
System.out.println("根据编译要求输入学生信息!!");
for (int i = 0; i < arr.length; i++) {
Student s=new Student();
//获取ID
System.out.print("请输入学生ID:");
int id=sc.nextInt();
s.setId(id);
//获取姓名
System.out.print("请输入学生姓名:");
String name=sc.next();
s.setName(name);
//获取年龄
System.out.print("请输入学生年龄:");
int age=sc.nextInt();
s.setAge(age);
//获取学生性别
System.out.print("请输入学生性别:");
String sex=sc.next();
s.setSex(sex);
//我们只是把数据存到对象当中了,并没有存到数组当中,在这里把数据存到数组当中
arr[i]=s;
}
return arr;
}
//对数组进行遍历
public static void printArray(Student []arr)
{
for (int i = 0; i < arr.length; i++) {
Student st=arr[i];
if(st!=null)
{
System.out.println(st.getId()+","+st.getName()+","+st.getAge()+","+st.getSex());
}
}
}
}
二.运行结果如下
1.
2.