Java版-学生管理系统(一维数组)

import java.util.Scanner;

public class StudentManagementSystem {

    public static void main(String[] args) {
        // 做一个学员信息管理系统,目前仅支持以<姓名>的方式对学员信息进行管理(增删改查),即管理只是学员的姓名信息
        Scanner scanner = new Scanner(System.in);
        boolean flage = true;
        while (flage) {
            System.out.println("请选择需要操作的功能:\n1-添加\t2-删除\t3-修改\t4-查询\t5-退出");
            int num = scanner.nextInt();
            switch (num) {
            case 1:
                System.out.println("请输入需要添加的名字:");
                name = scanner.next();
                bool = add(name);
                if (bool) {
                    System.out.println("添加成功");
                } else {
                    System.out.println("添加失败");
                }
                break;
            case 2:
                System.out.println("请输入需要删除的名字:");
                String name = scanner.next();
                bool = delete(name);
                if (bool) {
                    System.out.println("删除成功");
                } else {
                    System.out.println("删除失败");
                }
                break;
            case 3:
                System.out.println("请输入需要修改的名字:");
                name = scanner.next();
                System.out.println("请输入修改后的名字");
                String newName = scanner.next();
                bool = update(name, newName);
                if (bool) {
                    System.out.println("修改成功");
                } else {
                    System.out.println("修改失败");
                }
                break;
            case 4:
                print();
                break;
            case 5:
                System.out.println("欢迎下次使用,再见!");
                flage = false;
                break;

            default:
                System.out.println("选择错误,请重新输入");
                break;
            }
        }
        scanner.close();
    }

    public static String name;
    public static boolean bool;
    public static String[] names = new String[3];
    public static int point = 0;

    // 添加
    public static boolean add(String name) {
        // 判断合法性
        if (!isOk(name)) {
            return false;
        }
        // 判断是否存在
        if (query(name) != -1) {
            System.out.println("姓名已存在");
            return false;
        }
        // 扩容
        if (point == names.length) {
            addCapacity();
        }
        // 添加
        names[point] = name;
        point++;
        return true;
    }

    // 删除
    public static boolean delete(String name) {
        // 判断合法性
        if (!isOk(name)) {
            return false;
        }
        // 判断是否存在
        int index = query(name);
        if (index == -1) {
            System.out.println("姓名不存在");
            return false;
        }
        // 删除
        for (int i = index; i < point; i++) {
            names[i] = names[i + 1];
        }
        point--;
        return true;
    }

    // 修改
    public static boolean update(String name, String newName) {
        if (!isOk(name) || !isOk(newName)) {
            return false;
        }
        // 判断是否存在
        int index = query(name);
        if (index == -1) {
            System.out.println("姓名不存在");
            return false;
        }
        if (query(newName) != -1) {
            System.out.println("姓名已存在");
            return false;
        }
        // 修改
        names[index] = newName;
        return true;
    }

    // 查询
    public static int query(String name) {
        for (int i = 0; i < point; i++) {
            if (names[i].equals(name)) {
                return i;
            }
        }
        return -1;
    }

    // 判断合法性
    public static boolean isOk(String name) {
        if (name.length() < 2 || name.length() > 8) {
            System.out.println("姓名不合法");
            return false;
        }
        return true;
    }

    // 扩容
    public static void addCapacity() {
        String[] newNames = new String[names.length * 2];
        for (int i = 0; i < names.length; i++) {
            newNames[i] = names[i];
        }
        names = newNames;
    }

    // 打印
    public static void print() {
        for (int i = 0; i < point; i++) {
            System.out.println(names[i]);
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值