dhgfhuje
This commit is contained in:
parent
446eb575de
commit
4041397b09
@ -1,10 +1,11 @@
|
||||
dear Madam,
|
||||
|
||||
I am interested in applying to for a post of web developper for french school students.
|
||||
I am interested in applying to a web developper internship.
|
||||
|
||||
I am 19 years old and I am currently studying at the BUT Senart Fontainbleau.
|
||||
After that I hope to follow a career in the AT industry.
|
||||
|
||||
After that I hope to follow a career in the AT industry. During the last few summer holidays I have worked as an new website and I enjoyed the work very much. Next summer I would like to do something more varied and challenging, and for this reason I'm interrested in the job of web developper, taking students to London.
|
||||
During the last few summer holidays I have worked as an new website and I enjoyed the work very much. Next summer I would like to do something more varied and challenging, and for this reason I'm interrested in the job of web developper.
|
||||
|
||||
I feel that I would be well suited for this job as I enjoy working with young people.I have a lot of energy and enthusiasm and am also responsible and reliable. I have attached my CV as this email.
|
||||
|
||||
@ -18,6 +19,4 @@ wamsteralexis@gmail.com
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
https://www.indeed.com/jobs?q=developer&l=New+York%2C+NY&sc=0kf%3Ajt%28internship%29%3B&vjk=ab35090a7f1582e1
|
BIN
Anglish/mon CV 2023.pdf
Executable file
BIN
Anglish/mon CV 2023.pdf
Executable file
Binary file not shown.
BIN
BD/Lekpa/2_TP_PLSQL.pdf
Normal file
BIN
BD/Lekpa/2_TP_PLSQL.pdf
Normal file
Binary file not shown.
141
BD/Lekpa/tp02.txt
Normal file
141
BD/Lekpa/tp02.txt
Normal file
@ -0,0 +1,141 @@
|
||||
execice 1
|
||||
|
||||
create or replace function fn_points_fidelite(Id_client Number)
|
||||
return Number
|
||||
IS
|
||||
V_pt_fidelite number;
|
||||
Begin
|
||||
Select sum(L.prix_total) Into V_pt_fidelite
|
||||
from ligne_Commande L, Commande CO
|
||||
where L.commande_id = CO.id AND CO.client_id = Id_client;
|
||||
V_pt_fidelite := floor(V_pt_fidelite/10);
|
||||
return V_pt_fidelite;
|
||||
Exception
|
||||
when No_data_found then
|
||||
return 0;
|
||||
end fn_points_fidelite;
|
||||
|
||||
select fn_points_fidelite(16) from dual;
|
||||
|
||||
|
||||
declare
|
||||
cursor C_client IS Select id, nom from client;
|
||||
V_points number;
|
||||
Begin
|
||||
for v_client in c_client
|
||||
loop
|
||||
v_points := fn_points_fidelite(v_client.id);
|
||||
if (v_points < 2) then
|
||||
DBMS_OUTPUT.PUT_LINE(v_client.nom || 'à' || v_points || 'point de fidelité' );
|
||||
else
|
||||
DBMS_OUTPUT.PUT_LINE(v_client.nom || 'à' || v_points || 'points de fidelités' );
|
||||
end if;
|
||||
end loop;
|
||||
end;
|
||||
|
||||
//--------------------------------------------------
|
||||
select nom || 'à' || fn_points_fidelite(id) ||
|
||||
case
|
||||
when fn_points_fidelite(id) < 2 then
|
||||
'point de fidelité';
|
||||
else
|
||||
'points de fidelités';
|
||||
end
|
||||
from client;
|
||||
|
||||
//---------------!!!!!!!!!!!!!!!!!!!----------------------------
|
||||
|
||||
|
||||
|
||||
exercice 2
|
||||
|
||||
create or replace trigger trg_DeleteCommande
|
||||
Before delete
|
||||
on Commande
|
||||
for each row
|
||||
begin
|
||||
delete from ligne_commande L where L.commande_id = :old.id;
|
||||
end trg_DeleteCommande;
|
||||
|
||||
---------------------verification-----------------------------
|
||||
select * from Commande CO, ligne_commande L where CO.id = 16 AND CO.id = L.commande_id;
|
||||
|
||||
ID CLIENT_ID DATE_ACHA REFERENCE ID COMMANDE_ID PRODUIT_ID QUANTITE PRIX_TOTAL
|
||||
---------- ---------- --------- --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------- ----------- ---------- ---------- ----------
|
||||
16 15 18-JAN-19 008974 33 16 2 4 400.4
|
||||
|
||||
delete Commande where id=16;
|
||||
select * from ligne_commande L where L.commande_id = 16;
|
||||
no rows selected
|
||||
|
||||
|
||||
|
||||
|
||||
exercice 3
|
||||
|
||||
create or replace trigger trg_DeleteClient
|
||||
Before delete
|
||||
on Client
|
||||
for each row
|
||||
begin
|
||||
delete from Commande CO where CO.client_id = :old.id;
|
||||
end trg_DeleteCommande;
|
||||
|
||||
|
||||
exercice 4
|
||||
|
||||
create table Client_His as select * from Client;
|
||||
delete from Client_His;
|
||||
|
||||
create or replace trigger trg_DeleteClient
|
||||
before delete
|
||||
on Client
|
||||
for each row
|
||||
begin
|
||||
delete from Commande CO where CO.client_id = :old.id;
|
||||
insert into Client_His values (:old.id, :old.prenom, :old.nom, :old.email, :old.ville);
|
||||
end trg_DeleteCommande;
|
||||
|
||||
|
||||
exercice 5
|
||||
|
||||
la contrainte de suppression en cascade
|
||||
|
||||
|
||||
|
||||
exercice 6
|
||||
|
||||
drop table Client cascade constraints;
|
||||
drop table Commande cascade constraints;
|
||||
drop table ligne_commande cascade constraints;
|
||||
|
||||
CREATE TABLE client (
|
||||
id INT PRIMARY KEY,
|
||||
prenom VARCHAR(255),
|
||||
nom VARCHAR(255),
|
||||
email VARCHAR(255),
|
||||
ville VARCHAR(255)
|
||||
);
|
||||
|
||||
CREATE TABLE commande (
|
||||
id INT PRIMARY KEY,
|
||||
client_id INT,
|
||||
date_achat DATE,
|
||||
reference VARCHAR(255),
|
||||
FOREIGN KEY (client_id) REFERENCES client(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE ligne_commande (
|
||||
id INT PRIMARY KEY,
|
||||
commande_id INT,
|
||||
produit_id INT,
|
||||
quantite INT,
|
||||
prix_total DECIMAL(10, 2),
|
||||
FOREIGN KEY (commande_id) REFERENCES commande(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (produit_id) REFERENCES produit(id)
|
||||
);
|
||||
|
||||
|
||||
|
||||
Exercice 7
|
||||
|
118
BD/Lekpa/tp02_2.txt
Normal file
118
BD/Lekpa/tp02_2.txt
Normal file
@ -0,0 +1,118 @@
|
||||
execice 1
|
||||
|
||||
create or replace function fn_points_fidelite(Id_client Number)
|
||||
return Number
|
||||
IS
|
||||
V_pt_fidelite number;
|
||||
Begin
|
||||
Select sum(L.prix_total) Into V_pt_fidelite
|
||||
from ligne_Commande L, Commande CO
|
||||
where L.commande_id = CO.id AND CO.client_id = Id_client;
|
||||
V_pt_fidelite := floor(V_pt_fidelite/10);
|
||||
return V_pt_fidelite;
|
||||
Exception
|
||||
when No_data_found then
|
||||
return 0;
|
||||
end fn_points_fidelite;
|
||||
|
||||
select fn_points_fidelite(16) from dual;
|
||||
|
||||
|
||||
declare
|
||||
cursor C_client IS Select id, nom from client;
|
||||
V_points number;
|
||||
Begin
|
||||
for v_client in c_client
|
||||
loop
|
||||
v_points := fn_points_fidelite(v_client.id);
|
||||
if (v_points < 2) then
|
||||
DBMS_OUTPUT.PUT_LINE(v_client.nom || 'à' || v_points || 'point de fidelité' );
|
||||
else
|
||||
DBMS_OUTPUT.PUT_LINE(v_client.nom || 'à' || v_points || 'points de fidelités' );
|
||||
end if;
|
||||
end loop;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
exercice 2
|
||||
|
||||
create or replace trigger trg_DeleteCommande
|
||||
Before delete
|
||||
on Commande
|
||||
for each row
|
||||
begin
|
||||
delete from ligne_commande L where L.commande_id = :old.id;
|
||||
end trg_DeleteCommande;
|
||||
|
||||
|
||||
|
||||
|
||||
exercice 3
|
||||
|
||||
create or replace trigger trg_DeleteClient
|
||||
Before delete
|
||||
on Client
|
||||
for each row
|
||||
begin
|
||||
delete from Commande CO where CO.client_id = :old.id;
|
||||
end trg_DeleteCommande;
|
||||
|
||||
|
||||
exercice 4
|
||||
|
||||
create table Client_His as select * from Client;
|
||||
delete from Client_His;
|
||||
|
||||
create or replace trigger trg_DeleteClient
|
||||
before delete
|
||||
on Client
|
||||
for each row
|
||||
begin
|
||||
delete from Commande CO where CO.client_id = :old.id;
|
||||
insert into Client_His values (:old.id, :old.prenom, :old.nom, :old.email, :old.ville);
|
||||
end trg_DeleteCommande;
|
||||
|
||||
|
||||
exercice 5
|
||||
|
||||
la contrainte de suppression en cascade
|
||||
|
||||
|
||||
|
||||
exercice 6
|
||||
|
||||
drop table Client cascade constraints;
|
||||
drop table Commande cascade constraints;
|
||||
drop table ligne_commande cascade constraints;
|
||||
|
||||
CREATE TABLE client (
|
||||
id INT PRIMARY KEY,
|
||||
prenom VARCHAR(255),
|
||||
nom VARCHAR(255),
|
||||
email VARCHAR(255),
|
||||
ville VARCHAR(255)
|
||||
);
|
||||
|
||||
CREATE TABLE commande (
|
||||
id INT PRIMARY KEY,
|
||||
client_id INT,
|
||||
date_achat DATE,
|
||||
reference VARCHAR(255),
|
||||
FOREIGN KEY (client_id) REFERENCES client(id) ON DELETE CASCADE
|
||||
);
|
||||
|
||||
CREATE TABLE ligne_commande (
|
||||
id INT PRIMARY KEY,
|
||||
commande_id INT,
|
||||
produit_id INT,
|
||||
quantite INT,
|
||||
prix_total DECIMAL(10, 2),
|
||||
FOREIGN KEY (commande_id) REFERENCES commande(id) ON DELETE CASCADE,
|
||||
FOREIGN KEY (produit_id) REFERENCES produit(id)
|
||||
);
|
||||
|
||||
|
||||
|
||||
Exercice 7
|
||||
|
Binary file not shown.
@ -9,12 +9,12 @@ public class Q1Main{
|
||||
int i;
|
||||
try{
|
||||
for (i=0; i<args.length; i++){
|
||||
if (args[i].equals("*") || args[i].equals("/") || args[i].equals("+") || args[i].equals("-")){
|
||||
if (args[i].equals("x") || args[i].equals("/") || args[i].equals("+") || args[i].equals("-")){
|
||||
int a;
|
||||
int b;
|
||||
a = liste.pop();
|
||||
b = liste.pop();
|
||||
if(args[i].equals("*")){
|
||||
if(args[i].equals("x")){
|
||||
liste.push(b*a);
|
||||
}
|
||||
if(args[i].equals("/")){
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
DEV/DEV3.2/TP06_Dictionnaires/Q2Main.class
Normal file
BIN
DEV/DEV3.2/TP06_Dictionnaires/Q2Main.class
Normal file
Binary file not shown.
@ -1,23 +1,26 @@
|
||||
import java.util.*;
|
||||
import java.io.*;
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
|
||||
public class Q1Main{
|
||||
public class Q2Main{
|
||||
public static void main(String args[]){
|
||||
String nomFichier = 'rgb.txt';
|
||||
HashMap<String,Color> dicoCouleur;
|
||||
String nomFichier = "rgb.txt";
|
||||
HashMap<String,Color> dicoCouleur = new HashMap<>();
|
||||
DefaultListModel<String> listeCouleur = new DefaultListModel<>();
|
||||
try{
|
||||
BufferedReader lecture = new BufferedReader(new FileReader("rgb.txt"));
|
||||
BufferedReader lecture = new BufferedReader(new FileReader(nomFichier));
|
||||
String ligne;
|
||||
|
||||
try {
|
||||
while ((ligne = lecture.readLine()) != null) {
|
||||
String[] donne = ligne.split("\\s+");
|
||||
int rouge = Integer.parseInt(data[0]);
|
||||
int vert = Integer.parseInt(data[1]);
|
||||
int bleu = Integer.parseInt(data[2]);
|
||||
Color couleur = Color(rouge, vert, bleu);
|
||||
String nom = data[3];
|
||||
|
||||
int rouge = Integer.parseInt(ligne.substring(0,3).trim());
|
||||
int vert = Integer.parseInt(ligne.substring(4,7).trim());
|
||||
int bleu = Integer.parseInt(ligne.substring(8,11).trim());
|
||||
Color couleur = new Color(rouge, vert, bleu);
|
||||
String nom = ligne.substring(13).trim();
|
||||
dicoCouleur.put(nom, couleur);
|
||||
listeCouleur.addElement(nom);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.err.println("Erreur de lecture dans rgb.txt !");
|
||||
@ -29,10 +32,17 @@ public class Q1Main{
|
||||
System.err.println("Erreur de fermeture de rgb.txt !");
|
||||
}
|
||||
|
||||
JList<String> menuDeroulant = new JList<>(listeCouleur);
|
||||
JScrollPane ascensseur = new JScrollPane(menuDeroulant);
|
||||
JFrame fenetre = new JFrame();
|
||||
fenetre.setSize(700, 300);
|
||||
fenetre.setLocation(0, 0);
|
||||
fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||
|
||||
JPanel contenu = new JPanel(new BorderLayout());
|
||||
contenu.setBackground(Color.RED);
|
||||
contenu.add(ascensseur, BorderLayout.WEST);
|
||||
fenetre.add(contenu, BorderLayout.CENTER);
|
||||
fenetre.setVisible(true);
|
||||
|
||||
} catch(FileNotFoundException e) {
|
||||
|
BIN
DEV/DEV3.2/TP07_Arbres/Arbre.class
Normal file
BIN
DEV/DEV3.2/TP07_Arbres/Arbre.class
Normal file
Binary file not shown.
99
DEV/DEV3.2/TP07_Arbres/Arbre.java
Normal file
99
DEV/DEV3.2/TP07_Arbres/Arbre.java
Normal file
@ -0,0 +1,99 @@
|
||||
import java.util.*;
|
||||
|
||||
public class Arbre<E>{
|
||||
private Noeud<E> racine;
|
||||
private String strArbre;
|
||||
|
||||
public Arbre(){
|
||||
}
|
||||
|
||||
public Arbre(E racine){
|
||||
this.racine = new Noeud<E>(racine);
|
||||
}
|
||||
|
||||
public Arbre(Noeud<E> racine){
|
||||
this.racine = racine;
|
||||
}
|
||||
|
||||
public void setRacine(E racine){
|
||||
this.racine = new Noeud<E>(racine);
|
||||
}
|
||||
|
||||
public Noeud<E> getRacine(){
|
||||
return this.racine;
|
||||
}
|
||||
|
||||
public void afficheArbre(){
|
||||
this.strArbre = "";
|
||||
this.updateStrArbre(this.racine, 0);
|
||||
System.out.println(this.strArbre);
|
||||
}
|
||||
|
||||
public void afficheArbreQ2(){
|
||||
this.strArbre = "";
|
||||
this.updateStrArbreQ2(this.racine);
|
||||
System.out.println(this.strArbre);
|
||||
}
|
||||
|
||||
public void afficheArbreQ3(){
|
||||
this.strArbre = "";
|
||||
this.updateStrArbreQ3(this.racine);
|
||||
System.out.println(this.strArbre);
|
||||
}
|
||||
|
||||
private void updateStrArbreQ3(Noeud<E> noeud){
|
||||
try{
|
||||
String valeur = noeud.getValue().toString();
|
||||
if (valeur.equals("x") || valeur.equals("/") || valeur.equals("+") || valeur.equals("-")){
|
||||
this.strArbre += "(";
|
||||
}
|
||||
else{
|
||||
this.strArbre += valeur;
|
||||
}
|
||||
List<Noeud<E>> fils = noeud.getFils();
|
||||
for (int i=0; i<fils.size(); i++){
|
||||
this.updateStrArbreQ3(fils.get(i));
|
||||
if (i == 0){
|
||||
this.strArbre += valeur;
|
||||
}
|
||||
if (i == 1){
|
||||
this.strArbre += ")";
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (NullPointerException e){
|
||||
this.strArbre += "null";
|
||||
}
|
||||
}
|
||||
|
||||
private void updateStrArbreQ2(Noeud<E> noeud){
|
||||
try{
|
||||
this.strArbre += noeud.getValue().toString() + " ";
|
||||
List<Noeud<E>> fils = noeud.getFils();
|
||||
for (int i=0; i<fils.size(); i++){
|
||||
this.updateStrArbreQ2(fils.get(i));
|
||||
}
|
||||
}
|
||||
catch (NullPointerException e){
|
||||
this.strArbre += "null";
|
||||
}
|
||||
}
|
||||
|
||||
private void updateStrArbre(Noeud<E> noeud, int profondeur){
|
||||
int i;
|
||||
this.strArbre += "\n";
|
||||
for (i=0; i<profondeur; i++){
|
||||
this.strArbre += " ";
|
||||
}
|
||||
try{
|
||||
this.strArbre += noeud.getValue().toString();
|
||||
List<Noeud<E>> fils = noeud.getFils();
|
||||
for (i=0; i<fils.size(); i++){
|
||||
this.updateStrArbre(fils.get(i), profondeur+1);
|
||||
}
|
||||
}
|
||||
catch (NullPointerException e){
|
||||
this.strArbre += "null";
|
||||
}
|
||||
}
|
||||
}
|
BIN
DEV/DEV3.2/TP07_Arbres/Noeud.class
Normal file
BIN
DEV/DEV3.2/TP07_Arbres/Noeud.class
Normal file
Binary file not shown.
23
DEV/DEV3.2/TP07_Arbres/Noeud.java
Normal file
23
DEV/DEV3.2/TP07_Arbres/Noeud.java
Normal file
@ -0,0 +1,23 @@
|
||||
import java.util.*;
|
||||
|
||||
public class Noeud<E>{
|
||||
private E valeur;
|
||||
private List<Noeud<E>> fils;
|
||||
|
||||
public Noeud(E valeur){
|
||||
this.valeur = valeur;
|
||||
this.fils = new ArrayList<Noeud<E>>();
|
||||
}
|
||||
|
||||
public E getValue(){
|
||||
return this.valeur;
|
||||
}
|
||||
|
||||
public List<Noeud<E>> getFils(){
|
||||
return this.fils;
|
||||
}
|
||||
|
||||
public void add(Noeud<E> fils){
|
||||
this.fils.add(fils);
|
||||
}
|
||||
}
|
BIN
DEV/DEV3.2/TP07_Arbres/Q1File.class
Normal file
BIN
DEV/DEV3.2/TP07_Arbres/Q1File.class
Normal file
Binary file not shown.
33
DEV/DEV3.2/TP07_Arbres/Q1File.java
Normal file
33
DEV/DEV3.2/TP07_Arbres/Q1File.java
Normal file
@ -0,0 +1,33 @@
|
||||
import java.io.*;
|
||||
|
||||
public class Q1File extends File{
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public Q1File(String pathname){
|
||||
super(pathname);
|
||||
}
|
||||
|
||||
public static Q1File[] convertion(File[] listeBrute){
|
||||
if (listeBrute == null){
|
||||
return null;
|
||||
}
|
||||
Q1File[] listeFinal = new Q1File[listeBrute.length];
|
||||
for (int i=0; i<listeBrute.length; i++){
|
||||
listeFinal[i] = Q1File.convertion(listeBrute[i]);
|
||||
}
|
||||
return listeFinal;
|
||||
}
|
||||
|
||||
public static Q1File convertion(File repertoire){
|
||||
if (repertoire == null){
|
||||
return null;
|
||||
}
|
||||
return new Q1File(repertoire.getAbsolutePath());
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
return this.getName();
|
||||
}
|
||||
}
|
BIN
DEV/DEV3.2/TP07_Arbres/Q1Main.class
Normal file
BIN
DEV/DEV3.2/TP07_Arbres/Q1Main.class
Normal file
Binary file not shown.
31
DEV/DEV3.2/TP07_Arbres/Q1Main.java
Normal file
31
DEV/DEV3.2/TP07_Arbres/Q1Main.java
Normal file
@ -0,0 +1,31 @@
|
||||
import java.util.*;
|
||||
import java.io.*;
|
||||
|
||||
public class Q1Main{
|
||||
private static Arbre<Q1File> arbre;
|
||||
|
||||
public static void main(String args[]){
|
||||
try{
|
||||
Q1File racine = new Q1File(args[0]);
|
||||
Q1Main.arbre = new Arbre<Q1File>(racine);
|
||||
Q1Main.recursive(racine, arbre.getRacine());
|
||||
Q1Main.arbre.afficheArbre();
|
||||
}
|
||||
catch(ArrayIndexOutOfBoundsException e){
|
||||
System.out.println(e);
|
||||
}
|
||||
}
|
||||
|
||||
public static void recursive(Q1File repertoire, Noeud<Q1File> noeud){
|
||||
if (repertoire != null){
|
||||
Q1File[] contenu = Q1File.convertion(repertoire.listFiles());
|
||||
if (contenu != null){
|
||||
for (Q1File item : contenu){
|
||||
Noeud<Q1File> newFils = new Noeud<Q1File>(item);
|
||||
noeud.add(newFils);
|
||||
Q1Main.recursive(item, newFils);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
BIN
DEV/DEV3.2/TP07_Arbres/Q2Main.class
Normal file
BIN
DEV/DEV3.2/TP07_Arbres/Q2Main.class
Normal file
Binary file not shown.
34
DEV/DEV3.2/TP07_Arbres/Q2Main.java
Normal file
34
DEV/DEV3.2/TP07_Arbres/Q2Main.java
Normal file
@ -0,0 +1,34 @@
|
||||
import javax.swing.*;
|
||||
import java.awt.*;
|
||||
import java.util.*;
|
||||
|
||||
public class Q2Main{
|
||||
public static void main(String[] args) {
|
||||
|
||||
ArrayDeque<Noeud<String>> liste = new ArrayDeque<>();
|
||||
try{
|
||||
for (int i=0; i<args.length; i++){
|
||||
if (args[i].equals("x") || args[i].equals("/") || args[i].equals("+") || args[i].equals("-")){
|
||||
Noeud<String> a = liste.pop();
|
||||
Noeud<String> b = liste.pop();
|
||||
Noeud<String> c = new Noeud<String>(args[i]);
|
||||
c.add(b);
|
||||
c.add(a);
|
||||
liste.push(c);
|
||||
}
|
||||
else{
|
||||
liste.push(new Noeud<String>(args[i]));
|
||||
}
|
||||
}
|
||||
Arbre<String> arbre = new Arbre<>(liste.pop());
|
||||
arbre.afficheArbreQ2();
|
||||
arbre.afficheArbreQ3();
|
||||
}
|
||||
catch(NoSuchElementException e){
|
||||
System.out.println("tu ecrit bien");
|
||||
}
|
||||
catch(NumberFormatException e){
|
||||
System.out.println("arretes de mal executer le code");
|
||||
}
|
||||
}
|
||||
}
|
BIN
DEV/DEV3.2/TP08_Arbres_suite/Q1Arbre.class
Normal file
BIN
DEV/DEV3.2/TP08_Arbres_suite/Q1Arbre.class
Normal file
Binary file not shown.
79
DEV/DEV3.2/TP08_Arbres_suite/Q1Arbre.java
Normal file
79
DEV/DEV3.2/TP08_Arbres_suite/Q1Arbre.java
Normal file
@ -0,0 +1,79 @@
|
||||
import java.util.*;
|
||||
|
||||
public class Q1Arbre{
|
||||
private Q1Noeud racine;
|
||||
|
||||
public Q1Arbre(){
|
||||
this.racine = null;
|
||||
}
|
||||
|
||||
public Q1Arbre(int clef){
|
||||
this.racine = new Q1Noeud(clef);
|
||||
}
|
||||
|
||||
public Q1Arbre(Q1Noeud racine){
|
||||
this.racine = racine;
|
||||
}
|
||||
|
||||
public void add(Q1Noeud newNoeud){
|
||||
if (this.racine == null){
|
||||
this.racine = newNoeud;
|
||||
}
|
||||
else{
|
||||
this.racine.add(newNoeud);
|
||||
}
|
||||
}
|
||||
|
||||
public void add(int clef){
|
||||
if (this.racine == null){
|
||||
this.racine = new Q1Noeud(clef);
|
||||
}
|
||||
else{
|
||||
this.racine.add(clef);
|
||||
}
|
||||
}
|
||||
|
||||
private Q1Noeud plusPetit(){
|
||||
if (this.racine != null){
|
||||
Q1Noeud minimum = this.racine;
|
||||
while (minimum.getPetit() != null){
|
||||
minimum = minimum.getPetit();
|
||||
}
|
||||
return minimum;
|
||||
}
|
||||
return this.racine;
|
||||
}
|
||||
|
||||
private Q1Noeud plusGrand(){
|
||||
if (this.racine != null){
|
||||
Q1Noeud maximum = this.racine;
|
||||
while (maximum.getPetit() != null){
|
||||
maximum = maximum.getPetit();
|
||||
}
|
||||
return maximum;
|
||||
}
|
||||
return this.racine;
|
||||
}
|
||||
|
||||
private Q1Noeud suivant(int clef){
|
||||
if (this.racine != null){
|
||||
Q1Noeud maximum = this.racine;
|
||||
while (maximum.getPetit() != null){
|
||||
maximum = maximum.getPetit();
|
||||
}
|
||||
return maximum;
|
||||
}
|
||||
return this.racine;
|
||||
}
|
||||
|
||||
public void affichage(){
|
||||
if (this.racine != null){
|
||||
Q1Noeud plusPetit = this.racine;
|
||||
while (plusPetit.getPetit() != null){
|
||||
plusPetit = plusPetit.getPetit();
|
||||
}
|
||||
System.out.print(plusPetit);
|
||||
while ()
|
||||
}
|
||||
}
|
||||
}
|
BIN
DEV/DEV3.2/TP08_Arbres_suite/Q1Main.class
Normal file
BIN
DEV/DEV3.2/TP08_Arbres_suite/Q1Main.class
Normal file
Binary file not shown.
19
DEV/DEV3.2/TP08_Arbres_suite/Q1Main.java
Normal file
19
DEV/DEV3.2/TP08_Arbres_suite/Q1Main.java
Normal file
@ -0,0 +1,19 @@
|
||||
import java.util.*;
|
||||
import java.io.*;
|
||||
|
||||
public class Q1Main{
|
||||
|
||||
public static void main(String[] args){
|
||||
try{
|
||||
Q1Arbre arbre = new Q1Arbre();
|
||||
for (String arg : args){
|
||||
int n = Integer.parseInt(arg);
|
||||
arbre.add(n);
|
||||
}
|
||||
arbre.affichage();
|
||||
}
|
||||
catch(NumberFormatException e){
|
||||
System.out.println("NumberFormatException : Veuillez saisir des nombres en arguments");
|
||||
}
|
||||
}
|
||||
}
|
BIN
DEV/DEV3.2/TP08_Arbres_suite/Q1Noeud.class
Normal file
BIN
DEV/DEV3.2/TP08_Arbres_suite/Q1Noeud.class
Normal file
Binary file not shown.
81
DEV/DEV3.2/TP08_Arbres_suite/Q1Noeud.java
Normal file
81
DEV/DEV3.2/TP08_Arbres_suite/Q1Noeud.java
Normal file
@ -0,0 +1,81 @@
|
||||
import java.util.*;
|
||||
|
||||
public class Q1Noeud{
|
||||
private int clef;
|
||||
private Q1Noeud petit;
|
||||
private Q1Noeud grand;
|
||||
private int occurence;
|
||||
|
||||
public Q1Noeud(int clef){
|
||||
this.clef = clef;
|
||||
this.petit = null;
|
||||
this.grand = null;
|
||||
this.occurence = 1;
|
||||
}
|
||||
|
||||
public int getKey(){
|
||||
return this.clef;
|
||||
}
|
||||
|
||||
public void add(int fils){
|
||||
if (fils < this.clef){
|
||||
if (this.petit == null){
|
||||
this.petit = new Q1Noeud(fils);
|
||||
}
|
||||
else{
|
||||
this.petit.add(fils);
|
||||
}
|
||||
}
|
||||
if (fils > this.clef){
|
||||
if (this.grand == null){
|
||||
this.grand = new Q1Noeud(fils);
|
||||
}
|
||||
else{
|
||||
this.grand.add(fils);
|
||||
}
|
||||
}
|
||||
if (fils == this.clef){
|
||||
this.occurence ++;
|
||||
}
|
||||
}
|
||||
|
||||
public void add(Q1Noeud newNoeud){
|
||||
if (newNoeud.getKey() < this.clef){
|
||||
if (this.petit == null){
|
||||
this.petit = newNoeud;
|
||||
}
|
||||
else{
|
||||
this.petit.add(newNoeud);
|
||||
}
|
||||
}
|
||||
if (newNoeud.getKey() > this.clef){
|
||||
if (this.grand == null){
|
||||
this.grand = newNoeud;
|
||||
}
|
||||
else{
|
||||
this.grand.add(newNoeud);
|
||||
}
|
||||
}
|
||||
if (newNoeud.getKey() == this.clef){
|
||||
this.occurence ++;
|
||||
}
|
||||
}
|
||||
|
||||
public Q1Noeud getPetit(){
|
||||
return this.petit;
|
||||
}
|
||||
|
||||
public Q1Noeud getGrand(){
|
||||
return this.grand;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString(){
|
||||
String resultat = "";
|
||||
int i;
|
||||
for (i=0; i<this.occurence; i++){
|
||||
resultat += (this.clef + " ");
|
||||
}
|
||||
return resultat;
|
||||
}
|
||||
}
|
68
DEV/DEV_Madelaine/stub/exo3/Chef.java
Normal file
68
DEV/DEV_Madelaine/stub/exo3/Chef.java
Normal file
@ -0,0 +1,68 @@
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
|
||||
/** feuille du motif composite */
|
||||
public class Chef extends Person {
|
||||
|
||||
private List<Person> listeSubalterne;
|
||||
|
||||
public boolean addSubalterne(Person p){
|
||||
return this.listeSubalterne.add(p);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** constructeur
|
||||
*
|
||||
* @param n fun factor
|
||||
*
|
||||
*/
|
||||
public Chef(int n){
|
||||
super(n);
|
||||
this.listeSubalterne = new ArrayList<>();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi.
|
||||
*
|
||||
* @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
|
||||
*
|
||||
*/
|
||||
public int bestPartyWithoutMe(){
|
||||
int fun = 0;
|
||||
for (Person invitee : this.listeSubalterne){
|
||||
fun += invitee.bestParty();
|
||||
}
|
||||
return fun;
|
||||
}
|
||||
|
||||
/**
|
||||
* La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi.
|
||||
*
|
||||
* @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
|
||||
*
|
||||
*/
|
||||
private int bestPartyWithMe(){
|
||||
int fun = this.getFunFactor();
|
||||
for (Person invitee : this.listeSubalterne){
|
||||
fun += invitee.bestPartyWithoutMe();
|
||||
}
|
||||
return fun;
|
||||
}
|
||||
|
||||
/**
|
||||
* La meilleure fête est soit sans moi (c'est l'union des meilleures fêtes de mes subalternes).
|
||||
* soit c'est la meilleure fête avec moi.
|
||||
*
|
||||
* @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle).
|
||||
*
|
||||
*/
|
||||
public int bestParty(){
|
||||
return Math.max(this.bestPartyWithMe(), this.bestPartyWithoutMe());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
36
DEV/DEV_Madelaine/stub/exo3/Exemple.java
Normal file
36
DEV/DEV_Madelaine/stub/exo3/Exemple.java
Normal file
@ -0,0 +1,36 @@
|
||||
public class Exemple {
|
||||
public static void main(String[] args) {
|
||||
// bar 2
|
||||
// foo 5
|
||||
// titi 4
|
||||
// tata 4
|
||||
// toto 6
|
||||
// tete 6
|
||||
|
||||
Travailleur titi = new Travailleur(4);
|
||||
Travailleur tata = new Travailleur(4);
|
||||
Travailleur toto = new Travailleur(6);
|
||||
|
||||
Chef foo = new Chef(5);
|
||||
foo.addSubalterne(titi);
|
||||
foo.addSubalterne(tata);
|
||||
foo.addSubalterne(toto);
|
||||
System.out.println(foo.bestParty());
|
||||
System.out.println(foo.bestPartyWithoutMe());
|
||||
|
||||
Travailleur tete = new Travailleur(6);
|
||||
// System.out.println(tete.bestParty());
|
||||
// System.out.println(tete.bestPartyWithoutMe());
|
||||
|
||||
Chef bar = new Chef(2);
|
||||
bar.addSubalterne(foo);
|
||||
bar.addSubalterne(tete);
|
||||
System.out.println(bar.bestParty());
|
||||
//System.out.println(bar.bestPartyWithoutMe());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
33
DEV/DEV_Madelaine/stub/exo3/Exemple2.java
Normal file
33
DEV/DEV_Madelaine/stub/exo3/Exemple2.java
Normal file
@ -0,0 +1,33 @@
|
||||
public class Exemple2 {
|
||||
public static void main(String[] args) {
|
||||
// Exemple inspiré question Thibault B.
|
||||
// 1
|
||||
// 10
|
||||
// 1
|
||||
// 1
|
||||
// 10
|
||||
// 3
|
||||
// 4
|
||||
|
||||
Travailleur a = new Travailleur(3);
|
||||
Travailleur b = new Travailleur(4);
|
||||
Chef c = new Chef(10);
|
||||
c.addSubalterne(a);
|
||||
c.addSubalterne(b);
|
||||
Chef d = new Chef(1);
|
||||
d.addSubalterne(c);
|
||||
Chef e = new Chef(1);
|
||||
e.addSubalterne(d);
|
||||
Chef f = new Chef(10);
|
||||
f.addSubalterne(e);
|
||||
Chef g = new Chef(1);
|
||||
g.addSubalterne(f);
|
||||
|
||||
System.out.println(g.bestParty());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
43
DEV/DEV_Madelaine/stub/exo3/Exemple3.java
Normal file
43
DEV/DEV_Madelaine/stub/exo3/Exemple3.java
Normal file
@ -0,0 +1,43 @@
|
||||
public class Exemple3 {
|
||||
public static void main(String[] args) {
|
||||
|
||||
Travailleur a = new Travailleur(3);
|
||||
Travailleur b = new Travailleur(4);
|
||||
Chef c = new Chef(10);
|
||||
c.addSubalterne(a);
|
||||
c.addSubalterne(b);
|
||||
Chef d = new Chef(1);
|
||||
d.addSubalterne(c);
|
||||
Chef e = new Chef(1);
|
||||
e.addSubalterne(d);
|
||||
Chef f = new Chef(10);
|
||||
f.addSubalterne(e);
|
||||
Chef g = new Chef(1);
|
||||
g.addSubalterne(f);
|
||||
|
||||
Travailleur titi = new Travailleur(4);
|
||||
Travailleur tata = new Travailleur(4);
|
||||
Travailleur toto = new Travailleur(6);
|
||||
Chef foo = new Chef(5);
|
||||
foo.addSubalterne(titi);
|
||||
foo.addSubalterne(tata);
|
||||
foo.addSubalterne(toto);
|
||||
Chef bar = new Chef(2);
|
||||
bar.addSubalterne(foo);
|
||||
Travailleur tete = new Travailleur(6);
|
||||
bar.addSubalterne(tete);
|
||||
|
||||
Chef x = new Chef(2);
|
||||
x.addSubalterne(g);
|
||||
x.addSubalterne(bar);
|
||||
Chef y = new Chef(39);
|
||||
y.addSubalterne(x);
|
||||
|
||||
System.out.println(y.bestParty());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
44
DEV/DEV_Madelaine/stub/exo3/Person.java
Normal file
44
DEV/DEV_Madelaine/stub/exo3/Person.java
Normal file
@ -0,0 +1,44 @@
|
||||
|
||||
/** "Les personnes sont soit des chefs, soit des travailleurs" */
|
||||
public abstract class Person{
|
||||
/**
|
||||
* valeur indiquant le niveau de coolitude de la personne
|
||||
*/
|
||||
private int funFactor;
|
||||
|
||||
/**
|
||||
* @return la valeur indiquant le niveau de coolitude de la personne. plus cete valeur est grande, plus la personne contribue à améliorer l'ambiance dans une fête.
|
||||
*
|
||||
*/
|
||||
public int getFunFactor(){
|
||||
return this.funFactor;
|
||||
}
|
||||
|
||||
/**
|
||||
* constructeur
|
||||
*
|
||||
* <b>NB</b>. Cette méthode ne peut pas être appelé directement pour instancier un objet car la classe est abstraite, mais sert dans les constructeurs de classes dérivées.
|
||||
*
|
||||
* @see Travailleur, Chef
|
||||
*/
|
||||
//
|
||||
public Person(int n){
|
||||
if (n < 0)
|
||||
throw new IllegalArgumentException("Le fun facteur est positif ou nul, vous avez proposé " + n);
|
||||
this.funFactor = n;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
|
||||
*/
|
||||
public abstract int bestPartyWithoutMe();
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle).
|
||||
*/
|
||||
public abstract int bestParty();
|
||||
}
|
||||
|
31
DEV/DEV_Madelaine/stub/exo3/Travailleur.java
Normal file
31
DEV/DEV_Madelaine/stub/exo3/Travailleur.java
Normal file
@ -0,0 +1,31 @@
|
||||
/** feuille du motif composite */
|
||||
public class Travailleur extends Person {
|
||||
|
||||
/** constructeur
|
||||
*
|
||||
* @param n fun factor
|
||||
*
|
||||
*/
|
||||
public Travailleur(int n){
|
||||
super(n);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return fête sans le travailleur
|
||||
*/
|
||||
public int bestPartyWithoutMe(){
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return fête avec le travailleur
|
||||
*/
|
||||
public int bestParty(){
|
||||
return this.getFunFactor();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
BIN
DEV/DEV_Madelaine/stub/exo4/Chef.class
Normal file
BIN
DEV/DEV_Madelaine/stub/exo4/Chef.class
Normal file
Binary file not shown.
75
DEV/DEV_Madelaine/stub/exo4/Chef.java
Normal file
75
DEV/DEV_Madelaine/stub/exo4/Chef.java
Normal file
@ -0,0 +1,75 @@
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
|
||||
/** feuille du motif composite */
|
||||
public class Chef extends Person {
|
||||
|
||||
private List<Person> listeSubalterne;
|
||||
private int[] listeFun = {-1, -1, -1}; // 0 best, 1 avec, 2 sans
|
||||
|
||||
public boolean addSubalterne(Person p){
|
||||
return this.listeSubalterne.add(p);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** constructeur
|
||||
*
|
||||
* @param n fun factor
|
||||
*
|
||||
*/
|
||||
public Chef(int n){
|
||||
super(n);
|
||||
this.listeSubalterne = new ArrayList<>();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi.
|
||||
*
|
||||
* @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
|
||||
*
|
||||
*/
|
||||
public int bestPartyWithoutMe(){
|
||||
if (this.listeFun[0] < 0){
|
||||
int fun = 0;
|
||||
for (Person invitee : this.listeSubalterne){
|
||||
fun += invitee.bestParty();
|
||||
}
|
||||
this.listeFun[0] = fun;
|
||||
}
|
||||
return this.listeFun[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi.
|
||||
*
|
||||
* @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
|
||||
*
|
||||
*/
|
||||
private int bestPartyWithMe(){
|
||||
if (this.listeFun[1] < 0){
|
||||
int fun = this.getFunFactor();
|
||||
for (Person invitee : this.listeSubalterne){
|
||||
fun += invitee.bestPartyWithoutMe();
|
||||
}
|
||||
this.listeFun[1] = fun;
|
||||
}
|
||||
return this.listeFun[1];
|
||||
}
|
||||
|
||||
/**
|
||||
* La meilleure fête est soit sans moi (c'est l'union des meilleures fêtes de mes subalternes).
|
||||
* soit c'est la meilleure fête avec moi.
|
||||
*
|
||||
* @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle).
|
||||
*
|
||||
*/
|
||||
public int bestParty(){
|
||||
return Math.max(this.bestPartyWithMe(), this.bestPartyWithoutMe());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
BIN
DEV/DEV_Madelaine/stub/exo4/Exemple.class
Normal file
BIN
DEV/DEV_Madelaine/stub/exo4/Exemple.class
Normal file
Binary file not shown.
36
DEV/DEV_Madelaine/stub/exo4/Exemple.java
Normal file
36
DEV/DEV_Madelaine/stub/exo4/Exemple.java
Normal file
@ -0,0 +1,36 @@
|
||||
public class Exemple {
|
||||
public static void main(String[] args) {
|
||||
// bar 2
|
||||
// foo 5
|
||||
// titi 4
|
||||
// tata 4
|
||||
// toto 6
|
||||
// tete 6
|
||||
|
||||
Travailleur titi = new Travailleur(4);
|
||||
Travailleur tata = new Travailleur(4);
|
||||
Travailleur toto = new Travailleur(6);
|
||||
|
||||
Chef foo = new Chef(5);
|
||||
foo.addSubalterne(titi);
|
||||
foo.addSubalterne(tata);
|
||||
foo.addSubalterne(toto);
|
||||
System.out.println(foo.bestParty());
|
||||
System.out.println(foo.bestPartyWithoutMe());
|
||||
|
||||
Travailleur tete = new Travailleur(6);
|
||||
// System.out.println(tete.bestParty());
|
||||
// System.out.println(tete.bestPartyWithoutMe());
|
||||
|
||||
Chef bar = new Chef(2);
|
||||
bar.addSubalterne(foo);
|
||||
bar.addSubalterne(tete);
|
||||
System.out.println(bar.bestParty());
|
||||
//System.out.println(bar.bestPartyWithoutMe());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
33
DEV/DEV_Madelaine/stub/exo4/Exemple2.java
Normal file
33
DEV/DEV_Madelaine/stub/exo4/Exemple2.java
Normal file
@ -0,0 +1,33 @@
|
||||
public class Exemple2 {
|
||||
public static void main(String[] args) {
|
||||
// Exemple inspiré question Thibault B.
|
||||
// 1
|
||||
// 10
|
||||
// 1
|
||||
// 1
|
||||
// 10
|
||||
// 3
|
||||
// 4
|
||||
|
||||
Travailleur a = new Travailleur(3);
|
||||
Travailleur b = new Travailleur(4);
|
||||
Chef c = new Chef(10);
|
||||
c.addSubalterne(a);
|
||||
c.addSubalterne(b);
|
||||
Chef d = new Chef(1);
|
||||
d.addSubalterne(c);
|
||||
Chef e = new Chef(1);
|
||||
e.addSubalterne(d);
|
||||
Chef f = new Chef(10);
|
||||
f.addSubalterne(e);
|
||||
Chef g = new Chef(1);
|
||||
g.addSubalterne(f);
|
||||
|
||||
System.out.println(g.bestParty());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
43
DEV/DEV_Madelaine/stub/exo4/Exemple3.java
Normal file
43
DEV/DEV_Madelaine/stub/exo4/Exemple3.java
Normal file
@ -0,0 +1,43 @@
|
||||
public class Exemple3 {
|
||||
public static void main(String[] args) {
|
||||
|
||||
Travailleur a = new Travailleur(3);
|
||||
Travailleur b = new Travailleur(4);
|
||||
Chef c = new Chef(10);
|
||||
c.addSubalterne(a);
|
||||
c.addSubalterne(b);
|
||||
Chef d = new Chef(1);
|
||||
d.addSubalterne(c);
|
||||
Chef e = new Chef(1);
|
||||
e.addSubalterne(d);
|
||||
Chef f = new Chef(10);
|
||||
f.addSubalterne(e);
|
||||
Chef g = new Chef(1);
|
||||
g.addSubalterne(f);
|
||||
|
||||
Travailleur titi = new Travailleur(4);
|
||||
Travailleur tata = new Travailleur(4);
|
||||
Travailleur toto = new Travailleur(6);
|
||||
Chef foo = new Chef(5);
|
||||
foo.addSubalterne(titi);
|
||||
foo.addSubalterne(tata);
|
||||
foo.addSubalterne(toto);
|
||||
Chef bar = new Chef(2);
|
||||
bar.addSubalterne(foo);
|
||||
Travailleur tete = new Travailleur(6);
|
||||
bar.addSubalterne(tete);
|
||||
|
||||
Chef x = new Chef(2);
|
||||
x.addSubalterne(g);
|
||||
x.addSubalterne(bar);
|
||||
Chef y = new Chef(39);
|
||||
y.addSubalterne(x);
|
||||
|
||||
System.out.println(y.bestParty());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
BIN
DEV/DEV_Madelaine/stub/exo4/Person.class
Normal file
BIN
DEV/DEV_Madelaine/stub/exo4/Person.class
Normal file
Binary file not shown.
44
DEV/DEV_Madelaine/stub/exo4/Person.java
Normal file
44
DEV/DEV_Madelaine/stub/exo4/Person.java
Normal file
@ -0,0 +1,44 @@
|
||||
|
||||
/** "Les personnes sont soit des chefs, soit des travailleurs" */
|
||||
public abstract class Person{
|
||||
/**
|
||||
* valeur indiquant le niveau de coolitude de la personne
|
||||
*/
|
||||
private int funFactor;
|
||||
|
||||
/**
|
||||
* @return la valeur indiquant le niveau de coolitude de la personne. plus cete valeur est grande, plus la personne contribue à améliorer l'ambiance dans une fête.
|
||||
*
|
||||
*/
|
||||
public int getFunFactor(){
|
||||
return this.funFactor;
|
||||
}
|
||||
|
||||
/**
|
||||
* constructeur
|
||||
*
|
||||
* <b>NB</b>. Cette méthode ne peut pas être appelé directement pour instancier un objet car la classe est abstraite, mais sert dans les constructeurs de classes dérivées.
|
||||
*
|
||||
* @see Travailleur, Chef
|
||||
*/
|
||||
//
|
||||
public Person(int n){
|
||||
if (n < 0)
|
||||
throw new IllegalArgumentException("Le fun facteur est positif ou nul, vous avez proposé " + n);
|
||||
this.funFactor = n;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
|
||||
*/
|
||||
public abstract int bestPartyWithoutMe();
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle).
|
||||
*/
|
||||
public abstract int bestParty();
|
||||
}
|
||||
|
BIN
DEV/DEV_Madelaine/stub/exo4/Travailleur.class
Normal file
BIN
DEV/DEV_Madelaine/stub/exo4/Travailleur.class
Normal file
Binary file not shown.
31
DEV/DEV_Madelaine/stub/exo4/Travailleur.java
Normal file
31
DEV/DEV_Madelaine/stub/exo4/Travailleur.java
Normal file
@ -0,0 +1,31 @@
|
||||
/** feuille du motif composite */
|
||||
public class Travailleur extends Person {
|
||||
|
||||
/** constructeur
|
||||
*
|
||||
* @param n fun factor
|
||||
*
|
||||
*/
|
||||
public Travailleur(int n){
|
||||
super(n);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @return fête sans le travailleur
|
||||
*/
|
||||
public int bestPartyWithoutMe(){
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return fête avec le travailleur
|
||||
*/
|
||||
public int bestParty(){
|
||||
return this.getFunFactor();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
BIN
DEV/DEV_Madelaine/stub/exo5/Chef.class
Normal file
BIN
DEV/DEV_Madelaine/stub/exo5/Chef.class
Normal file
Binary file not shown.
75
DEV/DEV_Madelaine/stub/exo5/Chef.java
Normal file
75
DEV/DEV_Madelaine/stub/exo5/Chef.java
Normal file
@ -0,0 +1,75 @@
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.*;
|
||||
|
||||
/** feuille du motif composite */
|
||||
public class Chef extends Person {
|
||||
|
||||
private List<Person> listeSubalterne;
|
||||
private int[] listeFun = {-1, -1, -1}; // 0 best, 1 avec, 2 sans
|
||||
|
||||
public boolean addSubalterne(Person p){
|
||||
return this.listeSubalterne.add(p);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** constructeur
|
||||
*
|
||||
* @param n fun factor
|
||||
*
|
||||
*/
|
||||
public Chef(int n){
|
||||
super(n);
|
||||
this.listeSubalterne = new ArrayList<>();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi.
|
||||
*
|
||||
* @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
|
||||
*
|
||||
*/
|
||||
public int bestPartyWithoutMe(){
|
||||
if (this.listeFun[0] < 0){
|
||||
int fun = 0;
|
||||
for (Person invitee : this.listeSubalterne){
|
||||
fun += invitee.bestParty();
|
||||
}
|
||||
this.listeFun[0] = fun;
|
||||
}
|
||||
return this.listeFun[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* La meilleure fête avec moi, c'est la meilleure fête sans mes subalternes pour eux plus moi.
|
||||
*
|
||||
* @return retourne la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique, mais pas elle.
|
||||
*
|
||||
*/
|
||||
private int bestPartyWithMe(){
|
||||
if (this.listeFun[1] < 0){
|
||||
int fun = this.getFunFactor();
|
||||
for (Person invitee : this.listeSubalterne){
|
||||
fun += invitee.bestPartyWithoutMe();
|
||||
}
|
||||
this.listeFun[1] = fun;
|
||||
}
|
||||
return this.listeFun[1];
|
||||
}
|
||||
|
||||
/**
|
||||
* La meilleure fête est soit sans moi (c'est l'union des meilleures fêtes de mes subalternes).
|
||||
* soit c'est la meilleure fête avec moi.
|
||||
*
|
||||
* @return la valeur de la meilleure fête en invitant seulement les gens dont cette personne est le ou la supérieure hiérarchique (peut-être avec elle).
|
||||
*
|
||||
*/
|
||||
public int bestParty(){
|
||||
return Math.max(this.bestPartyWithMe(), this.bestPartyWithoutMe());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
BIN
DEV/DEV_Madelaine/stub/exo5/Exemple.class
Normal file
BIN
DEV/DEV_Madelaine/stub/exo5/Exemple.class
Normal file
Binary file not shown.
36
DEV/DEV_Madelaine/stub/exo5/Exemple.java
Normal file
36
DEV/DEV_Madelaine/stub/exo5/Exemple.java
Normal file
@ -0,0 +1,36 @@
|
||||
public class Exemple {
|
||||
public static void main(String[] args) {
|
||||
// bar 2
|
||||
// foo 5
|
||||
// titi 4
|
||||
// tata 4
|
||||
// toto 6
|
||||
// tete 6
|
||||
|
||||
Travailleur titi = new Travailleur(4);
|
||||
Travailleur tata = new Travailleur(4);
|
||||
Travailleur toto = new Travailleur(6);
|
||||
|
||||
Chef foo = new Chef(5);
|
||||
foo.addSubalterne(titi);
|
||||
foo.addSubalterne(tata);
|
||||
foo.addSubalterne(toto);
|
||||
System.out.println(foo.bestParty());
|
||||
System.out.println(foo.bestPartyWithoutMe());
|
||||
|
||||
Travailleur tete = new Travailleur(6);
|
||||
// System.out.println(tete.bestParty());
|
||||
// System.out.println(tete.bestPartyWithoutMe());
|
||||
|
||||
Chef bar = new Chef(2);
|
||||
bar.addSubalterne(foo);
|
||||
bar.addSubalterne(tete);
|
||||
System.out.println(bar.bestParty());
|
||||
//System.out.println(bar.bestPartyWithoutMe());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user