#include #include #include #include class Tscellement{ private: double wt; //worktime double pt; double reste; double pas; double taux; public: double anode; double cabaret; double megot; double work; Tscellement(void); Tscellement(double p); void travaille(void); void repar_megot(void); }; class Tentrepot{ private: double rangee; Tentrepot(void); Tscellement *p_scellement; public: double anode; double megot; Tentrepot(Tscellement &a_scellement, const double r, double a, double m); void renvoi_anode(void); void envoi_megot(void); void recoi_anode(void); }; class Tfonderie{ private: int* fonderie; int four; // # du four int creuset; //quantite creuset en circulation public: Tfonderie(void); Tfonderie(int c); // le nombre de creusets tu veut void renvoi_creuset(void); }; class Telectrolyse{ private: int megot; int reste; Tfonderie *p_fonderie; Telectrolyse(void); Tentrepot *p_entrepot; public: Telectrolyse(Tfonderie &a_fonderie, Tentrepot &a_entrepot, int m, int r); void envoi_creuset(void); void envoi_megot(void); }; class Ttemps{ private: double minutes; double pas; Telectrolyse *p_electrolyse; public: Ttemps(void); Ttemps(Telectrolyse &a_electrolyse, double m, double p); void avance_temps(void); }; class Tbenne{ private: int* tab; int rangee; int pas; int benne; int i; public: Tbenne(void); Tbenne(int r, int b,int p); void place_vide(void); void test_vide(void); void cycle(void); void get_vide(void); void cool(void); void put_full(void); void affiche(void); }; //-Main---------------------------------------------------------- int main(void){ char continuer=0; clrscr(); Tscellement scel(15); Tentrepot entrepot1(scel,4,42,42); //entrepot avec salle de scellement cout << "debut de la simulation"<envoi_creuset(); p_electrolyse->envoi_megot();} //-La classe Electrolyse---------------------------------------------- Telectrolyse::Telectrolyse(void){ megot=0;reste=0;} Telectrolyse::Telectrolyse(Tfonderie &a_fonderie, Tentrepot &a_entrepot, int m, int r){ p_fonderie=&a_fonderie; p_entrepot=&a_entrepot;megot=m;reste=r;} void Telectrolyse::envoi_creuset(void){ p_fonderie->renvoi_creuset();} void Telectrolyse::envoi_megot(void){ megot=reste+4975; reste=megot%6000; cout<<"anodes dans l entrepot " <anode<megot<= 1){ megot=megot-6000; p_entrepot->renvoi_anode(); // cout<<"Salle:envoie un cabaret a entrepot"<creuset){ fonderie[four]=0; } } cout<<"Creusets dans fours "; for(four=0;four<=creuset-3;four++){ cout<<(fonderie[four]+1)<<" ";} cout<0;benne--){ place_vide(); } } void Tbenne::place_vide(void){ for(i=0;i=1&&tab[i]<=13){tab[i]=tab[i]+1;break;} } } void Tbenne::test_vide(void){ int test=0; for(i=0;i=1&&tab[i]<=14){test=1;} } if(test==0){clrscr();cout<< "Gerard! Y a pu de bennes vides!";getch();getch();} } void Tbenne::cycle(void){ cool(); put_full(); get_vide(); affiche(); } void Tbenne::get_vide(void){ test_vide(); for(i=0;i=1&&tab[i]<=14){tab[i]=tab[i]-1;break;} } } void Tbenne::cool(void){ for(i=0;i=(100+pas)) {tab[i]=tab[i]-pas;} if(tab[i]==100) {tab[i]=14;} } } void Tbenne::put_full(void){ for(i=0;i=15&&tab[i]<=28){tab[i]++;break;} } for(i=0;i=1&&tab[i]<=14) {cout<<"Rangee "<=15&&tab[i]<=28) {cout<<"Rangee "<=100+pas) {cout<<"Rangee "<= 6 ;q=q-6){ tab_rangee[i][1]=nbpile; if(nbpile==7){ //comentaire ;) nbpile=1; tab_rangee[i][0]=0; i++; } else{ nbpile++; } // cout << "i = " << i << " tab pile " << tab_rangee[i][1] << endl; // getch(); } } void Tentrepot::renvoi_anode(void){ // cout<<"Entrepot: megot=:"<work==1){ if(p_scellement->megot < 6 && megot >= 6 ){ p_scellement->megot=p_scellement->megot+6; megot=megot-6;} if(p_scellement->anode >= 6){ anode = anode+6; p_scellement->anode = p_scellement->anode-6; } } } //-la classe scellement---------------------- Tscellement::Tscellement(void){ work=0; wt=0; pt=0; reste=0; pas=0;taux=0;cabaret=0;anode=0;} Tscellement::Tscellement(double p){ pas=p;work=1;wt=420;pt=0;reste=0;taux=1.11667*pas;cabaret=0;anode=0;} void Tscellement::travaille(void){ // cout<<"work "<=pas&&wt<=420){wt=wt-pas;cout<<"la salle de scellement travaille(pas fort mais elle travaille quand meme)" <=pas&&pt<=75){pt=pt-pas;cout<<"les gars mange des beignes! envoye pas tes maudit megots "<= taux){ anode=anode+taux; megot =megot-taux;} else if(megot < taux){ anode = anode + megot; megot=0; } } }