草庐IT

Java案例 | 学籍管理系统(超详解 )

不爱生姜不吃醋 2024-04-08 原文

不爱生姜不吃醋⭐️⭐️⭐️

声明:
🌻本文写的是Java基础项目——学籍管理系统 ❗️
🌻看完之后觉得不错的话麻烦动动小手点个赞赞吧👍
🌻如果本文有什么错误的话欢迎在评论区中指正哦💗
🌻与其明天开始,不如现在行动!💪
🌻大家的支持就是我最大的动力!冲啊!🌹🌹🌹
🌸 Java基础案例 | 第一弹博文
🌸 Java基础案例 | 第二弹博文

文章目录


🌴前言

学籍管理系统是一个教育单位不可缺少的部分,它的内容对于学校的领导人和管理者来说都至关重要,有助于提高整个学校的教育水平和管理水平,减少人力资源的浪费,适应大量的学生信息变更。
本文所写的学籍管理系统实现了学籍管理系统的主要功能,大家的小学期程序设计能用到的话,可以参考一下哦!当然啦,也可以在此基础上不断完善!


🌴一、学籍管理系统功能介绍

1.介绍

学籍管理系统首先有外部的主界面展示功能,进入主界面后可以选择想要的操作,如添加学生信息修改学生信息查找学生信息删除学生信息查看学生信息退出系统操作。

2.学籍管理系统的主要功能图示

3.代码编写的思路

1.1 定义学生类
1.2 主界面的代码编写
1.3 添加学生的代码编写
1.4 查看学生的代码编写
1.5 删除学生的代码编写
1.6 修改学生的代码编写

🌴二、定义学生类

1. 学生类名称:Student

2. 包含的成员变量

学号:num
姓名:name
年龄:age
地址:address

3.构造方法

无参构造
带四个参数的构造

4.成员方法

每个成员变量给出对应的get/set方法

5.代码示例

public class Student {
//不爱生姜不吃醋
    private String num;//学生学号
    private String name;//学生姓名
    private String age;//学生年龄
    private String address;//学生地址

    public Student() {
    }//无参构造

    public Student(String num, String name, String age, String address) {
        this.num = num;
        this.name = name;
        this.age = age;
        this.address = address;
    }//带四个参数的构造

    public String getNum() {
        return num;
    }

    public void setNum(String num) {
        this.num = num;
    }

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

🌴三.主界面的代码编写

1.思路

  • 新建一个主类Studentdemo
  • 用输出语句完成主界面的编写
  • Scanner 实现键盘录入数据
  • switch 语句完成操作的选择
  • 用循环完成再次回到主界面
  • 循环之中包含添加、查找、删除、修改的方法

2.代码示例

主类:主界面的编写

public class Studentdemo {
    public static void main(String[] args){
    //不爱生姜不吃醋
        ArrayList<Student> array=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 line = sc.nextLine();

            switch (line) {
                case "1":
                   //**此处调用“添加学生方法”**
                    break;
                case "2":
                    //**此处调用“删除学生方法”**
                    break;
                case "3":
                    //**此处调用“修改学生方法”**
                    break;
                case "4":
                    //**此处调用“查找学生方法”**
                    break;
                case "5":
                    System.out.println("谢谢使用!");
                    System.exit(0);
            }
        }
    }
}

🌴四、系统功能方法的实现

1.添加学生信息的代码编写

1.1 思路

  1. 键盘录入选择添加学生;
  2. 定义一个方法用于添加学生;
    • 显示提示信息
    • 键盘录入学生对象信息所需要的数据
    • 创建学生对象,将录入的数据赋值给学生对象的成员变量
    • 将学生对象添加到集合中
    • 给出添加成功提示
  3. 调用方法

1.2 添加学生信息的方法说明图

1.3 代码示例

添加学生方法

    public static void Addstudent(ArrayList<Student> array){
    //不爱生姜不吃醋
        // 定义一个方法用于添加学生;
        Scanner sc=new Scanner(System.in);

        System.out.print("请输入学生学号:");
        String num=sc.nextLine();
        System.out.print("请输入学生姓名:");
        String name=sc.nextLine();
        System.out.print("请输入学生年龄:");
        String age=sc.nextLine();
        System.out.print("请输入学生地址:");
        String address=sc.nextLine();

        //创建学生对象,将键盘录入的数据赋值给学生对象的成员变量
        Student s=new Student();
        s.setNum(num);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);

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

        //给出添加成功提示
        System.out.println("添加学生成功!");
        }

添加学生方法代码写完后,注意要在main方法中调用:Addstudent(array);


2.查看学生信息的代码编写

2.1 思路

  1. 键盘录入选择查看所有学生信息;
  2. 定义一个方法,用于查看学生信息;
    • 显示表头信息
    • 将集合中数据取出按照对应格式显示学生信息
  3. 调用方法。

2.2 查看学生信息的方法说明图

2.3 代码示例

查看学生方法

    // 定义一个方法,用于查看学生信息;
    public static void Findallstudent(ArrayList<Student> array){
        if(array.size()==0){
            System.out.println("无信息!");
            return;
        }
        // 显示表头信息
        // 将集合中数据取出按照对应格式显示学生信息
         for(int i=0;i<array.size();i++){
             Student s=array.get(i);
             System.out.println("学号:"+s.getNum());
             System.out.println("姓名:"+s.getName());
             System.out.println("年龄:"+s.getAge());
             System.out.println("地址:"+s.getAddress());
             System.out.println("  ");
         }
    }

查看学生方法代码写完后,注意要在main方法中调用:Findallstudent(array);


3.删除学生信息的代码编写

3.1 思路

  1. 键盘录入要删除的学生信息;
  2. 定义一个方法,用于删除学生信息;
    • 显示提示信息
    • 键盘录入要删除的学生学号
    • 遍历集合将对应学生对象从集合中删除
    • 给出删除成功提示
  3. 调用方法

3.2 删除学生信息的方法说明图

3.3 代码示例

删除学生方法

  // 定义一个方法,用于删除学生信息;
    public static void Deletestudent(ArrayList<Student> array){
        // 键盘录入要删除的学生信息,显示提示信息
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入要删除学生的学号:");
        String num=sc.nextLine();
        
        int index = -1;
        
        // 遍历集合将对应学生对象从集合中删除
        for(int i=0;i<array.size();i++){
            Student s=array.get(i);
            if(s.getNum().equals(num)){
                index = i;
                break;
            }
        }
        
        if(index == -1){
            System.out.println("学号有误!");
        }else{
            array.remove(index);
            System.out.println("删除学生信息成功!");
        }
    }

删除学生方法代码写完后,注意要在main方法中调用:Deletestudent(array);


4.修改学生的代码编写

4.1 思路

  1. 键盘录入选择修改的学生信息;
  2. 定义一个方法,用于修改学生信息;
    • 显示提示信息
    • 键盘录入要修改的学生学号
    • 遍历集合修改对应的学生信息
    • 给出修改成功提示
  3. 调用方法

4.2 修改学生信息的方法说明图

4.3 代码示例

修改学生方法

    // 定义一个方法,用于修改学生信息;
    public static void Updatestudent(ArrayList<Student> array){
    //不爱生姜不吃醋
        // 键盘录入选择修改的学生信息,显示提示信息
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入要修改的学生学号:");
        String num=sc.nextLine();
        
        // 键盘录入要修改的学生信息
        System.out.print("请输入修改后的学生姓名");
        String name=sc.nextLine();
        System.out.print("请输入修改后的学生年龄");
        String age=sc.nextLine();
        System.out.print("请输入修改后的学生地址");
        String address=sc.nextLine();
        
        //创建学生对象
        Student s=new Student();
        s.setNum(num);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);
        //遍历集合修改对应的学生信息
        for(int i=0;i<array.size();i++){
            Student student=array.get(i);
            if(student.getNum().equals(num)){
                array.set(i,s);
                break;
            }
        }
        //修改成功提示
        System.out.println("修改成功!");
    }

修改学生信息方法代码写完后,注意要在main方法中调用:Updatestudent(array);


5.学号重复问题

5.1 思路

  1. 定义一个方法,对学号是否被使用进行判断;
    • 如果与集合中的某一个学生学号相同,返回true
    • 如果都不相同,返回false;
  2. 在添加学生录入学号后调用该方法
    • 如果返回true,提示重新输入学号
    • 如果返回false,正常添加学生对象

5.2 学号被占用的方法说明图

5.3 代码示例

判断学号是否被使用方法

     // 定义一个方法,对学号是否被使用进行判断;
    public static boolean Isused(ArrayList<Student> array,String num){
    //不爱生姜不吃醋
        // 如果与集合中的某一个学生学号相同,返回true
        // 如果都不相同,返回false;
        boolean flag =false;

        for(int i=0;i<array.size();i++){
            Student s=array.get(i);
            if(s.getNum().equals(num)){
                flag = true;
                break;
            }
        }
        return flag;
        // 在添加学生录入学号后调用该方法
        // 如果返回true,提示重新输入学号
        // 如果返回false,正常添加学生对象
    }

5.4 代码示例

改进后的 添加学生信息方法

     public static void Addstudent(ArrayList<Student> array){
        // 定义一个方法用于添加学生;
        Scanner sc=new Scanner(System.in);

        String num;

        //为了让程序回到这里,我们使用循环实现
        while(true){
            System.out.print("请输入学生学号:");
            num = sc.nextLine();

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

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

        //创建学生对象,将键盘录入的数据赋值给学生对象的成员变量
        Student s=new Student();
        s.setNum(num);
        s.setName(name);
        s.setAge(age);
        s.setAddress(address);

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

        //给出添加成功提示
        System.out.println("添加学生成功!");
    }

两个方法代码写完后,注意要在main方法中调用:
首先调用判断学号被使用方法:Isused(array);
调用改进后的添加学生信息方法:Addstudent(array);
注意:如果之前有调用了标题4中的方法,应先删去后在调用改进后的添加学生信息方法!


🌴总结

文章中代码的编写使用的都是Java基础知识,多加练习熟能生巧。
本文中若是有出现的错误请在评论区或者私信指出,我再进行改正优化,如果文章对你有所帮助,请给博主一个宝贵的三连,感谢大家😘!!!


有关Java案例 | 学籍管理系统(超详解 )的更多相关文章

  1. ruby - i18n Assets 管理/翻译 UI - 2

    我正在使用i18n从头开始​​构建一个多语言网络应用程序,虽然我自己可以处理一大堆yml文件,但我说的语言(非常)有限,最终我想寻求外部帮助帮助。我想知道这里是否有人在使用UI插件/gem(与django上的django-rosetta不同)来处理多个翻译器,其中一些翻译器不愿意或无法处理存储库中的100多个文件,处理语言数据。谢谢&问候,安德拉斯(如果您已经在ruby​​onrails-talk上遇到了这个问题,我们深表歉意) 最佳答案 有一个rails3branchofthetolkgem在github上。您可以通过在Gemfi

  2. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  3. ruby-on-rails - 获取 inf-ruby 以使用 ruby​​ 版本管理器 (rvm) - 2

    我安装了ruby​​版本管理器,并将RVM安装的ruby​​实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby​​。有没有办法让emacs像shell一样尊重ruby​​的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el

  4. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  5. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  6. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  7. ruby-on-rails - 事件管理员日期过滤器日期格式自定义 - 2

    是否有简单的方法来更改默认ISO格式(yyyy-mm-dd)的ActiveAdmin日期过滤器显示格式? 最佳答案 您可以像这样为日期选择器提供额外的选项,而不是覆盖js:=f.input:my_date,as::datepicker,datepicker_options:{dateFormat:"mm/dd/yy"} 关于ruby-on-rails-事件管理员日期过滤器日期格式自定义,我们在StackOverflow上找到一个类似的问题: https://s

  8. 电脑0x0000001A蓝屏错误怎么U盘重装系统教学 - 2

      电脑0x0000001A蓝屏错误怎么U盘重装系统教学分享。有用户电脑开机之后遇到了系统蓝屏的情况。系统蓝屏问题很多时候都是系统bug,只有通过重装系统来进行解决。那么蓝屏问题如何通过U盘重装新系统来解决呢?来看看以下的详细操作方法教学吧。  准备工作:  1、U盘一个(尽量使用8G以上的U盘)。  2、一台正常联网可使用的电脑。  3、ghost或ISO系统镜像文件(Win10系统下载_Win10专业版_windows10正式版下载-系统之家)。  4、在本页面下载U盘启动盘制作工具:系统之家U盘启动工具。  U盘启动盘制作步骤:  注意:制作期间,U盘会被格式化,因此U盘中的重要文件请注

  9. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  10. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

随机推荐