java实现简易的学籍管理系统

 更新时间:2022年02月25日 17:10:09   作者:chengqiuming  
这篇文章主要为大家详细介绍了java实现简易的学籍管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了java实现简易的学籍管理系统的具体代码,供大家参考,具体内容如下

一、 代码

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
 
public class TestStudentManager {
    private int rows = 0;
    private String[][] unit = new String[rows][5];
    private String[] name = {"姓名", "语文", "数学", "外语", "总分"};
    public JTable table;
 
    public static void main( String[] args ) {
        new TestStudentManager();
    }
 
    TestStudentManager() {
 
        JFrame frame = new JFrame("模拟学生管理系统");
        table = new JTable(unit, name);
        JPanel southPanel = new JPanel();
        southPanel.add(new JLabel("添加学生数"));
        JButton calc = new JButton("计算成绩");
        JButton save = new JButton("保存学生信息");
        JTextField input = new JTextField(5);
        southPanel.add(input);
        southPanel.add(calc);
        southPanel.add(save);
        frame.add(new JLabel("欢迎访问学生管理系统"), BorderLayout.NORTH);
        frame.add(southPanel, BorderLayout.SOUTH);
        frame.add(new JScrollPane(table), BorderLayout.CENTER);
        frame.setSize(400, 400);
        frame.setVisible(true);
 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        input.addActionListener(new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
                rows = Integer.valueOf(input.getText());
                unit = new String[rows][5];
                table = new JTable(unit, name);
                System.out.println("xx");
                frame.getContentPane().removeAll();
                frame.add(new JScrollPane(table), BorderLayout.CENTER);
                frame.add(southPanel, BorderLayout.SOUTH);
                frame.add(new JLabel("欢迎访问学生管理系统"), BorderLayout.NORTH);
                frame.validate();
                table.setRowHeight(25);
            }
        });
        calc.addActionListener(new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
                for (int i = 0; i < rows; i++) {
                    double sum = 0;
                    boolean flag = true;
                    for (int j = 1; j <= 3; j++) {
                        try {
                            sum += Double.valueOf(unit[i][j].toString());
                        } catch (Exception ee) {
                            flag = false;
                            table.repaint();
                        }
                        if (flag) {
                            unit[i][4] = "" + sum;
                            table.repaint();
                        }
                    }
                }
            }
        });
        save.addActionListener(new ActionListener() {
            public void actionPerformed( ActionEvent e ) {
                try {
                    write();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        });
 
    }
 
    void write() throws IOException {
        File f = new File("学生信息.txt");
        FileWriter fw = new FileWriter(f);
        for (int i = 0; i < 5; i++) {
            fw.write(name[i] + "\t");
        }
        fw.write("\r\n");
        for (int i = 0; i < rows; i++) {
            for (int j = 0; j < 5; j++) {
                fw.write(unit[i][j] + "\t");
            }
 
            fw.write("\r\n");
        }
        fw.close();
        JOptionPane.showMessageDialog(null, "保存成功,存放至:学生信息.txt");
    }
}

二、运行

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java数据结构循环队列的空满判断及长度计算

    java数据结构循环队列的空满判断及长度计算

    这篇文章主要为大家介绍了java数据结构循环队列的空满判断及长度计算,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • java通过客户端访问服务器webservice的方法

    java通过客户端访问服务器webservice的方法

    这篇文章主要介绍了java通过客户端访问服务器webservice的方法,涉及java创建与调用webservice的相关技巧,需要的朋友可以参考下
    2016-08-08
  • 解决MyBatis-Plus使用动态表名selectPage不生效的问题

    解决MyBatis-Plus使用动态表名selectPage不生效的问题

    这篇文章主要介绍了如恶化解决MyBatis-Plus使用动态表名selectPage不生效的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-11-11
  • Java spring定时任务详解

    Java spring定时任务详解

    这篇文章主要为大家详细介绍了Spring定时任务,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-10-10
  • Java 实战练习之网上电商项目的实现

    Java 实战练习之网上电商项目的实现

    读万卷书不如行万里路,只学书上的理论是远远不够的,只有在实战中才能获得能力的提升,本篇文章手把手带你用java+vue+Springboot+ssm+mysql+maven+redis实现一个网上电商项目,大家可以在过程中查缺补漏,提升水平
    2021-11-11
  • 案例讲解SpringBoot Starter的使用教程

    案例讲解SpringBoot Starter的使用教程

    SpringBoot中的starter是一种非常重要的机制,能够抛弃以前繁杂的配置,将其统一集成进starter,应用者只需要在maven中引入starter依赖,SpringBoot就能自动扫描到要加载的信息并启动相应的默认配置,本文通过案例讲解SpringBoot Starter的使用,感兴趣的朋友一起看看吧
    2023-12-12
  • 浅谈java对象的比较

    浅谈java对象的比较

    这篇文章主要给大家分享java对象的比较,主要有元素的比较、类的比较及比较的方法,想具体了解的小伙伴和小编一起进入下面文章内容吧
    2021-10-10
  • Spring中@Autowire注入的深入讲解

    Spring中@Autowire注入的深入讲解

    这篇文章主要给大家介绍了关于Spring中@Autowire注入的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • SpringMVC源码之HandlerMapping处理器映射器解析

    SpringMVC源码之HandlerMapping处理器映射器解析

    这篇文章主要介绍了SpringMVC源码之HandlerMapping处理器映射器解析,在Spring MVC中,HandlerMapping处理器映射器用于确定请求处理器对象,请求处理器可以是任何对象,只要它们使用了@Controller注解或注解@RequestMapping,需要的朋友可以参考下
    2023-08-08
  • Spring事件监听机制之@EventListener实现方式详解

    Spring事件监听机制之@EventListener实现方式详解

    这篇文章主要介绍了Spring事件监听机制之@EventListener实现方式详解,ApplicationContext的refresh方法还是初始化了SimpleApplicationEventMulticaster,发送事件式还是先获取ResolvableType类型,再获取发送监听列表,需要的朋友可以参考下
    2023-12-12

最新评论