成绩加权平均分计算程序,带UI界面和输入保存功能。
因为本人对成绩的加权均分有所关注,但学校的教务系统查分时往往又不显示个人的加权均分,加之每次手动敲计算器计算很麻烦就花了点时间写了一个加权均分计算程序自用,顺便开源。
UI界面通过Java的Swing类实现。
代码分享:
WeightedAverageCalculatorGUI.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Objects;
public class WeightedAverageCalculatorGUI extends JFrame {
private JTextField numSubjectsField;
private JButton enterButton;
private JScrollPane scrollPane;
private JPanel inputPanel;
private JButton calculateButton;
private JLabel resultLabel;
private JTextField filePathField;
private JButton saveButton;
public WeightedAverageCalculatorGUI() {
setTitle("成绩加权平均分计算器");
setSize(1600, 1200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JPanel panel = new JPanel(new BorderLayout());
// 添加科目数量输入框和确定按钮
JPanel topPanel = new JPanel(new FlowLayout());
JLabel numSubjectsLabel = new JLabel("科目数量:");
numSubjectsLabel.setFont(Config.DEFAULT_FONT);
numSubjectsField = new JTextField(5);
numSubjectsField.setPreferredSize(new Dimension(140, 55));
numSubjectsField.setFont(Config.FIELD_FONT);
enterButton = new JButton("确定");
enterButton.setFont(Config.DEFAULT_FONT);
topPanel.add(numSubjectsLabel);
topPanel.add(numSubjectsField);
topPanel.add(enterButton);
panel.add(topPanel, BorderLayout.NORTH);
// 添加文件路径输入框和保存按钮
JPanel bottomPanel = new JPanel(new FlowLayout());
JLabel filePathLabel = new JLabel("文件保存路径:");
filePathLabel.setFont(Config.DEFAULT_FONT);
filePathField = new JTextField(20);
fil