java ---学生信息管理系统

2023-10-27

Student --学生类

package 学生信息管理系统;
/*
    学生类
 */
public class Student {
    //学号
    private String  sid;
    //姓名
    private String name;
    //年龄
    private String age;
    //居住地
    private String address;

    //构造函数
    public Student(){}
    public Student(String sid, String name, String age, String address){
        this.sid = sid;
        this.name = name;
        this.age = age;
        this.address = address;
    }

    //Alt + insert 可以快速生成这些东西
    public String getSid() {
        return sid;
    }

    public void setSid(String sid) {
        this.sid = sid;
    }

    public String getName() {
        return name;
    }

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

    public String getAge() {
        return age;
    }

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

    public String getAddress() {
        return address;
    }

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

测试类

package 学生信息管理系统;

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

public class StudentManager {
    public static void main(String[] args) {
        //创建集合对象,用于存储学生数据
        ArrayList<Student> array = new ArrayList<Student>();

        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录入信息
            Scanner sc = new Scanner(System.in);
            String line = sc.nextLine();

            //用Switch语句完成选择
            switch(line){
                case "1":
                    //System.out.println("添加学生");
                    addStudent(array);
                    break;
                case "2":
                    //System.out.println("删除学生");
                    delectStudent(array);
                    break;
                case "3":
                    //System.out.println("修改学生");
                    updateStudent(array);
                    break;
                case "4":
                    //System.out.println("查看所有学生");
                    findAllStudent(array);
                    break;
                case "5":
                    System.out.println("谢谢使用");
                    //break;
                    System.exit(0);   //JVM退出,即Java虚拟机退出
            }
        }
    }

    //添加学生信息
    public static void addStudent(ArrayList<Student> array){
        Scanner sc = new Scanner(System.in);
        String sid;  //这里需要全局
        while(true) {
            System.out.println("请输入学生学号:");
            sid = sc.nextLine();

            boolean flag = isUsed(array, sid);
            if (flag) {
                System.out.println("你输入的学号已经被使用!请重新输入:");
            }else{
                break;
            }
        }

        System.out.println("请输入学生姓名:");
        String name = sc.nextLine();
        System.out.println("请输入学生年龄:");
        String age = sc.nextLine();
        System.out.println("请输入学生居住地:");
        String address = sc.nextLine();

        //创建学生对象
        Student s = new Student();
        s.setSid(sid);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);

        //添加到学生集合中
        array.add(s);

        //
        System.out.println("添加学生成功!");
    }
    //判断学号是否被使用
    public static boolean isUsed(ArrayList<Student> array, String sid){
        boolean flag = false;
        for(int i=0; i<array.size(); i++){
            Student s = array.get(i);
            if(s.getSid().equals(sid)){
                flag = true;
                break;
            }
        }
        return flag;
    }
    //查看学生信息
    public static void findAllStudent(ArrayList<Student> array){
        //判断集合中是否有数据
        if(array.size()==0){
            System.out.println("无信息,请先添加信息再查询!");
            return;
        }

        //显示表头信息
        // \t:tab键的意思
        System.out.println("学号\t姓名\t年龄\t\t居住地");

        //显示
        for (int i=0; i< array.size(); i++){
            Student s = array.get(i);
            System.out.println(s.getSid() + "\t" + s.getName() + "\t" + s.getAge() + "岁\t" + s.getAddress());
        }
    }
    //删除学生信息
    public static void delectStudent(ArrayList<Student> array){
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入你要删除的学生的学号:");
        String sid = sc.nextLine();

        int index = -1;

        //遍历
        for(int i=0; i< array.size(); i++){
            Student s = array.get(i);
            if (s.getSid().equals(sid)){
                index = i;
                array.remove(i);
                break;
            }
        }
        if (index==-1){
            System.out.println("该信息不存在!");
        }
        else{
            System.out.println("删除学生成功!");
        }
    }
    //修改学生信息
    public static void updateStudent(ArrayList<Student> array){
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入你要修改的学生的学号:");
        String sid = sc.nextLine();

        //键盘录入要修改的学生信息
        System.out.println("请输入学生新姓名:");
        String name = sc.nextLine();
        System.out.println("请输入学生新年龄:");
        String age = sc.nextLine();
        System.out.println("请输入学生新居住地:");
        String address = sc.nextLine();

        Student s = new Student();
        s.setSid(sid);
        s.setName(name);
        s.setName(age);
        s.setAddress(address);

        //遍历信息,进行修改
        for(int i=0; i< array.size(); i++){
            Student student = array.get(i);
            if(student.getSid().equals(sid)){
                array.set(i,s);
                break;
            }
        }

        //提示修改成功
        System.out.println("修改信息成功!");
    }
}

希望大家批评指正

谢谢大家~

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java ---学生信息管理系统 的相关文章

随机推荐

  • css利用border-radius圆角来设置背景图片为圆角的

    例子
  • 【转】MySQL 的表锁和行锁

    转自 https mp weixin qq com s 8LrPHG7XtsvNJJs58yK 0g 锁是计算机协调多个进程或者纯线程并发访问某一资源的机制 相对于其他数据库而言 MySQL 的锁机制比较简单 其最显著的特点是不同的存储引擎
  • crout分解计算例题_如何计算有理函数的不定积分

    本文中所有不定积分都省略常数项 不同小节的相同字母没有关系 部分分式分解 一般微积分书上都会讲有理函数的部分分式分解 以及如何用这种方法算有理函数的不定积分 方法如下 假设 是给定的有理函数 其中 是多项式 先用多项式除法 令 其中 是多项
  • Django-Model层ORM(五)

    目录 一 数据库配置 setting py全局配置文件中 默认 sqlite3数据库 通过class创建一张表 二 使用mysql数据库 通过class创建数据库表 三 单表操作 添加操作一 实例化book对象调用save 函数 添加操作二
  • 操作系统期末总复习(题库)

    本文说明 本文以习题为主 每题标明对应的书本页面 并作出详细解析 大家可以对照复习 选择题章节并没按书本章节分 计算题和分析题无书本页面位置或详细解析 请大家自行找对应章节进行学习 祝大家都能通过考试 也希望大家点赞支持 操作系统期末总复习
  • Python中的 nonlocal 关键字

    在Python中 nonlocal 关键字用于在嵌套函数中引用外部 但不是全局 作用域的变量 nonlocal 可以使你在嵌套函数内部修改外层 非全局 作用域的变量 为了更好地理解 nonlocal 的作用 我们先看一个没有使用 nonlo
  • ELK6.8版本整合filebeat和kafka收集springboot日志

    一 系统流程图 二 统一springboot的日志格式 方便logstash 已中括号过滤用
  • FFmpeg学习笔记--FFplay播放控制、FFplay基本命令参数、FFplay高级命令参数

    目录 1 FFplay播放控制 2 FFplay命令参数 1 强制显示宽高 用于调整窗口大小 2 设置帧尺寸 仅适用于没有包含帧大小的视频 3 设置像素格式 4 以全屏模式启动 5 禁用音频 视频和字幕 6 设置开始播放的位置 7 设置播放
  • 本地离线安装node-sass

    在使用 vue admin template 作为模板进行项目开发时 其模板中自带的 node sass 版本不一定和我们本地的node 环境一致 且使用 npm i node sass s 重新安装 node sass 也会报各种莫名其妙
  • 【shell】shell之cut用法

    目录 即可即用 命令详细说明 即可即用 提取列的用awk命令更好用 示例1 截取pers文件内冒号分隔的字符串的第3列 命令 命令说明 d 使用冒号 作为域分隔符 f 3 取分隔后的第3列 示例2 取括号内的数值 you age is 19
  • Error:for nested data item, row-key is required.的解决方法

    一 问题描述 遇到这个问题 首先跟着网上的教程更改 去掉package json中的element ui 版本号前面 不行之后我以为是我的版本问题 换了版本之后 报的错误更多了 然后给
  • Pandas使用(二)--筛选出dataframe某列中含有特定元素的行

    Pandas使用 二 筛选出dataframe某列中含有特定元素的行 python复现excel function dataframe筛选数据 方法一 通过条件判断 筛选出tnode列等于31010600000122的行 list to d
  • ubuntu tesseract 调试总结

    1 下载 编译运行Leptonica 下载地址 http code google com p leptonica 版本号 1 69 包名 leptonica 1 69 tar gz依次输入命令 configure make make ins
  • 深入Android系统(十二)Android图形显示系统-2-SurfaceFlinger与图像输出

    createEventConnection 方法返回的是一个IDisplayEventConnection对象mEvents 接着通过IDisplayEventConnection对象的stealReceiveChannel 方法 该方法主
  • 浅谈 JavaScript 作用域

    一 什么是作用域 作用是对代码的一个读写操作 域是js能够实现的一个范围 在script标签中var的时候 其实是在最大的window上加了一个属性 如果在script中没有用var声明 而是直接赋值 那就是自动在window上加一个属性
  • 解决出现“CMake can not determine linker language for target”问题的方法

    今天来分享一个我在编写CmakeList文件曾遇到的一个错误 当我通过cmake进行生成Makefile文件时候出现了下面两个错误 错误提示信息 CMake Error CMake can not determine linker lang
  • ChaosBlade 项目指南:我是如何为社区贡献 Redis 故障场景

    01 Redis 新特性介绍 1 1 背景 Redis 实际使用过程中会存在一些故障演练需求 例如 模拟触发所有 key 过期的极端故障场景 模拟主动触发 Redis 内存淘汰策略释放内存场景等等 所以 根据以上故障演练需求 决定对 Cha
  • MathType7.4mac最新版本数学公式编辑器安装教程

    MathType7 4中文版是一款功能强大且易于使用的公式编辑器 该软件可与word软件配合使用 有效提高了教学人员的工作效率 避免了一些数学符号和公式无法在word中输入的麻烦 新版MathType7 4启用了全新的LOGO 带来了更多对
  • Boost asio的async_write函数

    Boost asio是一个异步网络通信的库 其中async write是一个比较常用的函数 但是 如果没有正确的使用 就可能会出现一些意想不到的潜在Bug 例如下面的代码 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1
  • java ---学生信息管理系统

    Student 学生类 package 学生信息管理系统 学生类 public class Student 学号 private String sid 姓名 private String name 年龄 private String age