632.1/PROGRAMMATION
TravauxpratiquesSérieP11
PeterDAEHNE1/3Version2.0
Objectifs
Mettreenœuvrelesconceptsdelaprogrammationorientéeobjet.
Parcourirdesstructuresdedonnéeseneffectuantdestraitementsdeleurscomposants.
Implanterdesméthodesrépondantàunensembledespécifications.
Utiliserlesclassesjava.util.ArrayListetjava.util.StringTokenizerdelabibliothèque
Java.
Énoncé
Développeruneapplicationdegestiond’undistributeurautomatiqued’articles(sandwich,chocolat,etc.).Il
s’agitd’afficherunrapportsurlecontenud’undistributeurquivousestfournisouslaformed’unfichier
texte.
Ledistributeurcontientunensemblederayonsdanslesquelslesarticlessontdéposés.Leclientchoisitun
rayonparsonnuméroetlepremierarticledurayontombedanslepanier.Leremplissagedudistributeur
dépenddesarrivages.Chaquerayonsertunmêmetyped’articlesmaiscesarticlespeuventêtredifférents
(lerayonsandwichpeutservirdessandwichesaujambon,ausalamiouaufromage).
Cequiestdemandé:
Mémoriserlesdonnéesducontenududistributeur,àpartirdufichiertextefourni.
LesdonnéesserontmémoriséesdansdesobjetsdeclassesBoissonouNourritureselonleurcatégorie
d’article.Chaqueréférenced’articleestplacéedansunrayon(ArrayList).
ChaquerayonestmémorisédansdesobjetsdeclasseRayon.Chaqueréférencederayonestplacée
dansledistributeur(ArrayList).
Lerapportdoitprésenter(voirexempled’exécution):
Leprixleplusélevédesarticlescontenudansledistributeur;
Lebénéficetotalpossible(sommedesprixde«venteprixderevient»detouslesarticles);
Lenombred’articlesprésentsparrayon.S’ilenresteunoumoins,afficher«ÀREMPLIR».
Réfléchiràlamanièred’affichertouslesrayonsettouslesarticlesdudistributeur.
Données
Lefichierdécrivantlecontenud’undistributeurlistechaquearticle(unparligne).Pourchaquearticle,en
plusdesdonnéesspécifiquesàl’article,sontmentionnésledudistributeuretledurayon.
Lesarticlessontclassifiésselonleurtypesoitcommeuneboisson(0),soitcommedelanourriture(1).
Cetypedéterminesiledernierchampreprésenteunecontenance(boisson)ouunpoids(nourriture).
Ledélimiteurdelignesest"\n\r",ledélimiteurdechampsest";".
Structured’uneligne:
n°distributeur;n°rayon;n°article;nom;type;description;prixderevient;prixvente;contenanceoupoids
Exemplededonnées
01;06;2;eau;0;boisson;0.1;1.5;0.33
01;06;2;eau;0;boisson;0.1;1.5;0.33
01;07;14;sandwich;1;jambon;1.4;3.7;220
01;07;14;sandwich;1;jambon;1.4;3.7;220
PeterDAEHNE2/3Version2.0
Modèle
Exempled’exécution
Traitementdesarrivages(fichier:"arrivage_28052012.txt")
Rapportdel'automaten°1
Leprixmaxdetouslesarticlesest:3.7
Lebénéficetotalpossibleest:45.5CHF
Nombred'articlesparrayon:
rayonn°1contient2articles
rayonn°2contient6articles
rayonn°3contient2articles
rayonn°4contientAREMPLIR
rayonn°6contient9articles
rayonn°7contient6articles
rayonn°8contient6articles
Élémentsfournis
Lesfichierscontenantlesclassesquevousdevezcompléter:Article.java,Boisson.java,Nourriture.java,
Rayon.java,Distributeur.java,GestionRapport.java.
Lefichierdetestarrivage_28052012.txtquicontientlecontenududistributeurau28.05.2012.Un
exemplederapportissudecefichierestprésentécidessus.
LefichierFileToStr.classcontientlaversioncompiléedelaclasseFileToStrquipermetlalectured’un
fichiertexteetsaconversionenString.Cetteclasseestuniquementemployéedanslaméthode
main().
Cesélémentssontfournissurleréseauen:
G:\_cours\1112\IG\M632.1\ÉnoncésTP\P10

PeterDAEHNE3/3Version2.0
Àfaire
Inscrivezvosnometprénomdanslescommentairesdesclasses.
Complétezlesméthodesadd(), get(), prixMax()etbenefice()delaclasseDistributeur
enremplaçantlescommentaire/***ÀCOMPLÉTER***/parducodefonctionnel.Veillezà
respecterlesspécificationsdonnéesencommentaires.
ComplétezlesméthodesmemoriseDistributeur()etafficheRapport()delaclasse
GestionRapportenremplaçantlescommentaire/***ÀCOMPLÉTER***/parducode
fonctionneldetellemanièreàobtenirl’exempled’exécutioncidessus.Veillezàrespecterles
spécificationsdonnéesencommentaires.
ComplétezlaméthodeafficheDistributeur()delaclasseGestionRapport.
SinécessairecomplétezlesclassesArticle,Boisson,Nourriture,Rayon,etDistributeuravec
desattributsoudesméthodesquevousjugereznécessaires.(Nemodifiezenaucuncaslessignaturesdes
méthodesexistantes).
Contraintesimpératives
Vousprogrammerezvosméthodesenrespectantlemodèlefigurantcidessus.
Vousmettrezenœuvrelesconceptsdelaprogrammationorientéeobjetétudiésaucours.
Vousnemodifierezaucunesignaturedesméthodesexistantes.
LecodedéveloppédoitêtrecompatibleavecJava1.4(compiléavecl'option–source1.4ou,sous
EditPlus,avecl'optionCompilation1.4[Ctrl+1]);
Délai:cetravailestàrendrelemercredi6juin2012à17h00auplustardenrecopianttousles
élémentsnécessairessurleréseauen:
G:\_cours\1112\IG\M632.1\RedditionTP\VotreNom\P10
1 / 3 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !