学生管理系统初级

根据题目要求生成大纲

总结:

1.在书写时,考虑到了书写时id可是是abc... 类型是String,但在根据id获取集合中元素时 list.get() ,get()里面是int类型。 2.在书写还有一点功能并不完全,

2.1查找时是打印所有学生信息,并不能根据输入关键信息打印相应学生

2.2修改时,是所有信息都要修改,并没有实现,只修改某一个或几个信息。

代码:

复制代码
public class Studenttext {
    public static void main(String[] args) {
        ArrayList<Student> list=new ArrayList<>();
        Scanner sc=new Scanner(System.in);
        int number;
        boolean flag=true;
        while (flag) {
            System.out.println("请选择你要的功能:1.添加,2.删除,3.修改,4.查找,5.退出");
            number=sc.nextInt();
            switch (number){
                case 1 -> add(list);
                case 2->delete(list);
                case 3->adapt(list);
                case 4-> reaserach(list);
                default -> flag=false;
            }
        }
    }
    //添加
    public static void  add( ArrayList<Student> list){
        Scanner sc=new Scanner(System.in);
        Student s=new Student();
        System.out.println("请输入学生id");
        String sid=sc.next();
        boolean result = contains(list, sid);
        if (result) {
            System.out.println("该id已经存在");
        }
        s.setId(sid);
        System.out.println("请输入学生姓名");
        String name=sc.next();
        s.setName(name);
        System.out.println("请输入学生年龄");
        int age=sc.nextInt();
        s.setage(age);
        System.out.println("请输入学生家庭住址");
        String adress=sc.next();
        s.setAdress(adress);
        list.add(s);
        System.out.println("已经添加成功");
        //进行id唯一

    }
    //删除
    public static void  delete( ArrayList<Student> list){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要删除的id");
        String sid=sc.next();
        int id=getindex(list,sid);

        if (id>=0) {
            //true就存在
            list.remove(id);
            System.out.println(list.size());
            System.out.println("删除成功");
        }else {
            //不存在
            System.out.println("id不存在");
        }

    }//修改
    public static void  adapt( ArrayList<Student> list){
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要修改的id");
        String id=sc.next();
        int index=getindex(list,id);
        if (index>=0) {
            Student s=list.get(index);
            System.out.println("请输入新的名字");
            String Newname=sc.next();
            s.setName(Newname);
            System.out.println("请输入新的年龄");
            int Newage=sc.nextInt();
            s.setage(Newage);
            System.out.println("请输入新的家庭住址");
            String Newadress=sc.next();
            s.setAdress(Newadress);
            System.out.println("修改成功");
        }else {
            System.out.println(id+"不存在 ,更新失败");
        }

    }//查找
    public static void  reaserach( ArrayList<Student> list){
        if (list.size()!=0) {
            //返回true就代表存在
             System.out.println("---------代军的学生管理系统------------");
             System.out.println("id\tname\tage\tadress");
            for (int i = 0; i < list.size(); i++) {
                Student s = list.get(i);
                System.out.println(s.getId()+"\t"+s.getName()+"\t"+s.getage()+"\t"+s.getAdress());
            }

        }else {
            //如果不存在,提示当前无学生信息,请添加后在查询
            System.out.println("当前无学生信息,请添加后在查询");

        }


    }
    //进行id唯一,不存在返回flase
    public static boolean contains(ArrayList<Student> list,String id){
        return getindex(list,id)>=0;
    }
    //查找id的学生,根据id查找
    //不存在返回-1
    public static int  getindex(ArrayList<Student> list,String id){
        for (int i = 0; i < list.size(); i++) {
            String sut_id=list.get(i).getId();
            //存在就返回true
            if (sut_id.equals(id)) {
                return i;
            }
        }return -1;
    }

}
相关推荐
Imagine Miracle13 分钟前
【WSL】让WSL2后台持久运行不自动关闭的解决方案
linux·windows·wsl
啦啦啦~~~22225 分钟前
经典小游X,免费刺激,可离线使用!
windows·游戏·开源软件
月走乂山2 小时前
Windows提示调制解调器报错、同交换机其他电脑正常、远程能连但浏览器打不开——本机DNS配置问题排查
windows·dns·故障排查·网络故障·网络诊断
衔烛之龙14 小时前
Windows x64 构建 liboqs-java教程
java·windows·python
阿豪只会阿巴6 小时前
两小时快速入门 FastAPI--第二回
windows·python·fastapi
印度神油91 天前
Windows Python 打包实战:Nuitka 环境踩坑总结与 CI 自动化构建全指南
windows·python·ci/cd
2601_963771371 天前
Hardening Enterprise WordPress Sites Against REST API Leaks and Bad Headers
前端·windows·word·php
不要小看我们之间的羁绊啊1 天前
【windows】cc + cc switch + headroom
windows
找死的豆腐1 天前
基于.NET的Windows窗体编程之WinForms图像控件
windows·.net
XUHUOJUN1 天前
Azure Local GPU 部署与企业应用场景指南(上篇 )
windows·microsoft·架构·nvidia·azure local