代码如下:
price = input("请输入商品价格以空格分割:").strip()
price = list(map(int,price.split(' ')))
amount = len(price)
if amount >= 5:
print(f"购买了{amount}件商品,享受八折优惠。优惠后的价格为:{sum(price)*0.8},优惠金额为:{sum(price)*0.2}")
else:
print(f"购买了{amount}件商品。总价为:{sum(price)}")
输出如下:
以前学习java又做个实例,挺值得学习的。1.首先我先列出我们所需要的java类结构。
1)Database.java --------- 模拟存储商品的数据库。
2)McBean.java ------------ 商品实体类,一个普通的javabean,里面有商品的基本属性。
3)OrderItemBean.java --- 订单表。
4)ShoppingCar.java ------ 这个就是最主要的购物车,当然比较简单。
5)TestShoppingCar.java --- 这个是测试类。
2.下面贴出具体代码并带关键注释。
---Database.java
public class Database {
/*采用Map存储商品数据,为什么呢?我觉得这个问题你自己需要想下。
* Integer 为Map的key值,McBean为Map的value值。
*/
private static Map<Integer, McBean>data = new HashMap<Integer, McBean>()
public Database() {
McBean bean = new McBean()
bean.setId(1)
bean.setName("地瓜")
bean.setPrice(2.0)
bean.setInstuction("新鲜的地瓜")
data.put(1, bean)//把商品放入Map
bean = new McBean()
bean.setId(2)
bean.setName("土豆")
bean.setPrice(1.2)
bean.setInstuction("又好又大的土豆")
data.put(2, bean)//把商品放入Map
bean = new McBean()
bean.setId(3)
bean.setName("丝瓜")
bean.setPrice(1.5)
bean.setInstuction("本地丝瓜")
data.put(3, bean)//把商品放入Map
}
public void setMcBean(McBean mcBean){
data.put(mcBean.getId(),mcBean)
}
public McBean getMcBean(int nid) {
return data.get(nid)
}
}
---McBean.java
public class McBean {
private int id//商品编号
private String name//商品名
private double price//商品价格
private String instuction//商品说明
public int getId() {
return id
}
public void setId(int id) {
this.id = id
}
public String getName() {
return name
}
public void setName(String name) {
this.name = name
}
public double getPrice() {
return price
}
public void setPrice(double price) {
this.price = price
}
public String getInstuction() {
return instuction
}
public void setInstuction(String instuction) {
this.instuction = instuction
}
}
---ShoppingCar.java
public class ShoppingCar {
private double totalPrice// 购物车所有商品总价格
private int totalCount// 购物车所有商品数量
private Map<Integer, OrderItemBean>itemMap// 商品编号与订单项的键值对
public ShoppingCar() {
itemMap = new HashMap<Integer, OrderItemBean>()
}
public void buy(int nid) {
OrderItemBean order = itemMap.get(nid)
McBean mb
if (order == null) {
mb = new Database().getMcBean(nid)
order = new OrderItemBean(mb, 1)
itemMap.put(nid, order)
update(nid, 1)
} else {
order.setCount(order.getCount() + 1)
update(nid, 1)
}
}
public void delete(int nid) {
OrderItemBean delorder = itemMap.remove(nid)
totalCount = totalCount - delorder.getCount()
totalPrice = totalPrice - delorder.getThing().getPrice() * delorder.getCount()
}
public void update(int nid, int count) {
OrderItemBean updorder = itemMap.get(nid)
totalCount = totalCount + count
totalPrice = totalPrice + updorder.getThing().getPrice() * count
}
public void clear() {
itemMap.clear()
totalCount = 0
totalPrice = 0.0
}
public void show() {
DecimalFormat df = new DecimalFormat("¤#.##")
System.out.println("商品编号\t商品名称\t单价\t购买数量\t总价")
Set set = itemMap.keySet()
Iterator it = set.iterator()
while (it.hasNext()) {
OrderItemBean order = itemMap.get(it.next())
System.out.println(order.getThing().getId() + "\t"
+ order.getThing().getName() + "\t"
+ df.format(order.getThing().getPrice()) + "\t" + order.getCount()
+ "\t" + df.format(order.getCount() * order.getThing().getPrice()))
}
System.out.println("合计: 总数量: " + df.format(totalCount) + " 总价格: " + df.format(totalPrice))
System.out.println("**********************************************")
}
}
---OrderItemBean.java
public class OrderItemBean {
private McBean thing//商品的实体
private int count//商品的数量
public OrderItemBean(McBean thing, int count) {
super()
this.thing = thing
this.count = count
}
public McBean getThing() {
return thing
}
public void setThing(McBean thing) {
this.thing = thing
}
public int getCount() {
return count
}
public void setCount(int count) {
this.count = count
}
}
---TestShoppingCar.java
package com.shop
public class TestShoppingCar {
public static void main(String[] args) {
ShoppingCar s = new ShoppingCar()
s.buy(1)//购买商品编号1的商品
s.buy(1)
s.buy(2)
s.buy(3)
s.buy(1)
s.show()//显示购物车的信息
s.delete(1)//删除商品编号为1的商品
s.show()
s.clear()
s.show()
}
}
3.打印输出结果
商品编号 商品名称 单价 购买数量 总价
1 地瓜 ¥2 3 ¥6
2 土豆 ¥1.2 1 ¥1.2
3 丝瓜 ¥1.5 1 ¥1.5
合计: 总数量: ¥5 总价格: ¥8.7
**********************************************
商品编号 商品名称 单价 购买数量 总价
2 土豆 ¥1.2 1 ¥1.2
3 丝瓜 ¥1.5 1 ¥1.5
合计: 总数量: ¥2 总价格: ¥2.7
**********************************************
商品编号 商品名称 单价 购买数量 总价
合计: 总数量: ¥0 总价格: ¥0
**********************************************
4.打字太累了,比较匆忙,但是主要靠你自己领会。哪里不清楚再提出来。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)