Skip to content

GraceeFlower/java_practice_basic-OOmain

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

黄焖鸡

需求描述

某快餐品牌推出了它独家的外卖应用,用户可以在手机上直接下单。该应用会根据用户选择的菜品(Item)、数量(Count)和优惠方式(Sales Promotion)进行计算,告诉用户需要支付的金额(Charge)。

优惠活动有多种形式。假设用户一次只能使用一种优惠,那么使用哪种优惠省钱最多就会是一个让用户头疼的问题。所以该外卖应用为了方便用户,在用户下单时,会自动选择最优惠的方式并计算出最终金额让用户确认。

我们需要实现一个名为bestCharge的函数,它能够接收用户选择的菜品和数量(以特定格式呈现)作为输入,然后返回计算后的汇总信息。

已知:

  • 该店的菜品每一个都有一个唯一的id
  • 当前的优惠方式有:
    • 满30减6元
    • 指定菜品半价
  • 除菜品外没有其它收费(如送餐费、餐盒费等)
  • 如果两种优惠方式省钱一样多,则使用前一种优惠方式

输入样例

ITEM0001 x 1,ITEM0013 x 2,ITEM0022 x 1

输出样例

============= 订餐明细 =============
黄焖鸡 x 1 = 18元
肉夹馍 x 2 = 12元
凉皮 x 1 = 8元
-----------------------------------
使用优惠:
指定菜品半价(黄焖鸡,凉皮),省13元
-----------------------------------
总计:25元
===================================

使用另一种优惠的样例

输入:

ITEM0013 x 4,ITEM0022 x 1

输出:

============= 订餐明细 =============
肉夹馍 x 4 = 24元
凉皮 x 1 = 8元
-----------------------------------
使用优惠:
满30减6元,省6元
-----------------------------------
总计:26元
===================================

如果没有优惠可享受

输入:

ITEM0013 x 4

输出:

============= 订餐明细 =============
肉夹馍 x 4 = 24元
-----------------------------------
总计:24元
===================================

练习要求

  • 克隆模版库
  • 在项目中src/main/java/com/thoughtworks目录下App.java类下的bestCharge方法中编写代码
  • 编写完成后的代码要能通过src/test目录下对应的测试验收

使用简介

  1. 如何导入gradle项目(现在不要求掌握什么是gradle)

2.�运行所有测试

./gradlew clean test
  1. 运行单个测试可以直接点击对应测试右边的绿色三角形

提示

  • 可以将用户的点餐信息和优惠结果定义为对象
  • 可以定义解析类和渲染类,用来解析用户的点餐输入和渲染汇总信息
  • 可以将优惠活动用接口抽象,每种优惠定义一个实现类
  • 甚至可以将无优惠的情况看做特殊的优惠,方便统一处理

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.5%
  • Shell 0.5%