Commit 695b5c8f authored by Benjamin Bonnabaud's avatar Benjamin Bonnabaud
Browse files

maj

parent bcc88ca4
File added
public class Bar{
private String nom;
private Bouteille[] tab;
public Bar(String nom, int nbEmplacements){this.nom=nom;tab=new Bouteille[nbEmplacements];}
public String getNom(){
return nom;
}
public int getNbEmplacements(){
return tab.length;
}
public void ranger(Bouteille b,int numEmplacement){
if (numEmplacement<0 || numEmplacement>=getNbEmplacements()){
throw new IllegalArgumentException("Rangement inexistant");
}
if (tab[numEmplacement]!=null){
throw new IllegalArgumentException("L'emplacement n'est pas vide");
}
tab[numEmplacement]=b;
}
public Bouteille prendre(int numEmplacement){
if (numEmplacement<0 || numEmplacement>=getNbEmplacements()){
throw new IllegalArgumentException("Rangement inexistant");
}
Bouteille btl = tab[numEmplacement]; //btl et tab[numEmplacement] pointe sur le même objet
tab[numEmplacement]=null; //btl pointe sur l'objet tel qu'on l'a fait pointer avant et maintenant tab[numEmplacement] pointe sur null
return btl;
}
public Bouteille prendre(String nom){
int i=0;
while(i!=getNbEmplacements()){
if (tab[i]!=null && tab[i].getNom().equals(nom)){
Bouteille btl=prendre(i);
return btl;
}
i++;
}
return null;
}
public String toString(){
String s= new String("nom du bar : " + this.nom + "\n");
int i;
for (i=0;i<tab.length;i++){
if (tab[i]!=null){
s=s+"Emplacement "+ i + " : " + tab[i].toString()+"\n";
}
}
return s;
}
}
......@@ -20,8 +20,7 @@ public class Bouteille{
public int verser(int q){
if (ouverte==false){
System.out.println("Bouteille fermée");
return 0;
throw new IllegalArgumentException("Bouteille fermée");
}
quantite-=Math.min(q,quantite);
return Math.min(q,quantite);
......@@ -30,8 +29,7 @@ public class Bouteille{
public int verser(Verre v, int q){
int i,d;
if (ouverte==false){
System.out.println("Bouteille fermée");
return 0;
throw new IllegalArgumentException("Bouteille fermée");
}
i=Math.min(q,quantite);
d=v.getVolumeVide();
......@@ -41,6 +39,6 @@ public class Bouteille{
}
public String toString(){
return new String("(nom : " + this.nom +", quantite : " + quantite +"ouverte ? "+ ouverte + ")");
return new String("(nom : " + this.nom +", quantite : " + quantite +", ouverte ? "+ ouverte + ")");
}
}
File added
public class Tp1 {
public static void main(String[] args) {
Bouteille btl1;
Bouteille btl2;
Verre monVerre=new Verre(20);
btl1=new Bouteille("coca", 100);
btl2=new Bouteille("whiskey", 75, true);
System.out.println("btl1 : " + btl1);
System.out.println("btl2 : " + btl2);
System.out.println("Verre : " + monVerre);
///////////
System.out.println("On remplit le verre");
btl2.verser(monVerre, 5);
try {
btl1.verser(monVerre, 15);
} catch(RuntimeException e) {
System.out.println("Oups, la bouteille n'etait pas ouverte. Exception recue :");
System.out.println(e.toString());
System.out.println("on ouvre et on recommence...");
btl1.ouvrir();
btl1.verser(monVerre, 15);
}
System.out.println("btl1 : " + btl1);
System.out.println("btl2 : " + btl2);
System.out.println("Verre : " + monVerre);
///////////
System.out.println("essayons d'en rajouter un peu...");
btl2.verser(monVerre, 10);
System.out.println("btl1 : " + btl1);
System.out.println("btl2 : " + btl2);
System.out.println("Verre : " + monVerre);
///////////
System.out.println("Fermons les bouteilles, et buvons ce verre, en deux fois.... A la votre !");
btl2.fermer();
btl1.fermer();
monVerre.boire(12);
System.out.println("btl1 : " + btl1);
System.out.println("btl2 : " + btl2);
System.out.println("Verre : " + monVerre);
monVerre.boire(20);
System.out.println("btl1 : " + btl1);
System.out.println("btl2 : " + btl2);
System.out.println("Verre : " + monVerre);
//bar
System.out.println();
System.out.println();
Bar b = new Bar("OMaitre", 5);
System.out.println("le bar cas 1 => " + b);
b.ranger(btl1, 1);
b.ranger(btl2, 2);
System.out.println("le bar cas 2 => " + b);
Bouteille btl = b.prendre(2);
System.out.println("le bar cas 3 => " + b);
btl.ouvrir();
btl.verser(10); // hop, un peu de coca par terre... Ca nettoie il parait ?
btl.fermer();
b.ranger(btl, 3);
System.out.println("le bar cas 4 => " + b);
}
}
public class Tp1 {
public static void main(String[] args) {
Bar bar = new Bar("OMaitre",5);
Bouteille btl1 = new Bouteille("Coca",100);
Bouteille btl2 = new Bouteille("Whisky",75,true);
Verre v = new Verre(20);
bar.ranger(btl1,2);
bar.ranger(btl2,4);
System.out.println("Bar : " + bar.toString() + "\n");
btl2=bar.prendre("Whisky");
System.out.println("Bouteille sortie :" + btl2.toString() + "\n");
System.out.println("Bar : " + bar.toString() + "\n");
btl2.verser(v,5);
System.out.println("verre : " + v.toString() + "\n" + "Bouteille 1 : " + btl1.toString() + "\n" + "Bouteille 2 : " + btl2.toString() + "\n");
btl1=bar.prendre("Coca");
System.out.println("Bouteille sortie :" + btl1.toString() + "\n");
System.out.println("Bar : " + bar.toString() + "\n");
btl1.ouvrir(); // à commenter plus tard
btl1.verser(v,15);
System.out.println("verre : " + v.toString() + "\n" + "Bouteille 1 : " + btl1.toString() + "\n" + "Bouteille 2 : " + btl2.toString() + "\n");
......@@ -18,6 +30,10 @@ public class Tp1 {
btl1.fermer();
btl2.fermer();
bar.ranger(btl1,2);
bar.ranger(btl2,4);
System.out.println("Bar : " + bar.toString() + "\n");
v.boire(10);
System.out.println("verre : " + v.toString() + "\n" + "Bouteille 1 : " + btl1.toString() + "\n" + "Bouteille 2 : " + btl2.toString() + "\n");
v.boire(10);
......
public class Bar {
private String nom;
private Bouteille tab[];
public Bar(String nom, int nbEmplacements) {
this.nom = nom;
tab = new Bouteille[nbEmplacements];
}
public void ranger(Bouteille b, int n) {
if(tab[n] != null) {
throw new RuntimeException("empalcement plein !");
}
tab[n] = b;
}
public Bouteille prendre(int n) {
Bouteille b = tab[n];
tab[n] = null;
return b;
}
public Bouteille prendre(String type) {
for(int i = 0 ; i < tab.length ; i ++) {
if(tab[i] != null && tab[i].getNom().equals(type))
return prendre(i);
}
return null;
}
@Override
public String toString() {
String s = "Bar : " + nom + " ; Bouteilles : " ;
for(Bouteille b: tab) {
s += b + " ; ";
}
return s;
}
}
public class Bouteille {
private String nom;
private int quantite;
private boolean ouverte;
public Bouteille(String nom, int q, boolean ouverte) {
this.nom = nom;
this.quantite = q;
this.ouverte = ouverte;
}
public Bouteille(String nom, int q) {
this(nom, q, false);
}
public String getNom() {
return nom;
}
public boolean estOuverte() {
return ouverte;
}
public void ouvrir() {
ouverte=true;
}
public void fermer() {
ouverte=false;
}
public int verser(int q) {
if (!ouverte){
throw new RuntimeException("Opération impossible : bouteille fermee");
}
int qteVersee = Math.min(q, quantite);
quantite -= qteVersee;
return q;
// on pouvait aussi décider que, si q > quantite, c'est une erreur
// if(q > quantite) {
// throw new RuntimeException("Pas assez de liquide dans la bouteille");
// }
}
public void verser(Verre v, int q) {
if (!ouverte){
throw new RuntimeException("Opération impossible : bouteille fermee");
}
// calcul de la quantité pouvant être versée
int qteVersee = Math.min(q, quantite);
qteVersee = Math.min(v.getVolumeVide(), qteVersee);
v.remplir(qteVersee);
quantite -= qteVersee;
// on pouvait aussi décider que, si q > quantite,
// ou si le verre n'a pas assez de place, c'est une erreur
// if(q > quantite || q > verre.getVolumeVide()) {
// throw new RuntimeException("Pas assez de liquide dans la bouteille");
// }
}
@Override
public String toString() {
String s="Bouteille de " + nom + " q=" +quantite;
if (ouverte) s += " et ouverte";
else s += " et fermee";
return s;
}
}
public class TestVerre {
public static void main(String[] args) {
Verre monVerre;
monVerre=new Verre(20);
monVerre.remplir(10);
System.out.println(monVerre);
monVerre.remplir(15);
System.out.println(monVerre);
int qtBue = monVerre.boire(10);
System.out.println("qte bue : " + qtBue);
System.out.println(monVerre);
qtBue = monVerre.boire(20);
System.out.println("qte bue : " + qtBue);
System.out.println(monVerre);
}
}
public class Tp1 {
public static void main(String[] args) {
Bouteille btl1;
Bouteille btl2;
Verre monVerre=new Verre(20);
btl1=new Bouteille("coca", 100);
btl2=new Bouteille("whiskey", 75, true);
System.out.println("btl1 : " + btl1);
System.out.println("btl2 : " + btl2);
System.out.println("Verre : " + monVerre);
///////////
System.out.println("On remplit le verre");
btl2.verser(monVerre, 5);
try {
btl1.verser(monVerre, 15);
} catch(RuntimeException e) {
System.out.println("Oups, la bouteille n'etait pas ouverte. Exception recue :");
System.out.println(e.toString());
System.out.println("on ouvre et on recommence...");
btl1.ouvrir();
btl1.verser(monVerre, 15);
}
System.out.println("btl1 : " + btl1);
System.out.println("btl2 : " + btl2);
System.out.println("Verre : " + monVerre);
///////////
System.out.println("essayons d'en rajouter un peu...");
btl2.verser(monVerre, 10);
System.out.println("btl1 : " + btl1);
System.out.println("btl2 : " + btl2);
System.out.println("Verre : " + monVerre);
///////////
System.out.println("Fermons les bouteilles, et buvons ce verre, en deux fois.... A la votre !");
btl2.fermer();
btl1.fermer();
monVerre.boire(12);
System.out.println("btl1 : " + btl1);
System.out.println("btl2 : " + btl2);
System.out.println("Verre : " + monVerre);
monVerre.boire(20);
System.out.println("btl1 : " + btl1);
System.out.println("btl2 : " + btl2);
System.out.println("Verre : " + monVerre);
//bar
System.out.println();
System.out.println();
Bar b = new Bar("OMaitre", 5);
System.out.println("le bar cas 1 => " + b);
b.ranger(btl1, 1);
b.ranger(btl2, 2);
System.out.println("le bar cas 2 => " + b);
Bouteille btl = b.prendre(2);
System.out.println("le bar cas 3 => " + b);
btl.ouvrir();
btl.verser(10); // hop, un peu de coca par terre... Ca nettoie il parait ?
btl.fermer();
b.ranger(btl, 3);
System.out.println("le bar cas 4 => " + b);
}
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment