struct Produto {
let nome: String
let quantidade: Int
let preco: Double
}
final class GerenciadorDeInventario {
private var produtos: [Produto] = []
func adicionarProduto(produto: Produto) {
produtos.append(produto)
}
func calcularValorTotal() -> Double {
produtos.reduce(0.0) { total, produto in
total + Double(produto.quantidade) * produto.preco
}
}
func listarProdutosAbaixoDe(quantidade: Int) -> [Produto] {
produtos.filter { $0.quantidade < quantidade }
}
func exibirInformacoesProduto(produto: Produto) {
print("Nome: \(produto.nome)")
print("Quantidade em estoque: \(produto.quantidade)")
print("Preço unitário: R$ \(produto.preco)")
}
}
// Cria o gerenciador e cadastra produtos com quantidades e preços diferentes.
let gerenciador = GerenciadorDeInventario()
let produtos = [
Produto(nome: "Notebook", quantidade: 8, preco: 3500.00),
Produto(nome: "Mouse gamer", quantidade: 20, preco: 250.00),
Produto(nome: "Headset Bluetooth", quantidade: 4, preco: 399.90),
Produto(nome: "Monitor de 27 polegadas", quantidade: 6, preco: 1299.90)
]
for produto in produtos {
gerenciador.adicionarProduto(produto: produto)
}
print("=== GERENCIADOR DE INVENTÁRIO ===")
print("Valor total do inventário: R$ \(gerenciador.calcularValorTotal())")
let limiteDeEstoque = 8
print("\n=== PRODUTOS COM MENOS DE \(limiteDeEstoque) UNIDADES ===")
let produtosAbaixoDoLimite =
gerenciador.listarProdutosAbaixoDe(quantidade: limiteDeEstoque)
if produtosAbaixoDoLimite.isEmpty {
print("Nenhum produto está abaixo desse limite.")
} else {
for produto in produtosAbaixoDoLimite {
print("- \(produto.nome): \(produto.quantidade) unidades")
}
}
print("\n=== INFORMAÇÕES DE TODOS OS PRODUTOS ===")
for produto in produtos {
gerenciador.exibirInformacoesProduto(produto: produto)
print("------------------------------")
}
To embed this project on your website, copy the following code and paste it into your website's HTML: