Corrigé du TP02 Java
Licence professionnelle : MIAGE
Exercice 1 :
import java.util.Scanner;
public class Exercice1 {
// Manipulation des chaines de caractères
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("Entrer le texte à inverser");
String s = sc.nextLine();
System.out.println("l'inverse de la chaine est : " +
inverseChaine(s));
System.out.println("Entrer la grande chaine : ");
String s1= sc.nextLine();
System.out.println("Entrer la sous chaine : ");
String s2= sc.nextLine();
if(sousChaine(s1,s2)==true)
System.out.println("s2 : " + s2 + " est une sous chaine
de s1 : "+ s1);
else
System.out.println("s2 n'est pas une sous chaine de s1");
compteLettre();
presenceVoyelle();
}
public static String inverseChaine(String s){
String reverse="";
for(int i=s.length()-1;i>=0;i--)
reverse = reverse + s.charAt(i);
return reverse;
}
public static boolean sousChaine(String s1, String s2){
int s1Length = s1.length();
int s2Length = s2.length();
for (int i = 0; i <= s1Length - s2Length; i++) {
int j = 0;
for (j = 0; j < s2Length; j++) {
if (s1.charAt(i + j) != s2.charAt(j)) {
break;
}
}
if (j == s2Length) {
return true;
}
}
return false;
// vous pouvez comparer s1 et s2 en utilisant la méthode
substring(int d,int f)
}
public static void compteLettre(){
Scanner sc=new Scanner(System.in);
System.out.println("Entrer la phrase : ");
String s= sc.nextLine();
int cp=0;
s=s.toLowerCase();
System.out.println("Entrer la lettre à chercher : ");
String p= sc.nextLine();
for(int i = 0;i<s.length();i++)
if(s.charAt(i)==p.charAt(0))
cp++;
if(cp!=0)
s=s.replace(p.charAt(0), '*');
System.out.println("Le nombre de la lettre " + p.charAt(0) + " est :
"+cp);
System.out.println("La chaine finale inversée est : " +
inverseChaine(s));
}
public static void presenceVoyelle(){
Scanner sc=new Scanner(System.in);
System.out.println("Entrer la phrase pour compter ses voyelles : ");
String s= sc.nextLine();
char[] text = s.toCharArray();
char[] voy = {'a','e','i','o','u','y'};
int[] nbVoy = {0,0,0,0,0,0};
for(int i=0;i<text.length;i++)
for(int j=0;j<voy.length;j++){
if(text[i]== voy[j]){
nbVoy[j]++;
break;
}
}
for(int i =0; i<nbVoy.length;i++)
System.out.println("Le nombre de voyelle " + voy[i]+ " est bien
: "+ nbVoy[i]);
}
}
Exercice 2 :
package exercice2;
public class TranspCar {
//Déclaration des tableaux
String[] villes =
{"Fes","Meknes","Kenitra","Rabat","Casablanca","Marrakech"};
int[] prixTronçon
= {25,50,20,35,90};
//Méthode pour trouver l'indice d'une ville dans le tableau des
villes
public int indiceVille(String ville) {
int indice=-1;
for(int i=0;i<villes.length;i++) {
if(villes[i].equals(ville)){
indice=i;
break;
}
}
return indice;
}
// Méthode pour le calcul du prix du trajet
public int prixTrajet(String départ,String arrivée) {
int prix=0;
int i=indiceVille(départ);
int j=indiceVille(arrivée);
if(i<j)
for(int k=i;k<j;k++)
prix=prix+prixTronçon[k];
else
for(int k=j; k<i;k++)
prix=prix+prixTronçon[k];
/*Ou bien utiliser cette boucle :
for(int k=i-1; k>=j;k--)
prix=prix+prixTronçon[k];*/
return prix;
}
// Méthode pour le calcul du prix réduit du trajet
public double prixReduit(String départ,String arrivée) {
double prix=0.0;
int i=indiceVille(départ);
int j=indiceVille(arrivée);
int n=0;
if(i<j)
for(int k=i;k<j;k++){
prix=prix+(prixTronçon[k]-prixTronçon[k]*0.1*n);
n++;
}
else
for(int k=j; k<i;k++){
prix=prix+(prixTronçon[k]-prixTronçon[k]*0.1*n);
n++;
}
return prix;
}
public static void main(String[] args) {
TranspCar car=new TranspCar();
System.out.println("Le prix du trajet Fes - Rabat est : "+
car.prixTrajet("Fes","Rabat")+" Dhs");
System.out.println("Le prix du trajet Rabat - Fes est : "+
car.prixTrajet("Rabat","Fes")+" Dhs");
System.out.println("Le prix réduit du trajet Meknes - Marrakech
est : "+ car.prixReduit("Meknes","Marrakech")+" Dhs");
System.out.println("Le prix réduit du trajet Marrakech - Meknes
est : "+ car.prixReduit("Marrakech","Meknes")+" Dhs");
}
}
Exercice 3 :
class Voiture {
private String marque;
private String modele;
private int nombrePortes;
private int vitesseMaximale;
private int vitesseActuelle = 0;
public Voiture(String marque, String modele, int nombrePortes, int
vitesseMaximale) {
this.marque = marque;
this.modele = modele;
this.nombrePortes = nombrePortes;
this.vitesseMaximale = vitesseMaximale;
}
public void accelerer() {
if (vitesseActuelle + 10 <= vitesseMaximale) {
vitesseActuelle += 10;
}
}
public void freiner() {
if (vitesseActuelle - 10 >= 0) {
vitesseActuelle -= 10;
}
}
public void afficherInfos() {
System.out.println("Marque: " + marque);
System.out.println("Modèle: " + modele);
System.out.println("Nombre de portes: " + nombrePortes);
System.out.println("Vitesse maximale: " + vitesseMaximale);
}
}
class VoitureSport extends Voiture {
private int puissance;
public VoitureSport(String marque, String modele, int nombrePortes, int
vitesseMaximale, int puissance) {
super(marque, modele, nombrePortes, vitesseMaximale);
this.puissance = puissance;
}
public void accelerer() {
if (vitesseActuelle + 20 <= vitesseMaximale) {
vitesseActuelle += 20;
}
}
public void freiner() {
if (vitesseActuelle - 15 >= 0) {
vitesseActuelle -= 15;
}
}
public void afficherInfos() {
super.afficherInfos();
System.out.println("Puissance: " + puissance);
}
}
class Test {
public static void main(String[] args) {
Voiture voiture = new Voiture("Marque", "Modèle", 4, 250);
voiture.accelerer();
voiture.accelerer();
voiture.freiner();
voiture.afficherInfos();
VoitureSport voitureSport = new VoitureSport("Marque Sport",
"Modèle Sport", 2, 300, 400);
voitureSport.accelerer();
voitureSport.accelerer();
voitureSport.accelerer();
voitureSport.freiner();
voitureSport.afficherInfos();
}}
Exercice 4 :
class CompteBancaire {
private String titulaire;
private double solde;
private String numeroCompte;
public CompteBancaire(String titulaire, double solde, String
numeroCompte) {
this.titulaire = titulaire;
this.solde = solde;
this.numeroCompte = numeroCompte;
}
public void deposer(double montant) {
solde += montant;
}
public void retirer(double montant) {
if (solde >= montant) {
solde -= montant;
} else {
System.out.println("Solde insuffisant !");
}
}
public void afficherInfos() {
System.out.println("Titulaire: " + titulaire);
System.out.println("Solde: " + solde);
System.out.println("Numéro de compte: " + numeroCompte);
}
}
class CompteEpargne extends CompteBancaire {
private double tauxInteret;
public CompteEpargne(String titulaire, double solde, String
numeroCompte, double tauxInteret) {
super(titulaire, solde, numeroCompte);
this.tauxInteret = tauxInteret;
}
public void calculerInteret() {
solde += solde * tauxInteret;
}
public void afficherInfos() {
super.afficherInfos();
System.out.println("Taux d'intérêt: " + tauxInteret);
}
}
class Test {
public static void main(String[] args) {
CompteBancaire compteBancaire = new CompteBancaire("Titulaire 1",
1000, "12345");
compteBancaire.deposer(500);
compteBancaire.retirer(200);
compteBancaire.afficherInfos();
CompteEpargne compteEpargne = new CompteEpargne("Titulaire 2",
2000, "67890", 0.05);
compteEpargne.deposer(1000);
compteEpargne.retirer(500);
compteEpargne.calculerInteret();
compteEpargne.afficherInfos();
}}
Exercice 5 :
public class Personne {
String cin;
String nom;
String prenom;
int age;
public Personne(String cin, String nom, String prenom, int age) {
this.cin = cin;
this.nom = nom;
this.prenom = prenom;
this.age = age;
}
public String toString() {
return "CIN: " + cin + ", Nom: " + nom + ", Prenom: " +
prenom + ", Age: " + age;
}
}
import java.util.Scanner;
public class Etudiant extends Personne {
protected int cne;
protected String nivEtud;
private double moyenne;
//static Etudiant[] listEtud;
public Etudiant(String cin, String nom, String prenom, int age, int
cne,
String nivEtud, double moyenne) {
super(cin, nom, prenom, age);
this.cne = cne;
this.nivEtud = nivEtud;
this.moyenne = moyenne;
}
//les méthodes getters et setters
public int getCne() {
return cne;
}
public void setCne(int cne) {
this.cne = cne;
}
public String getNivEtud() {
return nivEtud;
}
public void setNivEtud(String nivEtud) {
this.nivEtud = nivEtud;
}
public double getMoyenne() {
return moyenne;
}
public void setMoyenne(double moyenne) {
this.moyenne = moyenne;
}
//Redéfinition de la méthode toString()
public String toString() {
return super.toString()+"\nSon CNE est: " + cne + ", son niveau
d'étude est "
+ nivEtud + ", et sa moyenne générale est: " + moyenne ;
//La méthode saisie
public static Etudiant[] saisie(int n){
Scanner sc=new Scanner(System.in);
Etudiant[] listEtud=new Etudiant[n];
for(int i=0;i<n;i++){
System.out.print("Enter le CIN de l'étudiant ");
String code=sc.next();
System.out.print("Entrer le nom de l'étudiant ");
String nom=sc.next();
System.out.print("Entrer le prénom de l'étudiant ");
String prenom=sc.next();
System.out.print("Entrer l'age de l'étudiant ");
int age=sc.nextInt();
System.out.print("Entrer le CNE de l'étudiant ");
int cne=sc.nextInt();
System.out.print("Entrer le niveau d'étude de l'étudiant ");
String niveau=sc.next();
System.out.print("Entrer la moyenne de l'étudiant ");
double moy=sc.nextDouble();
listEtud[i]=new
Etudiant(code,nom,prenom,age,cne,niveau,moy);
}
return listEtud;
}
//La methode de classement
public static Etudiant[] classement(Etudiant listEtud[]){
for(int i=0;i<listEtud.length-1;i++){
for(int j=0;j<listEtud.length-i-1;j++){
if(listEtud[j].getMoyenne()>listEtud[j+1].getMoyenne())
{
Etudiant temp=listEtud[j];
listEtud[j]=listEtud[j+1];
listEtud[j+1]=temp;
}}}
return listEtud;}
//La méthode d'affichage avec CIN
public static void affiche(Etudiant[] listEtud,String cin){
int i;
for(i=0;i<listEtud.length;i++)
if(cin.equals(listEtud[i].cin)){
System.out.println("\n L'étudiant existe et nommé
par: " + listEtud[i].toString());
break;}
if (i==listEtud.length)
System.out.println("\n L'étudiant cherché est non
trouvé!");
}
//La méthode de recherche avec CIN
public static void recherche(Etudiant[] listEtud, String cin){
int i;
for(i=0;i<listEtud.length-1;i++){
if(cin.equals(listEtud[i].cin)){
System.out.println("existe");
break;}}
if(i==listEtud.length)
System.out.println("non trouvé"); }
// La méthode de mise à jour d'un étudiant
public static void misAjour(Etudiant[]listEtud,String cin){
Scanner sc=new Scanner(System.in);
int i;
for(i=0;i<listEtud.length;i++)
if(cin.equals(listEtud[i].cin)){
System.out.print("Entrer le nouvel age de
l'étudiant: ");
listEtud[i].age=sc.nextInt();
System.out.print("Entrer le nouveau niveau d'étude
de l'étudiant ");
listEtud[i].setNivEtud(sc.next());
System.out.print("Entrer la nouvelle moyenne de
l'étudiant ");
listEtud[i].setMoyenne(sc.nextDouble());
System.out.println("L'étudiant après mise à
jour\n"+ listEtud[i].toString());
break;
}
if (i==listEtud.length)
System.out.println("\nL'étudiant entré n'existe pas!");
}
}
import java.util.Scanner;
public class MainTest {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.print("Entrer le nombre des étudiants ");
int n=sc.nextInt();
Etudiant[] tabEtud;
tabEtud=Etudiant.saisie(n);
Etudiant[] listEtud=Etudiant.classement(tabEtud);
System.out.println("Voici la liste des étudiants après le classement
:");
for(int i=0;i<n;i++){
System.out.println("\n"+listEtud[i].toString());
}
System.out.print("\nEntrer le CIN cherché: ");
String cin=sc.next();
Etudiant.affiche(listEtud,cin);
System.out.print("\nEntrer le CIN de l'etudiant à mettre à jour: ");
cin=sc.next();
Etudiant.misAjour(listEtud,cin);
}
}