3.26学习总结java初步实现学生管理系统

(该项目通过视频讲解过程中完成,其中将一些操作进行了修改和完善,其目的是为了巩固前面学习java的一些用法,熟悉写项目的过程)

一.项目要求

学生类:

  • 属性:id、姓名、年龄、家庭住址

添加功能:

  • 键盘录入每一个学生信息并添加,需要满足以下要求: ID唯一

删除功能:

  • 键盘录入要删除的学生id,需要满足以下要求
  • id存在删除
  • id不存在,需要提示不存在,并回到初始菜单

修改功能:

  • 键盘录入要修改的学生id,需要满足以下要求
  • id存在,继续录入其他信息
  • id不存在,需要提示不存在,并回到初始菜单

查询功能:

  • 打印所有的学生信息,需要满足以下要求。
  • 如果没有学生信息,提示:当前无学生信息,请添加后再查询
  • 如果有学生信息,需要按照以下格式输出。

二.项目过程

1.提取项目要求,按要求分成不同的模块.

2.根据各个的操作分析,采取相应的方法

添加操作:按学生属性添加成员信息

删除操作:将通过ID在学生中查找,通过返回值,判断是否存在学生,如果不为-1,即是学生的编号.

修改操作:将通过ID在学生中查找,得到学生编号,在通过Change方法,对具体的学生信息进行修改

查询操作:遍历输出成员信息.

二.代码实现

学生类 Student

package studentguangli;

import java.util.ArrayList;

public class Student {
    //成员变量
    private String id;
    private String name;
    private String sex;
    private int age;
    private String address;


    //空参的构造方法
    public Student() {
    }
    //带参的构造方法
    public Student(String id, String name, String sex, int age, String address) {
        this.id = id;
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.address = address;
    }

    //get方法和set方法
    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 String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

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

}

StudentSystem

package studentguangli;

import studyone.ArrUtill;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class StudentSystem {
    public static void main(String[] args) {
        ArrayList<Student> list=new ArrayList<>();
        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 sc= new Scanner(System.in);
            String choice=sc.next();
            switch (choice){
                case "1":
                    Addstudent(list);
                    break;
                case "2":
                    Deletestudent(list);
                    break;
                case "3":
                    Changestudent(list);
                    break;
                case "4":
                    Findstudent(list);
                    break;
                case "5":
                    System.out.println("退出系统!");
                    System.exit(0);
                default: break;
            }
        }
    }

    public static void Addstudent(ArrayList<Student> list){
        Scanner sc=new Scanner(System.in);
        String id= null;
        //判断id是否唯一
        while (true) {
            System.out.println("请输入添加学生的id:");
            id = sc.next();
            boolean flag=checkid(list,id);
            if(flag){
                System.out.println("id重复,请重新输入:");
            }else{
                break;
            }
        }

        System.out.println("请输入添加学生的姓名:");
        String name=sc.next();
        System.out.println("请输入添加学生的性别:");
        String sex=sc.next();
        System.out.println("请输入添加学生的年龄:");
        int age=sc.nextInt();
        System.out.println("请输入添加学生的家庭住址:");
        String address=sc.next();
        Student s=new Student(id,name,sex,age,address);
        list.add(s);
        System.out.println("学生信息添加成功!");
    }

    public static void Deletestudent(ArrayList<Student> list){

        Scanner sc=new Scanner(System.in);
        while (true) {
            System.out.println("请输入要删除的学生id:");
            String id=sc.next();
            int k=getid(list,id);
            if(k==-1){
                System.out.println("没有找到此id的学生,请重新输入id:");
            }else{
                list.remove(k);
                System.out.println("删除成功!");
                break;
            }
        }
    }

    public static void Changestudent(ArrayList<Student> list){
        Scanner sc=new Scanner(System.in);
        while (true) {
            System.out.println("请输入要修改的学生id:");
            String id=sc.next();
            int k=getid(list,id);
            if(k==-1){
                System.out.println("没有找到此id的学生,请重新输入id:");
            }else{
                change(list,id,k);
                System.out.println("修改成功!");
                break;
            }
        }
    }

    public static void Findstudent(ArrayList<Student> list){
        if(list.isEmpty()){
            System.out.println("暂时没有学生信息,请添加后再查询!");
            return;
        }
        System.out.println("id\t\t姓名\t\t性别\t\t年龄\t\t家庭住址");
        for(int i=0;i< list.size();i++){
            Student s=list.get(i);
            System.out.println(s.getId()+"\t"+s.getName()+"\t  "+s.getSex()+"\t  "+s.getAge()+"\t  "+s.getAddress());
        }
    }

    public static boolean checkid(ArrayList<Student> list,String id){
//        //从学生中查找是否有相同的id
//        for(int i=0;i<list.size();i++){
//            Student s= list.get(i);
//            String sid=s.getId();
//            if(sid.equals(id)){
//                //如果有返回true
//                return true;
//            }
//        }
//        //如果没有返回false
//        return false;
        return getid(list,id)>=0;
    }

    public static int getid(ArrayList<Student> list,String id){
        //从学生中查找是否有相同的id
        for(int i=0;i<list.size();i++){
            Student s= list.get(i);
            String sid=s.getId();
            if(sid.equals(id)){
                //如果有返回该学生的序号
                return i;
            }
        }
        //如果没有返回-1
        return -1;
    }

    public static void change(ArrayList<Student> list,String id,int num){
        Scanner sc=new Scanner(System.in);
        Student s=list.get(num);
        System.out.println("你要修改的学生信息编号(1.姓名,2.性别,3.年龄,4.家庭住址)");
        int choice=sc.nextInt();
        switch (choice){
            case 1:
                System.out.println("请输入你要修改的学生姓名:");
                String newname=sc.next();
                s.setName(newname);
                break;
            case 2:
                System.out.println("请输入你要修改的学生性别:");
                String newsex=sc.next();
                s.setSex(newsex);
                break;
            case 3:
                System.out.println("请输入你要修改的学生年龄:");
                int newage=sc.nextInt();
                s.setAge(newage);
                break;
            case 4:
                System.out.println("请输入你要修改的学生家庭住址:");
                String newaddress=sc.next();
                s.setAddress(newaddress);
                break;
            default:break;
        }
    }
}

