Java超详细教你写一个学籍管理系统案例

目录
  • 前言
  • 一、学籍管理系统功能介绍
    • 1.介绍
    • 2.学籍管理系统的主要功能图示
    • 3.代码编写的思路
  • 二、定义学生类
    • 1.学生类名称:
    • 2.包含的成员变量
    • 3.构造方法
    • 4.成员方法
    • 5.代码示例
  • 三、主界面的代码编写
    • 1.思路
    • 2.代码示例
  • 四、系统功能方法的实现
    • 1.添加学生信息的代码编写
      • 1.1 思路
      • 1.2 添加学生信息的方法说明图
      • 1.3 代码示例
    • 2.查看学生信息的代码编写
      • 2.1 思路
      • 2.2 查看学生信息的方法说明图
      • 2.3 代码示例
    • 3.删除学生信息的代码编写
      • 3.1 思路
      • 3.2 删除学生信息的方法说明图
      • 3.3 代码示例
    • 4.修改学生的代码编写
      • 4.1 思路
      • 4.2 修改学生信息的方法说明图
      • 4.3 代码示例
    • 5.学号重复问题
      • 5.1 思路
      • 5.2 学号被占用的方法说明图
      • 5.3 代码示例
      • 5.4 代码示例
  • 总结

前言

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

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

1.介绍

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

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

3.代码编写的思路

  • 3.1 定义学生类
  • 3.2 主界面的代码编写
  • 3.3 添加学生的代码编写
  • 3.4 查看学生的代码编写
  • 3.5 删除学生的代码编写
  • 3.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 添加学生信息的方法说明图

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 思路

键盘录入选择查看所有学生信息;

定义一个方法,用于查看学生信息;

  • 显示表头信息
  • 将集合中数据取出按照对应格式显示学生信息

调用方法。

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 思路

键盘录入要删除的学生信息;

定义一个方法,用于删除学生信息;

  • 显示提示信息
  • 键盘录入要删除的学生学号
  • 遍历集合将对应学生对象从集合中删除
  • 给出删除成功提示

调用方法

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 思路

键盘录入选择修改的学生信息;

定义一个方法,用于修改学生信息;

  • 显示提示信息
  • 键盘录入要修改的学生学号
  • 遍历集合修改对应的学生信息
  • 给出修改成功提示

调用方法

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 思路

定义一个方法,对学号是否被使用进行判断;

  • 如果与集合中的某一个学生学号相同,返回true
  • 如果都不相同,返回false;

