java案例21:学生管理系统

news2024/9/25 22:37:25

思路:

编写一个学生管理系统,
实现对学生信息的添加、删除、修改和查询功能。

首页:
用于显示系统的所有操作,并根据用户在控制台的输入选择需要使用的功能

查询功能:
用户选择后,在控制台打印所有学生信息

添加功能:
用户选择后,要求用户在控制台输入学生学号、姓名、年龄和家庭地址等基本信息
输入学号时,判断是否已存在,给出相应提示(添加失败或添加成功)

删除功能:
用户选择后,在控制台输入要删除的学生学号,
如果学号存在,删除并返回(删除成功);反之提示“删除失败,学号为空。”

修改功能:
用户选择后,提示永华在控制台输入需要修改的学生学号、姓名、年龄和家庭地址
使用输入的学号判断该学生是否存在,
如果有,覆盖信息;如果没有,提示“学生信息不存在”

退出功能:
用户选择后,程序正常关闭。


掌握list集合常用方法的使用

代码:

代码结构:

Student类:

package base.base021;


public class Student {
    private String id;
    private String name;
    private int age;
    private String address;

    public Student() {
    }

    public Student(String id, String name, int age, String address) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.address = address;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }
}

测试类:

package base.base021;

/*
学生管理系统

编写一个学生管理系统,
实现对学生信息的添加、删除、修改和查询功能。

首页:
用于显示系统的所有操作,并根据用户在控制台的输入选择需要使用的功能

查询功能:
用户选择后,在控制台打印所有学生信息

添加功能:
用户选择后,要求用户在控制台输入学生学号、姓名、年龄和家庭地址等基本信息
输入学号时,判断是否已存在,给出相应提示(添加失败或添加成功)

删除功能:
用户选择后,在控制台输入要删除的学生学号,
如果学号存在,删除并返回(删除成功);反之提示“删除失败,学号为空。”

修改功能:
用户选择后,提示永华在控制台输入需要修改的学生学号、姓名、年龄和家庭地址
使用输入的学号判断该学生是否存在,
如果有,覆盖信息;如果没有,提示“学生信息不存在”

退出功能:
用户选择后,程序正常关闭。


掌握list集合常用方法的使用

 */

import java.util.ArrayList;
import java.util.Scanner;

public class Test21 {
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args) {

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

        w:
        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("请输入您的选择:");
            int choice = sc.nextInt();

            switch (choice){
                case 1:
                    //查看
                    select(list);
                    //System.out.println("查看学生");
                    break;

                case 2:
                    //添加
                    add(list);
                    //System.out.println("添加学生");
                    break;

                case 3:
                    //修改
                    update(list);
                    //System.out.println("修改学生");
                    break;

                case 4:
                    //删除
                    delete(list);
                    //System.out.println("删除学生");
                    break;

                case 5:
                    //退出
                    System.out.println("感谢您的使用!");
                    break w;
                default:
                    System.out.println("您的输入有误,请重新输入");
            }

        }
    }

    /*
    删除学生信息
    输入学号
    判断学号是否存在
    存在:将当前学生删除
    不存在:给出提示
     */
    private static void delete(ArrayList<Student> list) {
        System.out.println("输入想要删除的学生学号:");
        String id = sc.next();

        //判断学号是否存在
        for(int i=0;i<list.size();i++){
            Student stu = list.get(i);
            if(stu.getId().equals(id)){
                //删除学生
                list.remove(i);
                System.out.println("删除成功!");
                return;//结束当前方法
            }
        }
        System.out.println("您输入的学号不存在!");

        }




    /*
    修改学生信息

    输入学生学号,判断是否存在
    存在:继续输入其他信息,覆盖原信息
    不存在:给出提示
     */
    private static void update(ArrayList<Student> list) {
        System.out.println("请输入要修改的学生学号:");
        String id = sc.next();

        //判断学号是否存在
        for(int i=0;i<list.size();i++){
            Student stu = list.get(i);
            if(stu.getId().equals(id)){
                //存在
                System.out.println("请输入学生姓名:");
                String name = sc.next();
                System.out.println("请输入学生年龄:");
                int age = sc.nextInt();
                System.out.println("请输入学生住址:");
                String address = sc.next();

                //覆盖信息
                stu.setId(id);
                stu.setName(name);
                stu.setAge(age);
                stu.setAddress(address);

                System.out.println("修改成功!");
                return;//修改成功,讲方法结束
            }
        }

        System.out.println("您输入的学号不存在!");

    }

    /*
    添加学生

    输入学号
    判断学号是否存在
    存在:给出提示
    不存在:继续输入其他信息
    封装学生对象
    将学生对象添加到集合中
     */
    private static void add(ArrayList<Student> list) {
        String id;
        while (true) {
            System.out.println("请输入学生学号:");
            id = sc.next();

            //判断是否存在
            boolean flag = false;
            for(int i=0;i<list.size();i++){
                Student stu = list.get(i);
                if(stu.getId().equals(id)){
                    flag = true;
                    break;

                }
            }

            if(flag == true){
                System.out.println("学号已存在,请重新输入!");
            }else{
                break;
            }
        }

        System.out.println("请输入学生姓名:");
        String name = sc.next();
        System.out.println("请输入学生年龄:");
        int age = sc.nextInt();
        System.out.println("请输入学生住址:");
        String address = sc.next();

        //封装为一个学生对象
        Student s = new Student(id,name,age,address);

        //将学生对象添加到集合中
        list.add(s);

        System.out.println("添加成功!");

    }

    //查看学生信息
    /*
    判断长度是否为0
    是:提示当前无数据
    否:显示现有数据
     */
    private static void select(ArrayList<Student> list) {
        if(list.size() == 0){
            System.out.println("学生信息为空,请先添加学生信息。");
        }else{
            System.out.println("学号\t\t姓名\t\t年龄\t\t地址");
            for(int i = 0;i < list.size();i++){
                Student stu = list.get(i);
                System.out.println(stu.getId()+"\t\t"+stu.getName()+"\t\t"+stu.getAge()+"\t\t"+stu.getAddress());

            }
        }
    }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1074194.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云服务器公网带宽多少钱1M?

