java基于控制台的学生学籍管理系统

Java基于控制台的学生学籍管理系统攻略

Java基于控制台的学生学籍管理系统是一个简单的功能系统,它可以实现输入学生的基本信息,并且可以进行修改、删除、查询和统计等操作。下面是详细的攻略方案:

1. 项目创建与初始化

首先需要打开编辑器,比如Eclipse或者IntelliJ IDEA,创建一个Java项目,选择控制台应用程序作为项目类型,命名为StudentManageSystem。

然后,创建几个Java类,包括:

  1. 学生类(Student):包含学生的编号、姓名、性别、年龄等属性,以及相关的get、set方法;
  2. 学籍管理类(StudentManagement):包含添加、修改、删除、查询、统计等方法;
  3. 主程序类(Main):负责与用户交互,调用学籍管理类的方法,执行学生学籍管理系统的相关操作。

2. 学生类的设计与实现

在学生类中,需要定义一些常用的属性和方法,比如:

public class Student {
    private int id;          // 学生编号
    private String name;     // 学生姓名
    private String gender;   // 学生性别
    private int age;         // 学生年龄

    // 构造方法
    public Student(int id, String name, String gender, int age) {
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.age = age;
    }

    // get和set方法
    public int getId() {
        return id;
    }

    public void setId(int 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;
    }

    // toString方法,用于将学生对象转换为字符串
    @Override
    public String toString() {
        return "学生编号:" + id + ",学生姓名:" + name + ",学生性别:" + gender + ",学生年龄:" + age;
    }
}

3. 学籍管理类的设计与实现

在学籍管理类中,需要实现学生信息的增删改查以及统计等基本操作。

import java.util.ArrayList;
import java.util.Scanner;

public class StudentManagement {
    private ArrayList<Student> students = new ArrayList<Student>();
    private int idCount = 1;    // 学生编号从1开始计数

    // 添加学生
    public void addStudent() {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入学生姓名:");
        String name = input.nextLine();
        System.out.println("请输入学生性别:");
        String gender = input.nextLine();
        System.out.println("请输入学生年龄:");
        int age = Integer.parseInt(input.nextLine());

        Student student = new Student(idCount, name, gender, age);
        students.add(student);
        idCount++;    // 学生编号自增
    }

    // 修改学生信息
    public void updateStudent() {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入要修改的学生编号:");
        int id = Integer.parseInt(input.nextLine());
        for (Student student : students) {
            if (student.getId() == id) {
                System.out.println("请输入新的学生姓名:");
                String name = input.nextLine();
                System.out.println("请输入新的学生性别:");
                String gender = input.nextLine();
                System.out.println("请输入新的学生年龄:");
                int age = Integer.parseInt(input.nextLine());

                student.setName(name);
                student.setGender(gender);
                student.setAge(age);
                System.out.println("修改成功!");
                return;
            }
        }
        System.out.println("学生编号不存在!");
    }

    // 删除学生
    public void deleteStudent() {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入要删除的学生编号:");
        int id = Integer.parseInt(input.nextLine());
        for (Student student : students) {
            if (student.getId() == id) {
                students.remove(student);
                System.out.println("删除成功!");
                return;
            }
        }
        System.out.println("学生编号不存在!");
    }

    // 查询学生信息
    public void queryStudent() {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入要查询的学生姓名或编号:");
        String keyword = input.nextLine();
        for (Student student : students) {
            if (student.getName().contains(keyword) || Integer.toString(student.getId()).contains(keyword)) {
                System.out.println(student);
            }
        }
    }

    // 统计学生数
    public int countStudents() {
        return students.size();
    }
}

4. 主程序类的设计与实现

在主程序类中,需要实现用户交互的功能,并调用学籍管理类的方法进行处理。

import java.util.Scanner;

public class Main {
    private static StudentManagement studentManagement = new StudentManagement();

    public static void main(String[] args) {
        System.out.println("欢迎使用学生学籍管理系统!");
        Scanner input = new Scanner(System.in);
        while (true) {
            System.out.println("请输入操作编号(1.添加学生 2.修改学生信息 3.删除学生 4.查询学生信息 5.统计学生数 6.退出系统):");
            int choice = Integer.parseInt(input.nextLine());
            switch (choice) {
            case 1:
                studentManagement.addStudent();
                break;
            case 2:
                studentManagement.updateStudent();
                break;
            case 3:
                studentManagement.deleteStudent();
                break;
            case 4:
                studentManagement.queryStudent();
                break;
            case 5:
                int count = studentManagement.countStudents();
                System.out.println("学生总数:" + count);
                break;
            case 6:
                System.out.println("感谢使用本系统,再见!");
                System.exit(0);
            default:
                System.out.println("输入有误,请重新输入!");
                break;
            }
        }
    }
}

5. 示例说明

示例一:添加学生信息

在主程序中选择1,输入学生姓名、性别、年龄,即可添加学生信息。如下所示:

