java学生信息管理系统设计(2)

Java学生信息管理系统设计(2)攻略

在这个学生信息管理系统设计中,我们需要实现一个基于Java的学生信息管理系统,包括如下功能模块:

  • 学生信息录入
  • 学生信息查询
  • 学生信息删除
  • 学生信息修改

学生信息录入

学生信息录入主要包括学生的基本信息,例如学号、姓名、性别、年龄、出生日期、家庭住址等等。

在实现学生信息录入的过程中,我们需要设计对应的数据模型,并使用Java对象来保存学生的基本信息。具体的实现过程如下:

// 创建一个学生类来保存学生的基本信息
public class Student {
    private String id;
    private String name;
    private String gender;
    private int age;
    private String address;
    private Date birthDate;

    // getter和setter方法
    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 getGender() {
        return gender;
    }
    public void setGender(String gender) {
        this.gender = gender;
    }
    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;
    }
    public Date getBirthDate() {
        return birthDate;
    }
    public void setBirthDate(Date birthDate) {
        this.birthDate = birthDate;
    }
}

在实现完对应的数据模型后,我们需要在程序中实现学生信息的录入功能。具体实现过程如下:

import java.util.Scanner;
import java.text.SimpleDateFormat;
import java.util.Date;

public class StudentManagementSystem {
    // 保存学生信息的数组
    private static Student[] students = new Student[100];
    // 保存当前存储的学生数量
    private static int studentCount = 0;

    // 实现学生信息的录入功能
    public static void addStudent() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入学生的基本信息:");
        System.out.print("学号:");
        String id = scanner.nextLine();
        System.out.print("姓名:");
        String name = scanner.nextLine();
        System.out.print("性别:");
        String gender = scanner.nextLine();
        System.out.print("年龄:");
        int age = scanner.nextInt();
        scanner.nextLine(); // 处理掉行末的回车符
        System.out.print("家庭住址:");
        String address = scanner.nextLine();
        System.out.print("出生日期(格式为 yyyy-MM-dd):");
        String birthDateString = scanner.nextLine();
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
        Date birthDate = null;
        try {
            birthDate = dateFormat.parse(birthDateString);
        } catch (Exception e) {
            System.out.println("日期格式不合法,请重新输入!");
            return; // 日期格式不合法,录入失败
        }
        Student student = new Student();
        student.setId(id);
        student.setName(name);
        student.setGender(gender);
        student.setAge(age);
        student.setAddress(address);
        student.setBirthDate(birthDate);
        students[studentCount] = student;
        studentCount++;
        System.out.println("恭喜您,学生信息录入成功!");
    }
}

示例:用户可以按照程序提示输入学生的基本信息,实现学生信息的录入:

请输入学生的基本信息:
学号:1001
姓名:张三
性别:男
年龄:20
家庭住址:北京市海淀区
出生日期(格式为 yyyy-MM-dd):2000-01-01
恭喜您,学生信息录入成功!

学生信息查询

学生信息查询主要是查询已经录入的学生信息,并可以根据学号或者姓名进行模糊查询。

具体的实现过程如下:

import java.text.SimpleDateFormat;
import java.util.Scanner;

public class StudentManagementSystem {
    // ...

    // 实现学生信息的查询功能
    public static void queryStudent() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入查询关键字:");
        String keyword = scanner.nextLine();
        // 遍历学生数组,查找符合查询关键字的学生信息
        System.out.println("查询结果:");
        for (int i = 0; i < studentCount; i++) {
            Student student = students[i];
            if (student.getId().contains(keyword) || student.getName().contains(keyword)) {
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                String birthDateString = dateFormat.format(student.getBirthDate());
                System.out.println(student.getId() + "\t" + student.getName() + "\t" +
                        student.getGender() + "\t" + student.getAge() + "\t" + birthDateString + 
                        "\t" + student.getAddress());
            }
        }
    }

    // ...
}

示例:用户输入关键字“张”,程序会从已经录入的学生中,查找姓名或者学号中包含“张”的学生,并输出对应的学生信息:

请输入查询关键字:
张
查询结果:
1001    张三  男   20  2000-01-01  北京市海淀区

学生信息删除

学生信息删除功能主要用于删除指定学号的学生信息。具体实现过程如下:

import java.util.Scanner;

public class StudentManagementSystem {
    // ...

    // 实现学生信息的删除功能
    public static void deleteStudent() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要删除的学生的学号:");
        String id = scanner.nextLine();
        for (int i = 0; i < studentCount; i++) {
            if (students[i].getId().equals(id)) {
                // 将要删除的学生信息置为null,并将后面的学生向前移动一位
                for (int j = i; j < studentCount - 1; j++) {
                    students[j] = students[j + 1];
                }
                students[studentCount - 1] = null;
                studentCount--;
                System.out.println("学生信息删除成功!");
                return;
            }
        }
        System.out.println("查无此人,删除失败!");
    }

    // ...
}

示例:用户输入要删除学生的学号,程序会查找对应学生的信息,并删除学生信息:

请输入要删除的学生的学号:
1001
学生信息删除成功!

学生信息修改

学生信息修改功能主要用于修改学生的基本信息。具体实现过程如下:

import java.text.SimpleDateFormat;
import java.util.Scanner;

public class StudentManagementSystem {
    // ...

