logo

Général

Accueil

Présentation section

Matériel section

Trombinoscopes

Liens

Plan du site

Contactez-nous

SN 1

Aide spécifique Java

TP C++ Arduino

Les TP réseau Linux

Les TD Java

Les TP Java

TD C#

TP C#

Les Mini-projets

Stage en entreprise

IRIS 2

TP IPC linux / coldFire

TP PHP

Cours / TP XML

Projets

Cours

SN 1

IRIS 2

Statistiques

1 visiteur

Record : 92

Pages vues :

Aujourd'hui : 69

Total : 172425

Valid XHTML 1.0 Transitional

TP2 : Corrigé

separation

[Vous êtes ici ] ==> Accueil > SN 1 > TP C# > TP2 : Corrigé

separation

Exported from Notepad++
/* Classe SalleCinema * Didier Petitjean le 29/09/2010*/ using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace TP2_Premiere_classe { class SalleCinema { private string nomFilm; private int nbPlace; private double prix; private int nbPlaceTarifNormal=0; private int nbPlaceTarifReduit=0; private const double REDUCTION=0.8; // Réduction tarif spécial /** Constructeurs */ public SalleCinema() { nomFilm=""; nbPlace=0; prix=0.0; } public SalleCinema(string film,int place,double prix) { nomFilm=film; nbPlace=place; this.prix=prix; // Pour enlever l'ambiguité entre les deux noms identiques } public string getFilm() { return nomFilm; } public double getPrix() { return prix; } public bool film(string nom) { if(nomFilm.Equals(nom)) return true; else return false; } public int nbPlacesDisponibles() { return (nbPlace-nbPlaceTarifNormal-nbPlaceTarifReduit); } public string vendrePlaces(int nbre, bool tarifReduit) { string retour = ""; if(nbPlacesDisponibles()>nbre) if(tarifReduit) { nbPlaceTarifReduit+=nbre; retour = "Prix à payer : "+nbre*(prix*REDUCTION); } else { nbPlaceTarifNormal+=nbre; retour = "Prix à payer : "+nbre*prix; } else retour = "Plus assez de place"; return retour; } public void remiseAZero() { nbPlaceTarifNormal=0; nbPlaceTarifReduit=0; } public double chiffreAffaires() { return (nbPlaceTarifNormal*prix+nbPlaceTarifReduit*prix*REDUCTION); } public double tauxRemplissage() { return ((nbPlaceTarifNormal+nbPlaceTarifReduit)*100/nbPlace); } public override string ToString() { string retour=""; retour="Film joué : "+nomFilm+"n"; retour+="Nombre de places : "+nbPlace+"n"; retour+="Prix d'une place : "+prix+"n"; retour+=nbPlaceTarifNormal+" Places vendues au tarif normaln"; retour+=nbPlaceTarifReduit+" Places vendues au tarif réduitn"; return retour; } } } /************************************************************************/ /* Premiere Form de test d'une classe SalleCinema seule */ namespace TP2_Premiere_classe { public partial class Form1 : Form { private SalleCinema salle = new SalleCinema("Alice au pays des merveilles", 200, 13); public Form1() { InitializeComponent(); } private void vendre_Click(object sender, EventArgs e) { string info = salle.vendrePlaces(Convert.ToInt32(nbPlaces.Text), tarifReduit.Checked); debug.AppendText(info+"n"); debug.AppendText(salle.ToString() + "n"); } } } /***************************************************************************/ /* Form finale testant le complexe de cinéma ayant 4 films */ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace TP2_Premiere_classe { public partial class Form2 : Form { private SalleCinema courant; private string[] liste = { "Un monde parfait", "Living Las Vegas" ,"inception","salt"}; private Bitmap[] films = { Properties.Resources.mondeParfait, Properties.Resources.livingLasVegas, Properties.Resources.inception, Properties.Resources.salt}; private SalleCinema[] complexe = new SalleCinema[4]; public Form2() { InitializeComponent(); foreach(string nom in liste){ listeFilm.Items.Add(nom); } complexe[0] = new SalleCinema(liste[0], 200, 9.50); complexe[1] = new SalleCinema(liste[1], 300, 7.0); complexe[2] = new SalleCinema(liste[2], 100, 9.50); complexe[3] = new SalleCinema(liste[3], 200, 9.0); } private SalleCinema recherche(string nom) { int i=0; while (!complexe[i].film(nom)) i++; return complexe[i]; } private void listeFilm_SelectedIndexChanged(object sender, EventArgs e) { remplirInfo(); } private void reduit_CheckedChanged(object sender, EventArgs e) { remplirInfo(); } private void remplirInfo() { SalleCinema courant; int i = 0; while (!liste[i].Equals(listeFilm.Text)) i++; if (i < liste.Length) { courant = recherche(liste[i]); if (courant.nbPlacesDisponibles() >= Convert.ToInt32(nbPlace.Text)) { this.BackgroundImage = films[i]; filmChoisi.Text = "Film : " + courant.getFilm(); if(reduit.Checked) prix.Text = "Prix : " + courant.getPrix() * Convert.ToInt32(nbPlace.Text)*0.8; else prix.Text = "Prix : " + courant.getPrix() * Convert.ToInt32(nbPlace.Text); placesRestantes.Text = "Places restantes : " + courant.nbPlacesDisponibles(); } } } private void nbPlace_TextChanged(object sender, EventArgs e) { remplirInfo(); } private void validation_Click(object sender, EventArgs e) { SalleCinema courant; int i = 0; while ((listeFilm.Text!="")&&(!liste[i].Equals(listeFilm.Text))&&(i<liste.Length)) i++; if ((listeFilm.Text!="")&&(i < liste.Length)) { courant = recherche(liste[i]); debug.AppendText(courant.vendrePlaces(Convert.ToInt32(nbPlace.Text), reduit.Checked)+"n"); listeFilm.Text = ""; filmChoisi.Text = "Film : "; prix.Text = "Prix : "; placesRestantes.Text = "Places restantes : "; } } private void fin_Click(object sender, EventArgs e) { double taux = 0; double chiffreAffaire = 0; foreach (SalleCinema courant in complexe) { debug.AppendText(courant.ToString()+"n"); debug.AppendText("Taux de remplissage"+courant.tauxRemplissage()+"n"); taux += courant.tauxRemplissage(); debug.AppendText("" + courant.chiffreAffaires()+"n"); chiffreAffaire += courant.chiffreAffaires(); courant.remiseAZero(); } debug.AppendText("Chiffre d'affaire du complexe : " + chiffreAffaire + "n"); debug.AppendText("Taux de remplissage du complexe : " + taux / complexe.Length); } } }

separation

ancre