学生管理系统(Java版)

我的第一个独立看需求完成项目,虽然很简单(笑)

建立一个可以增加,修改,删除,展示学生信息的系统

首先是一个界面,让你决定进行哪个操作

1.2.3.4.5分别对应不同的操作,switch与这一操作完美契合,在switch语句里调用对应操作的函数

            Scanner sc = new Scanner(System.in);
            String choose = sc.next();
            switch (choose){
                case "1": addStudent(list);break;
                case "2": deleteStudent(list);break;
                case "3": change(list);break;
                case "4": look(list);break;
                case "5": System.out.println("退出成功");break quit;
                default:
                    System.out.println("你输入的什么玩意");
            }

接着考虑用什么盛装对应的学生信息,如果用数组的话不确定有多少个学生信息,所以集合ArrayList是最好的选择。

ArrayList<student> list = new ArrayList<>();

然后就是界面了很简单,想做成什么样式的就做成什么什么样式的,我就做成了百晓生,啊不,丁小喜的兵器谱(笑)

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("请做出你的选择吧!");

再就是不能只进行一次操作吧?所以加上while true循环。那怎么退出呢?自然是用break跳出指定循环的办法了呀。所以最好main函数是长这样的:

   public static void main(String[] args) {
        ArrayList<student> list = new ArrayList<>();
        quit: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("请做出你的选择吧!");

            Scanner sc = new Scanner(System.in);
            String choose = sc.next();
            switch (choose){
                case "1": addStudent(list);break;
                case "2": deleteStudent(list);break;
                case "3": change(list);break;
                case "4": look(list);break;
                case "5": System.out.println("退出成功");break quit;
                default:
                    System.out.println("你输入的什么玩意");
            }

        }
    }

然后是操作的写法

3展示学生编号:

当集合里没有对象时,直接返回,没有学生信息还展示个锤子

public static void look(ArrayList<student> list){
        if(list.size()==0) {
            System.out.println("还有没有高手你心里没有点ac数?");
            return;
        }

        System.out.println("绰号"+'\t'+'\t'+"姓名"+'\t'+'\t'+"年龄"+'\t'+'\t'+"籍贯");
        for (int i = 0; i < list.size(); i++) {
            System.out.printf(list.get(i).getId()+"\t\t");
            System.out.printf(list.get(i).getName()+"\t\t");
            System.out.printf(list.get(i).getAge()+"\t\t");
            System.out.printf(list.get(i).getPlace()+"\t\t");
            System.out.println("");
        }
    }

1添加学生对象:

进来首先判断输入的id是否之前有过,就像武林高手不能有同一个绰号,如果之前有过就让他从新添加,判断是否相同就用list.get(i).getId().equals(id)就行了。首先list.get(i)获取编号为i的student对象。list.get(i).getId()获取该对象的id值再.equals(id)就比较了两个id是否相同。

不同就创建一个新的对象。

 public static void addStudent(ArrayList<student> list){
        Scanner sc = new Scanner(System.in);

        String id = null;
        re:while (true) {
            System.out.println("请输入高手的绰号:");
            id = sc.next();
            for (int i = 0; i < list.size(); i++) {
              if (list.get(i).getId().equals(id)) {
                  System.out.println("已经有高手起这个绰号了,给爷重新起");
                   continue re;
              }
            }
            break;
        }
        System.out.println("请输入高手的姓名:");
        String name = sc.next();
        System.out.println("请输入高手的籍贯:");
        String place = sc.next();
        System.out.println("请输入高手的年龄:");
        int age = sc.nextInt();
        student a = new student(name,id,age,place);

        list.add(a);
}

2删除一个学生信息:

和之前一样先判断有没有学生信息。如果有直接list.remove(i)就完事了。

如果输错id怎么办呢?很简单,在for循环的过程中如果发现id相同,直接删除跑路了,那没跑路说明就没有你提供的id!!!

public static void deleteStudent(ArrayList<student> list){
        if(list.size()==0){
            System.out.println("一个高手也没,你除个锤子名");
            return;
        }
        System.out.println("请输入要除名的高手绰号:");
        Scanner sc = new Scanner(System.in);
        String id = sc.next();
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).getId().equals(id)) {
                list.remove(i);
                System.out.println("除名成功");
                return;
            }
        }
        System.out.println("你tm故意找茬是吧!!!");

    }

4修改学生编号:

和删除大差不差,简直就是删除和插入的拼接操作

public static void change(ArrayList<student> list){
        Scanner sc = new Scanner(System.in);
        if(list.size()==0){
            System.out.println("一个高手也没,你改个锤子名");
            return;
        }
        System.out.println("请输入要替换的高手绰号:");
        String id = sc.next();
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).getId().equals(id)) {
                System.out.println("请输入高手的新绰号:");
                id = sc.next();
                System.out.println("请输入高手的姓名:");
                String name = sc.next();
                System.out.println("请输入高手的籍贯:");
                String place = sc.next();
                System.out.println("请输入高手的年龄:");
                int age = sc.nextInt();
                student stu = new student(name,id,age,place);
                list.set(i,stu);
                System.out.println("替换成功");
                return;
            }
        }
        System.out.println("查无此人");
    }

最后别忘了写student的JavaBean类哦。

最后把相同代码段合并写成一个函数就可以了:

public class studentTest {
    public static void main(String[] args) {
        ArrayList<student> list = new ArrayList<>();
        quit: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("请做出你的选择吧!");

            Scanner sc = new Scanner(System.in);
            String choose = sc.next();
            switch (choose){
                case "1": addStudent(list);break;
                case "2": deleteStudent(list);break;
                case "3": change(list);break;
                case "4": look(list);break;
                case "5": System.out.println("退出成功");break quit;
                default:
                    System.out.println("你输入的什么玩意");
            }

        }
    }

    public static void addStudent(ArrayList<student> list){
        Scanner sc = new Scanner(System.in);

        String id = null;
        re:while (true) {
            System.out.println("请输入高手的绰号:");
            id = sc.next();
            for (int i = 0; i < list.size(); i++) {
              if (list.get(i).getId().equals(id)) {
                  System.out.println("已经有高手起这个绰号了,给爷重新起");
                   continue re;
              }
            }
            break;
        }


        list.add(gai(list,id));
    }


    public static void deleteStudent(ArrayList<student> list){
        if(list.size()==0){
            System.out.println("一个高手也没,你除个锤子名");
            return;
        }
        System.out.println("请输入要除名的高手绰号:");
        Scanner sc = new Scanner(System.in);
        String id = sc.next();
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).getId().equals(id)) {
                list.remove(i);
                System.out.println("除名成功");
                return;
            }
        }
        System.out.println("你tm故意找茬是吧!!!");

    }


    public static void look(ArrayList<student> list){
        if(list.size()==0) {
            System.out.println("还有没有高手你心里没有点ac数?");
            return;
        }

        System.out.println("绰号"+'\t'+'\t'+"姓名"+'\t'+'\t'+"年龄"+'\t'+'\t'+"籍贯");
        for (int i = 0; i < list.size(); i++) {
            System.out.printf(list.get(i).getId()+"\t\t");
            System.out.printf(list.get(i).getName()+"\t\t");
            System.out.printf(list.get(i).getAge()+"\t\t");
            System.out.printf(list.get(i).getPlace()+"\t\t");
            System.out.println("");
        }
    }


    public static void change(ArrayList<student> list){
        Scanner sc = new Scanner(System.in);
        if(list.size()==0){
            System.out.println("一个高手也没,你改个锤子名");
            return;
        }
        System.out.println("请输入要替换的高手绰号:");
        String id = sc.next();
        for (int i = 0; i < list.size(); i++) {
            if(list.get(i).getId().equals(id)) {
                System.out.println("请输入高手的新绰号:");
                id = sc.next();

                list.set(i,gai(list,id));
                System.out.println("替换成功");
                return;
            }
        }
        System.out.println("查无此人");
    }

    public static student gai(ArrayList<student> list,String id){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入高手的姓名:");
        String name = sc.next();
        System.out.println("请输入高手的籍贯:");
        String place = sc.next();
        System.out.println("请输入高手的年龄:");
        int age = sc.nextInt();
        student a = new student(name,id,age,place);

        return a;
    }

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值