Java小项目 学生管理系统

软件包_Studentcontrol

起始_Test

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;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值