学生管理系统初级

根据题目要求生成大纲

总结:

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

}
相关推荐
Mast Sail5 小时前
windows下authas调试tomcat
java·windows·tomcat·authas
疯狂的挖掘机5 小时前
记一次从windows连接远程Linux系统来控制设备采集数据方法
linux·运维·windows
前进的程序员7 小时前
C++ 在 Windows 和 Linux 平台上的开发差异及常见问题
linux·c++·windows
大笨象、小笨熊8 小时前
【Win32 API】 lstrcpyA()
windows
双叶8369 小时前
(C语言)超市管理系统 (正式版)(指针)(数据结构)(清屏操作)(文件读写)
c语言·开发语言·数据结构·c++·windows
繁星无法超越9 小时前
详解Windows(九)——系统性能优化
windows·stm32·性能优化
IT小郭.10 小时前
使用 Docker Desktop 安装 Neo4j 知识图谱
windows·python·sql·docker·知识图谱·database·neo4j
qh0526wy11 小时前
金融接口基方法Python
windows·python·金融
王有品19 小时前
Java 集合框架对比全解析:单列集合 vs 双列集合
java·windows·python
感谢地心引力1 天前
【Matlab】最新版2025a发布,深色模式、Copilot编程助手上线!
开发语言·windows·matlab·copilot