FicheExercices-1 Fichier - Université Paris 1 Panthéon

publicité
UniversitéParis1–PanthéonSorbonne
ISI5–ArchitectureOO-L3MIAGE
1
Fiched’exercicesN°1
Pourchaqueexerciceci-dessous,fournirlecodeJava,ainsiquelamodélisationUML.Vouspouvez
utiliserpourcelaVisualParadigm1.
1) Analyser le code ci-dessous: est-ilconformeauxcritèresdequalitésénoncésencours? Si
non,critiqueretcorrigerlecode.Justifiervospositions.
1
2
3
4
5
6
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
publicclassEmploye{
Stringn,p;
publicvoidaddnom(Strings){n=s;}
publicStringgetnom(){returnn;}
publicvoidsetnom(Strings){n=s;}
publicStringgetprenom(){returnp;}
floatsal;float[]pr;
publicfloat[]getPrimes(){returnpr;}
publicvoidsetPrimes(float[]primes){pr=primes;};
publicvoidsetSalaire(floats){this.sal=s;}
publicfloatgetSalaire(){returnthis.sal;}
publicfloatgetSalaireFinal(){
floats=sal;
inti=0;
for(;;){
if(pr.length==i)break;
s+=pr[i++];}
returns;
}
publicEmploye(){
Scannersc=newScanner(System.in);
System.out.println("Nom?");n=sc.next();
System.out.println("Prénom?");p=sc.next();
sal=(float)1430.22;//smicen1/1/2013
}
publicintcompareTo(Objecto){
if(o!=null){returnthis.n.compareTo(((Employe)o).n);}
elsereturn0;
}
}
UniversitéParis1–PanthéonSorbonne
ISI5–ArchitectureOO-L3MIAGE
2
2) Définir une classe Etudiant, représentant une personne qui étudie au collègue. Comme
n’importequellepersonne,unétudiantaucollègueaunnom,unprénom,untéléphoneet
une adresse de contact. Il a aussi 4 notes au cours de l’année. On doit pouvoir calculer la
moyenne de l’étudiant. Si cette moyenne est supérieure à 10, l’étudiant est ADMIS
(résultat="admis"),sinonilestNONADMIS.
Réaliser une application qui demande à l’utilisateur final les notes d’un étudiant et qui
afficheensuites’ilestadmisoupas.
3) Modéliseretimplémenterunecalculetteavecdeuxopérations«+»et«-».
4) Etendrelaversion1delacalculette(exerciceprécédent),sansmodifierlecodeexistant,afin
desupporterlesopérationsde«*»etde«/».
Exercicesàrendre:
5) Construire une classe TableauObjets, représentant un tableau d’objets et respectant les
indicationssuivantes:
a.
b.
c.
d.
Lenombredecasesdoitêtrefixe,fourniparl’utilisateur(taille);
L’accèsauxcasesestdirect,àpartirdeleurindice;
Lesindicesdescasesvariententre0ettaille-1;
L’utilisateur décide lui-même de comment remplir les cases et dans quelle ordre
grâceauxindices;
e. Letableaudoitpouvoircomporterdesobjetsjavaden’importequelleclasse,mais
touslesobjetsdoiventapparteniràuneseuleetuniqueclasse;
f. Ilestinterditd’utiliserlescollectionsdéfiniesdansjava.util.*(ArrayList,Vector…)
Apartirdelaclasseproposée,répondreauxquestionssuivantes:
a)
b)
c)
d)
Commentavez-vousfaitlagestiondescasesvides?
Commentavez-vousgérélasuppressiond’unecase?
Garantissez-vouslacontrainted’avoirunetaillequirestefixepourletableau?
Comment avez-vous fait pour assurer que tous les objets appartiennent à la
mêmeclasse?
6) Proposer une application qui teste les fonctionnalités de la classe TableauObjets et
notamment la suppression d’un élément au centre du tableau et l’insertion d’objets de
classesdistinctesdansunmêmetableau(parexemple,unobjetIntegeretunobjetString).
Apartirdel’applicationproposée,répondreàlaquestionsuivante:
a) La suppression d’un élément au centre du tableau est-elle différente de la
suppression d’un élément au début (le premier) ou à la fin (le dernier) du
tableau?Pourquoi?
UniversitéParis1–PanthéonSorbonne
ISI5–ArchitectureOO-L3MIAGE
3
1
Observations:
•
LemodèleUMLfournidoitcorrespondreaucodeJavaprésenté
•
Lorsqu’ilvousserademandéderendrel’exercice,vousdevezcompacterlatotalitéduprojet
NetBeans(ycomprisleprojetVisualParadigm)dansunfichierzipportantvotrenometle
numérodel’exercice.Exemple:Nom-Fiche1-Exercice1.zip
•
Lorsquedesquestionssontproposéesaveclesexercices,répondezàchaquequestiontout
audébutducodeJavaproposéàl’aidedescommentaires(/*…*/).
Téléchargement