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

作者:chengqiuming 时间:2023-07-21 07:47:26 

本文实例为大家分享了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实现简易的学籍管理系统

来源:https://blog.csdn.net/chengqiuming/article/details/97171547

标签:java,学籍,管理系统
0
投稿

猜你喜欢

  • C#创建安全的栈(Stack)存储结构

    2021-11-21 08:01:33
  • Spring+Junit4进行接口测试实例代码

    2021-09-15 07:44:06
  • C#索引属性用法实例分析

    2023-02-02 14:15:19
  • Spring BeanFactory 与 FactoryBean 的区别详情

    2023-12-23 02:51:46
  • Spring Boot实现Undertow服务器同时支持HTTP2、HTTPS的方法

    2021-09-23 17:02:30
  • Java stream sorted使用 Comparator 进行多字段排序的方法

    2022-07-26 05:02:13
  • Java环境配置与编译运行详解

    2022-10-02 12:42:24
  • Spring Boot分离配置文件的多种方式总结

    2021-08-31 14:43:37
  • Java获取Process子进程进程ID方法详解

    2022-09-01 13:21:08
  • Java通过Fork/Join优化并行计算

    2023-01-27 21:28:36
  • Android仿抖音列表效果

    2022-03-01 16:36:50
  • 详解Java的TCP/IP编程学习--基于定界符的成帧

    2023-11-23 03:02:32
  • mybatis-plus分页查询的实现示例

    2023-11-25 04:57:57
  • spring boot集成p6spy的最佳实践

    2023-04-11 23:40:36
  • 在WPF中动态加载XAML中的控件实例代码

    2023-06-23 12:27:30
  • c#异步操作后台运行(backgroundworker类)示例

    2021-12-18 15:54:10
  • 详解C#中通过委托来实现回调函数功能的方法

    2021-08-14 05:02:58
  • Java毕业设计实战项目之在线服装销售商城系统的实现流程

    2023-03-27 00:15:31
  • c#代码自动修改解决方案下任意文件实例

    2023-01-31 07:27:10
  • Android自定义View模仿即刻点赞数字切换效果实例

    2023-08-26 12:45:39
  • asp之家 软件编程 m.aspxhome.com