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日

相关文章

  • 解析SpringBoot整合SpringDataRedis的过程

    解析SpringBoot整合SpringDataRedis的过程,需要经过以下步骤: 步骤一:添加Redis的依赖 在pom.xml文件中添加以下依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo…

    Java 2023年5月20日
    00
  • JS实现鼠标移上去显示图片或微信二维码

    要实现鼠标移上去显示图片或微信二维码,可以使用JavaScript中DOM元素的事件和属性,具体的步骤如下: 首先,在HTML代码中,我们需要定义一个目标元素,即需要触发鼠标移动事件的元素。可以给这个元素设置一个id属性,方便在JavaScript中获取它的引用。例如: <div id="target">鼠标移上去触发事件&l…

    Java 2023年5月23日
    00
  • C#中C/S端实现WebService服务

    针对这个问题,我为您详细解析一下C#中C/S端实现WebService服务的完整攻略并提供两个示例。 什么是WebService WebService(Web服务)是一种使用XML协议来进行应用程序之间的交流的服务,通过SOAP(简单对象访问协议)和HTTP(超文本传输协议) 来实现。WebService通常被用于不同平台之间的数据交互,例如Java web…

    Java 2023年5月19日
    00
  • 一篇文章教会你使用java爬取想要的资源

    使用Java进行网络数据爬取是一项常见的任务。本篇文章将详细讲解如何使用Java进行网络爬取,并提供两个示例说明。以下是爬虫攻略的详细步骤: 一、获取目标URL 首先,要确定你希望从哪个网站中获取数据。然后,你需要找到该网站中包含目标数据的具体页面。在本文的示例中,我将以 https://www.bilibili.com/ 作为目标网站。 二、分析网站结构 …

    Java 2023年5月23日
    00
  • Java比较对象大小两种常用方法

    Java中比较对象大小的方式主要有两种方法,分别是 Comparable 和 Comparator 接口。 Comparable 接口比较对象大小 Comparable 接口是 Java 自带的一个接口,它定义了对象的自然顺序。如果我们需要对一个类实例进行排序或者比较大小,那么就需要让这个类实现 Comparable 接口,并重写 compareTo 方法。…

    Java 2023年5月26日
    00
  • Java中的异常处理如何提高程序可读性?

    Java中的异常处理可以提高程序的可读性和可维护性,让程序更加健壮。下面是具体的攻略: 为什么需要异常处理 在Java编程中,我们常常会遇到各种错误和异常的情况,例如空指针、数组越界、文件不存在等等。这些错误和异常都需要被处理,否则就会导致程序崩溃。而异常处理就是为了保证程序在遇到异常时能够正确地响应和处理,从而保证程序的健壮性和可靠性。 异常处理的语法 J…

    Java 2023年4月27日
    00
  • Spring Security 安全认证的示例代码

    关于 Spring Security 安全认证示例代码的完整攻略,我将按照以下步骤来讲解: 系统需求 Spring Security 简介 Spring Security 安全认证的示例代码 示例代码的详细解释 示例的运行方式 附加示例 1. 系统需求 首先,你需要确保你的系统已经安装了以下环境: Java 1.8+; Maven; Eclipse 或者 I…

    Java 2023年5月20日
    00
  • SpringBoot与Spring之间的对比

    关于“SpringBoot与Spring之间的对比”的话题进行完整攻略,可以从以下几个方面进行讲解。 1. Spring和SpringBoot的定义和特点 首先,我们需要了解Spring和SpringBoot的定义和特点。 Spring是一个经典的开源Java框架,它主要应用于企业级应用的开发,提供了一系列的解决方案以适应复杂的应用需求,如IoC容器、AOP…

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