第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

JAVA:從txt文件中讀取行并創(chuàng)建一個(gè)對(duì)象

JAVA:從txt文件中讀取行并創(chuàng)建一個(gè)對(duì)象

一只斗牛犬 2022-06-15 16:30:28
我是計(jì)算機(jī)科學(xué)專業(yè)的新學(xué)生,我必須創(chuàng)建一個(gè)庫存程序,以這種格式從 txt 文件中讀取有關(guān)產(chǎn)品的信息:部門;計(jì)量單位;數(shù)量;價(jià)格;唯一代碼;名稱;(例如:E;U;20;1,50;87678350;Lamp)。隨后我必須: - 計(jì)算庫存的總價(jià)值 - 產(chǎn)品的銷售 - 產(chǎn)品的插入 - 通過唯一代碼搜索產(chǎn)品。如果存在具有相同唯一代碼的行,則程序?qū)?bào)告錯(cuò)誤。我設(shè)法讀取了 txt 文件中的行,但我不知道如何從中計(jì)算股票的總值。public class Emporium{public static void main (String[]args) throws IOException  {Scanner input = new Scanner(new File("EMPORIUM.txt"));    input.useDelimiter(";|\n");     Product[] products = new Product[0];    while(input.hasNext()) {        String department = input.next();        String unit=input.next();        int quantity=input.nextInt();        double price=input.nextDouble();        long code=input.nextLong();        String name=input.next();        Product newProduct = new Product(department,unit,quantity,price,code,name);           products= addProducts(products,newProducts);    }    for (Product product: products) {        System.out.println(product);    }}private static Product[] addProduct(Product[] products, Product  productToAdd) {    Product[] newProducts =new Product[products.length+1];    System.arraycopy(products,0,newProducts,0, products.length);    newProducts[newProducts.length-1]= productToAdd;    return newProducts;}public static class Product {protected String department;protected String unit;protected int quantity;protected double price;protected long code;protected String name;private static NumberFormat formatter = new DecimalFormat("#0.00");public Product(String dep,String uom,int qnt,double prz,long cod,String nm) {    department=dep;    unit=uom;    quantity=qnt;    price=prz;    code=cod;    name=nm;}@Overridepublic String toString() {    return  String.format(department+";"+unity+";"+quantity+";"+formatter.format(price)+";"+code+";"+name);}   }   }我的問題是:如何讀取文件中產(chǎn)品的價(jià)值并將其與其他產(chǎn)品的價(jià)格相加?這意味著我需要對(duì)唯一代碼執(zhí)行相同操作才能找到特定產(chǎn)品。非常感謝您的幫助。
查看完整描述

2 回答

?
動(dòng)漫人物

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊

正確的方法是在您的產(chǎn)品類中使用 Getter 和 Setter。


正如您在代碼中看到的那樣,您只需傳入變量并在構(gòu)造函數(shù)中初始化它們,但使用 getter 和 setter 初始化它們會(huì)更好,因?yàn)檫@是一種很好的編程實(shí)踐,并為您的代碼添加了更多功能。


例子


public static class Product {


    protected String department;

    protected String unit;

    protected int quantity;

    protected double price;

    protected long code;

    protected String name;


    private static NumberFormat formatter = new DecimalFormat("#0.00");


    public Product(String dep,String uom,int qnt,double prz,long cod,String nm) {


    setDep(dep);

    setUom(uom);

    setQnt(qnt);

    setPrz(prz);

    setCod(cod);

    setNm(nm);

    }


    public void setPrz(double prz){

       this.price = price;

    }


    //Other setters


    public double getPrz(){

       return price;

    }


    //Other getters

    @Override

    public String toString() {

        return  String.format(department+";"+unity+";"+quantity+";"+formatter.format(price)+";"+code+";"+name);

    } 


}

使用 Products 類中的 getter 和 setter,您可以:

  1. 創(chuàng)建一個(gè)方法來計(jì)算 ArrayList 中所有產(chǎn)品的總和

  2. 使用您的唯一標(biāo)識(shí)符在您的陣列中搜索特定產(chǎn)品

  3. 按變量對(duì)您的 Arraylist 進(jìn)行排序,可以是部門、價(jià)格等。


查看完整回答
反對(duì) 回復(fù) 2022-06-15
?
有只小跳蛙

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊

您已經(jīng)將您的產(chǎn)品讀入一個(gè)數(shù)組,您需要遍歷該數(shù)組并price * quantity為每個(gè)數(shù)組相加。

例如...

double totalValue = Arrays.stream(products).mapToDouble(p -> p.quantity * p.price).sum();

這將遍歷每個(gè)產(chǎn)品并將每個(gè)產(chǎn)品映射到雙倍(即該產(chǎn)品的數(shù)量乘以該產(chǎn)品的價(jià)格),然后將所有這些結(jié)果相加。


查看完整回答
反對(duì) 回復(fù) 2022-06-15
  • 2 回答
  • 0 關(guān)注
  • 288 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)