Browse Source

old start

master
Mikael 11 months ago
commit
6923bc5a10
  1. 11
      Code_octavie.iml
  2. BIN
      out/production/Code_octavie/Consomateur.class
  3. BIN
      out/production/Code_octavie/Materiel.class
  4. BIN
      out/production/Code_octavie/MaterielConstant.class
  5. BIN
      out/production/Code_octavie/MaterielList.class
  6. BIN
      out/production/Code_octavie/MaterielPeriodique.class
  7. BIN
      out/production/Code_octavie/Producteur.class
  8. BIN
      out/production/Code_octavie/StartEnd.class
  9. BIN
      out/production/Code_octavie/main.class
  10. 11
      src/Consomateur.java
  11. 5
      src/Materiel.java
  12. 19
      src/MaterielConstant.java
  13. 17
      src/MaterielList.java
  14. 41
      src/MaterielPeriodique.java
  15. 11
      src/Producteur.java
  16. 16
      src/StartEnd.java
  17. 116
      src/main.java

11
Code_octavie.iml

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

BIN
out/production/Code_octavie/Consomateur.class

Binary file not shown.

BIN
out/production/Code_octavie/Materiel.class

Binary file not shown.

BIN
out/production/Code_octavie/MaterielConstant.class

Binary file not shown.

BIN
out/production/Code_octavie/MaterielList.class

Binary file not shown.

BIN
out/production/Code_octavie/MaterielPeriodique.class

Binary file not shown.

BIN
out/production/Code_octavie/Producteur.class

Binary file not shown.

BIN
out/production/Code_octavie/StartEnd.class

Binary file not shown.

BIN
out/production/Code_octavie/main.class

Binary file not shown.

11
src/Consomateur.java

@ -0,0 +1,11 @@
public class Consomateur {
protected long consomation;
private Materiel materiel;
public Consomateur (Materiel Newmateriel){
materiel = Newmateriel;
}
public long consomateur(int time, int delta){
return materiel.utiliser(time,delta);
}
}

5
src/Materiel.java

@ -0,0 +1,5 @@
public abstract class Materiel {
public abstract long utiliser(int time, int delta);
}

19
src/MaterielConstant.java

@ -0,0 +1,19 @@
import java.util.List;
public class MaterielConstant extends Materiel{
protected long puissance;
protected String name;
public MaterielConstant(long Newpuissance, String Newname){
puissance = Newpuissance;
name= Newname;
}
@Override public long utiliser(int time, int delta){
long utilisationTotale = 0;
utilisationTotale = delta*puissance;
return utilisationTotale;
}
}

17
src/MaterielList.java

@ -0,0 +1,17 @@
import java.util.List;
public class MaterielList extends Materiel {
private List <Materiel> materiel;
public MaterielList(List <Materiel> Newmateriel){
materiel = Newmateriel;
}
@Override
public long utiliser(int time, int delta) {
long somme = 0;
for(Materiel i : materiel){
somme += i.utiliser(time, delta);
}
return somme;
}
}

41
src/MaterielPeriodique.java

@ -0,0 +1,41 @@
import java.util.List;
public class MaterielPeriodique extends Materiel {
protected long puissance;
protected String name;
protected List <StartEnd> listStartEnd;
public MaterielPeriodique(long Newpuissance, String Newname, List <StartEnd> NewlistStartEnd){
puissance = Newpuissance;
name= Newname;
listStartEnd = NewlistStartEnd;
}
@Override public long utiliser(int time, int delta){
long utilisationTotale = 0;
for(StartEnd i : listStartEnd){
//parcour de tout la liste
if(i.getStart() <= time && i.getEnd() >= (time+delta) ){
//4
utilisationTotale += puissance *delta;
}else if(i.getStart() > time && i.getEnd() < (time+delta)){
//3
utilisationTotale += puissance *(i.getEnd()-i.getStart());
}else if(i.getStart() < time && i.getEnd()>time && i.getEnd() < (time+delta)){
//2
utilisationTotale += puissance *(i.getEnd()-time);
}else if(i.getStart() > time && i.getStart() <(time+delta) && i.getEnd() > (time+delta)){
//1
utilisationTotale += puissance *((time+delta)-i.getStart() );
}
}
return utilisationTotale;
}
}

11
src/Producteur.java

