0% ont trouvé ce document utile (0 vote)
13 vues8 pages

Examen Java Gestion Publications 2024

Le document présente un examen de programmation Java pour la gestion des publications scientifiques d'un chercheur. Il inclut des instructions pour compléter le code d'une application simplifiée, ainsi que des classes pour représenter les chercheurs, les publications, et les indexeurs. Les concepts de visibilité des publications et d'évaluation des chercheurs, tels que l'H-index, sont également abordés.

Transféré par

zinebabrabri
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
13 vues8 pages

Examen Java Gestion Publications 2024

Le document présente un examen de programmation Java pour la gestion des publications scientifiques d'un chercheur. Il inclut des instructions pour compléter le code d'une application simplifiée, ainsi que des classes pour représenter les chercheurs, les publications, et les indexeurs. Les concepts de visibilité des publications et d'évaluation des chercheurs, tels que l'H-index, sont également abordés.

Transféré par

zinebabrabri
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

‭Nom‬‭:…………………………………………………………………‬

‭Prénom‬‭: ……………………………………………………………‬

‭Salle‬‭: …………………………………………...……………………‬

‭Code apogée‬‭:……………………………….……………………‬

‭Examen Java Session de Printemps 2024‬


‭SMI S6‬
‭Pr. Abdessamad Belangour‬
‭ ous‬ ‭souhaitons‬ ‭réaliser‬ ‭une‬ ‭petite‬ ‭application‬ ‭très‬ ‭simplifiée‬ ‭de‬ ‭gestion‬ ‭des‬ ‭publications‬
N
‭scientifiques‬ ‭d’un‬ ‭chercheur.‬ ‭Ainsi,‬ ‭lorsqu’un‬ ‭chercheur‬ ‭arrive‬ ‭à‬ ‭des‬ ‭résultats‬ ‭scientifiques‬
‭importants,‬ ‭il‬ ‭rédige‬ ‭un‬ ‭article‬ ‭et‬ ‭le‬ ‭publie‬ ‭soit‬ ‭dans‬ ‭une‬ ‭conférence,‬ ‭sois‬ ‭dans‬ ‭un‬ ‭journal‬
‭scientifique‬‭(revue‬‭scientifique).‬‭Pour‬‭simplifier‬‭nous‬‭allons‬‭considérer‬‭qu’une‬‭publication‬‭ne‬
‭dispose que d’un seul auteur.‬
‭Pour‬ ‭qu’une‬ ‭publication‬ ‭soit‬ ‭le‬ ‭plus‬ ‭visible‬ ‭possible,‬ ‭des‬ ‭sites‬ ‭bibliographiques‬ ‭spéciaux‬
‭(appelés‬ ‭Indexeurs)‬ ‭répertorient,‬ ‭organisent‬ ‭et‬ ‭indexent‬ ‭ces‬ ‭publications‬ ‭provenant‬ ‭de‬
‭diverses‬‭conférences‬‭et‬‭journaux‬‭à‬‭travers‬‭le‬‭monde.‬‭Ainsi‬‭chaque‬‭chercheur‬‭est‬‭identifié‬‭et‬
‭son‬‭travail‬‭est‬‭diffusé‬‭et‬‭évalué‬‭à‬‭travers‬‭un‬‭ensemble‬‭d’indicateurs‬‭(nombre‬‭de‬‭publications,‬
‭nombre‬‭de‬‭citations,‬‭H-index‬‭et‬‭autres).‬‭Un‬‭chercheur‬‭à‬‭un‬‭h-index‬‭de‬‭10,‬‭par‬‭exemple,‬‭si‬‭au‬
‭moins 10 de ses publications ont été cités 10 fois.‬

‭Le diagramme de classe de cette application est comme suit :‬

‭Compléter le code qui manque :‬


