找回密码
 立即注册
搜索
热搜: Python Java C Html PHP
查看: 798|回复: 0

Java程序测试 打折与满减

[复制链接]

42

主题

10

回帖

8

积分

管理员

积分
8

原始用户

发表于 2026-3-16 14:51:57 | 显示全部楼层 |阅读模式

试题2、根据题目描述,编写Java代码完成测试。

本题分值:20
考核时间:30分钟
考核方式:实操
考核内容:现Casher类中有compute函数用来计算商品价格并根据情况打折和优惠。代码如下:
  1. public class Casher {
  2.     public double compute(int count, double price) {
  3.         double totalPrice = 0.0;
  4.         if (count <= 1) {
  5.             totalPrice = count * price;
  6.         } else if (count <= 5) {
  7.             totalPrice = count * price * 0.95;
  8.         } else if (count <= 10) {
  9.             totalPrice = count * price * 0.85;
  10.         } else {
  11.             totalPrice = count * price * 0.8;
  12.         }

  13.         totalPrice -= Math.floor(totalPrice / 300) * 30;
  14.         return totalPrice;
  15.     }
  16. }
复制代码
  1. import org.junit.Test;

  2. import static org.junit.Assert.*;

  3. public class CasherTest {
  4.     Casher casher = new Casher();
  5.     //测试无折扣
  6.     @Test
  7.     public void testNo() {
  8.         assertEquals(100,casher.compute(1,100),0.01);
  9.         assertEquals(0,casher.compute(0,100),0.01);
  10.     }

  11.     //测试95折
  12.     @Test
  13.     public void test95() {
  14.         assertEquals(190,casher.compute(2,100),0.01);
  15.         assertEquals(285,casher.compute(3,100),0.01);
  16.         assertEquals(350,casher.compute(4,100),0.01);//此时满一个300减一个30
  17.         assertEquals(445,casher.compute(5,100),0.01);
  18.     }

  19.     //测试85折
  20.     @Test
  21.     public void test85() {
  22.         assertEquals(480,casher.compute(6,100),0.01);
  23.         assertEquals(565,casher.compute(7,100),0.01);
  24.         assertEquals(620,casher.compute(8,100),0.01);//此时满两个300减两个30
  25.         assertEquals(705,casher.compute(9,100),0.01);
  26.         assertEquals(790,casher.compute(10,100),0.01);
  27.     }

  28.     //测试8折
  29.     @Test
  30.     public void test8() {
  31.         assertEquals(820,casher.compute(11,100),0.01);
  32.         assertEquals(870,casher.compute(12,100),0.01);//此时满三个300减三个30
  33.     }

  34.     //测试满300减30
  35.     @Test
  36.     public void test300() {
  37.         assertEquals(350,casher.compute(4,100),0.01);
  38.         assertEquals(620,casher.compute(8,100),0.01);
  39.         assertEquals(870,casher.compute(12,100),0.01);
  40.     }
  41. }
复制代码



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|HELIXABYSS

GMT+8, 2026-7-21 21:17 , Processed in 0.072386 second(s), 18 queries .

Powered by Discuz! X3.5

© 2024-2026 HELIXABYSS

快速回复 返回顶部 返回列表