1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224
| class Recette {
String titreRecette;
int choix;//choix dans le programme de 1 a 5
int i;// index tabNotes
int j;// index tabMoyennes
int index; //index de taRecette
int numRecette;//numero de la recette correspond egalement al'index
double note;//note courante de la recette
double laNote;//nouvelle note de la recette
final double noteMax = 5.0;//nombre d'étoiles max que peux prendre une recette
double moyenne;// moyenne entre la note actuelle et la nouvelle note
double tampon;
boolean permut;
String affichageTrie;
private static Scanner dr;
private Scanner sb;
public String toString(String tabRecettes[]) {//affichage les recettes dans l'ordre du livre
String affichageFinal = "";
for (int index = 0; index < tabRecettes.length; index++) {
affichageFinal += "[" + index + "] |"; //0, 1, 2...9
affichageFinal += tabRecettes[index]; // le nom de la recette
affichageFinal += "\n";
}
return affichageFinal;
}
public double calculerMoyenne(double tabMoyennes[],String tabRecettes[], double tabNotes[]) {//CALCUL DE MOYENNE, conversion des types
for(int j = 0 , i = 0; j < tabMoyennes.length-1 && i <tabRecettes.length-1; j++, i++){
tabNotes[i]=note;
moyenne= note+laNote;
tabMoyennes[j] = moyenne%2;
}
return tabMoyennes[j];
}
public String afficherNote(String tabRecettes[], double tabNotes[]){
String affichage="";
Recette maRecette = new Recette();
System.out.println("selectionnez le numero de la recette dont vous voulez voir la note:");
sb = new Scanner(System.in);
int numRecette = sb.nextInt();
boolean recetteConnue = false;
for( int index = 0 ; index != 9; index ++ ){
if (numRecette == index){
recetteConnue = true;
}
}
if (recetteConnue){
System.out.println(maRecette.calculerMoyenne(tabNotes, tabRecettes, tabNotes));
laNote = tabNotes[i];
affichage = "La note de la recette "+numRecette+" est "+laNote;
} return affichage;
}
public String ajouterNote(double tabNotes[], String tabRecettes[]) {//INSERTION D'UNE NOTE
String affichage= "";
Recette maRecette = new Recette();
for (i=0; i<=9; i++){
tabNotes[i]= laNote;
System.out.println("Numero de la recette à noter:");
int numRecette = Lire.entierInt();
boolean recetteConnue = false;
for( int index = 0 ; index != 9 ; index ++ ){
if (numRecette == index){
recetteConnue = true;
}
}
if (recetteConnue){
System.out.println("Entrez une note comprise entre 1 et 5:");
double laNote = Lire.reelDouble();
for (i=0; i<tabNotes.length;i++){
if (laNote>noteMax){
laNote=noteMax;
affichage = "La note maximale prise en compte est 5 , vous venez d'entrer la note "+laNote+" a cette recette";}
else if (laNote<0){
laNote=0;
affichage = "La note minimale prise en compte est 0 , vous venez d'entrer la note "+laNote+" a cette recette";}
}
affichage = "Vous venez d'entrer la note de "+laNote+" a cette recette";
}
else { affichage = "Selection invalide , taper un numero de recette entre 0 et 9";}
}
return affichage;
}
void triNoteDecroissant(double tabMoyennes[]) {
int longueur = tabMoyennes.length;
double tampon = 0;
boolean permut;
do {
// hypothèse : le tableau est trié
permut = false;
for (int j = 0; j < longueur - 1; j++) {
// Teste si 2 éléments successifs sont dans le bon ordre ou non
if (tabMoyennes[j] < tabMoyennes[j + 1]) {
// s'ils ne le sont pas, on échange leurs positions
tampon = tabMoyennes[j];
tabMoyennes[j] = tabMoyennes[j + 1];
tabMoyennes[j + 1] = tampon;
permut = true;
}
}
} while (permut);
}
private String afficherTri(String tabRecettes[], double tabMoyennes[]) {
String affichageTrie = " ";
//triNoteDecroissant(tabMoyennes);
for(int j = 0 , index = 0; j < tabMoyennes.length && index <tabRecettes.length; j++, index++){
//System.out.println(tabMoyennes[j]);
affichageTrie += "[" + index + "] |";
affichageTrie += tabRecettes[index];
affichageTrie += tabMoyennes[j] + "/5";
affichageTrie += "\n";
}
return affichageTrie;
}
public static void main (String[] args){
Recette maRecette = new Recette();
String tabRecettes[] = {
"Boeuf bourguignon",
"Radis beurre",
"Lasagnes",
"Risotto aux cepes",
"Pizza reine",
"Spaguettis bolognaise",
"Gratin de courgettes",
"Couscous royal",
"Hachis parmentier",
"Quiche lorraine"};//tableau contenant le titre des recettes
double tabNotes[]= new double [10];//tableau contenantles notes des recettes
double tabMoyennes[]= new double [10];//tableau contenant le calcul des moyennes
boolean arret= false;
while (!arret){
//MENU
System.out.println("--------------------MENU--------------------------------");
System.out.println("1: Afficher les recettes dans l'ordre du livre---Tapez 1");
System.out.println("2: Afficher les recettes par note decroissante---Tapez 2");
System.out.println("3: Afficher la note d'une recette---Tapez 3");
System.out.println("4: Ajouter une note pour une recette---Tapez 4");
System.out.println("5: Quitter le programme---Tapez 5");
//CHOIX
dr = new Scanner(System.in);
int choix =dr.nextInt();
if (choix > 0 && choix < 6) {
// Switch constructor
switch (choix) {
case 1: //AFFICHER LES RECETTES DANS L ODRE DU LIVRE
System.out.println(maRecette.toString(tabRecettes));
break;
case 2://AFFICHER RECETTES PAR NOTES DECROISSANTES
System.out.println(maRecette.afficherTri(tabRecettes, tabMoyennes));
break;
case 3://AFFICHER LA NOTE D UNE RECETTE
System.out.println(maRecette.toString(tabRecettes));
System.out.println(maRecette.afficherNote(tabRecettes, tabMoyennes));
break;
case 4://AJOUTER UNE NOTE
System.out.println(maRecette.toString(tabRecettes));
System.out.println(maRecette.ajouterNote(tabMoyennes,tabRecettes));
System.out.println(maRecette.calculerMoyenne(tabMoyennes, tabRecettes, tabNotes));
break;
case 5://QUITTER LE PROGRAMME
System.out.println("Merci d'avoir utilisé le programme");
System.exit(1);
break;
}
} else {
System.out.println("Selection invalide, entrer un chiffre entre 1 et 5");
}
}
}
} |
Partager