乐于分享
好东西不私藏

帮一个学生粉丝做java编程网络试卷,80分给一百,满分给双倍酬劳,今天成绩来了.

帮一个学生粉丝做java编程网络试卷,80分给一百,满分给双倍酬劳,今天成绩来了.

点击上方关注帽帽电脑,学习更多电脑知识。

帽帽从事网络工程师,学过很多电脑技能,比如系统集成类,web前栈前后端开发,编程类java,c,设计类phtoshop等等,也得益于毕业后不断学习进步,懂得也是够够多的了,这不今天就有一个还在读大学的铁子慕帽帽名而来,有两个java编程作业,如果能得到80分以上就一百,满分双倍。

这看来也是下血本了啊,那咱就接下这个活了,先来看看是什么要求。

题目要求如下:

使用java创建一个下面订单的计算金额的程序:

啤酒 3.5元/罐, 方便面 4.5元/包, 矿泉水 2.0 元/瓶。

优惠规则:

对于单个商品购买数量超过2件时,给予9折优惠。

对于方便面这种商品,方便面总价超过20元时,扣减2元。

小美购买商品: 啤酒 3罐,方便面3包,矿泉水 2瓶

小明购买商品: 啤酒2罐,方便面 5包

那我们按照要求来进行编写,首先使用AI写框架,手动修改一下细节,首先需要去下载安装java编程软件,我下载的是Eclipse IDE for Java Developer,进入官网点击右上角Download下载。

进来之后继续点击下载,系统会根据你的系统自动匹配安装包,所以基本上下载很简单。

点击Download x86-64,会进入下载页面,等待片刻后自动弹出下载任务按钮,点击下载后直接下一步下一步安装好,非常简单就不一一截图了。

编写java代码(可滚动查看)

通过AI编写框架,然后手动补充一点元素,按照题目再次优化一下,完善修饰细节。

package dazhe.demo;

import java.util.ArrayList;

import java.util.List;

public class demo {

public static void main(String[] args) {

// 1. 创建顾客:小美

Customer xiaomei = new Customer("小美");

xiaomei.addProduct(new Product("啤酒", 3.5, 3));          // 啤酒3罐

xiaomei.addProduct(new InstantNoodle("方便面", 4.5, 3)); // 方便面3包

xiaomei.addProduct(new Product("矿泉水", 2.0, 2));        // 矿泉水2瓶

// 2. 创建顾客:小明

Customer xiaoming = new Customer("小明");

xiaoming.addProduct(new Product("啤酒", 3.5, 2));          // 啤酒2罐

xiaoming.addProduct(new InstantNoodle("方便面", 4.5, 5)); // 方便面5包

// 3. 输出订单明细(含完整打折过程)

System.out.println("===== 顾客:" + xiaomei.getName() + " 的订单 =====");

xiaomei.printOrderDetail();

System.out.println("\n===== 顾客:" + xiaoming.getName() + " 的订单 =====");

xiaoming.printOrderDetail();

}

}

// ------------------------------

// 商品父类:封装通用属性与基础折扣逻辑

// ------------------------------

class Product {

protected String name;       // 商品名称

protected double price;      // 商品单价

protected int count;         // 购买数量

// 价格明细变量(用于输出打折过程)

protected double originalSubtotal;   // 原价小计(单价×数量)

protected double discountSubtotal;    // 折后小计

protected double baseDiscountAmount;  // 基础优惠金额(数量>2打9折)

protected double extraDiscountAmount; // 额外优惠金额(方便面专属满减)

// 构造方法

public Product(String name, double price, int count) {

this.name = name;

this.price = price;

this.count = count;

this.baseDiscountAmount = 0;

this.extraDiscountAmount = 0;

}

// 计算价格(基础规则:数量>2件打9折)

public double calcPrice() {

// 先算原价小计

originalSubtotal = price * count;

// 应用基础折扣

if (count > 2) {

discountSubtotal = originalSubtotal * 0.9;

baseDiscountAmount = originalSubtotal - discountSubtotal;

} else {

discountSubtotal = originalSubtotal;

baseDiscountAmount = 0;

}

return discountSubtotal;

}

// 获取优惠明细描述(被子类重写扩展)

public String getDiscountDesc() {

StringBuilder desc = new StringBuilder();

if (baseDiscountAmount > 0) {

desc.append(String.format("数量>2件9折,优惠%.2f元", baseDiscountAmount));

}

if (extraDiscountAmount > 0) {

if (desc.length() > 0) desc.append(";");

desc.append(String.format("额外减%.2f元", extraDiscountAmount));

}

if (desc.length() == 0) {

desc.append("无优惠");

}

return desc.toString();

}

// Getter方法

public String getName() { return name; }

public double getPrice() { return price; }

public int getCount() { return count; }

public double getOriginalSubtotal() { return originalSubtotal; }

public double getDiscountSubtotal() { return discountSubtotal; }

public double getTotalDiscount() { return baseDiscountAmount + extraDiscountAmount; }

}

// ------------------------------

// 方便面子类:继承商品类,扩展专属优惠逻辑

// ------------------------------

class InstantNoodle extends Product {

public InstantNoodle(String name, double price, int count) {

super(name, price, count);

}

// 重写价格计算:先应用基础折扣,再判断满减

@Override

public double calcPrice() {

// 第一步:执行父类的基础折扣(数量>2打9折)

super.calcPrice();

// 第二步:方便面专属规则:折后总价超过20元,额外减2元

if (discountSubtotal > 20) {

extraDiscountAmount = 2;

discountSubtotal -= extraDiscountAmount;

}

return discountSubtotal;

}

// 重写优惠描述,补充满减说明

@Override

public String getDiscountDesc() {

StringBuilder desc = new StringBuilder();

if (baseDiscountAmount > 0) {

desc.append(String.format("数量>2件9折,优惠%.2f元", baseDiscountAmount));

}

if (extraDiscountAmount > 0) {

if (desc.length() > 0) desc.append(";");

desc.append(String.format("折后总价超20元,额外减%.2f元", extraDiscountAmount));

}

if (desc.length() == 0) {

desc.append("无优惠");

}

return desc.toString();

}

}

// ------------------------------

// 顾客类:管理订单明细与总价计算

// ------------------------------

class Customer {

private String name;

private List<Product> products;

public Customer(String name) {

this.name = name;

this.products = new ArrayList<>();

}

// 添加购买的商品

public void addProduct(Product product) {

products.add(product);

}

// 计算订单总费用

public double calculateTotal() {

double total = 0;

for (Product p : products) {

total += p.calcPrice();

}

return total;

}

// 计算订单原价总金额(用于对比优惠力度)

public double calculateOriginalTotal() {

double originalTotal = 0;

for (Product p : products) {

originalTotal += p.getOriginalSubtotal();

}

return originalTotal;

}

// 输出订单明细(含完整打折过程)

public void printOrderDetail() {

System.out.println("购买商品明细:");

for (Product p : products) {

// 先计算价格(触发优惠逻辑)

p.calcPrice();

// 打印商品基础信息+原价

System.out.printf("【商品】%-6s ×%d | 单价:%.1f元 | 原价小计:%.2f元\n",

p.getName(), p.getCount(), p.getPrice(), p.getOriginalSubtotal());

// 打印优惠明细

System.out.printf("【优惠】%s\n", p.getDiscountDesc());

// 打印折后小计

System.out.printf("【小计】折后价格:%.2f元(共优惠%.2f元)\n",

p.getDiscountSubtotal(), p.getTotalDiscount());

System.out.println("----------------------------------------");

}

// 打印订单总信息

System.out.printf("订单原价总计:%.2f元\n", calculateOriginalTotal());

System.out.printf("订单折后总价:%.2f元\n", calculateTotal());

System.out.printf("累计优惠金额:%.2f元\n", calculateOriginalTotal() - calculateTotal());

}

public String getName() { return name; }

}

程序运行结果输出

===== 顾客:小美 的订单 =====

购买商品明细:

【商品】啤酒     ×3 | 单价:3.5元 | 原价小计:10.50元

【优惠】数量>2件9折,优惠1.05元

【小计】折后价格:9.45元(共优惠1.05元)

----------------------------------------

【商品】方便面    ×3 | 单价:4.5元 | 原价小计:13.50元

【优惠】数量>2件9折,优惠1.35元

【小计】折后价格:12.15元(共优惠1.35元)

----------------------------------------

【商品】矿泉水    ×2 | 单价:2.0元 | 原价小计:4.00元

【优惠】无优惠

【小计】折后价格:4.00元(共优惠0.00元)

----------------------------------------

订单原价总计:28.00元

订单折后总价:25.60元

累计优惠金额:2.40元

===== 顾客:小明 的订单 =====

购买商品明细:

【商品】啤酒     ×2 | 单价:3.5元 | 原价小计:7.00元

【优惠】无优惠

【小计】折后价格:7.00元(共优惠0.00元)

----------------------------------------

【商品】方便面    ×5 | 单价:4.5元 | 原价小计:22.50元

【优惠】数量>2件9折,优惠2.25元;折后总价超20元,额外减2.00元

【小计】折后价格:18.25元(共优惠4.25元)

----------------------------------------

订单原价总计:29.50元

订单折后总价:25.25元

累计优惠金额:4.25元

效果截图如下:

看起来是很不错,当时我想应该没有满分,能及格也是可以了,好在今天刚好满了一个月,我就把这个文章写出来,铁子也来报喜来了,直接截图过来,评了一百分。

这不妥妥帽帽双倍酬劳到手了么,简直nice,得知帽帽对开发编程,小工具制作,系统封装,优化等都非常精通,下次还要给帽帽介绍客户,这个作业其实也就半小时不到就完成了,看来学的多还是有益的,铁子们你们看怎么样。

帽帽电脑