Java课程设计-学生管理系统《控制台版本》

news2024/12/21 18:00:04

博主介绍全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战

🍅文末获取源码联系🍅

👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟

 java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

目录

功能截图

代码实现: 

源码获取:


      最近很多同学找我帮忙做一些课程设计或Web前端大作业、其中控制台项目应该是初学者必须经历的一个过程、作为java初学者这个控制台版本的学生管理系统十分合适、用到的技术也是最简单的JavaList集合、变量的声明、对象的创建、一些基本的while语句、switch语句、循环遍历等基础语法。一个最基础版本的控制台学生管理系统也就是CRUD功能

其中主要字段包含了学生编号、学生姓名、学生年龄、学生性别、学生所在班级、学生所在学校以及学生联系方式等字段: 

学生编号(ID)
学生姓名(name)
学生年龄(age)
学生性别(gender)
学生所在班级(className)
学生所在学校(school)
学生联系方式(contact)

功能截图

 

代码实现: 

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

public class StudentManagementSystem {

    static ArrayList<Student> studentList = new ArrayList<Student>();

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        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("===========================");
            System.out.print("请输入操作编号:");
            int choice = sc.nextInt();
            switch (choice) {
                case 1:
                    addStudent(sc);
                    break;
                case 2:
                    viewStudent(sc);
                    break;
                case 3:
                    modifyStudent(sc);
                    break;
                case 4:
                    deleteStudent(sc);
                    break;
                case 5:
                    System.out.println("谢谢使用学生管理系统!");
                    System.exit(0);
                default:
                    System.out.println("请输入正确的操作编号!");
                    break;
            }
        }

    }

    // 添加学生信息
    public static void addStudent(Scanner sc) {
        System.out.print("请输入学生编号:");
        int id = sc.nextInt();
        System.out.print("请输入学生姓名:");
        String name = sc.next();
        System.out.print("请输入学生年龄:");
        int age = sc.nextInt();
        System.out.print("请输入学生性别:");
        String gender = sc.next();
        System.out.print("请输入学生所在班级:");
        String className = sc.next();
        System.out.print("请输入学生所在学校:");
        String school = sc.next();
        System.out.print("请输入学生联系方式:");
        String contact = sc.next();
        Student student = new Student(id, name, age, gender, className, school, contact);
        studentList.add(student);
        System.out.println("添加成功!");
    }

    // 查看学生信息
    public static void viewStudent(Scanner sc) {
        if (studentList.size() == 0) {
            System.out.println("当前没有学生信息!");
            return;
        }
        System.out.println("学生编号\t学生姓名\t学生年龄\t学生性别\t学生所在班级\t学生所在学校\t学生联系方式");
        for (int i = 0; i < studentList.size(); i++) {
            System.out.println(studentList.get(i).toString());
        }
    }

    // 修改学生信息
    public static void modifyStudent(Scanner sc) {
        if (studentList.size() == 0) {
            System.out.println("当前没有学生信息!");
            return;
        }
        System.out.print("请输入要修改的学生编号:");
        int id = sc.nextInt();
        for (int i = 0; i < studentList.size(); i++) {
            if (studentList.get(i).getId() == id) {
                System.out.print("请输入新的学生姓名:");
                String name = sc.next();
                System.out.print("请输入新的学生年龄:");
                int age = sc.nextInt();
                System.out.print("请输入新的学生性别:");
                String gender = sc.next();
                System.out.print("请输入新的学生所在班级:");
                String className = sc.next();
                System.out.print("请输入新的学生所在学校:");
                String school = sc.next();
                System.out.print("请输入新的学生联系方式:");
                String contact = sc.next();
                studentList.get(i).setName(name);
                studentList.get(i).setAge(age);
                studentList.get(i).setGender(gender);
                studentList.get(i).setClassName(className);
                studentList.get(i).setSchool(school);
                studentList.get(i).setContact(contact);
                System.out.println("修改成功!");
                return;
            }
        }
        System.out.println("未找到该学生的信息!");
    }

    // 删除学生信息
    public static void deleteStudent(Scanner sc) {
        if (studentList.size() == 0) {
            System.out.println("当前没有学生信息!");
            return;
        }
        System.out.print("请输入要删除的学生编号:");
        int id = sc.nextInt();
        for (int i = 0; i < studentList.size(); i++) {
            if (studentList.get(i).getId() == id) {
                studentList.remove(i);
                System.out.println("删除成功!");
                return;
            }
        }
        System.out.println("未找到该学生的信息!");
    }

}

class Student {

    private int id; // 学生编号
    private String name; // 学生姓名
    private int age; // 学生年龄
    private String gender; // 学生性别
    private String className; // 学生所在班级
    private String school; // 学生所在学校
    private String contact; // 学生联系方式

