java编程---2、用数组编写简易的学生管理系统

package com.hm;

import java.util.Scanner;

/**
 * 学生管理系统
 * 
 * @author user
 * 
 */
public class StudentSystem {
    // 接受用户的录入
    private Scanner input = new Scanner(System.in);
    // 学生初始个数
    private int count = 0;
    private Student[] stus;// 学生数组,尚未初始化
    private String goon = "n";// 是否继续
    private int ope = 0;// 菜单选项编号
    private int stuCount = 0;// 现有学生数量

    public static void main(String[] args) {
        // 创建当前类对象,运行程序
        new StudentSystem().run();
    }

    // 菜单方法kl
    private void run() {
        System.out.println("请先选择初始化学生个数:");
        count = input.nextInt(); // 初始化学生个数
        stus = new Student[count];// 初始学生数组
        do {
            System.out.println("==========欢迎来到XX学生管理系统=========");
            System.out.println("1、增加学生:");
            System.out.println("2、修改学生:");
            System.out.println("3、删除学生:");
            System.out.println("4、按编号查询学生:");
            System.out.println("5、查询所有学生:");
            ope = input.nextInt();
            switch (ope) {
                case 1:
                    addStu();
                    break;
                case 2:
                    updateStu();
                    break;
                case 3:
                    deleteStu();
                    break;
                case 4:
                    findStuById();
                    break;
                case 5:
                    findAll();
                    break;
                default:
                    System.out.println("输入有误");
                    break;
            }
            System.out.println("====================================");
            System.out.println("是否继续(y/n)");
            goon = input.next();
        } while (!goon.equalsIgnoreCase("n"));// 不是n/N就继续
    }

    // 查询所有
    private void findAll() {
        for (Student stu : stus) {
            if (stu != null)
                System.out.println(stu);
        }

    }

    // 根据学生学号查询,返回当前索引
    private int findStuById() {
        System.out.println("请输要操作的学号");
        int id = input.nextInt();
        int index = -1; // 查询学号满足的学生下标,没有查询,下标为-1
        for (int i = 0; i < stus.length; i++) {
            if (stus[i] != null && stus[i].getId() == id) {
                index = i;
                break;
            }
        }
        // 如果下标为-1,则没有查询到学生
        if (index == -1) {
            System.out.println("查无此学生");
        } else {
            System.out.println(stus[index]);
        }
        return index;

    }

    // 删除学生
    private void deleteStu() {
        int index = findStuById();
        if (index != -1) {
            System.out.println("学号为" + stus[index].getId() + "的学生,删除成功");
            stus[index] = null;

        }

    }

    // 修改学生
    private void updateStu() {
        int index = findStuById();
        if (index != -1) {
            Student stu = new Student();
            System.out.println("请输入学生的学号:");
            stu.setId(input.nextInt());
            System.out.println("请输入学生的姓名");
            stu.setName(input.next());
            System.out.println("请输入学生的年龄");
            stu.setAge(input.nextInt());
            System.out.println("请输入学生的性别");
            stu.setGender(input.next());
            System.out.println("请输入学生的地址");
            stu.setAddress(input.next());
            stus[index] = stu;
            System.out.println("学号为" + stus[index].getId() + "的学生,修改成功");
        }
    }

    // 增加学生
    private void addStu() {
        int i = 0;// 可插入的下标
        // 查看是否有null的位置,如果有则插入学生
        for (; i < stus.length; i++) {
            if (stus[i] == null) {
                break; // 保存null的下标
            }
        }

        if (i == stus.length) {
            System.out.println("学生已满,请选择其它操作!");
            return; // 运行到此外,方法结束
        }
        System.out.println("当前现有学生" + stuCount + "个");
        Student stu = new Student();
        System.out.println("请输入学生的学号:");
        stu.setId(input.nextInt());
        System.out.println("请输入学生的姓名");
        stu.setName(input.next());
        System.out.println("请输入学生的年龄");
        stu.setAge(input.nextInt());
        System.out.println("请输入学生的性别");
        stu.setGender(input.next());
        System.out.println("请输入学生的地址");
        stu.setAddress(input.next());
        stus[i] = stu; // 给null的位置赋值新同学
        stuCount++; // 编计现有学生个数
        findAll(); // 增加完,查询所有学生

    }

}

 

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值