阿里云服务器公网带宽计费模式按固定带宽”计费多少钱1M&#xff1f;地域不同带宽价格不同&#xff0c;北京、杭州、深圳等大陆地域价格是23元/Mbps每月&#xff0c;中国香港1M带宽价格是30元一个月&#xff0c;美国硅谷是30元一个月&#xff0c;日本东京1M带宽是25元一个月&am…

爬虫Python

文章目录 基本数据类型bytes类型python数据类型转换 python运算符&#xff08;必会&#xff01;&#xff01;&#xff01;&#xff09;python数字数学函数&#xff08;必会&#xff01;&#xff01;&#xff01;&#xff09;随机数函数三角函数&#xff08;简&#xff09;数字常…

c++视觉处理---均值滤波

均值滤波 cv::blur()函数是OpenCV中用于应用均值滤波的函数。均值滤波是一种简单的平滑技术&#xff0c;它计算每个像素周围像素的平均值&#xff0c;并用该平均值替代原始像素值。这有助于降低图像中的噪声&#xff0c;并可以模糊图像的细节。 以下是cv::blur()函数的基本用…

记一次 .NET某账本软件 非托管泄露分析

一&#xff1a;背景 1. 讲故事 中秋国庆长假结束&#xff0c;哈哈&#xff0c;在老家拍了很多的短视频&#xff0c;有兴趣的可以上B站观看&#xff1a;https://space.bilibili.com/409524162 &#xff0c;今天继续给大家分享各种奇奇怪怪的.NET生产事故&#xff0c;希望能帮助…

c++视觉处理---高斯滤波

高斯滤波处理 高斯滤波是一种常用的平滑滤波方法&#xff0c;它使用高斯函数的权重来平滑图像。高斯滤波通常用于去除噪声并保留图像中的细节。在OpenCV中&#xff0c;可以使用cv::GaussianBlur()函数来应用高斯滤波。 以下是cv::GaussianBlur()函数的基本用法&#xff1a; …

区块链技术的飞跃: 2023年的数字革命

随着时代的推进和技术的不断创新&#xff0c;2023年成为区块链技术飞跃发展的一年。区块链&#xff0c;一个曾经只是数字货币领域的技术&#xff0c;现在已经逐渐渗透到各个行业&#xff0c;成为推动数字经济发展的重要力量。在这个数字革命的时代&#xff0c;我们探讨区块链技…

纸黄金效率太低不如做现货

如果从字面上的意义去理解&#xff0c;纸黄金就是在账面上交易的黄金&#xff0c;具体来说它是国内银行为客户提供的一种记账式的黄金买卖&#xff0c;交易的记录和买卖的盈亏值&#xff0c;都只会在预先开设的账户上体现&#xff0c;投资过程中不涉及实物黄金的交收。 对于追求…

Docker基础(CentOS 7)

参考资料 hub.docker.com 查看docker官方仓库&#xff0c;需要梯子 Docker命令大全 黑马程序员docker实操教程 &#xff08;黑马讲的真的不错 容器与虚拟机 安装 yum install -y docker Docker服务命令 启动服务 systemctl start docker停止服务 systemctl stop docker重启…

LocalDateTime、LocalDate、Date、String相互转化大全及其注意事项