    // 实现学生信息的修改功能
    public static void updateStudent() {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要修改的学生的学号:");
        String id = scanner.nextLine();
        for (int i = 0; i < studentCount; i++) {
            if (students[i].getId().equals(id)) {
                System.out.println("请输入新的学生基本信息:");
                System.out.print("姓名(当前值为" + students[i].getName() + "):");
                String name = scanner.nextLine();
                System.out.print("性别(当前值为" + students[i].getGender() + "):");
                String gender = scanner.nextLine();
                System.out.print("年龄(当前值为" + students[i].getAge() + "):");
                int age = scanner.nextInt();
                scanner.nextLine(); // 处理掉行末的回车符
                System.out.print("家庭住址(当前值为" + students[i].getAddress() + "):");
                String address = scanner.nextLine();
                System.out.print("出生日期(当前值为" + new SimpleDateFormat("yyyy-MM-dd")
                        .format(students[i].getBirthDate()) + "):");
                String birthDateString = scanner.nextLine();
                SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
                try {
                    students[i].setName(name);
                    students[i].setGender(gender);
                    students[i].setAge(age);
                    students[i].setAddress(address);
                    students[i].setBirthDate(dateFormat.parse(birthDateString));
                    System.out.println("学生信息修改成功!");
                    return;
                } catch (Exception e) {
                    System.out.println("日期格式不合法,修改失败!");
                    return;
                }
            }
        }
        System.out.println("查无此人,修改失败!");
    }

    // ...
}

示例:用户输入要修改学生的学号,程序会查找对应学生的信息,并允许用户修改对应学生的基本信息:

请输入要修改的学生的学号:
1001
请输入新的学生基本信息:
姓名(当前值为张三):李四
性别(当前值为男):女
年龄(当前值为20):21
家庭住址(当前值为北京市海淀区):北京市海淀区西二旗
出生日期(当前值为2000-01-01):2000-02-02
学生信息修改成功!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java学生信息管理系统设计(2) - Python技术站

(0)
上一篇 2023年6月15日
下一篇 2023年6月15日

相关文章

  • jsp只在首次加载时调用action实现代码

    当我们在一个JSP页面中使用了JSP动作标签(JSP Action Tag),比如<jsp:include>或者<jsp:forward>,其实际上就是调用了指定页面中对应的Servlet进行处理。在这种情况下,Servlet只会在JSP页面首次被加载时被调用执行,后续如果没有被重新加载,就不会再次被调用了。 下面通过两个示例来详细讲…

    Java 2023年6月15日
    00
  • MyBatis实现动态查询、模糊查询功能

    下面是MyBatis实现动态查询、模糊查询功能的完整攻略。 动态查询 动态查询就是查询条件随着用户的选择而动态生成的查询语句。MyBatis提供了三种方式来实现动态查询: If If标签用于判断某个条件成立时才会执行包含在其中的查询语句,示例代码如下: <select id="dynamicIfTest" parameterType…

    Java 2023年5月19日
    00
  • java线程间通讯的一些方法总结

    关于“Java线程间通讯的一些方法总结”的攻略,我从以下几点进行详细讲解: 一、线程间通讯的基本概念 1. 定义 线程间通讯指的是多个线程之间相互发送信息(数据)的行为。每个线程需要知道其他线程的存在以及如何与其他线程进行通信。 2. 通讯方法 实现线程间通讯的方法有以下几种: 共享变量 管道通信 消息队列 信号量 事件(条件) 二、共享变量的线程间通讯 1…

    Java 2023年5月26日
    00
  • Java Properties简介_动力节点Java学院整理

    Java Properties简介 在Java中,属性(Properties)指的是保存在文件中的键值对数据,它以“键=值”的形式存储。Java提供了一个Properties类,可以方便地读取和写入属性文件。本文将介绍Properties类的基本用法。 Properties类的创建 Properties类的创建有两种方法: 方法一:使用默认构造函数创建一个空…

    Java 2023年6月15日
    00
  • Java实现定时任务的示例代码

    下面我将为你详细讲解一下“Java实现定时任务的示例代码”的完整攻略。 一、背景知识 在Java中,可以使用Timer类或ScheduledExecutorService类来实现定时任务。其中,Timer类是较为简单的一种方式,但该类有一些缺点:如果执行任务的时间太长,或者在任务执行期间抛出了异常,Timer可能会错过执行下一次任务的时间。因此,建议大家使用…

    Java 2023年5月19日
    00
  • Java中的异常处理如何提高程序健壮性?

    Java中异常处理是一种防御性编程的技术手段,可以应对程序中出现的不可预知的异常情况,提高程序的健壮性。 在Java中,异常是由Java虚拟机(JVM)或程序员代码抛出的对象。当程序中出现异常情况,会有一个异常对象被抛出,这个异常对象会包含一些关于异常情况的信息。程序员可以通过编写异常处理代码,捕获并处理这些异常对象。 以下是使用Java异常处理提高程序健壮…

    Java 2023年4月27日
    00
  • 最新IntelliJ IDEA 2022配置 Tomcat 8.5 的详细步骤演示

    让我为你介绍如何在最新的 IntelliJ IDEA 2022 中配置 Tomcat 8.5 的详细步骤演示。 第一步:下载并安装 Tomcat 8.5 首先,我们需要从官方网站下载 Tomcat 8.5 的安装文件,并按照指导完成安装。Tomcat 的安装过程相对简单,请仔细查看安装说明。 第二步:以 Tomcat 服务器方式配置项目 打开 Intelli…

    Java 2023年6月2日
    00
  • Java后台线程操作示例【守护线程】

    下面是Java后台线程操作示例【守护线程】的完整攻略。 什么是守护线程? 在Java中,有两种线程:用户线程和守护线程。 守护线程是在后台运行的线程,不能阻止JVM退出,就是当所有用户线程都结束时,JVM会正常退出。 当创建一个新的线程时,它继承了创建它的线程的特点和属性。 默认情况下,线程都是用户线程,这意味着如果还有用户线程在运行,JVM就不会停止。 要…

    Java 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部