Tutorialspoint

Learning Constants, String and Structure in C

#include <iostream>
#include <sstream>
#include <cstring>
#include <ctime>
#include <unistd.h>
#define M 3
#define w 10
using namespace std;
string nomiferramenta[]={"scatolaDiChiodi","forbici","chiaveInglese","cacciavite","martello","nastroBiadesivo"};
string nomifarmacia[]={"aspirine","oki","sciroppoPerLaGola","brioski","cerotti","disinfettante"};
string nomifruttivendolo[]={"saccoDiPatate","radicchio","cetriolo","finocchio","pomodoro","casettaDiFragole"};
string nomiNegozioDiVestiti[]={"maglietta","felpa","pantaloni","gonna","cappello","giacca"};
string nomiNegoziodianimani[]={"parrocchetto","aski","carlino","cocorito","tartarugaD'acqua","geco"};
string nomi[]={"Marco","Giorgio","Astolfo","Daria","Anna","CicciaPanza"};
string nomic[]={"Ada","Gioia","Aurora","Tonia","Eva"};
double c=(rand()%10);
struct Cosa{
    string nome="nulla";
    int pos=c=(rand()%10);
    int q=0;
    double prezzo=c=(rand()%30);
};
struct  Persona{
    string nome;
    Cosa  oggetto;
    double soldi=100.0;
};

struct Negozio{
    string nome;
    Cosa cose[M];
    int N=M;
    Persona commessa;
};

void inizializzaNegozio(Negozio &neg, string nome){
    srand(time(0));
    string nomiN[7]{"Supermecato","Negoziodianimani","NegozioDiVestiti","NegozioDiGiocattoli","Farmacia","NegozioElettronica","Ferramenta"};
    string nomi[]={"Ada","Gioia","Aurora","Tonia","Eva"};
    neg.nome=nome=nomiN[rand()%7];
    neg.commessa.nome=nomi[rand()%5];
    stringstream ss;
    for(int i=0;i<neg.N;i++) {
        ss.str(""); ss<<"oggetto_"<< i;
        neg.cose[i].nome= ss.str();
        neg.cose[i].q=w+i;
    }
}
void preleva(Negozio &neg,int pos,int quant){
    if(neg.cose[pos].q >= quant) {
        neg.cose[pos].q -=quant;
    }else {
        neg.cose[pos].q=0;
        cout << "scorte non sufficienti!!!\n";
    }
}
void deposita(Negozio &neg,int pos,int quant){
    neg.cose[pos].q += quant;
}
void stampaNegozio(Negozio neg){
        cout<<neg.nome<<" gestita da "+neg.commessa.nome+" ha "<<neg.N<<" reparti:\n";
    for(int i=0;i<neg.N;i++)
        cout<<neg.cose[i].nome<<" con la quantita\' di "<< neg.cose[i].q<<"\n";
}

void gestioneNegozio(Negozio &neg,string nome){
    inizializzaNegozio(neg, nome);
    stampaNegozio(neg);
    preleva(neg,2,5);
    deposita(neg,0,7);
    stampaNegozio(neg);
}
void stampaCliente(Persona cliente){
    std::cout << cliente.nome << " ha " << cliente.oggetto.nome;
    std::cout << " e " << cliente.soldi << " Euro\n";
}

int main() {
    srand(time (0));
   // for(int t=0;t<5;t++){
    Negozio neg;
    string nome;
    inizializzaNegozio(neg,nome);
    stampaNegozio(neg);
   
    for(int k=0;k<c;k++){
         Persona cliente;
    cliente.nome=nomic[rand()%6];
    stampaCliente(cliente);
    preleva(neg,2,1);
    cliente.oggetto = neg.cose[rand()%3];
    cliente.soldi -= neg.cose[2].prezzo;
    stampaCliente(cliente);
    }
    stampaNegozio(neg);
    cout<<"\n\n\n\n\n";
//}
   return 0;
}

Advertisements
Loading...

We use cookies to provide and improve our services. By using our site, you consent to our Cookies Policy.