1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268
| unit distributeur;
interface
{DEBUT dÈclaration des diffÈrente classe}
type
Produit=class
Private
lelibelle:string;
lenbrest:integer;
lenbmax:integer;
leprix:integer;
Public
Constructor create(Unlibelle:string; Unnbrest:integer; Unnbmax:integer; Unprix:integer);
function get_prix():integer;
procedure maj_nbr(erreur:boolean); virtual;
end;
type
Accessoire=class(Produit)
Private
lamarque_acc:string;
Public
Constructor create(Unlibelle:string; Unnbrest:integer; Unnbmax:integer; Unprix:integer;Unemarque_acc:string );
procedure maj_nbr(erreur:boolean);override;
end;
type
Materiel=class(Produit)
Private
letype_mat:string;
Public
Constructor create(Unlibelle:string; Unnbrest:integer; Unnbmax:integer; Unprix:integer; Untype_mat:string );
procedure maj_nbr(erreur:boolean);override;
end;
type
Portemonnaie=class
Private
lavaleur:integer;
lenbr:integer;
lenbrmax:integer;
Public
Constructor create(Unevaleur:integer; Unnbr:integer; Unnbrmax:integer);
function get_valeur():integer;
function get_nbrpiece():integer;
function get_nbrmax():integer;
procedure ajout(Unnbpiece:integer);
procedure supp(Unnbpiece:integer);
end;
type
Distributeur_objet=class
Private
lesproduit:array[1..9]of Produit;
lesportemonnaie:array[1..5]of Portemonnaie;
Public
Constructor create2();
Constructor create(Unlibelle:string; Unnbrest:integer; Unnbmax:integer; Unprix:integer);
Function get_produit(Unlibelle:string;distributeur:Distributeur_objet):integer;
Function get_prix(Unevaleur:integer;distributeur:Distributeur_objet):integer;
Function get_total(distributeur:Distributeur_objet):integer;
Procedure maj_nbr2(Unlibelle:string;distributeur:Distributeur_objet;erreur:boolean);
end;
{FIN dÈclaration des diffÈrente class}
implementation
{DEBUT class PRODUIT}
constructor Produit.create(Unlibelle:string; Unnbrest:integer; Unnbmax:integer; Unprix:integer);
begin
lelibelle:=Unlibelle;
lenbrest:=Unnbrest;
lenbmax:=Unnbmax;
leprix:=Unprix;
end;
function Produit.get_prix():integer;
begin
result:=leprix;
end;
procedure Produit.maj_nbr(erreur:boolean);
begin
end;
procedure Materiel.maj_nbr(erreur:boolean);
begin
If lenbrest=0 then
begin
erreur:=true ;
end
else
begin
lenbrest:=lenbrest-1;
erreur:=false ;
end;
end;
procedure Accessoire.maj_nbr(erreur:boolean);
begin
If lenbrest=0 then
begin
erreur:=true ;
end
else
begin
lenbrest:=lenbrest-1;
erreur:=false ;
end;
end;
{FIN class PRODUIT}
{DEBUT class ACCESSOIRE}
constructor Accessoire.create(Unlibelle:string; Unnbrest:integer; Unnbmax:integer; Unprix:integer; Unemarque_acc:string);
begin
inherited create(Unlibelle,Unnbrest,Unnbmax,Unprix);
lamarque_acc:=Unemarque_acc;
end;
{FIN class ACCESSOIRE}
{DEBUT class MATERIEL}
constructor Materiel.create(Unlibelle:string; Unnbrest:integer; Unnbmax:integer; Unprix:integer; Untype_mat:string);
begin
inherited create(Unlibelle,Unnbrest,Unnbmax,Unprix);
letype_mat:=Untype_mat;
end;
{FIN class MATERIEL}
{DEBUT class PORTEMONNAIE}
Constructor Portemonnaie.create(Unevaleur:integer; Unnbr:integer; Unnbrmax:integer);
begin
lavaleur:=Unevaleur;
lenbr:=Unnbr;
lenbrmax:=Unnbrmax;
end;
function Portemonnaie.get_valeur():integer;
begin
result:=lavaleur;
end;
function Portemonnaie.get_nbrpiece():integer;
begin
result:=lenbr;
end;
function Portemonnaie.get_nbrmax():integer;
begin
result:=lenbrmax;
end;
procedure Portemonnaie.ajout(Unnbpiece:integer);
begin
lenbr:=lenbr+Unnbpiece;
end;
procedure Portemonnaie.supp(Unnbpiece:integer);
begin
lenbr:=lenbr-Unnbpiece;
end;
{FIN class PORTEMONNAIE}
{DEBUT class DISTRIBUTEUR}
Constructor Distributeur_objet.create2();
begin
lesproduit[1]:= Materiel.create('iPod Shuffle',0,20,50,'mp3');
lesproduit[2]:= Materiel.create('iPod Nano',5,100,150,'mp3');
lesproduit[3]:= Materiel.create('ipod Classic',5,20,250,'mp3');
lesproduit[4]:= Materiel.create('iTouch',5,20,350,'mp3');
lesproduit[5]:= Materiel.create('iPhone',5,400,450,'telephone');
lesproduit[6]:= Accessoire.create('Ecouteur Apple',5,30,30,'Apple');
lesproduit[7]:= Accessoire.create('Chargeur Apple',5,30,50,'Apple');
lesproduit[8]:= Accessoire.create('Etui Larobe',5,30,30,'Larobe');
lesproduit[9]:= Accessoire.create('Chaussette Apple',5,30,20,'Apple');
lesportemonnaie[1]:= Portemonnaie.create(100,5,100);
lesportemonnaie[2]:= Portemonnaie.create(50,10,100);
lesportemonnaie[3]:= Portemonnaie.create(20,10,100);
lesportemonnaie[4]:= Portemonnaie.create(10,10,100);
lesportemonnaie[5]:= Portemonnaie.create(5,10,100);
end;
Constructor Distributeur_objet.create(Unlibelle:string; Unnbrest:integer; Unnbmax:integer; Unprix:integer);
begin
lesproduit[1]:= Materiel.create('iPod Shuffle',1,20,50,'mp3');
lesproduit[2]:= Materiel.create('iPod Nano',5,100,150,'mp3');
lesproduit[3]:= Materiel.create('ipod Classic',5,20,250,'mp3');
lesproduit[4]:= Materiel.create('iTouch',5,20,350,'mp3');
lesproduit[5]:= Materiel.create('iPhone',5,400,450,'telephone');
lesproduit[6]:= Accessoire.create('Ecouteur Apple',5,30,30,'Apple');
lesproduit[7]:= Accessoire.create('Chargeur Apple',5,30,50,'Apple');
lesproduit[8]:= Accessoire.create('Etui Larobe',5,30,30,'Larobe');
lesproduit[9]:= Accessoire.create('Chaussette Apple',5,30,20,'Apple');
lesportemonnaie[1]:= Portemonnaie.create(100,5,100);
lesportemonnaie[2]:= Portemonnaie.create(50,10,100);
lesportemonnaie[3]:= Portemonnaie.create(20,10,100);
lesportemonnaie[4]:= Portemonnaie.create(10,10,100);
lesportemonnaie[5]:= Portemonnaie.create(5,10,100);
end;
Function Distributeur_objet.get_produit(Unlibelle:string;distributeur:Distributeur_objet):integer ;
begin
If (Unlibelle='ipod Shuffle') then result:=distributeur.lesproduit[1].get_prix()
else if (Unlibelle='ipod Nano') then result:=distributeur.lesproduit[2].get_prix()
else if (Unlibelle='ipod Classic') then result:=distributeur.lesproduit[3].get_prix()
else if (Unlibelle='iTouch') then result:=distributeur.lesproduit[4].get_prix()
else if (Unlibelle='iPhone') then result:=distributeur.lesproduit[5].get_prix()
else if (Unlibelle='Ecouteur Apple') then result:=distributeur.lesproduit[6].get_prix()
else if (Unlibelle='Chargeur Apple') then result:=distributeur.lesproduit[7].get_prix()
else if (Unlibelle='Etui Larobe') then result:=distributeur.lesproduit[8].get_prix()
else if (Unlibelle='Chaussette Apple') then result:=distributeur.lesproduit[9].get_prix()
end;
Function Distributeur_objet.get_prix(Unevaleur:integer;distributeur:Distributeur_objet):integer;
begin
case Unevaleur of
100 : result:=distributeur.lesportemonnaie[1].get_valeur() ;
50: result:=distributeur.lesportemonnaie[2].get_valeur() ;
20: result:=distributeur.lesportemonnaie[3].get_valeur() ;
10 : result:=distributeur.lesportemonnaie[4].get_valeur() ;
5 : result:=distributeur.lesportemonnaie[5].get_valeur() ;
end;
end;
Function Distributeur_objet.get_total(distributeur:Distributeur_objet):integer;
begin
result:=distributeur.lesportemonnaie[1].get_valeur()*distributeur.lesportemonnaie[1].get_nbrpiece() +
distributeur.lesportemonnaie[2].get_valeur()*distributeur.lesportemonnaie[2].get_nbrpiece() +
distributeur.lesportemonnaie[3].get_valeur()*distributeur.lesportemonnaie[3].get_nbrpiece() +
distributeur.lesportemonnaie[4].get_valeur()*distributeur.lesportemonnaie[4].get_nbrpiece() +
distributeur.lesportemonnaie[5].get_valeur()*distributeur.lesportemonnaie[5].get_nbrpiece() ;
end;
Procedure Distributeur_objet.maj_nbr2(Unlibelle:string;distributeur:Distributeur_objet;erreur:boolean);
Begin
If (Unlibelle='ipod Shuffle') then distributeur.lesproduit[1].maj_nbr(erreur)
// else if (Unlibelle='ipod Nano') then distributeur.lesproduit[2].maj_nbr(erreur)
// else if (Unlibelle='ipod Classic') then distributeur.lesproduit[3].maj_nbr(erreur)
// else if (Unlibelle='iTouch') then distributeur.lesproduit[4].maj_nbr(erreur)
// else if (Unlibelle='iPhone') then distributeur.lesproduit[5].maj_nbr(erreur)
// else if (Unlibelle='Ecouteur Apple') then distributeur.lesproduit[6].maj_nbr(erreur)
// else if (Unlibelle='Chargeur Apple') then distributeur.lesproduit[7].maj_nbr(erreur)
// else if (Unlibelle='Etui Larobe') then distributeur.lesproduit[8].maj_nbr(erreur)
// else if (Unlibelle='Chaussette Apple') then distributeur.lesproduit[9].maj_nbr(erreur)
end;
{FIN class DISTRIBUTEUR}
end. |
Partager