634.1Composants&Patterns
Contrôlecontinupratiquedeprogrammationdu27.05.2013
PeterDAEHNE&JohannSIEVERING1/3Version1.0
Modalités
Toutaccèsauréseauestformellementinterdit.
Durée:135minutes.
Documentation:tousdocumentspersonnels,quelqu’ensoitlesupport.
Ilneseraréponduqu’àdesquestionspubliquesetd’intérêtgénérallorsd’uneséanceofficiellequiauralieuenviron
30minutesaprèsledébutdutravail.
Connexionetpostedetravail
Nomd’utilisateur: NomMachine\heguser(exemple:silamachineestHEG868:HEG868\heguser).
Motdepasse: heguser
LesélémentsfournispourcecontrôlesontdéjàinstallésdanslerépertoireD:\Users\Prog634.1CC2
VousytrouverezlesprojetsNetBeans634.1CC2QuestionQcmet634.1CC2TestQuestionQcmquevousdevez
compléter.
Vousnecopierezaucunfichierpersonneldanscerépertoire;tousvosdocumentsprivéséventuelsdoiventêtre
stockésailleursdansD:\Users.
VouseffectuerezletravailrequisparcecontrôleexclusivementdanslerépertoireD:\Users\Prog634.1CC2.Nous
évalueronsuniquementlecontenudesprojetsNetBeans634.1CC2QuestionQcmet634.1CC2TestQuestionQcm
quisetrouventenD:\Users\Prog634.1CC2.
Énoncé
1.Concevoiruncomposantgraphiquemy.awt.QuestionQcmreprésentantunequestiond'unQCM.Laquestionest
définieparunnuméroetunlibellé;ilya3réponsespossiblesetuneseulequiestcorrecte.Cecomposantest
construitenassemblantlescomposantssuivantsdansunjava.awt.Panel:
‐ unjava.awt.Labelquidéfinitlenuméroetlelibellédelaquestion;
‐ troisjava.awt.Checkboxes(regroupéesdansunjava.awt.CheckboxGroup)quisontlestroisboutonsradio
définissantlestroisréponsespossibles;
‐ unjava.awt.Buttonpermettantdevaliderlaréponse.
AucomposantestassociélelistenerQuestionQcmListenerquirendcomptedeschangementsd’étatdu
composantendéclenchantl’événementchoixFaitlorsquel’utilisateuravalidélaréponse.Lamémoirede
l’événementestmodéliséeparlaclasseQuestionQcmEvent(voirspécificationsducomposantplusbas).
2.Réaliseruneapplicationdetestquivérifielefonctionnementducomposantdéveloppé.
Spécificationsducomposant
Lenumérodelaquestionetlelibellésontdéfinispardespropriétés.
Lestroisréponsespossiblessontdéfiniespardespropriétés.Aucuneréponse
n’estsélectionnée.
Lenumérodelaréponsecorrecte(1,2ou3)estdéfiniparunepropriété.
Leboutonestactifsietseulementsiunchoixderéponseaété
effectué.
Lorsdel’appuisurlebouton,l’événementchoixFaitestdéclenché
etleboutonainsiquelestroisboutonsradiosontrendusinactifs.

PeterDAEHNE&JohannSIEVERING2/3Version1.0
Propriétés
numero:Lenumérodelaquestion.
libelle:Lelibellédelaquestion.
libRep1:Lelibellédelaréponse1.
libRep2:Lelibellédelaréponse2.
libRep3:Lelibellédelaréponse3.
numRepCorrecte:Lenumérodelaréponsecorrecte.Lesetterdecettepropriétédoitêtreconçudetellesorte
qu’onaittoujours1numRepCorrecte3.Sileclientnerespectepascettecontrainte,le
settermodifielavaleuraffectéepourquelacontraintesoitrespectée,sansautreavertissement
pourleclient(nimessage,niException).
Événement
L’événementchoixFaitestdéclenchéaprèsappuisurlebouton.L’instancedeQuestionQcmEvent
transmiseàchoixFaitmémoriselenumérodelaquestionetunevaleurbooleanindiquantsilechoixquiaété
faitétaitcorrectounon(true=choixcorrect,false=choixfaux).
Spécificationsdel’applicationdetest
Lecomposantmy.awt.QuestionQcmestmisenœuvredanslecadred’uneapplicationdetestpermettantd’en
vérifierlefonctionnement(comportement,propriétés,événement).
L’applicationconsisteenunQCMconstituédedeuxquestions.Tantquelesdeuxquestionsnesontpasvalidées,le
texte«Testencours»estaffiché.Dèsquelesdeuxchoixontétéeffectués,lerésultatdutestestaffiché(0/2,1/2ou
2/2).Danslecaslesdeuxréponsessontcorrectes,lemessage«Bravo!»estégalementaffiché.
Lescopiesd’écrancidessousdéfinissentlamaquettedelafenêtrequevousdevezréaliseretprésententégalement
quelquesétatspossiblesdecettefenêtre.


PeterDAEHNE&JohannSIEVERING3/3Version1.0
Élémentsfournis
LeprojetNetBeans634.1CC2QuestionQcmquicontientlecomposantàdévelopper.Lesquelettedelaclasseà
développeradéjàétédéfinietledesigndujava.awt.Paneladéjàétéeffectué.
LeprojetNetBeans634.1CC2TestQuestionQcmquicontientl’applicationdetest.Ledesigndelafenêtreadéjàété
effectué(sanslescomposantsreprésentantlesquestions,biensûr).
LefichiertexteQuestions&Réponses.txtquicontientleslibellésetlesréponsesdesdeuxquestionsduprogramme
detest.Vouspouvezainsiouvrircefichieravecunéditeurdetexteetcopier/collerceslibellésdanslespropriétés
descomposants(celavouséviteraunedactylographiefastidieuse).
Àfaire
- Inscrivezvosnometprénomainsiquelenumérodupostedetravailquevousoccupezàl’endroitprévuàceteffet
danslecommentaired’entêtedesdeuxclassesquevousdevezcompléter.
- Inscrivezvosnometprénomainsiquelenumérodupostedetravailquevousoccupezdanslecommentaire
d’entêtedetouteslesclassessupplémentairesquevouscréez.
- Implantezlecomposantmy.awt.QuestionQcmenrespectantlesspécificationsdonnéesplushaut.
- Implantezl’applicationdetest(classepresentation.TestQcm)enrespectantlesspécificationscidessus.
- Contraintesimpératives:
Danslaclassemy.awt.QuestionQcm,vousn’avezledroitdemodifierniladispositiondescomposants,nileur
visibilité,nileurnom.
Danslaclassepresentation.TestQcm,vousn’avezledroitdemodifierniladispositiondescomposants
existants,nileurvisibilité,nileurnom.Vousdevrezparcontreajouterdeuxcomposantsmy.awt.QuestionQcm.
Toutaulongdudéveloppementdevotreapplication,vousmettrezenœuvrelesconventionsetlesbonnes
pratiquesdeprogrammationainsiquelesprincipesdelaprogrammationobjetquevousavezétudiés.
Indication
- Aucoursdudéveloppementdel’applicationdetest,assurezvousdetoujoursdisposerdeladernièreversiondu
composant.Aprèsd’importantesmodificationsducomposantmy.awt.QuestionQcm,n’hésitezpasàsupprimerles
composantsdel’applicationdetestavantdelesremettre(vousêtesainsicertainsqu’ils’agitdeladernièreversiondu
composantquiestreprésentédansl’IDE).
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 !