1、类图:

界面设计:

文件结构:

代码:

Commission.java

package application;public class Commission {/** hp:耳机 80元 mpc:手机壳 10元 cpsp:手机贴膜 8元*/public float calculate(String line) {int hp = 0, mpc = 0, cpsp = 0;String[] input = null;float money = 0;while (true) {// 【去掉字符串前后的空格】line = line.trim();// 【去掉字符串中多余的空格】line = line.replaceAll("\\s{1,}", " ");input = line.split(" ");if (Judge(input)) {// 判断是否不小于0if ((hp = Integer.parseInt(input[0])) < 0) {System.out.println("输入数量不满足要求");return -1;}if ((mpc = Integer.parseInt(input[1])) < 0) {System.out.println("输入数量不满足要求");return -1;}if ((cpsp = Integer.parseInt(input[2])) < 0) {System.out.println("输入数量不满足要求");return -1;}} else {System.out.println("输入数量不满足要求");return -1;}money = commission(hp, mpc, cpsp);return money;}}// 计算佣金private static float commission(int hp, int mpc, int cpsp) {float commission = 0;int total = hp * 80 + mpc * 10 + cpsp * 8;if (total < 1000) {commission = (float) (total * 0.1);} else if (total <= 1800) {commission = (float) (1000 * 0.1 + (total - 1000) * 0.15);} else {commission = (float) (1000 * 0.1 + 800 * 0.15 + (total - 1800) * 0.2);}return commission;}// 判断用户输入的是不是三个整数private static boolean Judge(String[] input) {String number = "0123456789";// 判断输入的是不是三个字符串if (input.length != 3) {return false;}// 判断三个字符串是不是纯数字且不含小数点for (int i = 0; i < 3; i++) {for (int j = 0; j < input[i].length(); j++) {
if ("+".equals(String.valueOf(input[i].charAt(0))) || "-".equals(String.valueOf(input[i].charAt(0)))) {if ("+".equals(String.valueOf(input[i].charAt(0)))) {input[i].substring(1);}continue;}if (number.indexOf(input[i].charAt(j)) == -1) {return false;}// 【判断输入的字符串是否大于整型的最大数值】
input[i] = input[i].replaceFirst("^0*", "");if (Long.parseLong(input[i]) > Integer.MAX_VALUE || input[i].length() > 10) {return false;}}}return true;}
}

Main.java

package application;import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;public class Main extends Application {@Overridepublic void start(Stage primaryStage) {try {Parent root = FXMLLoader.load(getClass().getResource("Main.fxml"));primaryStage.setTitle("Calculate Commission");primaryStage.setScene(new Scene(root));primaryStage.show();} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {launch(args);}
}

MainController.java

package application;import java.net.URL;
import java.util.ResourceBundle;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TextField;public class MainController implements Initializable {@FXMLprivate TextField TF_hp;@FXMLprivate TextField TF_mpc;@FXMLprivate TextField TF_cpsp;@FXMLprivate TextField TF_commission;@FXMLprivate TextField TF_MostSale;@FXMLprivate TextField TF_MaxMin;@Overridepublic void initialize(URL arg0, ResourceBundle arg1) {// TODO Auto-generated method stub
}public void BT_OK_Event() {Commission commission = new Commission();String hp, mps, cpsp;int headphone, mobilePhoneShell, protector;hp = TF_hp.getText();mps = TF_mpc.getText();cpsp = TF_cpsp.getText();String input = hp + " " + mps + " " + cpsp;float salary = commission.calculate(input);if (salary != -1) {headphone = Integer.parseInt(hp);mobilePhoneShell = Integer.parseInt(mps);protector = Integer.parseInt(cpsp);String mostsale = mostSale(headphone, mobilePhoneShell, protector);int diffsal = diffSale(headphone, mobilePhoneShell, protector);TF_commission.setText(String.valueOf(salary));TF_MostSale.setText(mostsale);TF_MaxMin.setText(String.valueOf(diffsal));} else {TF_commission.setText("您输入有误,请重新输入!");TF_MostSale.clear();TF_MaxMin.clear();}}public void BT_Cancel_Event() {TF_hp.clear();TF_mpc.clear();TF_cpsp.clear();TF_commission.clear();TF_MostSale.clear();TF_MaxMin.clear();}private int diffSale(int headphone, int mobilePhoneShell, int protector) {int diffsal = 0;int max, min;max = Math.max(Math.max(headphone, mobilePhoneShell), protector);if (max == headphone) {min = Math.min(mobilePhoneShell, protector);} else if (max == mobilePhoneShell) {min = Math.min(headphone, protector);} else {min = Math.min(headphone, mobilePhoneShell);}diffsal = max - min;return diffsal;}private String mostSale(int headphone, int mobilePhoneShell, int protector) {int hp, mps, cpsp, max;String mostsale = null;hp = headphone * 80;mps = mobilePhoneShell * 10;cpsp = protector * 8;max = Math.max(Math.max(hp, mps), cpsp);if (max == hp) {mostsale = "耳机";} else if (max == mps) {mostsale = "手机壳";} else {mostsale = "贴膜";}return mostsale;}}

Main.fxml

<?xml version="1.0" encoding="UTF-8"?><?import javafx.scene.control.*?>
<?import javafx.scene.text.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?><AnchorPane prefHeight="278.0" prefWidth="399.0"xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1"fx:controller="application.MainController"><children><Text layoutX="14.0" layoutY="32.0" strokeType="OUTSIDE"strokeWidth="0.0" text="请输入销售数量" wrappingWidth="165.240234375"><font><Font size="18.0" /></font></Text><Text layoutX="14.0" layoutY="73.0" strokeType="OUTSIDE"strokeWidth="0.0" text="耳机:"><font><Font size="16.0" /></font></Text><Text layoutX="147.0" layoutY="73.0" strokeType="OUTSIDE"strokeWidth="0.0" text="手机壳:"><font><Font size="16.0" /></font></Text><Text layoutX="289.0" layoutY="72.0" strokeType="OUTSIDE"strokeWidth="0.0" text="贴膜:"><font><Font size="16.0" /></font></Text><TextField fx:id="TF_hp" layoutX="62.0" layoutY="53.0"prefHeight="23.0" prefWidth="48.0"><font><Font size="13.0" /></font></TextField><TextField fx:id="TF_mpc" layoutX="214.0" layoutY="52.0"prefHeight="23.0" prefWidth="48.0"><font><Font size="13.0" /></font></TextField><TextField fx:id="TF_cpsp" layoutX="337.0" layoutY="52.0"prefHeight="23.0" prefWidth="48.0"><font><Font size="13.0" /></font></TextField><Button layoutX="99.0" layoutY="90.0" mnemonicParsing="false"onAction="#BT_OK_Event" prefHeight="28.0" prefWidth="64.0" text="OK"AnchorPane.bottomAnchor="164.0" AnchorPane.topAnchor="91.0"><font><Font size="13.0" /></font></Button><Button layoutX="236.0" layoutY="90.0" mnemonicParsing="false"onAction="#BT_Cancel_Event" prefHeight="28.0" prefWidth="64.0" text="Cancel"AnchorPane.bottomAnchor="164.0" AnchorPane.topAnchor="91.0"><font><Font size="13.0" /></font></Button><Text layoutX="38.0" layoutY="155.0" strokeType="OUTSIDE"strokeWidth="0.0" text="应返还的佣金:"><font><Font size="16.0" /></font></Text><Text layoutX="38.0" layoutY="195.0" strokeType="OUTSIDE"strokeWidth="0.0" text="销售额最高的配件是:"><font><Font size="16.0" /></font></Text><Text layoutX="38.0" layoutY="235.0" strokeType="OUTSIDE"strokeWidth="0.0" text="销售配件最多与最少数量相差:"><font><Font size="16.0" /></font></Text><TextField fx:id="TF_commission" layoutX="156.0" layoutY="135.0"prefHeight="28.0" prefWidth="203.0"><font><Font size="13.0" /></font></TextField><TextField fx:id="TF_MostSale" layoutX="199.0" layoutY="175.0"prefHeight="28.0" prefWidth="160.0"><font><Font size="13.0" /></font></TextField><TextField fx:id="TF_MaxMin" layoutX="269.0" layoutY="215.0"prefHeight="28.0" prefWidth="91.0"><font><Font size="13.0" /></font></TextField></children>
</AnchorPane>

  

实验结果:

转载于:https://www.cnblogs.com/mtLin/p/6784484.html

第4次作业类测试代码 021相关推荐

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

    类测试代码的具体要求如下: 设计三角形完整程序 已经完成的方法是:  String triangle(int a,int b,int c) 现在要求继续增加新的功能: 建立界面,至少包含以下元素,但不 ...

  2. 第四次作业类测试代码+036+吴心怡

    一.类图 二.代码 package application; public class Commission { /* * hp:耳机 80元 mpc:手机壳 10元 cpsp:手机贴膜 8元 */ ...

  3. 第4次作业类测试代码+105032014065+方绎杰

    一.类图 二.代码 Date类: package examOne;import java.util.Scanner;import snippet.Snippet;public class Date { ...

  4. 第4次作业类测试代码+105032014070+胡阳洋

    1.类图. 2.代码及界面. package test.java.distinguish.triangle;public class Distinguish {/*** * @param a 三角形边 ...

  5. 第4次作业类测试代码+163+张玉洁

    1.类图: 2.结果: 3.代码及界面: 1 package test; 2 public class Triangle { 3 public String triangle(int a,int b, ...

  6. 第4次作业类测试代码+001+陈定国

    1.类图 2.代码 Triangle类: package triangleDemo; public class Triangle{public String triangle(int a,int b, ...

  7. 第四次作业类测试代码+108+曾宏宇

    1.类图 2.代码 常量定义: private final static int HP_PRICE=80; private final static int SHELL_PRICE=10; priva ...

  8. 第4次作业类测试代码+087+饶慧敏

    1.类图 2.主要界面 当输入为空,输入非数值型数据时,程序会弹出错误信息,并要求重新输入: 正常情况下的输出结果为: 3.代码如下 1 import java.util.Arrays; 2 3 pu ...

  9. 第4次作业类测试代码+043+杨晨宇

    triangle的代码: package triangle;import java.text.DecimalFormat;public class Triangle {public Triangle( ...

  10. 存根类 测试代码 java_测试双打:模拟,假人和存根

    存根类 测试代码 java 大多数班级都有合作者. 在进行单元测试时,您通常希望避免使用那些协作者的实际实现方式来避免测试的脆弱性和绑定/耦合,而应使用测试双打:模拟,存根和双打. 本文引用了有关该主 ...

最新文章

  1. NFS挂载的问题svc: failed to register lockdv1 RPC service
  2. Mac平台下安装与配置MySQL
  3. 【每日一题】7月15日题目精讲—生日快乐
  4. gdal数据类型_科学网-gdal数据类型的代码的核心定义文件-林清莹的博文
  5. Apache的多处理模块MPM
  6. 2016年9月ccf
  7. web前端开发课设 html5前端网页设计 中国传统文化介绍
  8. 企业级地理数据库(2)创建并加载企业级地理数据库
  9. 建筑智能化集成系统及架构简介
  10. AutoCAD 2006/2007等在高版本系统上无法安装
  11. android实现支付功能,Android支付宝支付开发实例
  12. iis aspnet_iisreg.exe 0x8007000B
  13. 虚拟机Vmware打开vmx步骤
  14. 用户行为分析的指标及其意义
  15. CRC16 校验函数
  16. 14届蓝桥杯Python总结
  17. python:Excel
  18. 12.关于uniapp小程序设置页面背景色无效的问题及解决方案
  19. IDEA报错:Error: java: 错误:不支持发行版本5
  20. 长尾词挖掘免费工具-长尾关键词挖掘词

热门文章

  1. 【渝粤教育】电大中专测量学 (4)作业 题库
  2. [渝粤教育] 西南科技大学 企业生产运作管理 在线考试复习资料2021版
  3. caffe 使用笔记
  4. 经典机器学习系列(六)【集成学习】之周志华西瓜书-AdaBoost算法证明解析
  5. 矩阵分析 (四)向量和矩阵的范数
  6. 整个社会总嫌自己不够“快”,为啥?
  7. 算法复习——带修改莫队(bzoj2453)
  8. [转]VC工程文件说明
  9. pyhthon Opencv截取视频中的图片
  10. KRPANO资源分析工具下载720THINK全景图