java控制台实现学生管理系统

下面是关于“java控制台实现学生管理系统”的详细攻略:

1. 确认需求,设计数据结构

在实现任何系统之前,首先需要明确系统的需求和应用场景。在这个例子中,我们需要实现一个学生管理系统,在控制台上实现增删改查的功能。

接着,我们需要设计数据结构。在这个例子中,我们可以使用一个 Student 类来表示学生,并在程序中使用一个 StudentManager 类来管理学生对象的增删改查操作。

以下是 Student 类的定义样例代码:

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

    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 int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }
}

以上代码是一个简单的 Student 类定义,包含学号、姓名、年龄和性别等信息。

2. 实现学生管理系统

在明确需求和数据结构之后,我们可以开始实现学生管理系统。一般而言,我们可以使用面向对象的思想,将管理学生对象的方法封装在一个类中,再提供一个控制台的交互界面,与用户进行交互。以下是 StudentManager 类的示例代码:

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

public class StudentManager {
    private List<Student> studentList; // 学生列表

    // 构造函数,初始化学生列表
    public StudentManager() {
        studentList = new ArrayList<>();
    }

    // 添加学生
    public void addStudent(Student student) {
        studentList.add(student);
    }

    // 删除学生
    public void removeStudent(String id) {
        for (int i = 0; i < studentList.size(); i++) {
            Student student = studentList.get(i);
            if (student.getId().equals(id)) {
                studentList.remove(i);
                return;
            }
        }
    }

    // 修改学生信息
    public void updateStudent(Student student) {
        for (int i = 0; i < studentList.size(); i++) {
            Student s = studentList.get(i);
            if (s.getId().equals(student.getId())) {
                s.setName(student.getName());
                s.setAge(student.getAge());
                s.setSex(student.getSex());
                return;
            }
        }
    }

    // 按学号查找学生
    public Student findStudent(String id) {
        for (int i = 0; i < studentList.size(); i++) {
            Student student = studentList.get(i);
            if (student.getId().equals(id)) {
                return student;
            }
        }
        return null;
    }

    // 展示所有学生信息
    public void showAllStudents() {
        System.out.println("学号\t\t姓名\t年龄\t性别");
        for (int i = 0; i < studentList.size(); i++) {
            Student student = studentList.get(i);
            System.out.println(student.getId() + "\t" + student.getName() + "\t" + student.getAge() + "\t" + student.getSex());
        }
    }

    public static void main(String[] args) {
        StudentManager sm = new StudentManager();

        Scanner scanner = new Scanner(System.in);

        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("* 0. 退出程序");
            System.out.println("******************");

            int choice = scanner.nextInt();
            scanner.nextLine(); // 读取多余的回车符

            switch (choice) {
                case 1:
                    // 添加学生信息

                    Student student = new Student();
                    System.out.print("请输入学号:");
                    student.setId(scanner.nextLine());
                    System.out.print("请输入姓名:");
                    student.setName(scanner.nextLine());
                    System.out.print("请输入年龄:");
                    student.setAge(scanner.nextInt());
                    scanner.nextLine(); // 读取多余的回车符
                    System.out.print("请输入性别:");
                    student.setSex(scanner.nextLine());

                    sm.addStudent(student);
                    break;

                case 2:
                    // 删除学生信息

                    System.out.print("请输入要删除的学生学号:");
                    String id = scanner.nextLine();
                    sm.removeStudent(id);
                    break;

                case 3:
                    // 修改学生信息

                    Student s = new Student();
                    System.out.print("请输入要修改的学生学号:");
                    s.setId(scanner.nextLine());
                    System.out.print("请输入要修改的姓名:");
                    s.setName(scanner.nextLine());
                    System.out.print("请输入要修改的年龄:");
                    s.setAge(scanner.nextInt());
                    scanner.nextLine(); // 读取多余的回车符
                    System.out.print("请输入要修改的性别:");
                    s.setSex(scanner.nextLine());

                    sm.updateStudent(s);
                    break;

                case 4:
                    // 查询学生信息

                    System.out.print("请输入要查询的学生学号:");
                    id = scanner.nextLine();
                    Student student2 = sm.findStudent(id);
                    if (student2 != null) {
                        System.out.println("学号\t\t姓名\t年龄\t性别");
                        System.out.println(student2.getId() + "\t" + student2.getName() + "\t" + student2.getAge() + "\t" + student2.getSex());
                    } else {
                        System.out.println("没有找到该学生!");
                    }
                    break;

                case 5:
                    // 显示所有学生信息

                    sm.showAllStudents();
                    break;

                case 0:
                    // 退出程序

                    System.out.println("程序已退出!");
                    return;

                default:
                    System.out.println("请输入正确的选项!");
            }
        }
    }
}

以上代码提供了学生管理系统的增删改查操作,并提供一个可以交互的控制台界面。

