学生管理系统(Java版)

博主作为Java初学者,利用所学知识构建了一款学生管理系统,采用IntelliJ IDEA和Clion进行开发。项目中运用JNI技术,通过C语言实现底层功能并封装到.dll文件供Java调用。系统包含增删改查功能,创建和修改学生信息进行了代码优化,避免重复编写。项目源码提供在百度网盘和GitHub上。
摘要由CSDN通过智能技术生成

这是小生第一次发表博客,比较紧张哈哈哈。

小生是一名Java初学者,经过一两个月的学习,对Java基础和Java面向对象的思想有一定的掌握,并使用数组的方式,结合所学知识,写出来这一款Java版学生管理系统,可能写的不是特别好,之前也写过C、Python版本的学生管理系统,可能受到了前者影响,所以就能快速的写出来一款Java版,如果写的不好,还希望大家能够指点指点,我会改进,哈哈哈

这边小生采用的是Jetbrians中的Intellij IDEA和Clion,Clion我们知道主要是用来C/C++开发的,那这里主要使用它来完成由Java通过JNI技术之后传过来的.h的头文件,对头文件里面需要由C完成的函数功能实现进行处理,因为我们知道Java是与平台无关的语言,加上Java本身也无法操作底层,当初小生在寻找Java的某部分函数时因找不到,所以顺便学习了JNI技术的使用,不过JNI技术确实挺好用的,还顺便巩固了C。

那么总体项目目录大致就是这样。

 看起来Development_Student_System包下看起来确实有点杂,但是为了类与类之间能够快速引用,小生也是不得已哈哈哈,那大家可以看到Development_Student_System包下有两个.dll文件,这两个就是由C完成的函数功能,然后通过动态链接库的方式进行封装到.dll文件给Java使用,而Development_Student_System_Development.h头文件就是由JNI技术生成的,并在Clion里面进行处理。

那么Test_Development_Student包下的Test类,则是程序开始的主类。

package Test_Development_Student;
import Development_Student_System.Development;
public class Test {
    @SuppressWarnings("all")
    public static void main(String... args) {
        while (true){
            Development.start();
        }
    }
}

然后通过循环进入到Development类的函数start,那么就是直接进入到Development类中。

package Development_Student_System;
import System_Student.Student;
import java.util.Scanner;

public class Development {

    static {
        // 使用JNI技术调用C

        /*
            因小生的文件目录跟大家是不一样的,所以若使用的话,
            请将Java_Project包及包下的所有文件,一起放在一个目录下
            并使用System.getProperty("user.id"),获取当前文件的目录
            并与Java_Project包拼接,例:
            System.load(System.getProperty("user.id") + "\\Java_Project\\" +
                "src\\Development_Student_System\\clear.dll");
            System.load(System.getProperty("user.id") + "\\Java_Project\\" +
                "src\\Development_Student_System\\time.dll");

            如果不行,直接将文件全路径写在System.load()函数中
            System.load("某盘:\\xx\\xx\\...\\Java_Project\\" +
                "src\\Development_Student_System\\clear.dll");
            System.load("某盘:\\xx\\xx\\...\\Java_Project\\" +
                "src\\Development_Student_System\\time.dll");
        */

        System.load(System.getProperty("user.id") + "\\Java_Project\\" +
                "src\\Development_Student_System\\clear.dll");
        System.load(System.getProperty("user.id") + "\\Java_Project\\" +
                "src\\Development_Student_System\\time.dll");
    }

    public final native void clear(); // 调用C程序的清除

    public final native void time(); // 调用C程序的时间

    protected Development(){} // 除了本包中的本类和子类、其他类可以创建,其他不允许

    protected static Student[] student = null;  // 静态数组

    public static final Scanner
            scanner = new Scanner(System.in);  // 静态常量输入流

    private static final Development development = new Development(); // 私有的静态常量对象

    // 使用创建学生类对象
    private final Creat_Student creat_student_at = new Creat_Student();

    // 使用修改学生类对象
    private final Update_Student update_student_at = new Update_Student();

    public boolean number_flag = false;
    
    public boolean creat_flag = false;

    public int index = 0; // 学生当前个数

    boolean delete_index_zero = false; // 当删除学生全部信息后,索引为0时

    boolean delete_function_execution = false;  // 当删除函数执行时

    @SuppressWarnings("all")
    public static final void enter_exit(){
        while (true){
            System.out.println();
            System.out.print("输入0退出:");
            if (scanner.hasNextInt()){
                if (scanner.nextInt() == 0){
                    development.time();
                    development.clear();
                    break;
                }
            }else {
                scanner.next();
            }
        }
    }

    @SuppressWarnings("all")
    private static int print_main(){
        // 打印主菜单
        development.clear();
        System.out.println("-----------Welcome To The Student Management System-----------");
        System.out.println("1. Create Student");
        System.out.println("2. Update Student");
        System.out.println("3. Delete Student");
        System.out.println("4. Select Student");
        System.out.println("5. Number Of Students");
        System.out.println("6. Exit System");
        System.out.print("input:");
        if (scanner.hasNextInt()){
            int number = scanner.nextInt();
            int zero_false_or_true = number != 0 ? number : 0;
            return zero_false_or_true;
        }else {
            String next = scanner.next();
            return -1;
        }
    }

    public static void start(){
        int number = print_main();
        if (number != -1){
            if (!(number < 1) && !(number >= 7)){
                switch
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kepler_Class

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值