第4次作业类测试代码+033+王泓泽

一、类图

二、代码

package test2;

import java.awt.EventQueue;
import java.awt.SystemColor;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class Yongjin02 {
    private JFrame frame;
    private JTextField textField_headphone;
    private JTextField textField_shell;
    private JTextField textField_protector;
    private JTextField textField_return;
    private JTextField textField_max;
    private JTextField textField_diff;

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    Yongjin02 window = new Yongjin02();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    public Yongjin02() {
        initialize();
    }

    private void initialize() {
        frame = new JFrame();
        frame.setTitle("佣金计算程序");
        frame.getContentPane().setBackground(SystemColor.menu);
        frame.setBounds(400, 300, 600, 400);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);

        JLabel lbl = new JLabel("请输入销售数量:");
        lbl.setBounds(10, 10, 131, 15);
        frame.getContentPane().add(lbl);

        JLabel label = new JLabel("耳机:");
        label.setBounds(10, 51, 46, 15);
        frame.getContentPane().add(label);

        JLabel label2 = new JLabel("手机壳:");
        label2.setBounds(142, 51, 57, 15);
        frame.getContentPane().add(label2);

        JLabel label3 = new JLabel("贴膜:");
        label3.setBounds(285, 51, 57, 15);
        frame.getContentPane().add(label3);

        textField_headphone = new JTextField();
        textField_headphone.setBounds(50, 48, 66, 21);
        frame.getContentPane().add(textField_headphone);
        textField_headphone.setColumns(10);

        textField_shell = new JTextField();
        textField_shell.setBounds(198, 48, 66, 21);
        frame.getContentPane().add(textField_shell);
        textField_shell.setColumns(10);

        textField_protector = new JTextField();
        textField_protector.setBounds(326, 48, 66, 21);
        frame.getContentPane().add(textField_protector);
        textField_protector.setColumns(10);

        JLabel label_2 = new JLabel("应返回的佣金:");
        label_2.setBounds(10, 132, 106, 15);
        frame.getContentPane().add(label_2);

        textField_return = new JTextField();
        textField_return.setEditable(false);
        textField_return.setBounds(198, 129, 194, 21);
        frame.getContentPane().add(textField_return);
        textField_return.setColumns(10);

        JLabel label_3 = new JLabel("销售额最高的配件:");
        label_3.setBounds(10, 165, 131, 15);
        frame.getContentPane().add(label_3);

        JLabel label_4 = new JLabel("销售配件最多与最少数量相差:");
        label_4.setBounds(10, 198, 189, 15);
        frame.getContentPane().add(label_4);

        textField_max = new JTextField();
        textField_max.setEditable(false);
        textField_max.setBounds(198, 162, 194, 21);
        frame.getContentPane().add(textField_max);
        textField_max.setColumns(10);

        textField_diff = new JTextField();
        textField_diff.setEditable(false);
        textField_diff.setBounds(198, 195, 194, 21);
        frame.getContentPane().add(textField_diff);
        textField_diff.setColumns(10);

        JButton btnOk = new JButton("OK");
        btnOk.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                int headphone = Commission.changeToInt(textField_headphone.getText());
                if(headphone < 0) {
                    JOptionPane.showMessageDialog(null, "输入有误,请重新输入", "错误", JOptionPane.ERROR_MESSAGE);
                    return;
                }
                int protector=Commission.changeToInt(textField_protector.getText());
                if(protector < 0) {
                    JOptionPane.showMessageDialog(null, "输入有误,请重新输入", "错误", JOptionPane.ERROR_MESSAGE);
                    return;
                }
                int shell=Commission.changeToInt(textField_shell.getText());
                if(shell < 0) {
                    JOptionPane.showMessageDialog(null, "输入有误,请重新输入", "错误", JOptionPane.ERROR_MESSAGE);
                    return;
                }
                float returnAns=Commission.commission(headphone, shell, protector);
                String returnString=String.format("佣金金额:%.2f元", returnAns);
                textField_return.setText(returnString);
                String maxAns=Commission.mostSale(headphone, shell, protector);
                textField_max.setText(maxAns);
                int differenceAns=Commission.diffSale(headphone, shell, protector);
                String differenceString=String.format("%d", differenceAns);
                textField_diff.setText(differenceString);
            }
        });
        btnOk.setBounds(10, 87, 93, 23);
        frame.getContentPane().add(btnOk);

        JButton btnCancel = new JButton("Cancel");
        btnCancel.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                textField_headphone.setText("");
                textField_protector.setText("");
                textField_shell.setText("");
                textField_return.setText("");
                textField_max.setText("");
                textField_diff.setText("");
            }
        });
        btnCancel.setBounds(299, 87, 93, 23);
        frame.getContentPane().add(btnCancel);
    }
}
package test2;

public class Commission{
    public static int changeToInt(String number){
        int ans=0;
        try{
            ans = Integer.parseInt(number);
        }
        catch (Exception e){
            ans=-1;
        }
        return ans;
    }

    //计算佣金
    public static float commission(int headphone, int shell, int protector){
        if(headphone < 0 || shell < 0 || protector < 0){
            return -1.0f;
        }

        float ans = 0.0f;
        long sum = 80 * headphone + 10 * shell + 8 * protector;

        if(sum < 1000){
            ans = sum * 0.1f;
        }
        else if(sum >= 1000 && sum <= 1800){
            ans = 100.0f + (sum - 1000) * 0.15f;
        }
        else{
            ans = (sum - 1800.0f) * 0.2f + 220.0f;
        }

        return ans;
    }

    //销售额最高的配件
    public static String mostSale(int headphone, int shell, int protector){
        long headphoneSales = headphone * 80;
        long shellSales = shell * 10;
        long protectorSales = protector * 8;
        String ans="";
        if(headphoneSales >= shellSales && headphoneSales >= protectorSales){
            ans+="耳机";
        }
        if(shellSales >= headphoneSales && shellSales >= protectorSales){
            if(ans.equals("")){
                ans+="手机壳";
            }
            else{
                ans+="和手机壳";
            }
        }
        if(protectorSales >= headphoneSales && protectorSales >= shellSales){
            if(ans.equals("")){
                ans+="贴膜";
            }
            else{
                ans+="和贴膜";
            }
        }
        return ans;
    }

    //销售配件最多与最少数量相差:
    public static int diffSale(int headphone, int shell, int protector){
        int max=Math.max(Math.max(headphone, shell), protector);
        int min=Math.min(Math.min(headphone, shell), protector);
        return max-min;
    }
}

三、结果

四、总结

第一次写带界面UI的java程序,还有很多不熟悉,比如输入错了后没有清空数据,但是主要功能还是没什么问题的。

时间: 2024-10-29 03:06:04

第4次作业类测试代码+033+王泓泽的相关文章

第4次作业类测试代码+101+谢艳敏

类测试代码的具体要求如下: 界面操作说明补充: 点击OK,如果输入有效,进行相应的数值计算:如果数值不满足约束,则弹出错误说明,统一为"输入有误,请重新输入",然后回到初始输入状态. 点击Cancle,表示重置,清空前面的数据,回到初始状态. (2)NextDate函数问题 String  nextdate(int m,int d,int y) 建立界面,至少包含以下元素,但不限于此: 完成上一天方法:String lastDay(int m,int d,int y) ,完成周几的方法

第4次作业类测试代码+105032014166+张珍珍

第4次作业:准备类测试代码 类测试代码的具体要求如下: (1)设计三角形完整程序 已经完成的方法是:  String triangle(int a,int b,int c) 现在要求继续增加新的功能: 建立界面,至少包含以下元素,但不限于此: 完成面积的方法:float triangleArea(int a,int b,int c) ,完成周长的方法:int perimeter(int a,int b,int c) 要求: 1.        画出类图: 2.        完成界面和相应的功能

第4次作业类测试代码+105032014138+牟平

类测试代码的具体要求如下: 设计三角形完整程序 已经完成的方法是:  String triangle(int a,int b,int c) 现在要求继续增加新的功能: 建立界面,至少包含以下元素,但不限于此: 完成面积的方法:float triangleArea(int a,int b,int c) ,完成周长的方法:int perimeter(int a,int b,int c) 一.类图 二.功能界面 1 2 3 4 5 6 三.代码: import java.awt.EventQueue;

第4次作业类测试代码+105032014125+洪诗育

类测试代码的具体要求如下: 界面操作说明补充: 点击OK,如果输入有效,进行相应的数值计算:如果数值不满足约束,则弹出错误说明,统一为"输入有误,请重新输入",然后回到初始输入状态. 点击Cancle,表示重置,清空前面的数据,回到初始状态. NextDate函数问题 String  nextdate(int m,int d,int y) 建立界面,至少包含以下元素,但不限于此: 完成上一天方法:String lastDay(int m,int d,int y) ,完成周几的方法:in

第4次作业类测试代码+074+林盼皇

(友情提示:代码部分较多,为了便于测试,项目码源已上传至链接:http://pan.baidu.com/s/1pLscU3T 密码:ug8i)  界面: 1.类图 2.界面和相应的功能. 本次实验是在原来的CalDate日期计算类的基础上,添加了两个方法int weekDay(int m,int d,int y)与String lastDate(int m,int d,int y),此外还编写了GUInterface界面.  a.实现lastDate 1 public String lastDa

第4次作业类测试代码+098+吴超

一.类图 二.代码与界面 简单的分层思想,代码目录如下: 计算日期的业务类操作代码:printDate.java;具体包括如下方法. 2.1  增加计算星期几的方法weekDay(),利用蔡勒(Zeller)公式.即w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1: 公式中的符号含义如下,w:星期:c:世纪-1:y:年(两位数):m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1.2月要看作上一年的13.14月来计算,比如2003年1月1日要看作2002年的13月

第4次作业类测试代码+028+刘孝天

一:类图 二:代码:  1:定义接口 1 package jframeTest; 2 /* 3 * @author lxt 4 * @date 2017年5月2日下午4:22:35 5 * @Param 6 */ 7 public interface InteUtil { 8 9 public int perimeter(int a,int b,int c); 10 public float triangleArea(int a,int b,int c); 11 public boolean I

第4次作业类测试代码+085+潘亭

一.类图设计如下 二.界面如下 功能演示 1.输入错误 2.不构成三角形 3.一般三角形 面积默认保留两位小数 4.直角三角形 5.等腰三角形 6.等边三角形 7.cancel演示 防止程序崩溃,默认重置为0 三.代码部分 1.Triangle类 1 package visualTriangle; 2 3 public class Triangle { 4 5 //judge the fields 6 public static boolean Check(int num) 7 { 8 if(n

第5次作业类测试代码+140+阮晨曦

1. 代码链接 http://www.cnblogs.com/chenxxiaol/p/6804119.html 2. 界面设计 3. 等价类测试 分析题目 得出对输入的条件要求为 (1)      整数 (2)      三个数 (3)      1≤a≤100 (4)      1≤b≤100 (5)      1≤c≤100 (6)      a<b+c (7)      b<a+ c (8)      c<a+ b (9)    等腰三角形 (10)   等边三角形 (11)