请输入操作编号(1.添加学生 2.修改学生信息 3.删除学生 4.查询学生信息 5.统计学生数 6.退出系统):
1
请输入学生姓名:
张三
请输入学生性别:
男
请输入学生年龄:
20

示例二:修改学生信息

在主程序中选择2,输入学生编号,然后输入新的学生姓名、性别、年龄,即可修改学生信息。如下所示:

请输入操作编号(1.添加学生 2.修改学生信息 3.删除学生 4.查询学生信息 5.统计学生数 6.退出系统):
2
请输入要修改的学生编号:
1
请输入新的学生姓名:
李四
请输入新的学生性别:
女
请输入新的学生年龄:
22
修改成功!

6. 总结

上述就是Java基于控制台的学生学籍管理系统的攻略方案。通过实现该项目,不仅能够加深Java基础知识的理解,还可以掌握项目开发的大致流程与方法。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java基于控制台的学生学籍管理系统 - Python技术站

(0)
上一篇 2023年5月24日
下一篇 2023年5月24日

相关文章

  • 深入浅出讲解Spring框架中AOP及动态代理的应用

    深入浅出讲解Spring框架中AOP及动态代理的应用 什么是AOP AOP(Aspect Oriented Programming),即面向切面编程,是一种编程范式。这种编程范式可以帮助我们更好地解耦,关注点分离,使得代码更加清晰明了。在Spring框架中,AOP是实现Aspect Oriented Programming的一种方式。 AOP的核心概念 Jo…

    Java 2023年5月19日
    00
  • Java之一文详解String字符串的用法

    Java之一文详解String字符串的用法 1. 什么是字符串(String)? 在 Java 语言中,字符串是一组用双引号括起来的字符序列,例如:”Hello World”。字符串是Java中的常见数据类型之一,类型名为String。 2. 如何声明字符串类型变量? 在 Java 中声明字符串类型变量,必须使用关键字String,例如: String st…

    Java 2023年5月26日
    00
  • 简单易懂的MyBatis分库分表方案分享

    关于“简单易懂的MyBatis分库分表方案分享”的完整攻略,我将分为以下几个方面进行讲解。 一、MyBatis分库分表的优劣势 首先,我们要明确 MyBatis 分库分表的优劣势,以便能够更好地理解 MyBatis 分库分表的方案。 优势 可以扩展数据库的存储容量:因为数据量越来越大,单表可能会存储不下,分库分表可以将数据分散存储,从而扩展数据库的存储容量。…

    Java 2023年5月19日
    00
  • 使用Spring Boot快速构建基于SQLite数据源的应用

    下面我就来详细讲解“使用Spring Boot快速构建基于SQLite数据源的应用”的完整攻略。 准备工作 为了使用Spring Boot快速构建基于SQLite数据源的应用,我们需要先准备以下工具:- Java Development Kit (JDK) 1.8+- Spring Boot CLI或可用的集成开发环境(IDE),比如IntelliJ IDE…

    Java 2023年5月20日
    00
  • Java实现一个简单的长轮询的示例代码

    下面是Java实现一个简单的长轮询的示例代码的攻略。 什么是长轮询? 长轮询指的是在客户端发起请求后,服务器会一直等待直到有数据更新或超时才返回。相较于短轮询,长轮询可以减少客户端和服务器之间的请求次数,提高网络传输效率。 实现长轮询的步骤 在Java中实现长轮询的步骤如下: 客户端发起一个GET请求,服务器接收请求并判断是否有新的数据更新; 如果有新的数据…

    Java 2023年5月19日
    00
  • Java 方法(方法的定义,可变参数,参数的传递问题,方法重载,方法签名)

    Java方法 Java方法是一段被命名过并执行了一些特定任务的代码。它是类的一部分,并且能够被其他方法或类通过方法调用语句来调用并执行任务。方法可以减少重复代码并有益于代码的重用。在本文中,我们将会详细讲解Java方法的定义,可变参数,参数的传递问题,方法重载和方法签名。 方法的定义 在Java中,方法定义由方法名称,返回类型,参数列表(可选)和方法体组成。…

    Java 2023年5月26日
    00
  • java编写全年考勤日历

    下面我将详细介绍如何用Java编写全年考勤日历的完整攻略。 1. 设计思路 基本思路是从一年的第一天开始,每一天都计算它是星期几,再根据周末、节假日等情况进行判断,最终输出考勤日历。这个思路分为以下几个步骤: 获取当前年份,以及这一年有多少天(平年365天,闰年366天) 从1月1日开始遍历每一天,计算当天是星期几 判断当天是否是周末,如果是周末则标记为“休…

    Java 2023年6月1日
    00
  • 解决使用security和静态资源被拦截的问题

    解决使用security和静态资源被拦截的问题,需要对Spring Security进行相应的配置。 一、配置Spring Security可以通过以下代码块,实现对Spring Security的配置,主要是开启web_security、关闭跨域保护、开启匿名认证和对静态资源的忽略: @Configuration @EnableWebSecurity pu…

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