图形用户界面实验

问题一:
1.为实验一的任务3设计图形界面:某商场为了促销,采用了打折的优惠活动。每位顾客一次购物达到500元以上,给予95%的优惠;达到1000元以上,给予90%的优惠;达到1500元以上,给予85%的优惠;达到2500元以上,给予80%的优惠。程序运行后,用户在图形界面输入购物金额,程序计算经过优惠后顾客应付的实际金额,结果保留两位小数,并告知用户。

下面展示一些 内联代码片

建议使用JFrameDesigner
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
 * @author
 */
public class test3 extends JFrame {
    public test3() {
        initComponents();
    }

    public static void main(String[] args) {
        new test3();
    }

    private void button1ActionPerformed(ActionEvent e) {
        // TODO add your code here
        String s = textField1.getText();
        int N = Integer.parseInt(s);
        double sum = N;
        if(N < 500){
            JOptionPane.showMessageDialog(this,"您需要支付的金额为:"+sum);
            System.out.printf("%.2f",sum);
            System.out.println();
        }else if(N < 1000){
            JOptionPane.showMessageDialog(this,"您需要支付的金额为:"+sum*0.95);
            System.out.printf("%.2f",sum*0.95);
            System.out.println();
        }else if(N < 1500){
            JOptionPane.showMessageDialog(this,"您需要支付的金额为:"+sum*0.90);
            System.out.printf("%.2f",sum*0.90);
            System.out.println();
        }else if(N < 2500){
            JOptionPane.showMessageDialog(this,"您需要支付的金额为:"+sum*0.85);
            System.out.printf("%.2f",sum*0.85);
            System.out.println();
        }else{
            JOptionPane.showMessageDialog(this,"您需要支付的金额为:"+sum*0.80);
            System.out.printf("%.2f",sum*0.80);
            System.out.println();
        }
    }

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

        //======== this ========
        setVisible(true);
        setTitle("消费金额");
        setDefaultCloseOperation(3);
        var contentPane = getContentPane();
        contentPane.setLayout(null);

        //---- label1 ----
        label1.setText("\u8bf7\u8f93\u5165\u8d2d\u7269\u91d1\u989d");
        label1.setFont(label1.getFont().deriveFont(label1.getFont().getSize() + 7f));
        contentPane.add(label1);
        label1.setBounds(180, 40, 165, 55);
        contentPane.add(textField1);
        textField1.setBounds(130, 115, 285, 55);

        //---- button1 ----
        button1.setText("\u786e\u5b9a");
        button1.setFont(button1.getFont().deriveFont(button1.getFont().getSize() + 7f));
        button1.addActionListener(e -> button1ActionPerformed(e));
        contentPane.add(button1);
        button1.setBounds(170, 205, 200, 85);

        {
            // 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(500,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 JTextField textField1;
    private JButton button1;
    // JFormDesigner - End of variables declaration  //GEN-END:variables
}

问题二:
2. 为实验一的任务4设计图形界面:编写一个简单的模拟抽奖程序(模拟抽奖3.0),程序运行后会随机生成5个116幸运号码,然后在图形界面提示“请您抽奖”,等待用户输入5个116不重复的整数作为抽奖号码。开始抽奖后,程序判断用户输入的号码与系统生成的幸运号码是否一致,给出用户中奖结果。抽奖规则:如果用户输入的号码中分别有5、4、3个号码与幸运号码一致,则分别判定为一等奖、二等奖、三等奖,否则判定为未中奖。要求给出必要的提示信息,如输入号码的数值范围限制;提供关闭按钮或菜单项,当用户希望结束抽奖时可以自主退出程序的运行。
下面展示一些 内联代码片

这孩子使用的插件做的--JFrameDesignner
import java.awt.*;
import java.awt.event.*;
import java.util.Random;
import javax.swing.*;

/**
 * @author
 */
public class test4 extends JFrame {
    Random r = new Random();
    int a[] = new int[5];
    public test4() {
        Ran();
        initComponents();
    }
    
    public static void main(String[] args) {
        new test4();
    }

    private void Ran(){
        for (int i = 0; i < a.length; i++) {
            a[i] = r.nextInt(16)+1;
            for (int i1 = 0; i1 < i; i1++) {
                if(a[i]==a[i1]){
                    while(true){
                        a[i] = r.nextInt(16)+1;
                        if(a[i]!=a[i1]){
                            break;
                        }
                    }
                }
            }
        }
        for (int i = 0; i < a.length; i++) {
            System.out.print(a[i]+" ");
        }
        System.out.println();
    }

    //确定按钮的监听
    private void button1ActionPerformed(ActionEvent e) {
        // TODO add your code here
        String s1 = textField1.getText();
        String s2 = textField2.getText();
        String s3 = textField3.getText();
        String s4 = textField4.getText();
        String s5 = textField5.getText();

        if(s1.equals("")||s2.equals("")||s3.equals("")||s4.equals("")||s5.equals("")){
            JOptionPane.showMessageDialog(null,"请输入完全");
        }else{
            int n1 = Integer.parseInt(s1);
            int n2 = Integer.parseInt(s2);
            int n3 = Integer.parseInt(s3);
            int n4 = Integer.parseInt(s4);
            int n5 = Integer.parseInt(s5);
            jud(n1,n2,n3,n4,n5);
        }

    }

    //判断输入的数据是否符合要求
    public void jud(int n1,int n2,int n3,int n4,int n5){
        if(n1<1||n1>16||n2<1||n2>16||n3<1||n3>16||n4<1||n4>16||n5<1||n5>16){
            JOptionPane.showMessageDialog(null,"请在1~16之间输入数字");
        }
        if(!(n1<1||n1>16||n2<1||n2>16||n3<1||n3>16||n4<1||n4>16||n5<1||n5>16)){
            int cnt=0;
            for (int i1 = 0; i1 < a.length; i1++) {
                if(n1==a[i1]){
                    cnt++;
                }
                if(n2==a[i1]){
                    cnt++;
                }
                if(n3==a[i1]){
                    cnt++;
                }
                if(n4==a[i1]){
                    cnt++;
                }
                if(n5==a[i1]){
                    cnt++;
                }
            }
            if(cnt<3){
                JOptionPane.showMessageDialog(null,"很遗憾,您未中奖!");
                System.out.println("很遗憾,您未中奖!");
            }else if(cnt==3){
                JOptionPane.showMessageDialog(null,"恭喜您中了三等奖!");
                System.out.println("恭喜您中了三等奖!");
            }else if(cnt==4){
                JOptionPane.showMessageDialog(null,"恭喜您中了二等奖!");
                System.out.println("恭喜您中了二等奖!");
            }else if(cnt==5){
                JOptionPane.showMessageDialog(null,"恭喜您中了一等奖!");
                System.out.println("恭喜您中了一等奖!");
            }
        }
    }

    private void button2ActionPerformed(ActionEvent e) {
        // TODO add your code here
        System.exit(0);
    }

    private void initComponents() {
        // JFormDesigner - Component initialization - DO NOT MODIFY  //GEN-BEGIN:initComponents
        // Generated using JFormDesigner Evaluation license 
        label1 = new JLabel();
        textField1 = new JTextField();
        label2 = new JLabel();
        label3 = new JLabel();
        label4 = new JLabel();
        label5 = new JLabel();
        button1 = new JButton();
        textField2 = new JTextField();
        textField3 = new JTextField();
        textField4 = new JTextField();
        textField5 = new JTextField();
        button2 = new JButton();

        //======== this ========
        setVisible(true);
        setTitle("抽奖");
        setDefaultCloseOperation(3);
        var contentPane = getContentPane();
        contentPane.setLayout(null);

        //---- label1 ----
        label1.setText("\u53f7\u78011");
        contentPane.add(label1);
        label1.setBounds(30, 25, 65, 35);
        contentPane.add(textField1);
        textField1.setBounds(85, 20, 160, 50);

        //---- label2 ----
        label2.setText("\u53f7\u78012");
        contentPane.add(label2);
        label2.setBounds(275, 25, 60, 40);

        //---- label3 ----
        label3.setText("\u53f7\u78013");
        contentPane.add(label3);
        label3.setBounds(25, 95, 40, 35);

        //---- label4 ----
        label4.setText("\u53f7\u78014");
        contentPane.add(label4);
        label4.setBounds(270, 95, 50, 30);

        //---- label5 ----
        label5.setText("\u53f7\u78015");
        contentPane.add(label5);
        label5.setBounds(20, 160, 45, 30);

        //---- button1 ----
        button1.setText("\u786e\u5b9a");
        button1.setFont(button1.getFont().deriveFont(button1.getFont().getSize() + 5f));
        button1.addActionListener(e -> button1ActionPerformed(e));
        contentPane.add(button1);
        button1.setBounds(85, 235, 160, 55);
        contentPane.add(textField2);
        textField2.setBounds(350, 20, 160, 50);
        contentPane.add(textField3);
        textField3.setBounds(85, 85, 160, 50);
        contentPane.add(textField4);
        textField4.setBounds(350, 85, 160, 50);
        contentPane.add(textField5);
        textField5.setBounds(85, 155, 160, 50);

        //---- button2 ----
        button2.setText("\u5173\u95ed\u7a0b\u5e8f");
        button2.setFont(button2.getFont().deriveFont(button2.getFont().getSize() + 6f));
        button2.addActionListener(e -> button2ActionPerformed(e));
        contentPane.add(button2);
        button2.setBounds(305, 235, 180, 55);

        {
            // 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(600,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 JTextField textField1;
    private JLabel label2;
    private JLabel label3;
    private JLabel label4;
    private JLabel label5;
    private JButton button1;
    private JTextField textField2;
    private JTextField textField3;
    private JTextField textField4;
    private JTextField textField5;
    private JButton button2;
    // JFormDesigner - End of variables declaration  //GEN-END:variables
}

初学图像化界面,不当之处,欢迎大佬指正

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
1. Python文件函数应用实验: 在Python中,编写函数是非常常见的操作。以下为一个简单的例子,展示如何编写并使用一个函数: ```python # 定义一个函数,用于计算两个数的和 def add_numbers(a, b): return a + b # 调用函数,并打印结果 result = add_numbers(2, 3) print(result) ``` 以上代码定义了一个名为`add_numbers`的函数,接受两个参数`a`和`b`,并返回它们的和。接着,我们调用了这个函数,并将结果存储在`result`变量中,最终打印出了结果。 2. Python文件应用使用: Python文件是Python程序的基本构建块,实际上,我们在上面的例子中已经使用了一个Python文件。下面是一个更完整的例子,展示如何编写并使用一个Python文件: `my_math.py`文件: ```python def add_numbers(a, b): return a + b def subtract_numbers(a, b): return a - b ``` `main.py`文件: ```python # 导入my_math.py文件中的函数 from my_math import add_numbers, subtract_numbers # 调用函数,并打印结果 result1 = add_numbers(2, 3) result2 = subtract_numbers(5, 2) print(result1) print(result2) ``` 以上代码在`main.py`文件中导入了`my_math.py`文件中的两个函数,并调用它们,最终打印出了结果。 3. Python图形用户界面实验总结: Python有多种GUI库可供选择,如Tkinter、PyQt、wxPython等。以下是一个使用Tkinter库编写的简单GUI应用程序的示例: ```python import tkinter as tk # 创建一个窗口 root = tk.Tk() # 添加一个标签 label = tk.Label(root, text="Hello, world!") label.pack() # 运行窗口 root.mainloop() ``` 以上代码创建了一个窗口,并在窗口中添加了一个标签,最终运行了这个窗口。这是一个非常简单的GUI应用程序,但它展示了如何使用Tkinter库来创建GUI界面。在实际应用中,GUI应用程序通常会更加复杂,并且会使用更多的Tkinter组件和事件处理函数。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

多喝热水,重启试试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值