stupid_coder <Dans le doute, reboot...> | Souviens toi, souviens toi, du 4 décembre 2006...
C'est le jour où j'ai posté "Tableau de record et de type énuméré".
Ma structure a évolué et j'ai un soucis...
Ci-dessous mon package gestion_fich_compte.ads.
Je déclare les types, les fonctions et les procédures.
Uniquement les fonctions et procedures dans le package body.
Je tiens à dire mercià Jovalise, pour son aide apporté dernièrement, mais je me suis ouvert les veines en voyant ton "petit programme de gestion", fmi... C'est une usine à gaz !
Pourquoi je parle de fmi ? Car je suis tombé sur ton prog en tapant quelques mots clés pour ma recherche...
Je retrouve mes petits comme t_compte ou t_rubrique... Comme quoi, à force de réinventer la roue, elle finie toujours par être ronde...
Et oui, ci-dessous un programme de gestion ! (rien à voir avec fmi... )
En quelques mots :
Nous avons un MENU qui propose de gérer des comptes.
Le compte est un record dun en-tete et dune liste de lignes.
La liste de ligne est un record d'un entier et d'un tableau de lignes comptables.
Chaque ligne comptable est un record d'une date, rubrique, mode de paiement et une valeur (float)
Les informations devraient êtres enregistrées dans un fichier « comptes.dat »
Les problèmes que je rencontre sont en commentaire.
Ils concernent comme le titre lindique, un type private et/ou access.
Le PRIVATE est bloquant, jen suis sure.
Merci à celles et à ceux qui peuvent m'apporter de l'aide, je continue à bosser dessus et suis en ligne si besoin.
Bonne soirée.
Code :
- WITH ada.Text_IO; use ada.Text_IO;
- PACKAGE gestion_fich_compte IS
-
- --les sous types id_banque et num_cpte sont des entiers contraints
- SUBTYPE Id_Bque IS Integer RANGE 100..500;
- SUBTYPE Num_cpte IS Integer RANGE 10000..30000;
-
- TYPE T_En_Tete IS
- RECORD
- Bk:Id_Bque;
- N_cpte:Num_cpte;
- Solde:Float:=0.0;
- END RECORD;
-
- --les sous type t_jour, t_mois et t_annee sont des eniters contraints
- SUBTYPE t_Jour IS Integer RANGE 1..31;
- SUBTYPE t_Mois IS Integer RANGE 1..12;
- SUBTYPE t_Annee IS Integer RANGE 1900..2100;
-
- --le type t_date est l'enregistrement d'un jour, d'un mois et d'une année
- TYPE T_Date IS
- RECORD
- j:t_Jour;
- m:t_Mois;
- A:t_Annee;
- END RECORD;
-
- --t_rubriques et t__mode_paiement sont des types énumérés
- TYPE T_Rubrique IS (loisirs, maison, salaire, voiture, divers );
- TYPE T_Mode_Paiement IS (cb, cheque, virement);
-
- --les lignes comptables sont créées grace à l'enregistrement d'une date, d'une rubrique, d'un mode de paiement et une valeur
- TYPE t_lignes IS
- RECORD
- Date:t_date;
- Rubrique:T_Rubrique;
- Mode:T_Mode_Paiement;
- Valeur:float;
- END RECORD;
-
- --un tableau de lignes comptables
- TYPE T_Tab_Lignes IS ARRAY (1..10) OF T_Lignes;
- --/!\------------------------------------
- TYPE T_ListesLignes IS RECORD --
- Nb: Integer:=0; -- Je comprends pas ce record...il est utile pour identifier un tableau de lignes ?
- T:T_Tab_Lignes; --
- END RECORD; --
- --/!\-----------------------------------
-
- TYPE T_Cpte IS RECORD
- En_Tete:T_En_Tete;
- Listes:T_ListesLignes;
- END RECORD;
-
- --une banque un tableau de compte
- TYPE T_Banque IS ARRAY(1..10) OF T_Cpte;
-
- --creation de 2 packages pour rendre compatible les types enumeres t_rubrique et t_mode_paiement
- PACKAGE rubrique_Enumeration_Io IS NEW Enumeration_Io(t_rubrique);
- USE rubrique_Enumeration_Io;
-
- PACKAGE Mode_Paiement_Enumeration_Io IS NEW Enumeration_Io(T_Mode_Paiement);
- USE Mode_Paiement_Enumeration_Io ;
-
- -- PROCEDURE Creer_Compte; -- avec le nouveau T_ListesLignes je me melange dans les parametres formels... c'est bien creer_cpte(e:t_en_tete) ?
- -- PROCEDURE Afficher_Compte;
- -- PROCEDURE Modifier_Compte;
- PROCEDURE Menu_Principal;
- PROCEDURE Suivi_Banquaire;
-
- generic
- TYPE Enregistrement_Cpte IS PRIVATE; --rappelez moi ? c'est un type qui n'est pas vu par le client... alors ?
-
- private
- TYPE Cellule;
- TYPE Pt_Cellule IS ACCESS Cellule;
- TYPE Cellule IS RECORD
- Num:Positive;
- Contenu:Enregistrement_Cpte;
- Suivant:Pt_Cellule;
- END RECORD;
-
- end gestion_fich_compte;
|
---------------
...pour les miracles ? prévoir un délai !
|