Groups | Search | Server Info | Login | Register
Groups > fr.comp.lang.java > #1831
| From | Yliur <yliur@free.fr> |
|---|---|
| Newsgroups | fr.comp.lang.java |
| Subject | Re: Programme spreadsheet Java |
| Date | 2021-06-15 09:49 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <sa9t46$lu8$1@dont-email.me> (permalink) |
| References | <EOqdnayiFsoqvVr9nZ2dnUU798zNnZ2d@giganews.com> |
Le Mon, 14 Jun 2021 04:26:15 -0500, henryd a écrit :
Bonjour
Pour commencer, je dirais que ce projet est sensiblement plus complexe
que le précédent, d'un point de vue algorithmique, modélisation ou
utilisation de bibliothèques (swing, pour l'interface graphique). Mieux
vaut sans doute être à l'aise avec le précédent avant de se lancer dedans.
Es-tu plutôt débutant en programmation ? Est-ce un projet qu'on t'a donné
ou bien un projet que tu as choisi de réaliser pour apprendre ?
> J’ai créé différentes classes : Programme (celle qui exécute le
> programme), Grid (représente le tableur), Node (la cellule), Value (la
> valeur d’une cellule),
Pourquoi ne stockes-tu pas le tableau gridArray dans un attribut de Grid,
au lieu de construire une structure complexe permettant de lier les
cellules les unes aux autres ? Il est plus simple d'accéder aux cellules
par leurs coordonnées.
> J’ai actuellement plusieurs points bloquants :
>
> - Le programme n’accepte pas que l’utilisateur rentre du texte, exemple
> des références de cellules, ex : (1,1) et des formules du type
> Moy((1,1), (2,3)).
> Pour le moment, mon programme n’accepte que des valeur numérique pour le
> moment, c’est surement du à ma gestion de l’erreur mais je n’arrive pas
> à trouver comment le résoudre et qu’il accepte du texte :
> catch(NumberFormatException e){
> System.out.println("e;e;Error: Not a number"e;e;);
> }
Comme je l'ai indiqué dans mon message dans l'autre fil de discussion,
laisse courir les exceptions : ne les capture pas comme ça. Le mieux est
de les laisser planter le programme, tu obtiendras une pile d'appels qui
t'indiquera (et nous indiquera, si tu ne sais pas quoi en faire) à quel
endroit précis le programme a planté.
> - Écrire le code pour importer les valeurs d’un fichier dans le tableur.
> La méthode loadFile permet d’importer un fichier table.txt dont Chaque
> valeur de cellule est séparée par un & et chaque ligne du fichier
> correspond à une ligne du tableur. Je pense que je vais parser le
> fichier ligne par ligne, faire un slip sur le caractère & et enregistrer
> les valeurs dans un array list. Puis insérer ces valeurs dans les
> cellules du tableur à la ligne correspondante. Je pense créer une
> méthode assignCells( array list) dans la classe Grid afin de réaliser
> ces opérations, est ce que cela vous semble correcte ?
Suivant comment ton code est agencé, tu n'as pas forcément besoin du
tableau (ArrayList) intermédiaire. Sinon oui, ça me paraît correct.
> - Calculer le résultat des formules dans les cellules. Exemple, si la
> valeur de la cellule (2,2) est (1,1) + 2, il faut calculer le résultat
> en remplaçant (1,1) avec sa valeur numérique. Idem pour les autres
> opérations arithmétiques : +, -,
> *, /, Somme, Moy. Pour le déclenchement des opérations, je pense faire
> une loop dans la classe Program qui va parcourir toutes les cellules du
> tableur et pour chaque cellule, parser le contenu et détecter s’il y a
> s’agit d’un opération avec un opérateur (+, -, *, /, Somme, Moy) et si
> c’est le cas, réaliser le calcul. Pour le calcul, je pense créer les
> méthodes add, substract, multiply, divide, Sum, Mean dans la classe
> Grid. Est ce que cela vous semble judicieux ?
Non, a priori.
Mais surtout : si tu débutes en programmation, l'analyse syntaxique des
formules, l'exécution de formules et la modélisation des liens entre
cellules pour détecter les cycles et les mises à jour à réaliser, ça me
paraît un peu tendu : il y a pas mal de travail d'algorithmique et de
modélisation. Et dans tous les cas c'est à réaliser (l'analyse syntaxique
et la modélisation des formules au moins) avant de se demander comment
les calculer. Tu n'as jamais eu aucun cours sur ces sujets ?
> - Représentation graphique de la table. Comment connecter le tableur
> avec l’interface graphique UseCalcGUI et CalcGUI afin d’afficher les
> valeurs dans le layout de la fenêtre. Je ne suis pas encore très à
> l’aise avec JFrame et donc j’ai un peu de mal à comprendre comment avoir
> accès aux parties du Layout. Est ce que vous auriez des idées ?
Tu devrais avoir un tableau à deux dimensions représentant les valeurs de
la grille, et tu as un tableau à deux dimensions dans ta fenêtre (nommé
"tft") : quand tu veux mettre à jour la cellule (2,1), tu attrapes le
champ de saisie correspondant dans tft et tu modifies sa valeur. Tu n'as
pas besoin d'accéder aux autres éléments de la fenêtre pour cette mise à
jour.
Yliur
Back to fr.comp.lang.java | Previous | Next — Previous in thread | Next in thread | Find similar
Programme spreadsheet Java henryd <nospam_henry.dossot@gmail.com.invalid> - 2021-06-14 04:26 -0500
Re: Programme spreadsheet Java Yliur <yliur@free.fr> - 2021-06-15 09:49 +0000
Re: Programme spreadsheet Java henryd <nospam_henry.dossot@gmail.com.invalid> - 2021-06-15 13:25 -0500
Re: Programme spreadsheet Java Yliur <yliur@free.fr> - 2021-06-15 20:55 +0000
Re: Programme spreadsheet Java henryd <nospam_henry.dossot@gmail.com.invalid> - 2021-06-17 01:33 -0500
Re: Programme spreadsheet Java Yliur <yliur@free.fr> - 2021-06-17 08:35 +0000
csiph-web