63 lines
1.7 KiB
Ada
63 lines
1.7 KiB
Ada
|
|
||
|
-- 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;
|