三.运行结果

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

mmocr安装和使用

https://github.com/open-mmlab/mmocr/blob/main/README_zh-CN.md https://mmocr.readthedocs.io/en/dev-1.x/get_started/quick_run.html 介绍 MMOCR 是基于 PyTorch 和 mmdetection 的开源工具箱&#xff0c;专注于文本检测&#xff0c;文本识别以及相应的下游任务&#xf…

window平台C#实现软件更新功能

一 实现程序更新思路 程序实现自我升级&#xff0c;一般有两种方式&#xff1a; 1. 独立的更新程序 开发一个独立的更新程序如Update.exe&#xff0c;用于检查主程序是否有新版本&#xff0c;并下载和安装新版本。 实现步骤&#xff1a; 主程序启动完后&#xff0c;调用一下…

C++引用学习day2

思维导图 定义一个矩形类&#xff08;Rectangle&#xff09;&#xff0c;包含私有成员&#xff1a;长(length)、宽&#xff08;width&#xff09;, 定义成员函数&#xff1a; 设置长度&#xff1a;void set_l(int l) 设置宽度&#xff1a;void set_w(int w) 获取长度&#…

Vue 2 组件发布到 npm 的常见问题解决

按照 Vue 2 组件打包并发布到 npm 的方法配置项目后&#xff0c;项目在实际开发过程中&#xff0c;随着代码写法的多样性增加而遇到的各种打包问题&#xff0c;本文将予以逐一解决&#xff1a; 本文目录 同时导出多个组件 样式表 import 问题解决 Json 文件 import 问题解决…

Java 面试宝典:什么是可见性?volatile 是如何保证可见性的?

大家好&#xff0c;我是大明哥&#xff0c;一个专注「死磕 Java」系列创作的硬核程序员。 本文已收录到我的技术网站&#xff1a;https://skjava.com。有全网最优质的系列文章、Java 全栈技术文档以及大厂完整面经 什么是可见性&#xff1f; 可见性是指一个线程对共享变量所作…

C语言例4-5:getchar()函数的调用格式和使用的例子

代码如下&#xff1a; //getchar()函数的调用格式和使用的例子 #include<stdio.h> //编译预处理命令&#xff0c;即文件包含命令 int main(void) {char ch1, ch2;int a;ch1 getchar(); //从键盘输入一个字符并赋予字符型变量ch1ch2 getchar(); //从键盘输入一个…

基于Java实验室预约管理系统设计与实现(源码+部署文档)

博主介绍&#xff1a; ✌至今服务客户已经1000、专注于Java技术领域、项目定制、技术答疑、开发工具、毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精彩专栏 推荐订阅 &#x1f447;&#x1f3fb; 不然下次找不到 Java项目精品实…

C语言例4-20:从键盘输入年和月,输出该月的天数。

代码如下&#xff1a; //从键盘输入年和月&#xff0c;输出该月的天数。 #include<stdio.h> int main(void) {int year, month, days;printf("输入年和月&#xff1f;\n");scanf("%d,%d",&year,&month); //从键盘输入年和月switch(month)…