‭ ublic class Indexeur {‬
p
‭private String nom;‬
‭private Map<Integer, Publication> articles;‬
‭public Indexeur(String nom) {‬
‭[Link]‬ ‭=‬ ‭……………………………………………………………………………………………………….…………….;‬
‭[Link]‬ ‭=‬ ‭…………………………………………………………………………………………………………………‬ ‭;‬
‭}‬
‭public Indexeur(String nom, Map<Integer, Publication> articles) {‬‭// founi‬‭}‬
‭public Publication recupererPublication(int doi) {‬
‭………………………………………………………………………………………………………………..……………………. ;‬
‭}‬

‭Page 1 sur 5‬
‭public boolean ajouterPublication(Publication p) {‬
‭…………………………………………………………………………………..………………………………………………………..‬
‭…………………………………………………………………………………..………………………………………………..……..‬
‭……………………………………………………………………..……………………………………………………………..……..‬
‭…………………………………………………………………..……………………………………………………………..………..‬
‭………………………………………………………………..………………………………………………………………..………..‬
‭……………………………………………………………..………………………………………………………………..………….. }‬
‭@Override‬
‭public String toString() {‬
‭return "Nom Indexeur=" + nom + ", Nombre articles=" + …………..……………………………………..;‬
‭}‬
‭}‬
/‭ / on suppose que les getters et setters sont fournis à part ceux qui sont‬
‭demandés‬‭public abstract class Publication implements‬
‭Comparable<Publication>{‬
‭private int doi;‬‭// document object identifier‬
‭private String titre;‬
‭private LocalDate année;‬
‭private Chercheur auteur;‬
‭private int nombreCitations;‬
‭private Map<Integer,Publication> citations;‬
‭// nouvelle publication non encore citée‬
‭public Publication(int doi, String titre, LocalDate‬‭année, Chercheur auteur)‬
‭{ [Link] = doi;‬
‭[Link] = titre;‬
‭[Link]ée = année;‬
‭[Link] = auteur;‬
‭[Link]‬ ‭=……………………………….…………………………………………………..‬ ‭;‬
‭[Link]=…………………………………………………………………………………………………..;‬
‭}‬
‭// nouvelle publication citée‬
‭public Publication(int doi, String titre, LocalDate‬‭année, Chercheur auteur, Map<Integer,‬
‭Publication> citations) {‬
‭[Link] = doi;‬
‭[Link] = titre;‬
‭[Link]ée = année;‬
‭[Link] = auteur;‬
‭[Link] = ……………………………………………………………………………………. ;‬
‭[Link] = ………………………………………………………………………………………………….. ;‬
‭}‬
‭public void setCitations(Map<Integer, Publication> citations) {‬
‭………………………………………………………………………………………………….. ;‬
‭………………………………………………………………………………………………….. ;‬
‭}‬
‭public boolean ajouterCitation(Publication pub){‬
‭…………………………………………………………………………………..………………………………………………………..‬
‭…………………………………………………………………………………..……………………………………………………..‬
‭……………………………………………………………………..…………………………………………………………………..‬
‭…………………………………………………………………..……………………………………………………………………..‬
‭………………………………………………………………..………………………………………………………………………..‬

‭Page 2 sur 5‬
‭ …………………………………………………………..…………………………………………………………………………..‬

‭}‬
‭public boolean supprimerCitation(Publication pub){‬‭//fournie en cas de‬
‭besoin‬‭}‬‭//retourne le titre l’année et le nombre de‬‭citations‬
‭@Override‬
‭public String toString() {‬
‭………………………………………………………………..………………………………………………………………………..‬
‭……………………………………………………………..…………………………………………………………………………..‬
‭}‬
‭// comparer par nombre de citations, sinon par année sinon par titre‬
‭@Override‬
‭public int compareTo(Publication autrePublication) {‬
‭…………………………………………………………………………………..………………………………………………………..‬
‭…………………………………………………………………………………..……………………………………………………..‬
‭……………………………………………………………………..…………………………………………………………………..‬
‭…………………………………………………………………..……………………………………………………………………..‬
‭………………………………………………………………..………………………………………………………………………..‬
‭……………………………………………………………..…………………………………………………………………………..‬
‭…………………………………………………………………………………..………………………………………………………..‬
‭…………………………………………………………………………………..……………………………………………………..‬
‭……………………………………………………………………..…………………………………………………………………..‬
‭…………………………………………………………………..……………………………………………………………………..‬
‭………………………………………………………………..………………………………………………………………………..‬
‭……………………………………………………………..…………………………………………………………………………..‬

}‭ ‬
‭}‬

‭public class ArticleConference extends Publication {‬


‭private String conference;‬
‭private String ville;‬
‭private String pays;‬
‭public ArticleConference(String conference, String ville, String pays, int doi, String‬
‭titre, LocalDate année) { // fourni en cas de besoin}‬

‭ ublic ArticleConference(String conference, String ville, String pays, int doi, String‬
p
‭titre, LocalDate année, Chercheur auteur) {‬
‭……………………………………………………………..………………………………………………………………………‬
‭…..‬
‭……………………………………………………………..………………………………………………………………………‬
‭…..‬
‭……………………………………………………………..………………………………………………………………………‬
‭…..‬
‭……………………………………………………………..………………………………………………………………………‬
‭….. }‬
‭public ArticleConference(String conference, String ville, String pays, int doi, String‬
‭titre, LocalDate année, Chercheur auteur, Map<Integer, Publication> citations) {‬‭//‬
‭fourni‬‭}‬ ‭//retourne le nom de la conférence, le titre‬‭l’année et le nombre de citations‬
‭@Override‬
‭public String toString() {‬
‭…………………………………………………………………………..………………………………………………………………………‬
‭…..‬
‭ ………………………………………………………………………..………………………………………………………………………‬

‭….. }‬
‭}‬

‭Page 3 sur 5‬
‭public class ArticleJournal extends Publication {‬
‭private String journal;‬
‭private int volume;‬
‭private int nombre;‬
‭// tout est fourni pour cette classe (Constructeurs,‬‭getters et setters, toString())‬‭}‬
/‭ / on suppose que les getters et setters sont fournis‬
‭public class Chercheur {‬
‭private String nom;‬
‭private String prenom;‬
‭private String laboratoire;‬
‭private String université;‬
‭private int nombrePublications;‬
‭private int totalCitations;‬
‭private int h_index;‬
‭private Set<Publication> publications;‬
‭// nouveau chercheur sans publications‬
‭public Chercheur(String nom, String prenom, String‬‭laboratoire, String université) {‬‭//‬
‭fourni‬‭}‬ ‭// nouveau chercheur avec publications‬
‭public Chercheur(String nom, String prenom, String‬‭laboratoire, String‬
‭université, Set<Publication> publications) {‬
‭……………………………………………………………..…………………………………………………………………………….……‬
‭…..‬
‭……………………………………………………………..……………………………………………………………………….…………‬
‭…..‬
‭……………………………………………………………..………………………………………………………………………………..‬
‭……………………………………………………………..…………………………………………………………………………………‬
‭…..‬
‭……………………………………………………………..…………………………………………………………………………………‬
‭…..‬
‭……………………………………………………………..…………………………………………………………………………………‬
‭…..‬
‭……………………………………………………………..……………………………………………………………………………..‬
‭……………………………………………………………..……………………………………………………………..…………………‬
‭….. }‬
‭public void ajouterPublication(Publication nouvellePublication) {‬
‭……………………………………………………………..……………………………………………………………………………..‬
‭…..‬
‭……………………………………………………………..………………………………………………………………………..……‬
‭…..‬
‭……………………………………………………………..…………………………………………………………………………..‬
‭……………………………………………………………..…………………………………………………………………..…………‬
‭…..‬
‭……………………………………………………………..………………………………………………………………………………‬
‭….. }‬
‭public void ajouterArticleJournal(String journal, int volume, int nombre, int doi, String‬
‭titre, LocalDate année, Chercheur auteur, Map<Integer, Publication> citations) {‬
‭……………………………………………………………..………………………………………………………………………………‬
‭…….‬
‭……………………………………………………………..…………………………………………………………………………….…‬
‭……‬
‭……………………………………………………………..…………………………………………………………………………………‬
‭….‬
‭……………………………………………………………..…………………………………………………………………………….…‬
‭…..‬
‭……………………………………………………………..…………………………………………………………………………………‬
‭…. }‬
‭//donner le code de cette méthode en utilisant les streams‬
‭public void ajouterArticleConference(String conference,‬‭String ville, String pays, int doi,‬
‭String titre, LocalDate année, Chercheur auteur, Map<Integer, Publication> citations){‬
‭Page 4 sur 5‬
‭ …………………………………………………………..…………………………………………………………………………………..‬

‭…..‬
‭……………………………………………………………..……………………………………………………………………..……………‬
‭…..‬
‭……………………………………………………………..…………………………………………………………….……………………‬
‭….. }‬
‭public int nombrePublications()‬
‭{……………………………………………………………………………………….. ;} private int‬
‭nombreCitations() {‬
‭……………………………………………………………..……………………………………………………………………………………‬
‭…..‬
‭……………………………………………………………..…………………………………………………………………………..………‬
‭……‬
‭………………………………………………..………………………………………………………………………………………………..‬
‭…..‬
‭……………………………………………………………..………………………………………..……………….…………………………‬
‭…..‬
‭……………………………………………………………..……………………………………………………………………………………‬
‭….. }‬
‭public int nombreArticlesJournaux() {‬
‭……………………………………………………………..……………………………………………………………………………………‬
‭..‬
‭……………………………………………………………..…………………………………………………………………………..………‬
‭……‬
‭………………………………………………..………………………………………………………………………………………………..‬
‭…..‬
‭……………………………………………………………..……………………………………………………………………………………‬
‭..‬
‭……………………………………………………………..…………………………………………………….……………………………‬
‭…..‬
‭……………………………………………………………..……………………………………………….…………………………………‬
‭…..‬
‭……………………………………………………………..……………………………………………..……………………………………‬
‭….. }‬
‭public int nombreArticlesConferences() {‬‭// fournie‬‭}‬

/‭ * retourne le nom du chercheur, le nombre de publications, le nombre total de citations,‬


‭le h-index, le nombre d’article journaux et le nombre d’articles conférences */‬‭@Override‬
‭public String toString() {‬
‭……………………………………………………………..…………………………………………………………………………‬
‭.. ;‬
‭……………………………………………………………..…………………………………………………………………………‬
‭.. ;‬
‭……………………………………………………………..…………………………………………………………………………‬
‭.. ;‬
‭……………………………………………………………..…………………………………………………………………………‬
‭.. ;‬
‭……………………………………………………………..…………………………………………………………………………‬
‭.. ;‬
‭……………………………………………………………..…………………………………………………………………………‬
‭.. ; }‬
‭ ublic int calculerHindex() {‬
p
‭……………………………………………………………..………………………………………………………………………………‬
‭.. ;‬
‭……………………………………………………………..………………………………………………………………………….. ;‬
‭……………………………………………………………..………………………………………………………………………….. ;‬
‭……………………………………………………………..………………………………………………………………………….. ;‬
‭……………………………………………………………..………………………………………………………………………….. ;‬
‭……………………………………………………………..………………………………………………………………………….. ;‬
‭……………………………………………………………..………………………………………………………………………….. ;‬
‭……………………………………………………………..………………………………………………………………………….. ;‬
‭……………………………………………………………..………………………………………………………………………….. ;‬
‭……………………………………………………………..………………………………………………………………………….. ;‬
‭……………………………………………………………..………………………………………………………………………….. ;‬
‭……………………………………………………………..………………………………………………………………………….. ;‬
‭}‬
‭}‬

‭Page 5 sur 5‬

Vous aimerez peut-être aussi