以下是运行示例:

(1)添加学生信息:输入 1

请输入选项:1
请输入学号:20210001
请输入姓名:张三
请输入年龄:20
请输入性别:男

(2)删除学生信息:输入 2

请输入选项:2
请输入要删除的学生学号:20210001

(3)修改学生信息:输入 3

请输入选项:3
请输入要修改的学生学号:20210001
请输入要修改的姓名:张三
请输入要修改的年龄:22
请输入要修改的性别:女

(4)查询学生信息:输入 4

请输入选项:4
请输入要查询的学生学号:20210001
学号         姓名      年龄     性别
20210001     张三      22      女

(5)显示所有学生信息:输入 5

请输入选项:5
学号         姓名      年龄     性别
20210001     张三      22      女

总结

以上是基于 Java 控制台实现学生管理系统的攻略,涵盖了其中的需求分析、数据结构定义、代码实现和运行示例等内容。通过这个例子,你可以更好地理解 Java 面向对象编程的思想,并且具备了基本的控制台应用开发能力。

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

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

相关文章

  • java并发JUC工具包AtomicInteger原子整型语法基础

    Java并发JUC工具包提供了一些高效且线程安全的队列、锁和原子变量等工具类,其中AtomicInteger是实现原子性操作整型数据的类。 AtomicInteger类 AtomicInteger类是java.util.concurrent包中的一个类,它提供了一种原子性的更新机制,即多线程环境下对共享的整型变量进行原子性操作,避免了线程安全问题。常用的原子…

    Java 2023年5月26日
    00
  • 关于Maven混合配置私有仓库和公共仓库的问题

    这里是一份关于Maven混合配置私有仓库和公共仓库的完整攻略: 1. 添加私有仓库 如果你想要将私有仓库添加到你的Maven配置中,可以按照以下步骤: 1.1. 在pom.xml中添加私有仓库 将以下代码添加到你的pom.xml中,替换${私有仓库地址}为你的私有仓库地址: <repositories> <repository> &l…

    Java 2023年5月20日
    00
  • PerlScript编写ASP(转载)

    让我来详细讲解一下“PerlScript编写ASP(转载)”的完整攻略。 什么是PerlScript编写ASP? PerlScript编写ASP是一种使用PerlScript语言编写ASP的技术,与VBScript和JScript类似,PerlScript是一种基于Perl的脚本语言,它可以与ASP一起使用来生成动态网页。PerlScript编写ASP可以提…

    Java 2023年6月16日
    00
  • 纯js代码生成可搜索选择下拉列表的实例

    生成可搜索选择下拉列表的实例,首先需要编写一个基本的HTML结构: <input type="text" id="searchBox" placeholder="搜索…"> <select id="selectBox"></select> …

    Java 2023年6月15日
    00
  • Java8新特性之线程安全日期类

    Java8新特性之线程安全日期类 Java8中加入的线程安全日期类提供了一种替代旧的日期类的方式,同时线程安全和可读性提升了不少。 LocalDate LocalDate类表示一个不可变的日期对象。它使我们能够以一种简单而明确的方式操纵日期。例如,我们可以使用LocalDate.now()获取当前日期,或者使用LocalDate.of()创建特定的日期。这些…

    Java 2023年5月20日
    00
  • 手写简版kedis分布式key及value服务的实现及配置

    下面是实现“手写简版kedis分布式key及value服务的实现及配置”的完整攻略: 1. 简介 kedis是一个分布式缓存系统,类似于redis和memcached,但使用协议更为简单和高效。本攻略将介绍如何手写一个简版的kedis,实现分布式key及value服务的配置。 2. 实现 2.1. 算法选择 kedis的实现依赖于哈希算法,用于计算key的h…

    Java 2023年5月20日
    00
  • Java判断字符串是否含有乱码实例代码

    当检测到非ASCII码字符时,Java中的字符串会采用UTF-16编码。这意味着,如果字符串中存在其他编码类型的非ASCII码字符,那么这些字符就会被认为是乱码。因此,判断一个字符串是否含有乱码需要进行以下操作: 将字符串转化为字节类型; 利用字符编码类型,将字节数组转化为字符串。 以下是一个Java判断字符串是否含有乱码的示例代码: import java…

    Java 2023年5月27日
    00
  • Unicode、UTF-8 和 ISO8859-1区别解析

    让我来讲解一下”Unicode、UTF-8 和 ISO8859-1区别解析”。 什么是 Unicode Unicode是一种由国际组织维护的全球字符集标准。它的目标是支持世界上所有字符集,并成为一种数字化的字符编码方案。 Unicode字符集包括ASCII码字符集,而且还包括通用秒(第0平面)字符,这是其他字符集都没有的。通用多文本字符集,包括汉字字符集(第…

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