TP-programmation-imperative/tp06/stocks_materiel.ads
2023-06-10 21:03:54 +02:00

63 lines
1.7 KiB
Ada
Executable file

-- Auteur:
-- Gérer un stock de matériel informatique.
package Stocks_Materiel is
CAPACITE : constant Integer := 10; -- nombre maximum de matériels dans un stock
type T_Nature is (UNITE_CENTRALE, DISQUE, ECRAN, CLAVIER, IMPRIMANTE);
type t_Materiel is limited private;
type T_Array is array (1..CAPACITE) of T_Materiel;
type T_Stock is limited private;
procedure Creer (Stock : out T_Stock) with
Post => Nb_Materiels (Stock) = 0;
function Nb_Materiels (Stock: in T_Stock) return Integer with
Post => Nb_Materiels'Result >= 0 and Nb_Materiels'Result <= CAPACITE;
procedure Enregistrer (
Stock : in out T_Stock;
Numero_Serie : in Integer;
Nature : in T_Nature;
Annee_Achat : in Integer
) with
Pre => Nb_Materiels (Stock) < CAPACITE,
Post => Nb_Materiels (Stock) = Nb_Materiels (Stock)'Old + 1;
function Nb_Materiels_DEAD (Stock: in T_Stock) return Integer with
Post => Nb_Materiels_DEAD'Result >= 0 and Nb_Materiels_DEAD'Result <= CAPACITE;
procedure change_state (Stock: in out T_Stock; state: in Boolean; identifiant: in Integer);
procedure supprimer_materiel (stock: in out T_Stock; identifiant: in Integer);
procedure supprimer_all_dead (stock: in out T_Stock);
private
type T_Materiel is
record
ID: Integer := -1;
Nature: T_Nature;
Annee: Integer;
Etat: Boolean;
end record;
type T_Stock is
record
Elements: T_Array;
Taille: Integer := 0;
end record;
end Stocks_Materiel;