Salve a tutti, ho un problema con il seguente codice
#include <cstdlib>
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ofstream f("C:\Domande programma tesi.txt",ios::out);
int clienti;
int istanti_di_tempo;
int rack;
int slot;
int domanda_tot_sistema;
int domanda_cliente;
int i;
int p;
int t;
int totale;
int tipo_di_rack;
int tipo_di_slot;
int tipo_di_clienti;
int tipo_di_domanda;
int domanda_min;
int domanda_max;
int clienti_max;
int clienti_min;
int new_domanda_max;
int new_domanda_min;
int new_domanda_tot_sistema;
int new_slot;
srand((unsigned)time(NULL));
cout<<"Quanti istanti di tempo vuoi considerare? ";
cin>>istanti_di_tempo;
cout<<endl;
cout<<endl;
cout<<"SCELTA DEL TIPO DI ISTANZA";
cout<<endl;
cout<<endl;
cout<<"IL TIPO DI RACK E' BASSO (1) O ALTO (2)? ";
cin>>tipo_di_rack;
cout<<endl;
cout<<endl;
cout<<"IL TIPO DI SLOT E' BASSO (1) O ALTO (2)? ";
cin>>tipo_di_slot;
cout<<endl;
cout<<endl;
cout<<"IL TIPO DI CLIENTI E' BASSO (1) O ALTO (2)? ";
cin>>tipo_di_clienti;
cout<<endl;
cout<<endl;
cout<<"IL TIPO DI DOMANDA E' UNIFORME (1) O HA ALTA VARIANZA (2)? ";
cin>>tipo_di_domanda;
cout<<endl;
cout<<endl;
if (tipo_di_rack==1)
{
rack = rand() % (6) + 5;
}
else
{
rack = rand() % (11) + 5;
}
cout<<"Numero di rack = "<<rack<<endl;
cout<<endl;
f<<"Numero di rack = "<<rack<<endl;
f<<endl;
if (tipo_di_slot==1)
{
slot = rand ()%(6)+5;
}
else
{
slot = rand ()%(11)+20;
}
cout<<"Numero di slot per rack = "<<slot<<endl;
cout<<endl;
f<<"Numero di slot per rack = "<<slot<<endl;
f<<endl;
if (tipo_di_domanda==1)
{
domanda_min=slot/3;
domanda_max=slot/3+1;
}
else
{
domanda_min=1;
domanda_max=slot;
}
clienti_max=domanda_tot_sistema/domanda_min;
clienti_min=domanda_tot_sistema/domanda_max;
if (tipo_di_clienti==1)
{
clienti= rand()%((clienti_max-clienti_min)/3+1)+clienti_min;
}
else
{
clienti= rand()%(clienti_max-clienti_min/3+1)+clienti_max-(clienti_max-clienti_min)/3;
}
cout<<"Numero di clienti = "<<clienti<<endl;
cout<<endl;
f<<"Numero di clienti = "<<clienti<<endl;
f<<endl;
int array_domanda[clienti];
domanda_tot_sistema=slot*rack;
cout<<"CAPACITA' SISTEMA = "<<domanda_tot_sistema<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
f<<"CAPACITA' SISTEMA = "<<domanda_tot_sistema<<endl;
f<<endl;
f<<endl;
f<<endl;
f<<endl;
for (t=1;t<=istanti_di_tempo;t++)
{
cout<<"Istante di tempo "<<t<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
f<<"Istante di tempo "<<t<<endl;
f<<endl;
f<<endl;
f<<endl;
totale=0;
new_domanda_max=domanda_max;
new_slot=slot;
new_domanda_min=domanda_min;
new_domanda_tot_sistema=domanda_tot_sistema;
for (i = 0; i< clienti; i++)
{
domanda_cliente = rand() % (new_domanda_max-new_domanda_min+1)+(new_domanda_min);
new_domanda_tot_sistema=new_domanda_tot_sistema-domanda_cliente;
totale=totale+domanda_cliente;
new_slot=new_domanda_tot_sistema/rack;
if (tipo_di_domanda==1)
{
new_domanda_min=new_slot/3;
new_domanda_max=new_slot/3+1;
}
else
{
new_domanda_min=1;
new_domanda_max=new_slot;
}
cout <<"Domanda cliente " << i+1 << " = " << domanda_cliente << endl;
cout<<endl;
cout<<endl;
f<<"Domanda cliente " << i+1 << " = " << domanda_cliente << endl;
f<<endl;
f<<endl;
array_domanda[i]=domanda_cliente;
}
int k;
int temp;
for (i=0;i<clienti-1;i++)
{
for(k=i+1;k<clienti;k++)
{
if(array_domanda[i]<array_domanda[k])
{
temp=array_domanda[i];
array_domanda[i]=array_domanda[k];
array_domanda[k]=temp;
}
}
}
for(i=0;i<clienti;i++)
{
cout<<array_domanda[i]<<endl;
f<<array_domanda[i]<<endl;
}
cout<<endl;
cout<<"La capacita' richiesta dal sistema e' = "<<totale<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
cout<<endl;
f<<"La capacita' richiesta dal sistema e' = "<<totale<<endl;
f<<endl;
f<<endl;
f<<endl;
f<<endl;
f<<endl;
f<<endl;
}
if(!f)
{
cout<<"Errore nella scrittura del file";
return 1;
}
cout<<"Scrittura avvenuta con successo!!!";
cout<<endl;
system("PAUSE");
return 0;
}
In poche parole questo codice mi genera casualmente le domande di un certo numero di clienti; ho un output del genere:
Domanda cliente 1= 5
Domanda cliente 2=8
Domanda cliente 3= 9
...
Una volta generate queste domande, le inserisco in un array e le ordino in maniera decrescente.
Il problema incorre in questo momento.
Come faccio a tenere traccia di chi è la domanda?
cioè l'output una volta ordinate le domande è
9
8
5
ma in questo modo non sò più di quale cliente è la domanda.
Ci sta un modo per Capire che quella data domanda appartiene al cliente x?
Grazie e buona serata