Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1279 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  prob sérialisation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

prob sérialisation

n°1319829
quasarXXX1
Posté le 06-03-2006 à 22:07:36  profilanswer
 

Bonjour à tous,
 
 
Bon alors pour commencer je vous expose ma programmation.
Le programme consiste en la création d'une base de donnée qui charge les élèves dans une liste et dans laquelle on peut inscrire leurs notes.
 
j'ai donc créé une classe étudiant dans laquelle je défini certaines méthodes :
 

Citation :

class personne{
  String nom;
  String prenom;
   personne (){
    try {
      jbInit();
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }
   personne(String n,String p){
     nom=n;
     prenom=p;
   }
 
  private void jbInit() throws Exception {
  }
}
 
 
class etudiant extends personne{
  float NotesElec[];
  float notesInfo[];
 
  float p1;
  float p2;
  final int NbrNotesMax=10;
  int CompteurNotesElec=0;
  int CompteurNotesInfo=0;
 
 
   etudiant(){}
 
   etudiant(String n,String p){
     super(n,p);
     NotesElec=new float[NbrNotesMax];
     notesInfo=new float[NbrNotesMax];
   }
 
void AjoutNotesElec(float n){
  if(CompteurNotesElec<NbrNotesMax){
    NotesElec[CompteurNotesElec]=n;
    CompteurNotesElec ++;
  }}
 
void AjoutNotesInfo(float n){
  if(CompteurNotesInfo<NbrNotesMax){
    notesInfo[CompteurNotesInfo]=n;
    CompteurNotesInfo ++;
  }}
 
void MoyenneNotesElec(){
 
  float SommeNote=0;
for (int i=0;i<NbrNotesMax;i++){
  SommeNote=SommeNote+NotesElec[i];
 
  }
  p1=SommeNote/CompteurNotesElec;
 
}
 
 
void MoyenneNotesInfo(){
 
  float SommeNote=0;
 
 for (int i=0;i<NbrNotesMax;i++){
    SommeNote=SommeNote+notesInfo[i];
 
   }
   p2=SommeNote/CompteurNotesInfo;
 
}


 
 
et ensuite un applet dans lequel j'utilse ces méthodes:
 
 
il est composé d'une listeetudiant qui charge dans un fichier texte la liste des étudiant
de 2 textfields pour ajouter les notes de 2 matieres (donc 2 boutons pour l'ajout)
de 2 liste dans lesquelles s'insere les notes entrées
et de 2 autres textfields  (MnotesInfo et MnotesElec) pour calculer les moyenne en fonction des notes ajouter dans les listes.
 
Mon problème se situe au niveau du calcul de moyenne,la méthode de l'applet et la suivante :
 

Citation :

void Valider1_actionPerformed(ActionEvent e) {
 
   
 
  float Ne= Float.parseFloat(NotesInfo.getText());
  int position = listeEtudiant.getSelectedIndex();
  etudiant et = LesEtudiants[position];
  LesEtudiants[position].AjoutNotesInfo(Ne);
  listeInfo.add(NotesInfo.getText());


 
qui marche,cependan jai ajouter une methode pour suprimer une note selectionner dans une des 2listes de notes:
 

Citation :

public void SupprimeNote_actionPerformed(ActionEvent e) {
  String element = listeElec.getSelectedItem();
  listeInfo.remove(element);
  MnotesInfo.setText(" " );


 
 
et le calcul de moyenne ne reprend pas avec les éléments de la liste restant mais avec en memoire les éléments de la liste ayant déja été insérer puis supprimer par ma méthode.
Auriez-vous une méthode pour supprimer des éléments de la liste et recalculer la moyenne en fonction de ces seuls derniers.
 
Ma deuxième question concerne la sauvegarde,j'aurais besoin d'aide pour sauvegarder les notes de chacun des éléves dans un fichier texte extérieur (donc défini par leur nom et leur notes)
j'ai entendu parler d'une méthode par sérialisation,auriez-vous + de détails à ce sujet voir un exemple adapté à mon problème.
 
 
Merci d'avance de vos réponses et de votre aide.  :)   :)  
 

mood
Publicité
Posté le 06-03-2006 à 22:07:36  profilanswer
 

n°1319921
post_it
Hmmmm!...
Posté le 07-03-2006 à 09:23:22  profilanswer
 

Bonjour !
Dans ta méthode "SupprimeNote_actionPerformed()", tu ne fais que supprimer un élément dans la liste de ton interface graphique; en réalité tu ne retires rien de ton tableau "NotesElec[]" ou "notesInfo[]". Ces tableaux étant inchangés, ton calcul de moyenne (qui est basé sur ces tableaux) est donc inchangé également !

n°1320494
quasarXXX1
Posté le 07-03-2006 à 19:51:34  profilanswer
 

Merci de ta réponse mais c'est ce que je pensais avoir exprimer en disant :" et le calcul de moyenne ne reprend pas avec les éléments de la liste restant mais avec en memoire les éléments de la liste ayant déja été insérer puis supprimer par ma méthode."
 
Le problème étant que je n'arrive pas à trouver une méthode pour modifier ces tableaux justement.
Quelqu'un aurais-t-il une suggestion?
 
Merci

n°1320533
quasarXXX1
Posté le 07-03-2006 à 20:34:36  profilanswer
 

j'ai en effet besoin d'une méthode pour récupérer l'ensemble des élément de la liste un par un pour qu'il devienne des NotesElec[],je ne sais cependant pas du tout comment faire.
Y aurais-t-il un truc du genre :
 
 int position = listeEtudiant.getSelectedIndex();
  etudiant et = LesEtudiants[position];
et.notesElec=listeElec.getElement;
 
?????

n°1320712
post_it
Hmmmm!...
Posté le 08-03-2006 à 09:20:14  profilanswer
 

En utilisant "int position = listeEtudiant.getSelectedIndex()",
je pense que le mieux est de modifier le tableau NotesElec[] en décalant vers le haut toutes les notes comprises entre "position" et "CompteurNotesElec", ce qui va écraser la valeur que tu as retiré de la liste, puis de faire "CompteurNotesElec--;". Ca ressemblerait à ça :
 

Code :
  1. int position = listeEtudiant.getSelectedIndex();
  2. for( int i=position; i < (CompteurNotesElec-1) ; i++ )
  3. {
  4.     NotesElec[i] = NotesElec[i+1];
  5. }
  6. CompteurNotesElec--;


Message édité par post_it le 08-03-2006 à 09:20:47
n°1321343
quasarXXX1
Posté le 08-03-2006 à 21:10:54  profilanswer
 

Merci de ta reponse je pense que je devrais m'en sortir avec cette méthode. Mais en ce qui concerne la sérialisation des notes enregistrées pour chaque étudiant je n'ai vraiment aucune idée de la méthode à utiliser quelqu'un aurait -t-il un exemple adapté aux bases de données??

n°1321414
quasarXXX1
Posté le 08-03-2006 à 22:13:03  profilanswer
 

En réalité il n'est pas possible de procéder par cette méthode, car les éléments supprimer dans la liste peuvent être au milieu, à la fin ou au début.
Il faudrait en réalité que la méthode relise clairement les éléments de la liste un par un puis calcul la moyenne pour que cela marche.
Existe -t-il une méthode en java pour scanner les éléments d'une liste et les mettre dans un tableau??


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  prob sérialisation

 

Sujets relatifs
prob checkbox[RESOLU] PROB liste chainée d'objet push_back()
Prob g++Prob d'arret d'une boucle for sur scilab (rigoler pas je débute ;)
prob de feuille de routeORA-00955:ce nom dobjet existe déjà:prob ac ORACLE migration workbench
[prob VB]prob en php
prob formulaire sous dreamweaverProb de variables php dans requête mysql
Plus de sujets relatifs à : prob sérialisation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR