0% ont trouvé ce document utile (0 vote)
362 vues9 pages

Corrigé - TP02 Java 2023

Le document présente des exercices de programmation Java portant sur la manipulation de chaînes de caractères, le calcul de prix de transport, la modélisation d'objets voitures et comptes bancaires, et la définition de classes étudiant héritant de la classe personne.

Transféré par

Laila Moufakker
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
362 vues9 pages

Corrigé - TP02 Java 2023

Le document présente des exercices de programmation Java portant sur la manipulation de chaînes de caractères, le calcul de prix de transport, la modélisation d'objets voitures et comptes bancaires, et la définition de classes étudiant héritant de la classe personne.

Transféré par

Laila Moufakker
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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);
}
}

Vous aimerez peut-être aussi