Шукаєте відповіді та рішення тестів для INF111-01 Programmation orientée-objet (hors programme) (H2025)? Перегляньте нашу велику колекцію перевірених відповідей для INF111-01 Programmation orientée-objet (hors programme) (H2025) в ena.etsmtl.ca.
Отримайте миттєвий доступ до точних відповідей та детальних пояснень для питань вашого курсу. Наша платформа, створена спільнотою, допомагає студентам досягати успіху!
Votre réponse à la question 3 : Swing et Observer
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
// Interface de l'observateur :
interface
Observateur{
void seMettreAJour();
}
// La classe Observable :
public class
Observable{
private List<Observateur> observateurs = new ArrayList<>();
public void ajouterObservateur(Observateur observateur) {
observateurs.add(observateur);
}
private void notifierObservateurs() {
for (Observateur observateur : observateurs) {
observateur.
;
}
}
}
// La classe Model pour les étudiants joue le rôle de l'Observable
public class
EtudiantModel{
private List<String> etudiants = new ArrayList<>();
public void ajouterEtudiant(String etudiant) {
etudiants.add(etudiant);
notifierObservateurs();
}
public void supprimerEtudiant(int selectedIndex) {
etudiants.remove(selectedIndex);
notifierObservateurs();
}
public List<String> getEtudiants() {
return
;
}
}
// La classe View pour afficher la liste des étudiants
public class
EtudiantView extends JFrame{
private EtudiantModel model;
private DefaultListModel<String> etudiantListModel;
private JList<String> etudiantList;
public EtudiantView(EtudiantModel model) {
this.model = model;
model.ajouterObservateur(this);
this.
("Gestion des Étudiants");
this.setDefaultCloseOperation(JFrame.
);
this.setSize(600, 300);
this.setLocation(500,500);
this.setLayout(new BorderLayout());
etudiantListModel = new DefaultListModel<>();
etudiantList = new JList<>(
);
etudiantList.setBorder(BorderFactory.createTitledBorder("Liste des Étudiants"));
etudiantList.
(Color.LIGHT_GRAY);
this.add(etudiantList, BorderLayout.CENTER);
this.
;
}
@Override
public void
{
etudiantListModel.clear();
for (String etudiant : model.getEtudiants()) {
etudiantListModel.addElement(etudiant);
}
}
public JList<String> getEtudiantList() {
return
;}
}
// La classe Controleur pour gérer les interactions :
public class
EtudiantControllerimplements ActionListener {
private EtudiantModel model;
private JTextField nomEtudiantField;
private JTextField phoneEtudiantField;
private JButton ajouterButton, supprimerButton;
public EtudiantController(EtudiantModel model, EtudiantView view) {
this.model = model;
JPanel controlPanel = new JPanel(new
(4, 2));
// Champ de saisie pour le nom
nomEtudiantField = new JTextField();
controlPanel.add(new
("Nom de l'Étudiant:"));
controlPanel.add(nomEtudiantField);
// Champ de saisie pour le numéro de téléphone
phoneEtudiantField = new JTextField();
controlPanel.add(new
("Numéro de Téléphone:"));
controlPanel.add(phoneEtudiantField);
ajouterButton = new JButton("Ajouter un étudiant");
controlPanel.add(ajouterButton);
ajouterButton.
(this);
// Bouton pour supprimer un contact
supprimerButton = new JButton("Supprimer un étudiant");
controlPanel.add(supprimerButton);
supprimerButton.
(this);
view.add(
, BorderLayout.NORTH);
}
@Override
public void
(ActionEvent evt) {
Object source = evt.getSource();
if (source==ajouterButton) {
String nomEtudiant = nomEtudiantField.getText();
String phoneEtudiant = phoneEtudiantField.getText();
if (!nomEtudiant.isEmpty() && !phoneEtudiant.isEmpty()) {
model.ajouterEtudiant(nomEtudiant + " - " + phoneEtudiant);
nomEtudiantField.setText("");
phoneEtudiantField.setText("");
}
}
else if (source==supprimerButton) {
int selectedIndex = view.getEtudiantList().getSelectedIndex();
if (selectedIndex != -1) {
model.supprimerEtudiant(selectedIndex);
}
}
}
}
// Classe principale pour démarrer l'application
public class
GestionEtudiantstApp{
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
EtudiantModel model = new EtudiantModel();
EtudiantView view = new EtudiantView(model);
new EtudiantController(model, view);
});
}
}
Votre réponse à la question 4.7 : Compléter la définition de la classe FeuilleExamen en complétant :
Votre réponse à la question 4.6 : Compléter la définition de la classe Examen qui dérive (hérite) de Activite en complétant :
Votre réponse à la question 4.5 : Compléter la définition de la classe QuestionMultiple qui dérive (hérite) de Question en complétant :
Votre réponse à la question 4.4 : Compléter la définition de la classe QuestionUnique qui dérive (hérite) de Question en complétant :
Votre réponse à la question 4.3 :Compléter la définition de la classe abstraite Question qui dérive (hérite) de Activite et implémente l’interface Evaluable. La classe Question comporte 3 nouveaux attributs dont 2 sont privés et 1 est protégé. Vous devez définir le constructeur qui reçoit les valeurs initiales de tous les attributs et les accesseurs aux attributs privés (pas protégé) :
Votre réponse à la question 4.2 :Compléter la définition de la méthode estMalFormee() de la classe Reponse. Une réponse est mal formée lorsqu’elle contient 2 éléments identiques ::
Votre réponse à la question 3 : Swing et Observer
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
// Interface de l'observateur :
interface
Observateur{
void seMettreAJour();
}
// La classe Observable :
public class
Observable{
private List<Observateur> observateurs = new ArrayList<>();
public void ajouterObservateur(Observateur observateur) {
observateurs.add(observateur);
}
private void notifierObservateurs() {
for (Observateur observateur : observateurs) {
observateur.{1:MCS:=seMettreAJour()~update()~updateObserver()};
}
}
}
// La classe Model pour les étudiants joue le rôle de l'Observable
public class
EtudiantModel{1:MCS:=extends~implements~inherits} {1:MCS:=Observable~Observer~Model} {
private List<String> etudiants = new ArrayList<>();
public void ajouterEtudiant(String etudiant) {
etudiants.add(etudiant);
notifierObservateurs();
}
public void supprimerEtudiant(int selectedIndex) {
etudiants.remove(selectedIndex);
notifierObservateurs();
}
public List<String> getEtudiants() {
return {1:MCS:=etudiants~observateurs};
}
}
// La classe View pour afficher la liste des étudiants
public class
EtudiantViewextends JFrame {1:MCS:=implements~extends~inherits} {1:MCS:=Observateur~Observer~Observable}{
private EtudiantModel model;
private DefaultListModel<String> etudiantListModel;
private JList<String> etudiantList;
public EtudiantView(EtudiantModel model) {
this.model = model;
model.ajouterObservateur(this);
this.{1:MCS:=setTitle~setText~putTitle}("Gestion des Étudiants");
this.setDefaultCloseOperation(JFrame.{1:MCS:=EXIT_ON_CLOSE~HIDE_ON_CLOSE~QUIT_ON_CLOSE});
this.setSize(600, 300);
this.setLocation(500,500);
this.setLayout(new BorderLayout());
etudiantListModel = new DefaultListModel<>();
etudiantList = new JList<>({1:MCS:=etudiantListModel~Etudiants~model.getEtudiants()});
etudiantList.setBorder(BorderFactory.createTitledBorder("Liste des Étudiants"));
etudiantList.{1:MCS:=setBackground~setColor~backgroundColor}(Color.LIGHT_GRAY);
this.add(etudiantList, BorderLayout.CENTER);
this.{1:MCS:=setVisible(true)~displayWindow(true)~makeVisible(true)};
}
@Override
public void {1:MCS:=seMettreAJour()~notifierObservateurs()~notifyObserver()} {
etudiantListModel.clear();
for (String etudiant : model.getEtudiants()) {
etudiantListModel.addElement(etudiant);
}
}
public JList<String> getEtudiantList() {
return {1:MCS:=etudiantList~etudiantListModel~etudiants};}
}
// La classe Controleur pour gérer les interactions :
public class
EtudiantControllerimplements ActionListener {
private EtudiantModel model;
private JTextField nomEtudiantField;
private JTextField phoneEtudiantField;
private JButton ajouterButton, supprimerButton;
public EtudiantController(EtudiantModel model, EtudiantView view) {
this.model = model;
JPanel controlPanel = new JPanel(new {1:MCS:=GridLayout~FlowLayout~BorderLayout}(4, 2));
// Champ de saisie pour le nom
nomEtudiantField = new JTextField();
controlPanel.add(new {1:MCS:=JLabel~JText~JTitle}("Nom de l'Étudiant:"));
controlPanel.add(nomEtudiantField);
// Champ de saisie pour le numéro de téléphone
phoneEtudiantField = new JTextField();
controlPanel.add(new {1:MCS:=JLabel~JText~JTitle}("Numéro de Téléphone:"));
controlPanel.add(phoneEtudiantField);
ajouterButton = new JButton("Ajouter un étudiant");
controlPanel.add(ajouterButton);
ajouterButton.{1:MCS:=addActionListener~addActionPerformed~actionPerformed}(this);
// Bouton pour supprimer un contact
supprimerButton = new JButton("Supprimer un étudiant");
controlPanel.add(supprimerButton);
supprimerButton.{1:MCS:=addActionListener~addActionPerformed~actionPerformed}(this);
view.add({1:MCS:=controlPanel~ajouterButton~supprimerButton}, BorderLayout.NORTH);
}
@Override
public void {1:MCS:=actionPerformed~addActionListener~addActionPerformed}(ActionEvent evt) {
Object source = evt.getSource();
if (source==ajouterButton) {
String nomEtudiant = nomEtudiantField.getText();
String phoneEtudiant = phoneEtudiantField.getText();
if (!nomEtudiant.isEmpty() && !phoneEtudiant.isEmpty()) {
model.ajouterEtudiant(nomEtudiant + " - " + phoneEtudiant);
nomEtudiantField.setText("");
phoneEtudiantField.setText("");
}
}
else if (source==supprimerButton) {
int selectedIndex = view.getEtudiantList().getSelectedIndex();
if (selectedIndex != -1) {
model.supprimerEtudiant(selectedIndex);
}
}
}
}
// Classe principale pour démarrer l'application
public class
GestionEtudiantstApp{
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
EtudiantModel model = new EtudiantModel();
EtudiantView view = new EtudiantView(model);
new EtudiantController(model, view);
});
}
}
Votre réponse à la question 4.1 : Implémenter la classe abstraite Activite :
Votre réponse à la question 2.2 : Chainage
La classe Noeud suivante représente des nœuds d'une structure chainée, telle que les listes chainées :
class Noeud { Object donnee; Noeud suivant; Noeud(Noeud next, Object data) { this.donnee = data; this.suivant = next; }}
Donnez le code qui permet de passer de la situation A à la situation B suivantes. Votre code doit permettre de retirer 5 éléments d'une liste (du 2e au 6e élément). Les éléments retirés vont constituer une deuxième liste :
Отримайте необмежений доступ до відповідей на екзаменаційні питання - встановіть розширення Crowdly зараз!