Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Bus.cs
- using System;
- using System.Collections.Generic;
- using MyObj;
- public class Bus
- {
- // Attributs
- private string strCompagnie;
- private int iLigne;
- private Remorque _attelage;
- private Personne _chauffeur;
- private List<Personne> _passagers = new List<Personne>();
- private List<Rond> _roues = new List<Rond>(); // immuable.
- // Constructeur
- public Bus(string compagnie, int ligne)
- {
- strCompagnie = compagnie;
- iLigne = ligne;
- getRoues().Add(new Rond(80));
- getRoues().Add(new Rond(80));
- getRoues().Add(new Rond(80));
- getRoues().Add(new Rond(80));
- }
- // Méthodes
- public List<Rond> getRoues()
- {
- return _roues;
- }
- public List<Personne> getPassagers()
- {
- return _passagers;
- }
- public string Lister()
- {
- string strText = "";
- int iCpt = 0;
- foreach (Personne passagers in _passagers)
- {
- iCpt++;
- strText += $"Passagers {iCpt} : {passagers}\r\n";
- }
- return strText;
- }
- public string getCompagnie()
- {
- return strCompagnie;
- }
- public int getLigne()
- {
- return iLigne;
- }
- public Personne getChauffeur()
- {
- return _chauffeur;
- }
- public void setChauffeur(Personne chauffeur)
- {
- this._chauffeur = chauffeur;
- }
- public Remorque getAttelage()
- {
- return _attelage;
- }
- public string BusInfo()
- {
- return "";
- }
- public override string ToString()
- {
- if (_attelage == null) return "Bus " + strCompagnie + " de la ligne n°" + iLigne + " sans remorque";
- return "Bus " + strCompagnie + " de la ligne n°" + iLigne + " avec remorque de " + _attelage.getChargeUtileKg() + "kg";
- }
- public bool Accoupler(Remorque attelage)
- {
- if (this._attelage == null)
- {
- this._attelage = attelage;
- return true;
- }
- return false;
- }
- public bool Detacher()
- {
- if (this._attelage == null) return false;
- _attelage = null;
- return true;
- }
- }
- // Remorque.cs
- using System;
- public class Remorque
- {
- // Attributs
- private int iChargeUtileKg;
- private int iChargeActuelleKg=0;
- // Méthodes de lecture
- public int getChargeUtileKg()
- {
- return iChargeUtileKg;
- }
- public int getChargeActuelleKg()
- {
- return iChargeActuelleKg;
- }
- public override string ToString()
- {
- return "Remorque de " + iChargeUtileKg + "kg de capacité";
- }
- // Méthodes de modification de la charge en kg
- public bool Charger(int kg)
- {
- if (kg + iChargeActuelleKg > iChargeUtileKg) return false;
- iChargeActuelleKg += kg;
- return true;
- }
- public void Vider()
- {
- iChargeActuelleKg = 0;
- }
- // Constructeur
- public Remorque(int chargeUtileKg)
- {
- iChargeUtileKg = chargeUtileKg;
- }
- }
- // Rond.cs
- using System;
- namespace MyObj
- {
- public class Rond
- {
- private double dblRayon;
- // Constructeur par défaut 04-20 1
- //public Rond ()
- //{
- // dblRayon = 5.5;
- //}
- // Constructeur par défaut 04-40 1
- public Rond()
- {
- dblRayon = 0.0;
- }
- // Constructeur spécifique 04-40 2
- public Rond(double rayon)
- {
- dblRayon = rayon;
- }
- public double Surface ()
- {
- return dblRayon * dblRayon * Math.PI;
- }
- public double Perimetre()
- {
- return 2 * dblRayon * Math.PI;
- }
- }
- }
- // Personnes.cs
- namespace MyObj
- {
- /// <summary>
- /// Classe Personne, contient le nom, prénom, genre et année de naissance d'une personne
- /// </summary>
- public class Personne
- {
- private string strNom;
- private string strPrenom;
- private int iAnneeNaissance;
- private bool bEstMasculin;
- /// <summary>
- /// Constructeur de Personne
- /// </summary>
- /// <param name="nom">Nom de famille</param>
- /// <param name="prenom">Prénom</param>
- /// <param name="anneeDeNaissance">Année de naissance</param>
- /// <param name="estMasculin">true si c'est un homme, false si c'est une femme</param>
- public Personne(string nom, string prenom, int anneeDeNaissance, bool estMasculin)
- {
- strNom = nom;
- strPrenom = prenom;
- iAnneeNaissance = anneeDeNaissance;
- bEstMasculin = estMasculin;
- }
- public string getNom()
- {
- return strNom;
- }
- public string getPrenom()
- {
- return strPrenom;
- }
- public int getAge()
- {
- return System.DateTime.Now.Year - iAnneeNaissance;
- }
- public string getTitre()
- {
- return bEstMasculin ? "M." : "Mme.";
- }
- /// <summary>
- /// Retourne les informations de la personne
- /// </summary>
- /// <returns>Un texte du style "M. Jean Rit (20 ans)" ou "Mme Eva Nouie (30 ans)"</returns>
- public override string ToString()
- {
- return getTitre() + " " + strPrenom + " " + strNom + " (" + getAge() + " ans)";
- }
- }
- }
- // Form1.cs
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using MyObj;
- namespace Bus_Passagers
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- Bus bus100;
- Bus bus110;
- Bus bus120;
- Remorque remorque;
- private void Form1_Load(object sender, EventArgs e)
- {
- // Créer (instancier) les 3 bus au démarrage
- bus100 = new Bus("ET", 100);
- bus110 = new Bus("ET", 110);
- bus120 = new Bus("ET", 120);
- // Créer la remorque au démarrage
- remorque = new Remorque(500);
- }
- private Bus RecupererBusSelonRadioBouton()
- {
- // Récupérer le bus courant en fonction du radiobouton et le retourner
- Bus bus = null;
- if (rbtnBus100.Checked) bus = bus100;
- if (rbtnBus110.Checked) bus = bus110;
- if (rbtnBus120.Checked) bus = bus120;
- return bus;
- }
- private void rbtnBus_CheckedChanged(object sender, EventArgs e)
- {
- Bus bus = RecupererBusSelonRadioBouton();
- if (bus != null)
- {
- // Si le radiobouton a permis de sélectionner un bus instancié
- if (bus.getChauffeur() == null)
- {
- // Si le bus courant n'a pas de chauffeur, réinitialiser le groupe chauffeur
- tbxNom.Clear();
- tbxPrenom.Clear();
- numNeEn.Value = 1975;
- cbxEstUnHomme.Checked = true;
- }
- else
- {
- // Si le bus courant a déjà un chauffeur, afficher ses informations
- tbxNom.Text = bus.getChauffeur().getNom();
- tbxPrenom.Text = bus.getChauffeur().getPrenom();
- numNeEn.Value = DateTime.Now.Year - bus.getChauffeur().getAge();
- cbxEstUnHomme.Checked = (bus.getChauffeur().getTitre() == "M.");
- }
- if (bus.getAttelage() == null)
- {
- // Si la remorque est désaccouplée, décocher la case
- cbxRemorque.Checked = false;
- }
- else
- {
- // Si la remorque est déjà accouplée au bus cocher la case
- cbxRemorque.Checked = true;
- }
- // affichage des infos
- if (bus.getAttelage() == null)
- {
- // pas de remorque.
- tbxBus.Text = $"Bus TransN de la ligne n°{bus.getLigne()} sans remorque.{Environment.NewLine}";
- }
- else
- {
- // remorque.
- tbxBus.Text = $"Bus TransN de la ligne n°{bus.getLigne()} avec une remorque de {bus.getAttelage()}.{Environment.NewLine}";
- }
- if (bus.getChauffeur() != null)
- tbxBus.Text += $"Conduit par {bus.getChauffeur()}{Environment.NewLine}";
- else
- tbxBus.Text += $"Sans chauffeur. {Environment.NewLine}";
- if (bus.getPassagers().Count > 0)
- {
- tbxBus.Text += $"{bus.Lister()}{Environment.NewLine}";
- }
- else
- tbxBus.Text += $"\nSans passagers.{Environment.NewLine}";
- tbxBus.Text += $"Avec {bus.getRoues().Count} roues.";
- }
- }
- private void btnLiaison_Click(object sender, EventArgs e)
- {
- Bus bus = RecupererBusSelonRadioBouton();
- if (bus != null)
- {
- // Si le radiobouton a permis de sélectionner un bus instancié
- if (bus.getChauffeur() == null)
- {
- // Si le bus courant n'a pas encore de chauffeur, créer un chauffeur et l'associer)
- bus.setChauffeur(new Personne(tbxNom.Text, tbxPrenom.Text, (int)numNeEn.Value, cbxEstUnHomme.Checked));
- }
- else
- {
- // Si le bus courant a déjà un chauffeur, le libérer
- bus.setChauffeur(null);
- }
- tbxNom.Clear();
- tbxPrenom.Clear();
- numNeEn.Value = 1975;
- cbxEstUnHomme.Checked = true;
- }
- }
- private void cbxRemorque_Click(object sender, EventArgs e)
- {
- Bus bus = RecupererBusSelonRadioBouton();
- if (bus != null)
- {
- // Si le radiobouton a permis de sélectionner un bus instancié
- if (cbxRemorque.Checked)
- {
- // Tenter d'attacher la remorque
- bool bOK = bus.Accoupler(remorque);
- if (!bOK)
- {
- MessageBox.Show("L'un des deux véhicules n'est pas prêt", "Impossible d'attacher la remorque");
- cbxRemorque.Checked = false;
- }
- }
- else
- {
- // Tenter de détacher la remorque
- bool bOk = bus.Detacher();
- if (!bOk)
- {
- MessageBox.Show("La remorque n'est pas détachable", "Impossible de détacher la remorque");
- cbxRemorque.Checked = true;
- }
- }
- }
- }
- // Ex 7
- // En cas de frappe dans l'un des TextBox...
- private void tbxNomPassager_TextChanged(object sender, EventArgs e)
- {
- tbxNomPassager.Text = tbxNomPassager.Text.Trim();
- tbxPrenomPassager.Text = tbxPrenomPassager.Text.Trim();
- // ...activer le bouton si ils ont tous 2 un texte
- btnAjout.Enabled = (tbxNomPassager.TextLength > 0 && tbxPrenomPassager.TextLength > 0);
- }
- private void btnAjout_Click(object sender, EventArgs e)
- {
- Bus bus = RecupererBusSelonRadioBouton();
- if (bus != null)
- {
- bus.getPassagers().Add(new Personne(tbxNomPassager.Text, tbxPrenomPassager.Text, (int)numNeEnPassager.Value, cbxEstUnHommePassager.Checked));
- }
- tbxNomPassager.Clear();
- tbxPrenomPassager.Clear();
- numNeEnPassager.Value = 1975;
- cbxEstUnHommePassager.Checked = true;
- }
- private void btnLister_Click(object sender, EventArgs e)
- {
- Bus bus = RecupererBusSelonRadioBouton();
- MessageBox.Show(bus.Lister());
- }
- // Fin ex 7
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement