欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

趣味数学--贷款计算(图形化界面版)

程序员文章站 2022-03-05 14:32:54
...

1、用图形用户界面完成第4单元作业题1:趣味数学题

马克思手稿中有这样一道趣味数学题:男人、女人和小孩总计n个人,在一家饭店里吃饭,共花了cost先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,请用穷举法编程计算男人、女人和小孩各有几个。

要求:设计图形界面,程序运行后,用户在图形界面中输入人数和总花费。若问题有解,计算男人、女人和小孩的数量并输出;若问题无解,则输出“No answer"。

注意:所有最终结果信息不要输出在控制台。

下面展示一些 内联代码片

JFrame Designer
趣味数学
/*
 * Created by JFormDesigner on Tue May 25 11:54:11 CST 2021
 */

package 慕课Java.第八单元;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
 * @author 介绍
 */
public class 趣味数学_图形 extends JFrame {

    String columns[] = {"男人","女人","小孩"};
    public 趣味数学_图形() {
        setDefaultCloseOperation(3);
        setTitle("趣味数学");
        initComponents();
    }

    public static void main(String[] args) {
        new 趣味数学_图形();
    }

    //确定按钮监听
    private void button1ActionPerformed(ActionEvent e) {
        // TODO add your code here
        pre();
    }

    //处理
    private void pre(){
        String s1 = textField1.getText();
        String s2 = textField2.getText();
        if(s1.equals("")||s2.equals("")){
            JOptionPane.showMessageDialog(this,"请输入");
        }else{
            int n = Integer.parseInt(s1);
            int c = Integer.parseInt(s2);
            String data[][] = new String[c][c];
            int flag = 0;
            int idx=0;
            for (int i = 0; i <= n; i++) {
                for (int j = 0; j <= n; j++) {
                    for (int k = 0; k <= n; k++) {
                        if (i + j + k == n && 3 * i + 2 * j + k == c) {
                            String s3 = Integer.valueOf(i).toString();
                            String s4 = Integer.valueOf(j).toString();
                            String s5 = Integer.valueOf(k).toString();
                            String s[] = {s3,s4,s5};
                            data[idx] = s;
                            idx++;
                            System.out.println(i + " " + j + " " + k);
                            flag = 1;
                        }
                    }
                }
            }
            if (flag == 0) {
                System.out.println("No answer");
                JOptionPane.showMessageDialog(this,"No answer");
            }else{
                new 显示(data,columns);
            }
        }
    }

    private void initComponents() {
        // JFormDesigner - Component initialization - DO NOT MODIFY  //GEN-BEGIN:initComponents
        // Generated using JFormDesigner Evaluation license - 介绍
        label1 = new JLabel();
        label2 = new JLabel();
        textField1 = new JTextField();
        textField2 = new JTextField();
        button1 = new JButton();

        //======== this ========
        setVisible(true);
        var contentPane = getContentPane();
        contentPane.setLayout(null);

        //---- label1 ----
        label1.setText("num");
        label1.setFont(label1.getFont().deriveFont(label1.getFont().getSize() + 5f));
        contentPane.add(label1);
        label1.setBounds(65, 60, 80, 55);

        //---- label2 ----
        label2.setText("cost");
        label2.setFont(label2.getFont().deriveFont(label2.getFont().getSize() + 5f));
        contentPane.add(label2);
        label2.setBounds(65, 165, 80, 55);
        contentPane.add(textField1);
        textField1.setBounds(155, 55, 320, 65);
        contentPane.add(textField2);
        textField2.setBounds(155, 155, 320, 65);

        //---- button1 ----
        button1.setText("\u786e\u5b9a");
        button1.setFont(button1.getFont().deriveFont(button1.getFont().getSize() + 8f));
        button1.setBackground(new Color(153, 204, 255));
        button1.addActionListener(e -> button1ActionPerformed(e));
        contentPane.add(button1);
        button1.setBounds(215, 275, 165, 105);

        {
            // compute preferred size
            Dimension preferredSize = new Dimension();
            for(int i = 0; i < contentPane.getComponentCount(); i++) {
                Rectangle bounds = contentPane.getComponent(i).getBounds();
                preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
                preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
            }
            Insets insets = contentPane.getInsets();
            preferredSize.width += insets.right;
            preferredSize.height += insets.bottom;
            contentPane.setMinimumSize(preferredSize);
            contentPane.setPreferredSize(new Dimension(550,400));
        }
        pack();
        setLocationRelativeTo(getOwner());
        // JFormDesigner - End of component initialization  //GEN-END:initComponents
    }

    // JFormDesigner - Variables declaration - DO NOT MODIFY  //GEN-BEGIN:variables
    // Generated using JFormDesigner Evaluation license - 介绍
    private JLabel label1;
    private JLabel label2;
    private JTextField textField1;
    private JTextField textField2;
    private JButton button1;
    // JFormDesigner - End of variables declaration  //GEN-END:variables
}

显示
/*
 * Created by JFormDesigner on Tue May 25 11:57:19 CST 2021
 */

package 慕课Java.第八单元;

import java.awt.*;
import javax.swing.*;

/**
 * @author 介绍
 */
public class 显示 extends JFrame {
    String data[][] = null;//内容数据
    String columns[] = null;//题头

    public 显示(String data[][],String columns[]) {
        this.data = data;
        this.columns = columns;
        this.setTitle("显示");
        initComponents();
    }

    private void initComponents() {
        // JFormDesigner - Component initialization - DO NOT MODIFY  //GEN-BEGIN:initComponents
        // Generated using JFormDesigner Evaluation license - 介绍
        scrollPane1 = new JScrollPane();
        table1 = new JTable(data,columns);

        //======== this ========
        setVisible(true);
        var contentPane = getContentPane();
        contentPane.setLayout(null);

        //======== scrollPane1 ========
        {
            scrollPane1.setViewportView(table1);
        }
        contentPane.add(scrollPane1);
        scrollPane1.setBounds(10, -5, 525, scrollPane1.getPreferredSize().height);

        {
            // compute preferred size
            Dimension preferredSize = new Dimension();
            for(int i = 0; i < contentPane.getComponentCount(); i++) {
                Rectangle bounds = contentPane.getComponent(i).getBounds();
                preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
                preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
            }
            Insets insets = contentPane.getInsets();
            preferredSize.width += insets.right;
            preferredSize.height += insets.bottom;
            contentPane.setMinimumSize(preferredSize);
            contentPane.setPreferredSize(preferredSize);
        }
        pack();
        setLocationRelativeTo(getOwner());
        // JFormDesigner - End of component initialization  //GEN-END:initComponents
    }

    // JFormDesigner - Variables declaration - DO NOT MODIFY  //GEN-BEGIN:variables
    // Generated using JFormDesigner Evaluation license - 介绍
    private JScrollPane scrollPane1;
    private JTable table1;
    // JFormDesigner - End of variables declaration  //GEN-END:variables
}

2、用图形用户界面完成第4单元作业题2:贷款计算

为了认清校园贷的本质,请根据下面的描述,计算校园贷的实际花费。 用户借贷为等额本息贷款,贷款月利率为0.9%,每月还款金额计算如下式所示,

假设李雷贷款n元,分m月还清,贷款平台需要扣除本金的20%作为保证金,利率按足额贷款进行计算。

要求:设计图形界面,程序运行后,用户在图形界面中输入贷款金额和还款月数,计算李雷实际贷到的金额以及加上本金共需还款金额(结果四舍五入)并输出。

注意:所有最终结果信息不要输出在控制台。

下面展示一些 内联代码片

贷款计算
/*
 * Created by JFormDesigner on Tue May 25 12:27:03 CST 2021
 */

package 慕课Java.第八单元;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
 * @author 介绍
 */
public class 贷款计算 extends JFrame {
    public 贷款计算() {
        setTitle("贷款计算");
        setDefaultCloseOperation(3);
        initComponents();
    }

    public static void main(String[] args) {
        new 贷款计算();
    }

    //确定按钮监听
    private void button1ActionPerformed(ActionEvent e) {
        // TODO add your code here
        pre();
    }

    //处理
    private void pre(){
        String s1 = textField1.getText();
        String s2 = textField2.getText();
        if(s1.equals("")||s2.equals("")){
            JOptionPane.showMessageDialog(this,"请输入");
        }else{
            int sum=0;
            int n = Integer.parseInt(s1);
            int m = Integer.parseInt(s2);
            System.out.println(n/10*8);
            double temp = 1.009;
            for(int i=1;i<=m;i++){
                sum+=(n*((Math.pow(temp,m)*0.009)/(Math.pow(temp,m)-1)));
            }
            System.out.println(Math.round(sum+n));
            JOptionPane.showMessageDialog(this,""+Math.round(sum+n));
        }
    }

    private void initComponents() {
        // JFormDesigner - Component initialization - DO NOT MODIFY  //GEN-BEGIN:initComponents
        // Generated using JFormDesigner Evaluation license - 介绍
        label1 = new JLabel();
        label2 = new JLabel();
        textField1 = new JTextField();
        textField2 = new JTextField();
        button1 = new JButton();

        //======== this ========
        setVisible(true);
        var contentPane = getContentPane();
        contentPane.setLayout(null);

        //---- label1 ----
        label1.setText("\u8d37\u6b3e\u91d1\u989d");
        label1.setFont(label1.getFont().deriveFont(label1.getFont().getSize() + 5f));
        contentPane.add(label1);
        label1.setBounds(65, 60, 80, 55);

        //---- label2 ----
        label2.setText("\u8fd8\u6b3e\u6708\u6570");
        label2.setFont(label2.getFont().deriveFont(label2.getFont().getSize() + 5f));
        contentPane.add(label2);
        label2.setBounds(65, 165, 80, 55);
        contentPane.add(textField1);
        textField1.setBounds(155, 55, 320, 65);
        contentPane.add(textField2);
        textField2.setBounds(155, 155, 320, 65);

        //---- button1 ----
        button1.setText("\u786e\u5b9a");
        button1.setFont(button1.getFont().deriveFont(button1.getFont().getSize() + 8f));
        button1.setBackground(new Color(153, 204, 255));
        button1.addActionListener(e -> button1ActionPerformed(e));
        contentPane.add(button1);
        button1.setBounds(215, 275, 165, 105);

        {
            // compute preferred size
            Dimension preferredSize = new Dimension();
            for(int i = 0; i < contentPane.getComponentCount(); i++) {
                Rectangle bounds = contentPane.getComponent(i).getBounds();
                preferredSize.width = Math.max(bounds.x + bounds.width, preferredSize.width);
                preferredSize.height = Math.max(bounds.y + bounds.height, preferredSize.height);
            }
            Insets insets = contentPane.getInsets();
            preferredSize.width += insets.right;
            preferredSize.height += insets.bottom;
            contentPane.setMinimumSize(preferredSize);
            contentPane.setPreferredSize(new Dimension(550,400));
        }
        pack();
        setLocationRelativeTo(getOwner());
        // JFormDesigner - End of component initialization  //GEN-END:initComponents
    }

    // JFormDesigner - Variables declaration - DO NOT MODIFY  //GEN-BEGIN:variables
    // Generated using JFormDesigner Evaluation license - 介绍
    private JLabel label1;
    private JLabel label2;
    private JTextField textField1;
    private JTextField textField2;
    private JButton button1;
    // JFormDesigner - End of variables declaration  //GEN-END:variables
}