在添加学生录入学号后调用该方法

  • 如果返回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超详细教你写一个学籍管理系统案例的文章就介绍到这了,更多相关Java 学籍管理系统内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java实现简易的学籍管理系统

    本文实例为大家分享了java实现简易的学籍管理系统的具体代码,供大家参考,具体内容如下 一. 代码 import java.awt.*; import java.awt.event.*; import java.io.*; import javax.swing.*;   public class TestStudentManager {     private int rows = 0;     private String[][] unit = new String[rows][5];    

  • java实现学籍管理系统

    本教程为大家分享了学籍管理系统的具体java代码,供大家参考,具体内容如下 1.需求分析 1.1系统功能设计 (1)能够查询学生的基本信息,如:学号,姓名年龄,班级和性别 (2)能对表格中的学生信息实现增加,删除,查找,修改等功能 (3)能将数据保存到MySQL数据库中,记录下来 (4)能把数据通过mysql数据库进行数据更新 1.2系统模块设计 学籍管理系统包括增加信息模块,删除信息模块,修改信息模块,查询信息模块,更新数据模块.系统管理人员能够查询学生的学号,姓名,性别,年龄,所获奖项等信息

  • Java实现简易学籍管理系统

    本文实例为大家分享了Java实现简易学籍管理系统的具体代码,供大家参考,具体内容如下 1.我们先来讲讲什么是泛型化编程 package 学生管理系统;   import java.util.ArrayList; import java.util.List;   /*  * 进行泛型化编程  * @autor:pcb  * */ public class TestGeneric {     //进行泛型化编程,规定类型.     public List <CourseClass> courses

  • Java超详细教你写一个学籍管理系统案例

    目录 前言 一.学籍管理系统功能介绍 1.介绍 2.学籍管理系统的主要功能图示 3.代码编写的思路 二.定义学生类 1.学生类名称: 2.包含的成员变量 3.构造方法 4.成员方法 5.代码示例 三.主界面的代码编写 1.思路 2.代码示例 四.系统功能方法的实现 1.添加学生信息的代码编写 1.1 思路 1.2 添加学生信息的方法说明图 1.3 代码示例 2.查看学生信息的代码编写 2.1 思路 2.2 查看学生信息的方法说明图 2.3 代码示例 3.删除学生信息的代码编写 3.1 思路 3.

  • Java超详细教你写一个银行存款系统案例

    目录 一.银行存取款 1.前言 2.描述 3.分析 二.银行账户类(BankAccount) 1.方法 2.变量 3.代码示例 三.测试类(Test) 1.要求 2.代码示例 3.运行结果 四.总结 一.银行存取款 1.前言 毕竟谁不喜欢钱呢!(不是) 我看谁不喜欢在知识的海洋中遨游! 2.描述 银行存取款的流程是人们非常熟悉的事情,用户可以在银行对自己的资金账户进行存款.取款.查询余额等操作,极大的便利了人们对自己资金的管理. 编程要求:使用Java知识编写一个银行存取款的程序,实现存取款功能

  • Java超详细教你写一个网络购书系统案例

    目录 一.购书系统 1.前言 2.功能介绍 3.分析 二.图书类(Book) 1.类名及属性 2.代码示例 三.订单项类(OrderItem) 1.类名及属性 2.代码示例 四.订单类(Order) 1.类名及属性 2.代码示例 五.测试类(Test) 1.编写打印图书信息的方法 2.编写购买图书的方法 3.编写打印订单信息方法 4.编写main方法 六.总结 一.购书系统 1.前言 伴随着互联网的飞速发展,网络购书系统作为电子商务的一种形式,正以其高效.低成本的优势逐步成为新兴的经营模式,人们

  • Java超详细教你写一个斗地主洗牌发牌系统

    目录 一.斗地主 1.前言 2.介绍 3.图解 二.准备牌 1.代码示例 2.数据展示 三.洗发牌与排序 代码示例 四.看牌(打印到控制台) 1.代码示例 2.展示 六.总结 一.斗地主 1.前言 相信每位看过<赌神>的同学都知道,里面有一种神奇的类似于魔术的力量. 没错!我们今天要说的这个神奇的东西就是:特异功能(不是) 就是:斗地主的洗牌发牌系统!!! 2.介绍 扑克牌经典游戏"斗地主"相信很多人都会玩,这次就用Java语言来编写一个斗地主的洗牌发牌程序,要求按照斗地主

  • Java超详细分析泛型与通配符

    目录 1.泛型 1.1泛型的用法 1.1.1泛型的概念 1.1.2泛型类 1.1.3类型推导 1.2裸类型 1.3擦除机制 1.3.1关于泛型数组 1.3.2泛型的编译与擦除 1.4泛型的上界 1.4.1泛型的上界 1.4.2特殊的泛型上界 1.4.3泛型方法 1.4.4类型推导 2.通配符 2.1通配符的概念 2.2通配符的上界 2.3通配符的下界 题外话: 泛型与通配符是Java语法中比较难懂的两个语法,学习泛型和通配符的主要目的是能够看懂源码,实际使用的不多. 1.泛型 1.1泛型的用法

  • Java 超详细讲解IO操作字节流与字符流

    目录 IO操作 字节流 FileInputStream FileOutputStream 字节流读写案例 字符流 FileReader FileWriter 字节流与字符流的区别 IO操作 字节流 java.io.InputStream 输入流,主要是用来读取文件内容的. java.io.OutputStream 输出流,主要是用来将内容字节写入文件的. FileInputStream 该流用于从文件读取数据,它的对象可以用关键字 new 来创建. 有多种构造方法可用来创建对象. 可以使用字符串

  • Java超详细讲解设计模式之一的工厂模式

    目录 工厂模式 1.简单工厂 1.1结构 1.2实现 1.3优缺点 1.4扩展 2.工厂方法 2.1结构 2.2实现 2.3优缺点 3.抽象工厂 3.1结构 3.2实现 3.3优缺点 4.模式扩展 4.1实现 工厂模式 在Java应用程序中对象无处不在,这些对象都需要进行创建,如果创建的时候直接new对象,那么如果我们要更换对象,所有new对象的地方都需要进行更改.违背了软件设计原则中的开闭原则.如果我们使用工厂生产对象,只需要在工厂中关注对象的改变即可,达到了与对象解耦的目的,工厂模式最大的特

  • Java 超详细讲解类的定义方式和对象的实例化

    目录 1.面对对象的初步认识 1.1什么是面向对象 1.2面向对象与面向过程 2.类的定义与使用 2.1简单认识类 2.2 类的定义格式 3.类的实例化 3.1什么是实例化? 3.2重点笔记 总结 1.面对对象的初步认识 1.1什么是面向对象 用面向对象的思想来涉及程序,更符合人们对事物的认知,对于大型程序的设计.扩展以及维护都非常友好. 1.2面向对象与面向过程 举一个买手机的例子 以面向对象的方式来处理买手机这件事的话,我们就不需要关注买手机的过程,具体手机怎么买,如何到手,用户不用去关心,

  • Java 超详细讲解对象的构造及初始化

    目录 如何初始化对象 构造方法 特性 默认初始化 就地初始化 如何初始化对象 我们知道再Java方法内部定义一个局部变量的时候,必须要初始化,否则就会编译失败 要让这串代码通过编译,很简单,只需要在正式使用a之前,给a设置一个初始值就好那么对于创造好的对象来说,我们也要进行相对应的初始化我们先写一个Mydate的类 public class MyDate { public int year; public int month; public int day; /** * 设置日期: */ pub

  • Java 超详细讲解数据结构中的堆的应用

    目录 一.堆的创建 1.向下调整(以小堆为例) 2.创建堆 3.创建堆的时间复杂度 二.堆的插入和删除 1.堆的插入 2.堆的删除 三.堆的应用 1.堆排序 2.top-k问题 [求最小的K个数] 四.常用接口的介绍 1.PriorityQueue的特性 2.优先级队列的构造 一.堆的创建 1.向下调整(以小堆为例) 让parent标记需要调整的节点,child标记parent的左孩子(注意:parent如果有孩子一定先是有左孩子) 如果parent的左孩子存在,即:child < size,

随机推荐