Gestion des immatriculations de voiture

misterG88 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
misterG88 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je suis étudiant en 3ième année en informatique je voudrai k vous m aidiez SVP à corriger mon code car j'ai un problème sur l'incrémentation des matricules et puis je souhaite aussi appliquer la fonction "swing" merci.


voici le mini projet :

MINI_PROJET

Gestion des immatriculations de voiture

On désire définir des objets représentant des voitures. Les voitures disposeront tous d'une immatriculation. L'immatriculation d'une voiture se compose de trois parties :
- Une première partie numérique (entière) de 1 à 9,
- une lettre (char) de A à Z,
- une troisième partie numérique correspondant à la région (pour l'instant toujours 59).
Les règles d'immatriculation suivront les règles françaises d'immatriculation (la première voiture est 1 A 59, puis 2 A 59, : : : 9 A 59, 1 B 59, : : :). Lorsqu'on crée une nouvelle immatriculation,
on désire que celle-ci soit initialisée selon cette règle.
La classe immatriculation comprendra par ailleurs deux méthodes : une méthode affiche() qui affiche une immatriculation et une méthode nb_immatriculations() qui affiche le nombre d'immatriculations émises.
1. Réalisez cette classe (en utilisant, quand cela est nécessaire, le mot clef static).
On désire maintenant créer la classe Voiture. Une voiture est définie par son modèle (une chaîne de caractère) et par une immatriculation. On pourra demander à afficher une voiture (on affiche alors son modèle suivi de son immatriculation).
2. Réalisez la classe voiture.
3. En JAVA, une classe est exécutable si elle est munie d'une méthode de classe particulière : la méthode main. Il s'agit de la méthode main que vous connaissez bien. Rendez la classe Voiture exécutable. On désire que, lorsqu'on exécute la classe voiture, on crée des voitures en demandant à l'utilisateur de saisir leurs modèles. On affiche les voitures après leur création.

ma solution :

pour la classe immatriculation:

package imat;

public class Immatriculation{

private static int numero = 1;
private static char cptAlpha = 'A';
private static int cptNum = 0;
private int num;
private char lettre;
private int region=59;




/***************************************************
* constructeurs de la classe immatriculation
*************************************************/
public Immatriculation() {

num=numero;
lettre=cptAlpha;
cptNum++;
incLettre();
incI();

}
/********************************************
* ************* méthodes ****************
*/

public void incI() {
if (numero < 9)
numero++;
else
numero = 1;
}




public void incLettre() {
char top = 'Z';
int temp;
if (numero == 9)
if (lettre < top) {
temp = (int) lettre;
temp++;
lettre = (char) temp;
} else
lettre = 'A';

}


public void afficher() {
System.out.println("Immatriculation: " + num +" " + lettre + " "+ region);
}

public void nbMatricule() {
System.out.println("Le Nombre de plaques immatriculés est "+cptNum);
}
}

A fin pour la classe Voiture :

package imat;

import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;

public class Voiture {

public String mod;
private Immatriculation matricule;


public Voiture (String mod) {
this.mod=mod;
matricule = new Immatriculation();
}
public void afficherVoiture() {
System.out.print("Model immatriculé: "+ this.mod+" ");

matricule.afficher();
}

public static void main(String[] args) {

String mod;// variable contenant le nom du modèle

List<Voiture> listVoiture = new ArrayList<Voiture>();//liste des voitures
Scanner sc = new Scanner(System.in);
String out = "quitter";
System.out.println("saisir la marque de voiture a immatriculer ou 'quitter' ");
while (!sc.hasNext(out)) {
mod = sc.next();
Voiture V = new Voiture(mod);
listVoiture.add(V);
System.out.println("saisissez le model de voiture à immatriculer ou 'quitter' pour quitter l'application ");

}

for (int i = 0; i < listVoiture.size();

i++) {
Voiture v = listVoiture.get(i);
v.afficherVoiture();


}
Voiture v = listVoiture.get(0);
v.matricule.nbMatricule();
}

}





A voir également:

2 réponses

walidovich_85 Messages postés 608 Date d'inscription   Statut Membre Dernière intervention   73
 
bonjour,

ça serait très utile de poster le message d'erreur reçu.
personnellement, après une 1ière lecture, le casting utilisé pour transformer un char en int et le vis versa n'est correcte, puisque tu va transformer un char comme dans l'exemple ('A') en int pour l'incrémenter...!!! mais il n'est pas une chaine de caractère constitué de chiffre seulement.

j'ai pas copié le code pour vérifier la justice de ma proposition, et de ton code (espérant que l'erreur vient juste de l'incrémentation des lettres), mais voial comment je voudrais incrémenter des caractères, tout simplement:

char a ='A';
a++;//dans ce cas, a='B'

alors, dans ton code, il faut au moins corriger ça:

public void incLettre() {
char top = 'Z';
int temp=top;
if (numero == 9)
if (lettre < top) {
lettre++;
} else
lettre = 'A';

}

PS: j'ai pas pu tester le code, car, je suis loin d'une machine virtuelle java à ce moment.
0
misterG88 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
merci walidovich_85 en fait il y a pas de message d'erreur la compilation se passe bien mais je constate y a des redondance ,les même matricules reviennent.J'ai corrigé le code comme tu dis mais ça change toujours pas .
0
walidovich_85 Messages postés 608 Date d'inscription   Statut Membre Dernière intervention   73
 
OK, quand j'aurai mon PC, j'exécuterai ton programme et j'essayerai de comprendre et de trouver le problème.
0
misterG88 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
oh merci beaucoup c est gentil
0