我是计算机科学的新学生,我必须创建一个库存程序,以这种格式从txt文件中读取有关产品的信息:部门;计量单位;数量;价格;唯一代码;名称; (例如:E; U; 20; 1,50; 87678350; Lamp)。因此,我必须: -计算股票的总价值 销售产品 -产品插入 -通过唯一的代码搜索产品。 如果行中具有相同的唯一代码,则程序将报告错误。
我设法读取txt文件中的行,但是我不知道如何从其中计算股票的总价值。
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;
}
@Override
public String toString() {
return String.format(department+";"+unity+";"+quantity+";"+formatter.format(price)+";"+code+";"+name);
}
}
}
我的问题是:如何读取文件中产品的价值并将其与其他产品的价格相加?这意味着我需要对唯一的代码执行相同的操作才能找到特定的产品。 非常感谢您的协助。
答案 0 :(得分:0)
您已经将产品读入一个数组中,您需要遍历该数组并将每个price * quantity
加在一起。
例如...
double totalValue = Arrays.stream(products).mapToDouble(p -> p.quantity * p.price).sum();
这将遍历每个产品,并将每个产品映射到一个两倍(数量乘以该产品的价格),然后对所有结果求和。
答案 1 :(得分:0)
正确的方法是在您的产品类中包含Getters和Setters。
正如您在代码中看到的那样,您只需传入变量并在构造函数中对其进行初始化,但是使用getter和setter对其进行初始化会更好,因为这是一种良好的编程习惯,并且会为代码添加更多功能。
示例
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);
}
}
在“产品类别”中使用吸气剂和吸气剂,您可以: