Informatică, întrebare adresată de Soarelealbastru, 8 ani în urmă

VA ROG FRUMOS AJUTATIMA AM NEVOIE DE EL IN C++

Anexe:

Răspunsuri la întrebare

Răspuns de Porecla0987
0

Ar trebui sa functioneze. Daca intampini vreo problema lasa un reply si o sa corectez.

#include <iostream>

#include <vector>

#include <algorithm>

#include <fstream>

using namespace std;

struct Product

{

int code, numUnits, unitPrice, totalCost;

 

Product(int, int, int);

 

 

bool operator<(const Product product)

{

 return totalCost < product.totalCost;

}

};

Product::Product(int a, int b, int c)

{

code = a;

numUnits = b;

unitPrice = c;

totalCost = b * c;

}

int main()

{

ifstream fin("marfa.in");

ofstream fout("marfa.out");

int code, numUnits, unitPrice, totalCost;

std::vector<Product> products;

 

// Reading the products and appending only the ones with 'unitPrice' > 10 to 'products'

while(fin >> code >> numUnits >> unitPrice)

{

 fin >> code >> numUnits >> unitPrice;

 Product product(code, numUnits, unitPrice);

 if (product.unitPrice >= 10)

  products.emplace_back(product);

}

// Sorting the products

std::sort(products.begin(), products.end());

 

// Displaying the products

for (auto & product : products)

{

 fout << product.code << " "

      << product.numUnits << " "

      << product.unitPrice << " "

      << product.totalCost << endl;

}

}


Soarelealbastru: da
Soarelealbastru: am 2 saptamini de cand lucrez cu structurile si fisierele
Porecla0987: Ok, pracctic "struct Product" defineste o clasa (numita "Product") care va contine anumite informatii (in cazul acesta code, numUnits, unitPrice si totalCost) si functiile care pot fi aplicate acestei clase
Porecla0987: Declararea functiei cu acelasi nume in Product este un initializator, initializeaza o instanta a clasei Product (think "int a = 3;")
Porecla0987: Partea cu "bool operator<..." se numeste "operator overloading" si permite folosirea operatorului "<" pe instante ale clasei (think "int a = 3, b = 4; cout << (a < b);"
Porecla0987: Daca incerci sa rulezi acelasi cod fara functia asta o sa vezi ca primesti eroare la sortare.
Porecla0987: While-ul din main citeste valorile din "marfa.in", creeaza cate o instanta a Product pentru fiecare sir de valori si daca valorile corespund criteriilor (unitPrice >= 10) pune instanta respectiva in "products".
Porecla0987: std::sort il sorteaza pe products
Porecla0987: Apoi for-ul afiseaza valorile fiecarei element din products in "marfa.out"
Porecla0987: Daca nu-i clar / ai alte nelamuriri intreaba
Alte întrebări interesante