    public Student(int id, String name, int age, String gender, String className, String school, String contact) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.gender = gender;
        this.className = className;
        this.school = school;
        this.contact = contact;
    }

    public int getId() {
        return id;
    }

    public void setId(int 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 getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }

    public String getContact() {
        return contact;
    }

    public void setContact(String contact) {
        this.contact = contact;
    }

    @Override
    public String toString() {
        return id + "\t\t" + name + "\t\t" + age + "\t\t" + gender + "\t\t" + className + "\t\t" + school + "\t\t" + contact;
    }
}

这个学生管理系统可以通过控制台进行交互,包含四个功能模块:添加学生信息、查看学生信息、修改学生信息以及删除学生信息。其中每个学生的信息包括学生编号、学生姓名、学生年龄、学生性别、学生所在班级、学生所在学校以及学生联系方式。

源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻获取联系方式👇🏻

 精彩专栏推荐订阅下方专栏👇🏻

Java项目精品实战案例《100套》

Java微信小程序项目实战《100套》

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

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

相关文章

JavaEE(系列20) -- 网络编程之UDP和TCP套接字

目录 1. 网络编程 2. UDP网络编程 2.1 DatagramSocket API 2.2 DatagramPacket API 2.3 基于UDP实现的回显服务器 2.3.1 UDP服务器设计步骤 2.3.2 服务器代码 2.3.3 客户端代码 2.3.4 基于UDP写一个字典服务器 3. TCP网络编程 3.1 ServerSocketAPI 3.2 SocketAPI …

如何不出国一年内拿到加拿大女王大学金融硕士学位证书?

作为加拿大最好的公立大学之一&#xff0c;QueensUniversity位于安大略省的金斯顿市。最近&#xff0c;它在QS全球大学排名中跻身第209位&#xff0c;同时在加拿大的综合排名中名列第7位。这表明女王大学在学术研究和教育方面都有着出色的表现。Queens University坐落于安大略省…

分布式光伏发电远程监控系统

分布式光伏发电远程监控系统 项目背景 新能源、可再生能源接入电网是智能电网建设的重要组成&#xff0c;也是能源互联网发展的基础。近年来&#xff0c;太阳能光伏发电技术快速发展&#xff0c;光伏发电并网对配电网的影响也不断加深。电网调度人员需要人工参与光伏发电站的发…

RK3588+FPGA+Cameralink高速相机解决方案

1. 视频接入&#xff0c;其中可见使用LVDS&#xff0c;红外使用cameralink 2. H264低倍率压缩编码本地存储 3. H264压缩使用同步422接口或者网口UDP协议输出实时码流 4. 使用串口进行通讯&#xff0c;进行类似于可见、红外或者激光器或者地面控制软件等之间的通讯 5. 使用网…

SpringBoot3-基础配置和多环境开发

1. 配置文件格式 提供三种属性配置方式&#xff0c;当三个配置文件都有&#xff0c;加载顺序从前至后 示例第二种&#xff08;主要也是用这个&#xff09;&#xff1a; 2. yaml格式 3. yaml读取数据格式的三种方式 第一种&#xff0c;使用Value读取单一属性数据 Value("${…

基于redis实现消息队列(更推荐使用专业的mq)

目录 利用redis实现消息队列&#xff08;基于list&#xff0c;点对点模型&#xff09;——lpush存放队列&#xff08;lpush 队列名 队列内容&#xff08;可一次存放多个内容&#xff0c;用空格隔开&#xff09;&#xff09; brpop取队列&#xff08;brpop 队列名 等待时间单位秒…

机器视觉日常习题(更新中。。。)

目录 第二讲 图像处理概述 第二讲 图像处理概述 几何变换&#xff1a;又称为图像空间变换&#xff0c;它将一幅图像中的坐标位置映射到另一幅图像中的新坐标位置。图像分割&#xff1a;把图像分成各具特色的区域并提取感兴趣目标的技术和过程。图像边缘&#xff1a; 平滑&#…

【深入浅出 Spring Security(六)】一文搞懂密码的加密和比对

Spring Security 中的密码加密 一、PasswordEncoder 详解常见的实现类&#xff08;了解&#xff09;DelegatingPasswordEncoder源码分析DelegatingPasswordEncoder 在哪实例化的&#xff1f; 二、自定义加密自定义方式一&#xff1a;使用{id}的形式自定义方式二&#xff1a;向S…

程序员失业转行送外卖,晒出当天收入,还以为看错了!

