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");
    }
}

二、运行

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

相关文章

  • logback标记日志过滤器MarkerFilter源码解读

    logback标记日志过滤器MarkerFilter源码解读

    这篇文章主要为大家介绍了logback标记日志过滤器MarkerFilter源码解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • spring bean标签的primary属性用法讲解

    spring bean标签的primary属性用法讲解

    这篇文章主要介绍了spring bean标签的primary属性用法讲解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Springboot定时任务Scheduled重复执行操作

    Springboot定时任务Scheduled重复执行操作

    这篇文章主要介绍了Springboot定时任务Scheduled重复执行操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • 详解Springboot应用中设置Cookie的SameSite属性

    详解Springboot应用中设置Cookie的SameSite属性

    Chrome 51 开始,浏览器的 Cookie 新增加了一个SameSite属性,用来防止 CSRF 攻击和用户追踪。今天通过本文给大家介绍Springboot应用中设置Cookie的SameSite属性,感兴趣的朋友一起看看吧
    2022-01-01
  • mybatis-sqlserver批量新增返回id方式

    mybatis-sqlserver批量新增返回id方式

    这篇文章主要介绍了mybatis-sqlserver批量新增返回id方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • java实现简单五子棋小游戏(2)

    java实现简单五子棋小游戏(2)

    这篇文章主要为大家详细介绍了java实现简单五子棋小游戏的第二部分,添加游戏结束条件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • Spring Boot 配置文件类型properties 格式与yml 格式

    Spring Boot 配置文件类型properties 格式与yml 格式

    这篇文章主要介绍了Spring Boot 配置文件类型properties 格式与yml 格式,文章围绕主题展开详细内容,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • Java中抽象类和接口介绍

    Java中抽象类和接口介绍

    大家好,本篇文章主要讲的是Java中抽象类和接口介绍,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2022-01-01
  • java实现自定义表格渲染和编辑

    java实现自定义表格渲染和编辑

    这篇文章主要为大家详细介绍了java如何实现自定义表格渲染和编辑,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-04-04
  • Java中的@RequiredArgsConstructor注解详解

    Java中的@RequiredArgsConstructor注解详解

    这篇文章主要介绍了Java中的@RequiredArgsConstructor注解详解,@RequiredArgsConstructor是Lombok的一个注解,简化了我们对@Autowired书写,@RequiredArgsConstructor注解可以代替@Autowired注解,需要的朋友可以参考下
    2024-01-01

最新评论