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

Un produs e caracterizat prin nume, pret unitar (numar intreg), unitate de masura (sir de caractere).

Scrieti clasa Produs si supraincarcati operatorul de scriere, afisandu-l pe ecran conform exemplului.

Scrieti o clasa Magazin, care pe langa nume, contine o lista de produse.

Cititi datele unui magazin (nume magazin, numar produse, lista produse), si afisati un inventar al magazinului.

Sample Input:
Apa plata
2
sticla
MegaImage
2
Coca-Cola
Sticla 2L
6
Rosii
kg
9
Sample Output:
Apa plata, 2 RON/sticla
MegaImage:
* Coca-Cola, 6 RON/Sticla 2L
* Rosii, 9 RON/kg


andrei750238: Cerinta nu e clara. De unde stie programul faptul ca sirul de caractere citit reprezinta un magazin ?

Răspunsuri la întrebare

Răspuns de CatalinGrigoriev
0

https://imgur.com/Er2GQi8.png <-- demonstrare ca ca codul functioneaza

Codul :

#include <iostream>

#include <string>

using namespace std;

/* Atat timp cat nu putem defini

un array cu un numar nedifinit de

elemente, compilatorul trimite warning-uri..

poti sa folosesti arr[], chiar si

pointeri, dar prefer sa fie un

program curat decat cu warning-uri.. */

#define nProducts 10 // Definteste cat doresti

typedef struct {

string product_name, product_unit;

string currency = "RON";

int product_amount;

} item;

class _shop {

private:

string name;

int products;

item list[nProducts];

public:

void setName(string _name);

void setProducts(int _products);

void addProduct(string name, string unit, int amout, int index);

string returnName();

int returnProducts();

item returnItem(int index);

};

void _shop::setName(string _name){

name = _name;

};

void _shop::setProducts(int _products){

products = _products;

};

void _shop::addProduct(string name, string unit, int amout, int index){

list[index].product_name = name;

list[index].product_unit = unit;

list[index].product_amount = amout;

}

string _shop::returnName(){

return name;

}

int _shop::returnProducts(){

return products;

}

item _shop::returnItem(int index){

return list[index];

}

int main(){

_shop shop;

item temp;

/* string.h nu suporta spatii in siruri

de caracter! !Hello World -> !Hello_World */

// howly input below

cin >> temp.product_name;

cin >> temp.product_amount;

cin >> temp.product_unit;

shop.addProduct(temp.product_name, temp.product_unit, temp.product_amount, 0);

// shop name

string sname;

cin >> sname;

shop.setName(sname);

// idk random var to store amount of products

int r_amount = 0;

cin >> r_amount;

shop.setProducts(r_amount);

// main cin loop

for(int i = 1; i <= shop.returnProducts(); i++){

cin >> temp.product_name;

cin >> temp.product_unit;

cin >> temp.product_amount;

shop.addProduct(temp.product_name, temp.product_unit, temp.product_amount, i);

};

// OUTPUTTTT

cout << endl; // some francais space :3

temp = shop.returnItem(0);

cout << temp.product_name << ", " << temp.product_amount << " " << temp.currency << "/" << temp.product_unit << endl;

cout << shop.returnName() << ":" << endl;

for(int i = 1; i <= shop.returnProducts(); i++){

temp = shop.returnItem(i);

cout << "* " << temp.product_name << ", " << temp.product_amount << " " << temp.currency << "/" << temp.product_unit << endl;

};

return 0;

};

Alte întrebări interesante