在程序员的共识中&#xff0c;30岁之前自己是很受企业欢迎的&#xff0c;有经验有技术&#xff0c;能够为公司创造足够多的价值。 但是一旦超过了35岁&#xff0c;如果没有做到架构师或者成为管理人员&#xff0c;那很可能是连工作都找不到的。而且这个年龄的程序员还要面临着…

700MHz设备对广播电视信号的干扰有哪些?

700MHz&#xff0c;由于其较长的波长&#xff0c;良好的传播与覆盖特性&#xff0c;不仅一直被多国用作广播电视信号频率&#xff0c;4G LTE和5G NR也同样看好这一频段&#xff0c;并在此频段上进行了相应的部署和规划。目前已经有超过45个国家和地区&#xff0c;将700MHz频段部…

【网络安全】企业应急响应基础技能

windows 任务计划列表 1. 计算机管理窗口,选择 系统工具 中 任务计划程序 中的 任务计划程序库选项 可以查看任务计划的名称,状态,触发器等详细信息 2.powershell中输入get-scheduledtask 可以查看当前系统所有任务计划信息 任务路径,名称,状态等详细信息 3.命令行中输入s…

C++11:右值引用,实现移动语义和完美转发

目录 1、右值引用 2、移动语义&#xff08;std::move&#xff09; 3、完美转发&#xff08;std::forward&#xff09; 1、右值引用 右值引用&#xff08;Rvalue reference&#xff09;是C11引入的一个新特性&#xff0c;它是一种新的引用类型&#xff0c;用于表示将要被移动…

5个小时,搭出2套应用,这一低代码平台很强劲!

现代管理学之父德鲁克提及创新本质时&#xff0c;说了两点&#xff1a; 一是让昂贵的东西变得便宜&#xff0c;老百姓能用&#xff1b;二是让高门槛东西变得低门槛&#xff0c;普通人可用。 而低代码正符合这两个条件。 一、背景 所谓低代码&#xff0c;是一种软件开发方法&…

常用的LED显示屏驱动芯片和控制系统

常用的LED显示屏驱动芯片包括以下几种&#xff1a; TPIC6B595&#xff1a;这是一种串行输入、并行输出的LED显示屏驱动芯片&#xff0c;适用于驱动7段数码管等简单的LED显示屏。 MAX7219/MAX7221&#xff1a;这是一种常用的LED显示屏驱动器&#xff0c;可驱动8x8点阵LED显示屏。…

npm 发布新包或者新模块后,无法下载最新版本,如何解决?

目录 1、方法一&#xff1a;在npm官网搜索对应的模块&#xff0c;看看是否有最新版本的存在&#xff1f; 2、方法二&#xff1a;排查本地使用的是什么镜像&#xff1f; 3、方法三&#xff1a;将淘宝镜像切换成npm镜像 1、方法一&#xff1a;在npm官网搜索对应的模块&#xf…

运维小白必学篇之基础篇第十四集:DHCP中继实验

DHCP中继实验 目录 服务器端&#xff1a;&#xff08;vmware5&#xff09; 中继器端&#xff1a;(双网卡ens33、vmware5&#xff1b;ens36、vmware6&#xff09; 客户端&#xff1a;&#xff08;vmware6&#xff09; 实验作业&#xff08;主机名为自己的名字&#xff09;&a…

WebGIS学习-01-GIS基础概念与Mapbox基础

1.地图数据来源 1.栅格数据&#xff1a; -.jpg&#xff0c;.png等图片数据&#xff1b; -卫星等拍摄的影像&#xff1b;.tiff 2.矢量数据&#xff1a; -geojson的数据&#xff0c;多用于绘制边界 -放大缩小都不会失真&#xff0c;且高度支持手绘 2.网页是如何渲染地图数据的 …

什么是压力测试?如何进行Jmeter压力测试

一、什么是压力测试 软件测试中&#xff1a;压力测试&#xff08;Stress Test&#xff09;&#xff0c;也称为强度测试、负载测试。压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷&#xff0c;长时间或超大负荷地运行测试软件&#xff0c;来测试被测系统的性能、…

深度学习-调参技巧总结

针对CNN优化的总结 使用没有 batchnorm 的 ELU 非线性或者有 batchnorm 的 ReLU。用类似1*1的网络结构预训练RGB数据&#xff0c; 能得到更好的效果。使用线性学习率衰退策略。使用平均和最大池化层的和。使用大约 128&#xff08;0.005&#xff09; 到 256 &#xff08;0.01&a…

5.1 - Web漏洞 - XSS漏洞详解

「作者简介」&#xff1a;CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」&#xff1a;对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 XSS漏洞 一、什么是XSS&#xff1f;二、XSS概述三、靶场练习四、XSS使用步骤五、XSS攻击类…