本地大模型(免安装绿色版)

上一篇文章我们讨论了如何在本地运行大模型 。 安装本地大模型 大部分软件都需要安装&#xff0c;今天是免安装绿色版。 很多人下载不了原版&#xff0c;所以我放百度网盘了。 下载 下载&#xff1a;llava-1.5大模型(7b参数,流量警告:4G) 运行&#xff1a;.\llava-v1.5-7b-…

codeforces round.906 - E - Mirror Grid (数学,坐标变换)

You are given a square grid with n rows and n columns. Each cell contains either 0 0 0 or 1 1 1. In an operation, you can select a cell of the grid and flip it (from 0 → 1 0→1 0→1 or 1 → 0 1→0 1→0). Find the minimum number of operations you need…

TSINGSEE青犀智慧充电桩消防安全烟雾火焰AI算法识别预警方案

一、方案背景 随着AI人工智能、大数据、云计算等技术快速发展与落地&#xff0c;视频智能分析技术在智慧充电桩场景中的应用也越来越广泛。这种技术能够为充电桩站点提供全方位的监控和管理&#xff0c;提高运营效率&#xff0c;保障充电站设备的安全和稳定运行。 通过TSINGS…

第四百二十六回

文章目录 1. 概念介绍2. 实现方法2.1 原生方式2.1 插件方式 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何修改程序的桌面图标"相关的内容&#xff0c;本章回中将介绍如何处理ListView中的事件冲突.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介…

Web APIs知识点讲解(阶段三)

DOM- 节点操作 一.节点操作 1.DOM节点 目标&#xff1a;能说出DOM节点的类型 DOM节点 DOM树里每一个内容都称之为节点 节点类型 元素节点 所有的标签 比如 body、 div html 是根节点 属性节点 所有的属性 比如 href 文本节点 所有的文本 document树&#xff1a; 总结&…

你敢信?苹果iPhone 16将搭载百度AI文心一言

【行业焦点】苹果公司&#xff0c;这位全球消费电子舞台的常青树&#xff0c;近期传出一则震撼业界的消息&#xff1a;其将在新一代iPhone 16系列中国版产品中&#xff0c;深度融合百度的尖端生成式AI技术。这一重大决策不仅揭示了苹果对中国市场的深度耕耘与本地化创新战略&am…

Java Web-Maven

Maven是apache旗下的一个开源项目&#xff0c;是一款用于管理和构建java项目的工具 Maven的作用 1.依赖管理:方便快捷的管理项目依赖资源(jar包)&#xff0c;避免版本冲突问题 我们有的项目需要大量的jar包&#xff0c;采用手动导包的方式非常繁琐&#xff0c;并且版本升级也…

elasticsearch _cat/indices docs.count is different than <index>/_count

今天遇到一个问题&#xff0c;kibana中看到文档数与下面语句查询到的不同 GET /_cat/count/jiankunking_xxxxx_product_expand_test?v GET /jiankunking_xxxxx_product_expand_test/_search?track_total_hitstrue语句查询结果 epoch timestamp count 1711433785 06:16…

外贸企业如何访问外网?

在当今全球化的浪潮下&#xff0c;企业对于稳定、高效的网络连接需求日益迫切。无论是在境内还是境外&#xff0c;企业都需要依托可靠的网络基础设施&#xff0c;以确保业务的顺畅进行。在这样的背景下&#xff0c;我们提供的专业网络运营服务成为了众多企业的首选。 1. 网络建…

neo4j使用详解(三、cypher插入语法——最全参考)

1.插入语法 create, merge, set, delete, remove, create unique, load csv(import) 除插入语法外另外的语法详情请博主其他文章&#xff1a; 查询语法 其他语法 1.1.create语法 创建单个节点: create(n) # (ID:n) 创建带标签的节点: create (n:Person) # (ID:n, label:Perso…

垃圾回收:垃圾回收器

目录 垃圾回收器 评估GC的性能指标 7种典型的垃圾回收器 Serial回收器&#xff1a;串行回收 ParNew回收器&#xff1a;并行回收 Parallel回收器&#xff1a;吞吐量优先 CMS回收器&#xff1a;低延迟 G1回收器&#xff1a;区域化分代式 G1回收过程1-年轻代GC G1回收过程…

人、机中的幻觉和直觉

对于人类而言&#xff0c;幻觉和直觉是两种不同的心理现象。幻觉是一种错误的感知或体验&#xff0c;而直觉是一种在没有明显依据的情况下产生的直观认知。这两种概念在心理学和认知科学中具有不同的意义和研究对象。 人类幻觉是指个体在感知或体验上出现的错误&#xff0c;即看…