LocalDateTime、LocalDate、Date、String相互转化大全及其注意事项 一、前言 大家在开发过程中必不可少的和日期打交道&#xff0c;对接别的系统时&#xff0c;时间日期格式不一致&#xff0c;每次都要转化&#xff01; 二、LocalDateTime、LocalDate、Date三者联系 这里先…

二叉搜索树的基础操作

如果对于二叉搜索树不是太清楚&#xff0c;为什么要使用二叉搜索树&#xff1f;作者推荐&#xff1a;二叉搜索树的初步认识_加瓦不加班的博客-CSDN博客 定义节点 static class BSTNode {int key; // 若希望任意类型作为 key, 则后续可以将其设计为 Comparable 接口Object val…

查看本机Arp缓存,以及清除arp缓存

查看Arp缓存目录 Windows 系统使用 winR&#xff0c;输入cmd 在命令窗口输入 arp -a 删除Arp缓存目录 在命令窗口输入 arp -d * 查看主机路由表

js中 for、forEach、for...in、for...of循环的区别和使用

前端面试题库 &#xff08;面试必备&#xff09; 推荐&#xff1a;★★★★★ 地址&#xff1a;前端面试题库 js中 for、forEach、for...in、for...of循环的区别 我们全部以以下数组举例 var arr [1,2,3,4,5];for循环 for(语句 1; 语句 2; 语句 3){} &#xf…

ThreeJS-3D教学八-OBJLoader模型加载+动画

先看效果图&#xff1a; 本篇给大家介绍下模型加载的知识&#xff0c;用到了OBJLoader对应的模型&#xff0c;为了增加趣味性&#xff0c;花了些时间&#xff0c;利用new THREE.Points获取到模型上的点&#xff0c;做了一个动画效果&#xff0c;其实就是操作 Y轴上的点&#x…

[已解决]java-sun.security.validator.ValidatorException: PKIX path building failed

找了好多文章,终于找到个解决办法! 报错详情内容 解决办法 第一种&#xff08;适用于本人解决办法&#xff09;&#xff1a; httpclient-4.5.jar 定时发送http包&#xff0c;忽然有一天报错&#xff0c;http证书变更引起的。 之前的代码 try {CloseableHttpClient httpCli…

多测师肖sir_高级金牌讲师_python之基本使用003

python之基本使用 一、基础使用 1、python中的打印方式 格式&#xff1a;print&#xff08;打印内容&#xff09; 案例&#xff1a;print&#xff08;12&#xff09; 注意点&#xff1a; 打印的对象中&#xff1a;数值可以直接引用&#xff0c;字母或中文要加上引号&#xff08…

Eclipse导入项目之后中文注释乱码

1 问题 Eclipse导入项目之后中文注释乱码。原因&#xff1a;中文乱码的原因是因为编码的关系 2 解决方法 记事本打开查看编码方式 修改eclipse编码方式 在Eclipse中更改文件的编码方式可以通过以下步骤进行&#xff1a; 打开Eclipse&#xff0c;并导航到要更改编码方式的…

量化交易全流程(七)

本节目录 资金分配 实盘交易 vn.py框架 我将重点介绍资金分配的基础模型和实现。当然&#xff0c;这里介绍的模型是最基础的模型&#xff0c;现实实践中往往并不能直接使用。因为后续我将加入机器学习和深度学习在量化交易领域中的应用。 现代 / 均值——方差资产组合理论…

高级工技能等级认定理论部分 看了就过关

4 理论一_职业道德 4.1职业道德基本知识 4.1.1练习 4.2职业守则 4.2.1练习1 4.2.1练习2 5 理论二 _基础知识 5.1 法律责任 5.1.1 练习1 5.1.2 练习2 5.1.3 练习3 5.2 基础知识 5.2.1 练习1 5.2.2 练习2 5.2.3 练习3 5.2.4 练习4 6 理论三_网络与信息安全防护 6.1 网络相…

部署企业级ChatGPT,将AI整合进工作

引言 3月份AI应用大爆发催生了国内大量需求。 然而&#xff0c;所有的需求都不可避免得遇到很多非技术性的问题&#xff1a; 部署开源模型的成本巨大&#xff0c;且效果成谜&#xff0c;65B的模型推理应用最少需要130G显存&#xff0c;而微调训练则需要额外添加8倍的资源。 …

基于YOLO的BIM对象检测

我在此过程中使用的 BIM 数据集取自澳大利亚卫生设施指南。 该数据集包含一组房间数据表和房间布局表&#xff0c;旨在提供典型房间类型的合规示例&#xff0c;并减少规划和设计这些房间时“重新发明轮子”的需要。 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景 1、合…