[Spoiler] Structure de données permettant de conserver les informations sur les pièces
Page 1 sur 1
[Spoiler] Structure de données permettant de conserver les informations sur les pièces
Que du bonheur cette exercice.
Main.java
Colorie.java
Data.java
Genre.java
Mesure.java
NomJour.java
NomMois.java
Pieces.java
Lire.java
Main.java
- Code:
/*" auteur :" crossette
" date :" 13 juin 2016
" nom fichier :" Main.java*/
public class Main
{
public static void main(String arg[])
{
Piece[] tPiece;
int nbPiece;
System.out.println("Nombre de pièces ?");
nbPiece = Lire.i();
tPiece = new Piece[nbPiece];
Piece.saisiepiece(tPiece);
Piece.affichagepiece(tPiece);
}
}
Colorie.java
- Code:
/*" auteur :" crossette
" date :" 10 juin 2016
" nom fichier :" Colorie.java*/
enum Colorie
{
JAUNE, VERT, BLEU, ROUGE, ORANGE, MAUVE;
public static Colorie saisieColorie()
{
String s;
Colorie col = null;
boolean ok = true;
do
{
// System.out.print("Couleur : ");
// for (Colorie c : Colorie.values())
// {
// System.out.print(c+" ");
//}
System.out.println();
System.out.print("Couleur : ");
s = Lire.S().toUpperCase();
try
{
col = Colorie.valueOf(s);
ok = true;
} catch (Exception e)
{
ok = false;
}
} while (!ok);
return col;
}
};
Data.java
- Code:
/*" auteur :" crossette
" date :" 10 juin 2016
" nom fichier :" DateFab.java*/
public class Date
{
public NomMois mois;
public NomJour jour;
public int annee;
public int numero;
public static void afficherdate(Piece[] tPiece, int traite)
{
System.out.print("Jour : "+tPiece[traite] .date.jour);
System.out.print(" "+tPiece[traite].date.numero);
System.out.print(" "+tPiece[traite].date.mois);
System.out.print(" "+tPiece[traite].date.annee);
}
public static Date saisirdate()
{
Date date = new Date();
date.mois = NomMois.saisieMois();
date.jour = NomJour.saisieJour();
System.out.println("");
System.out.println("Numéro jour : ");
date.numero = Lire.i();
System.out.println("Année : ");
date.annee = Lire.i();
return date;
}
}
Genre.java
- Code:
/*" auteur :" crossette
" date :" 10 juin 2016
" nom fichier :" Genre.java*/
enum Genre
{
CUBE, CYLINDRE, SPHERE;
public static Genre saisieGenre()
{
String s;
Genre genre = null;
boolean ok = true;
do
{
// System.out.print("Genre : ");
// for (Genre g : Genre.values())
//{
// System.out.print(g+" ");
// }
System.out.println();
s = Lire.S().toUpperCase();
try
{
genre = Genre.valueOf(s);
ok = true;
} catch (Exception e)
{
ok = false;
}
} while (!ok);
return genre;
}
};
Mesure.java
- Code:
/*" auteur :" crossette
" date :" 10 juin 2016
" nom fichier :" Mesure.java*/
class Mesure
{
public Genre genre;
public double hauteur;
public double rayon;
public double coté;
public static void afficherGenre(Piece[] tPiece, int traite)
{
System.out.println("");
System.out.println("Type "+tPiece[traite].genre.genre);
if(tPiece[traite].genre.hauteur!=0)
{
System.out.println("De hauteur : "+tPiece[traite].genre.hauteur);
}
if(tPiece[traite].genre.coté!=0)
{
System.out.println("De coté : "+tPiece[traite].genre.coté);
}
if(tPiece[traite].genre.rayon!=0)
{
System.out.println("De rayon : "+tPiece[traite].genre.rayon);
}
}
public static Mesure saisieGenre()
{
Mesure mesure = new Mesure();
System.out.println("Genre de pièce : ");
mesure.genre = Genre.saisieGenre();
switch (mesure.genre)
{
case CUBE :
System.out.println("Coté : ");
mesure.coté = Lire.d();
break;
case SPHERE :
System.out.println("Rayon : ");
mesure.rayon = Lire.d();
break;
case CYLINDRE :
System.out.println("Rayon : ");
mesure.rayon = Lire.d();
System.out.println("Hauteur : ");
mesure.hauteur = Lire.d();
break;
}
return mesure;
}
}
NomJour.java
- Code:
/*" auteur :" crossette
" date :" 10 juin 2016
" nom fichier :" NomJour.java*/
enum NomJour
{
LUNDI, MARDI, MERCREDI, JEUDI, VENDREDI, SAMEDI, DIMANCHE;
public static NomJour saisieJour()
{
String s;
NomJour jour = null;
boolean ok = true;
do
{
// System.out.print("Jour : ");
// for (NomJour j : NomJour.values())
// {
// System.out.print(j+" ");
// }
System.out.println();
System.out.print("Jour : ");
s = Lire.S().toUpperCase();
try
{
jour = NomJour.valueOf(s);
ok = true;
} catch (Exception e)
{
ok = false;
}
} while (!ok);
return jour;
}
};
NomMois.java
- Code:
/*" auteur :" crossette
" date :" 10 juin 2016
" nom fichier :" NomMois.java*/
enum NomMois
{
JANVIER, FEVRIER, MARS, AVRIL, MAI, JUIN, JUILLET, AOUT, SEPTEMBRE, OCTOBRE, NOVEMBRE, DECEMBRE;
public static NomMois saisieMois()
{
String s;
NomMois mois = null;
boolean ok = true;
do
{
// System.out.print("Mois : ");
// for (NomMois m : NomMois.values())
// {
// System.out.print(m+" ");
// }
System.out.println();
System.out.print("Mois : ");
s = Lire.S().toUpperCase();
try
{
mois = NomMois.valueOf(s);
ok = true;
} catch (Exception e)
{
ok = false;
}
} while (!ok);
return mois;
}
};
Pieces.java
- Code:
/*" auteur :" crossette
" date :" 9 juin 2016
" nom fichier :" Piece.java*/
class Piece
{
public Date date;
public Colorie colorie;
public Mesure genre;
public int serie;
public static final int TAILLE = 10000;
public static void saisiepiece(Piece[] tPiece)
{
int vide = 0;
do
{
System.out.println("Pièce n" + vide);
tPiece[vide] = new Piece();
lire(tPiece[vide]);
vide++;
System.out.println();
} while (vide < tPiece.length);
}
public static void affichagepiece(Piece[] tPiece)
{
int traite = 0;
do
{
System.out.println("Pièce n " + traite + " : ");
Date.afficherdate(tPiece,traite);
Mesure.afficherGenre(tPiece, traite);
System.out.println("");
System.out.println("De Couleur : "+tPiece[traite].colorie);
System.out.println("Numéro de serie :");
System.out.println(tPiece[traite].serie);
traite++;
System.out.println();
} while (traite < tPiece.length);
}
public static void lire(Piece des)
{
des.date=Date.saisirdate();
des.genre=Mesure.saisieGenre();
des.colorie=Colorie.saisieColorie();
System.out.println("Numéro de série : ");
des.serie = Lire.i();
}
}
Lire.java
- Code:
/*********************************************************************
Nom du programme : Lire.java
Auteur : Lécu Regis
Mise a jour : février 2001, maj nov 2003 jcc
Fonction : bibliothèque de fonctions de lecture
Pour compatibilité dans la progression avec "Le livre de Java comme
premier langage", des alias de chaque fonction sont donnés en fin de la
classe.
Tous les noms de fonctions devraient commencer par une minuscule.En
dehors de cette boîte à outils de fonctions, cette convention sera
scrupuleusement respectée.
**********************************************************************/
public class Lire
{
// Par défaut, la bibliothèque ne lit que les premiers caractères de chaque ligne
private static boolean filtre = true;
// Filtre :
// si leFiltre = vrai, seul le premier caractère de chaque ligne
// sera lu par la fonction Lire.c() (appel automatique de la fonction Purge)
// sinon tous les caractères sont lus, y compris les caractères de contrôle
public static void Filtre ( boolean leFiltre)
{
filtre = leFiltre;
}
// Purge : élimine tous les caractères jusqu'à la fin de la ligne
public static void Purge()
{
try
{
char car ;
do
{
car = (char) System.in.read ();
}
while (car != '\n');
}
catch (java.io.IOException e)
{
System.out.println ("Erreur de saisie");
System.exit (0);
}
}
// Lecture d'une chaine terminée par un "RETURN" : saute la fin de ligne
public static String Chaine()
{
char car ;
String result = "";
try
{
car = (char) System.in.read ();
//lecture de la ligne jusqu'au retour charriot (13, 0xD)
while (car != '\r')
{
result = result + car;
car = (char) System.in.read ();
}
// Saut du fin de ligne (10, 0xA)
System.in.skip (1);
}
catch (java.io.IOException e)
{
System.out.println ("Erreur de saisie");
System.exit (0);
}
return result;
}
// Lecture d'un caractère : uniquement le premier caractère de la nouvelle ligne
// si filtrage, n'importe quel caractère sinon
public static char Caractere ()
{
char result = 0;
try
{
result = (char) System.in.read ();
}
catch (java.io.IOException e)
{
System.out.println ("Erreur de saisie");
System.exit (0);
}
if (filtre)
{
Purge ();
}
return result;
}
public static int Entier ()
{
int result = 0;
try
{
result = Integer.parseInt ( Chaine () );
}
catch (NumberFormatException e)
{
System.out.println ("Format entier incorrect !");
System.exit(0);
}
return result;
}
public static short EntierCourt ()
{
short result = 0;
try
{
result = Short.parseShort ( Chaine () );
}
catch (NumberFormatException e)
{
System.out.println ("Format entier incorrect !");
System.exit(0);
}
return result;
}
public static long EntierLong ()
{
long result = 0;
try
{
result = Long.parseLong ( Chaine () );
}
catch (NumberFormatException e)
{
System.out.println ("Format entier incorrect !");
System.exit(0);
}
return result;
}
public static float Reel ()
{
float result = 0;
try
{
result = Float.valueOf( Chaine() ).floatValue () ;
}
catch (NumberFormatException e)
{
System.out.println ("Format reel incorrect!");
System.exit(0);
}
return result;
}
public static double ReelDouble ()
{
double result = 0;
try
{
result = Double.valueOf( Chaine() ).doubleValue () ;
}
catch (NumberFormatException e)
{
System.out.println ("Format reel incorrect!");
System.exit(0);
}
return result;
}
// Attente : permet de visualiser les résultats avant la sortie
// de l'application.
public static void Attente()
{
System.out.println ();
System.out.println ("*** Tapez Entree pour Terminer ***");
Lire.c();
}
// Attente : permet de visualiser les résultats avant la suite
// de l'application.
public static void Suite()
{
System.out.println ();
System.out.println ("*** Tapez Entree pour Continuer ***");
Lire.c();
}
public static boolean Question(String msg)
{
char reponse ;
do
{
System.out.print (msg + " (O/N ) ?" );
reponse = Lire.c();
}while ((reponse!='O')&&(reponse!='o')&&(reponse!='n')&&(reponse!='N'));
// arrêt quand reponse est égal à O,o,N,n
return (reponse == 'O') || (reponse == 'o') ;
}
// Alias des fonctions : pour compatibilité avec le livre
// "Le livre de Java comme premier langage"
public static String S ()
{
return Chaine();
}
public static short s ()
{
return EntierCourt();
}
public static long l ()
{
return EntierLong();
}
public static int i ()
{
return Entier();
}
public static char c ()
{
return Caractere();
}
public static float f ()
{
return Reel ();
}
public static double d ()
{
return ReelDouble ();
}
/* Jean Christophe CORRE */
/* Fonction qui lit un tableau de char et renvoi ce tableau */
public static char[] remplirTableau(String invite, int motSize)
// invite est la chaine affichée à l'écran avant la saisie
// motSize est la longueur maximale de la chaine y compris le terminateur
//
{
final int MOT_SIZE = motSize ;
final char TERMINATEUR = '.';
char mot[] ;
char actualCar ;
int count ;
count = 0 ;
mot = new char[MOT_SIZE] ;
System.out.println(invite);
Lire.Filtre(false);
do
{
actualCar = Lire.c();
mot[count] = actualCar ;
count ++ ;
}
while(actualCar != '\r' && actualCar != '\n' && actualCar != TERMINATEUR && count < mot.length) ;
if(actualCar != TERMINATEUR)
{
mot[count - 1] = TERMINATEUR ;
}
if(actualCar != '\n')
{
Lire.Purge();
}
Lire.Filtre(true);
return mot;
}/* Jean Christophe CORRE */
/* Fonction qui lit un tableau de char sans terminateur et renvoi ce tableau */
public static char[] remplirMot(String invite)
// invite est la chaine affichée à l'écran avant la saisie
// le tableau retourné est le mot saisi, et sa longueur est la longueur du mot.
{
char mot[] ;
char actualCar ;
int count ;
count = 0 ;
mot = new char[80];
System.out.println(invite);
Lire.Filtre(false);
actualCar = Lire.c();
while (actualCar != '\r' && actualCar != '\n' && count < mot.length)
{
mot[count] = actualCar ;
count ++ ;
actualCar = Lire.c();
}
if(actualCar != '\n')
{
Lire.Purge();
}
Lire.Filtre(true);
char [] newMot= new char[count];
for (int i =0; i<count;i++)
{
newMot[i] = mot[i];
}
return newMot;
}
public static void afficheMot(char[] mot)
{
for (int i = 0; i< mot.length; i++)
{
System.out.print(mot[i]);
}
}
public static void afficheTableau(char[] mot)
{
int i;
for (i = 0; i< mot.length && mot[i] != '.'; i++)
{
System.out.print(mot[i]);
}
System.out.print(mot[i]);
}
}
Sujets similaires
» [Spoiler] Structure permettant de gérer une pile d'entiers + fonctions de manipulation
» [Spoiler] Dichotomie
» [SPOILER] Procédure Remplir Tableau
» [Spoiler] Justifier une phrase JAVA
» [Spoiler] Succession 2 Lettres Java
» [Spoiler] Dichotomie
» [SPOILER] Procédure Remplir Tableau
» [Spoiler] Justifier une phrase JAVA
» [Spoiler] Succession 2 Lettres Java
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|