@ -0,0 +1,11 @@
public class Producteur {
protected long puissance;
private Materiel materiel;
public Producteur(Materiel Newmateriel){
materiel = Newmateriel;
}
public long produire(int time, int delta){
return materiel.utiliser(time, delta);
}
}

16
src/StartEnd.java

@ -0,0 +1,16 @@
public class StartEnd {
private int Start, End;
public StartEnd (int NewStart, int NewEnd){
Start = NewStart;
End = NewEnd;
}
public int getEnd() {
return End;
}
public int getStart() {
return Start;
}
}

116
src/main.java

@ -0,0 +1,116 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class main {
public static void main(String arg[]){
System.out.println("lancement");
Scanner sc = new Scanner(System.in);
int StartTime = 0, EndTime = 24, DeltaTime = 1;
int numFoyer = 40, numCentraleS = 1, numCentralN = 1, numEntreprise = 2;
System.out.println("Veuillez saisir un heur de debut de simulation :");
StartTime = sc.nextInt();
System.out.println("Veuillez saisir un heur de fin de simulation :");
EndTime = sc.nextInt();
System.out.println("Veuillez saisir un delta de temps :");
DeltaTime = sc.nextInt();
System.out.println("Debut a: "+ StartTime + "h / Fin a: " + EndTime+ "h / Avec un delta de: "+ DeltaTime+ " ");
System.out.println("Veuillez saisir nombreux de foyer :");
numFoyer = sc.nextInt();
System.out.println("Veuillez saisir nombreux de centrale nuclaire :");
numCentraleS = sc.nextInt();
System.out.println("Veuillez saisir nombreux de centrale solaire :");
numCentralN = sc.nextInt();
int minute = 0;
//cration des maison chaine
List <Consomateur> villeConsomateur = new ArrayList<>();
for(int i = 0; i < numFoyer; i++){
villeConsomateur.add(buildMaison());
}
List <Producteur> villeProducteur = new ArrayList<>();
for(int i = 0; i < numCentraleS; i++){
villeProducteur.add(buildCentralS());
}
for(int i = 0; i < numCentralN; i++){
villeProducteur.add(buildCentralN());
}
for(int i = 0; i < numEntreprise; i++){
villeProducteur.add(buildEntrepise());
}
long maxConsomateur = 0, maxProducteur = 0;
for(int i =StartTime; i < EndTime*60; i+=DeltaTime){
long sommeConsomateur = 0;
long sommeProducteur = 0;
for(Consomateur x : villeConsomateur){
sommeConsomateur += x.consomateur(i, DeltaTime);
}
for(Producteur x : villeProducteur){
sommeProducteur += x.produire(i, DeltaTime);
}
System.out.println("Temps: "+ (float)i/60 +" / Produit: "+ sommeProducteur + " / Consome: " + sommeConsomateur + " ") ;
//calcule des max
if(sommeConsomateur > maxConsomateur){
maxConsomateur = sommeConsomateur;
}
if(sommeProducteur > maxProducteur){
maxProducteur = sommeProducteur;
}
//System.out.println("i: "+ (float)i/60 + " Production :"+ producteur.produire(i,40) + " Consomation: " + ville.consomateur(i,40) + " ");
}
System.out.println("Totale");
System.out.println("Max Consomateur :" + maxConsomateur + " | Max Producteur:" + maxProducteur);
}
public static Consomateur buildMaison(){
List <StartEnd> chauffage = List.of(new StartEnd(8*60,17*60));
List <Materiel> ListMaison = List.of(
new MaterielConstant(175, "frigo"),
new MaterielPeriodique(10000,"chauffage", chauffage)
);
Consomateur maison = new Consomateur(new MaterielList(ListMaison));
return maison;
}
public static Producteur buildCentralS(){
List <StartEnd> TempsSoleil = List.of(
new StartEnd(12*60,13*60),
new StartEnd(14*60, 15*60)
);
Producteur photovoltaique = new Producteur(new MaterielPeriodique(100_000, "photovoltaique", TempsSoleil));
return photovoltaique;
}
public static Producteur buildCentralN(){
Producteur centraleN = new Producteur(new MaterielConstant(900_000_000, "Nuclaire"));
return centraleN;
}
public static Producteur buildEntrepise(){
List <StartEnd> TempsEntreprise = List.of(
new StartEnd(8*60,19*60)
);
Producteur entreprise = new Producteur(new MaterielPeriodique(200_000, "Entreprise", TempsEntreprise));
return entreprise;
}
}
Loading…
Cancel
Save