Java面向对象练习(2.商品类)(2024.7.4)

news/2024/7/7 19:32:21 标签: java

        商品类

java">package Supermarket20240704;

public class Commodity {
    private String name;
    private double price;
    private int inventory;

    public Commodity(){};
    public Commodity(String name, double price, int inventory){
        this.name = name;
        this.price = price;
        this.inventory = inventory;
    }

    public void setName(String name){
        this.name = name;
    }
    public void setPrice(double price){
        this.price = price;
    }
    public void setInventory(int inventory){
        this.inventory = inventory;
    }

    public String getName(){
        return this.name;
    }
    public double getPrice(){
        return this.price;
    }
    public int getInventory(){
        return this.inventory;
    }

    public void sale(int saleNumbers){
        int remainInventory = this.inventory - saleNumbers;
        this.setInventory(remainInventory);
    }

    public void discount(int discount){
        if(discount < 10 && discount >0){
            double newPrice = this.price * (discount / 10.0);
            this.setPrice(newPrice);
        }
    }
}

        测试

java">package Supermarket20240704;
import java.util.Scanner;
public class CommodityTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一共有多少种商品");
        int category = sc.nextInt();
        Commodity[] commodityCategory = new Commodity[category];
        for (int i = 0; i < commodityCategory.length; i++) {
            System.out.printf("请输入第%d个商品的名字", i + 1);
            String name = sc.next();
            System.out.printf("请输入第%d个商品的价格", i + 1);
            double price = sc.nextDouble();
            System.out.printf("请输入第%d个商品的库存", i + 1);
            int inventory = sc.nextInt();
            Commodity goods = new Commodity(name, price, inventory);
            commodityCategory[i] = goods;
            System.out.printf("第%d个商品成功上架\n", i + 1);
        }
        System.out.printf("\t\t\t\t\t货架\n");
        System.out.printf("\t\t品名\t\t价格\t\t库存\t\t\n");
        for (int i = 0; i < commodityCategory.length; i++) {
            System.out.printf("\t\t%s\t\t%.2f\t\t%d\n", commodityCategory[i].getName(),
                    commodityCategory[i].getPrice(), commodityCategory[i].getInventory());
        }
        double average = calculateAverage(commodityCategory);
        System.out.printf("%d种商品的平均价格是%.2f\n", commodityCategory.length, average);
    }

    public static double calculateAverage(Commodity[] calculateCategory){
        double sum = 0;
        for (int i = 0; i < calculateCategory.length; i++) {
            sum += calculateCategory[i].getPrice();
        }
        return sum / (calculateCategory.length);
    }
}

 


http://www.niftyadmin.cn/n/5534979.html

相关文章

2018年全国大学生数学建模竞赛A题高压油管的压力控制(含word论文和源代码资源)

文章目录 一、部分题目二、部分论文三、部分源代码问题1&#xff08;1&#xff09;绘制弹性模量与压力函数图&#xff08;2&#xff09;求最优单次开阀时间 问题二&#xff08;1&#xff09;极径与极角关系&#xff08;2&#xff09;求最优凸轮角速度 四、完整word版论文和源代…

0057__pthread_cond_broadcast pthread_cond_signal

pthread_cond_broadcast & pthread_cond_signal-CSDN博客

Sqlmap中文使用手册 - 各个参数介绍(持续更新)

目录 1. 指定输出级别2. 指定目标2.1 直接连接数据库2.2 指定目标URL2.3 从代理日志中解析目标2.4 从远程站点地图文件(.xml)中解析目标2.5 从文本中解析目标2.6 从文件加载HTTP请求2.7 将google搜索结果作为攻击目标2.8 从配置INI文件获取目标 3. 请求3.1 指定HTTP方法3.2 指定…

JVM专题之内存模型以及如何判定对象已死问题

体验与验证 2.4.5.1 使用visualvm **visualgc插件下载链接 :https://visualvm.github.io/pluginscenters.html https://visualvm.github.io/pluginscenters.html **选择对应JDK版本链接--->Tools--->Visual GC** 2.4.5.2 堆内存溢出 * **代码** java @RestCont…

PE文件学习

一、介绍 PE文件&#xff0c;即Portable Executable文件&#xff0c;是一种标准的文件格式&#xff0c;主要用于微软的Windows操作系统上。这种格式被用来创建可执行程序&#xff08;如.exe文件&#xff09;、动态链接库&#xff08;.DLL文件&#xff09;、设备驱动&#xff0…

Java web应用性能分析之【prometheus监控K8s指标说明】

常规k8s的监控指标 单独 1、集群维度 集群状态集群节点数节点状态&#xff08;正常、不可达、未知&#xff09;节点的资源使用率&#xff08;CPU、内存、IO等&#xff09; 2、应用维度 应用响应时间 应用的错误率 应用的请求量 3、系统和集群组件维度 API服务器状态控…

JDBC中如何处理数据库连接超时和SQL超时?

在JDBC&#xff08;Java Database Connectivity&#xff09;中&#xff0c;处理数据库连接超时和SQL执行超时是确保应用程序稳定性和性能的重要方面。以下是如何处理这两种超时的详细步骤&#xff1a; 1. 数据库连接超时 数据库连接超时通常发生在尝试与数据库建立连接时&…

Swift Core Data 分阶段迁移

文章目录 前言什么是分阶段迁移&#xff1f;提供一些背景信息创建迁移管理器设置使用 Core Data 栈。总结 前言 在这之前&#xff0c;我发布了一篇文章&#xff0c;在其中解释了如何使用映射模型和自定义迁移策略执行复杂的 Core Data 迁移。虽然这种方法性能良好且运行良好&a…