package Studentcontrol;
public class Test {
public static void main(String[] args) {
new Main().start();
}
主函数_Main
package Studentcontrol;
import java.util.Scanner;
public class Main {
Scanner sc = new Scanner(System.in);
Student[] students = new Student[50]; //Student 类型 之前自己构造的
int count = 0;
Student[] newStudents = new Student[students.length - 1];
public void start() {
while (true) {
System.out.println("-----------学生管理系统-----------");
System.out.println("1 添加学生");
System.out.println("2 修改学生");
System.out.println("3 删除学生");
System.out.println("4 查看学生");
System.out.println("5 退出系统");
System.out.println("请选择(1-5):");
int num = sc.nextInt();
System.out.println("--------------------------------");
switch (num) {
case 1:
add();
break;
case 2:
xiugai();
break;
case 3:
shanchu();
break;
case 4:
look();
break;
case 5:
System.out.println("是否退出?按0为退出/按9为取消");
int key = sc.nextInt();
if (key == 0) {
System.out.println("再见,欢迎再来");
return;//结束方法
} else if (key == 9) {
break;
}
}
}
}
private void add(){
System.out.println("请您输入学生学号:");
int id = sc.nextInt();
System.out.println("请您输入学生姓名:");
String name = sc.next();
System.out.println("请您输入学生年龄:");
int age = sc.nextInt();
System.out.println("请您输入学生性别:");
String sex = sc.next();
Student student=new Student(id,age,name,sex);
students[count]=student;
count++;
System.out.println("添加成功!");
}
private void shanchu() {
System.out.println("请您输入要删除的学生学号:");
int id = sc.nextInt();
//2.根据id查询学生对应的索引位置
int removeIndex = ArrayUtils.findIndexById(students, id, count);
//复制被删除元素前面一部分
System.arraycopy(students,0,newStudents,0,removeIndex);
//再复制被删除元素后面一部分
System.arraycopy(students,removeIndex+1,newStudents,removeIndex,students.length-removeIndex-1);
//将新数组的地址值给老数组
students = newStudents; //再赋值给老数组
//删除完之后count--
count--;
}
private void xiugai() {
System.out.println("请您输入要修改的学生学号:");
int id = sc.nextInt();
int updateIndex = ArrayUtils.findIndexById(students,id,count);
System.out.println("请您输入学生姓名:");
String name = sc.next();
System.out.println("请您输入学生年龄:");
int age = sc.nextInt();
System.out.println("请您输入学生性别:");
String sex = sc.next();
Student student = new Student(id,age,name, sex);
students[updateIndex] = student;
System.out.println("修改成功!!!");
}
private void look() {
System.out.println("学号"+"\t"+"姓名"+"\t"+"年龄"+"\t"+"性别");
//冒泡排序序号
for (int j = 0; j < count-1; j++) {
for (int i = 0; i < count-1-j; i++) {
if (students[i].getId()>students[i+1].getId()){
Student temp = students[i];
students[i] = students[i+1];
students[i+1] = temp;
}
}
}
if (count==0){
System.out.println("对不起,现在班级没有学生,待开班.........");
}else{
//我们应该是添加了多少个学生,count就是几,就应该遍历几次
for (int i = 0; i < count; i++) {
System.out.println(students[i].getId()+"\t"+students[i].getName()+"\t"+students[i].getAge()+"\t"+students[i].getSex());
}
}
}
}
负责输入输出_Student(JavaBean)
package Studentcontrol;
public class Student {
private int id;
private int age;
private String name;
private String sex;
public Student(int id, int age, String name, String sex) {
this.id = id;
this.age = age;
this.name = name;
this.sex = sex;
}
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 String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
工具类_ArrayUtils(查看当前学号再数组中的位置)
package Studentcontrol;
//查找当前学号位于第几个
public class ArrayUtils {
private ArrayUtils(){
}
public static int findIndexById(Student[] students,int id,int count){
//遍历,查找
for (int i = 0; i < count; i++) {
if (id==students[i].getId()){
return i;
}
}
return -1;
}
}