Urgent projet fin d'études thème:Construire le code barre. [Fermé]

Signaler
Messages postés
4
Date d'inscription
lundi 5 mai 2003
Statut
Membre
Dernière intervention
31 mars 2005
-
 eya92 -
Chèr amis j'ai un projet fin d'études dont je ne sais pas oû commencer .Veuillez m'aider, merci infiniment.


Projet





Enonce:


Le principe est le suivant: on considère dans cet exemple le système EAN-13(Europeen Article Numbring) standardise au niveau européen en 1997. C'est un système a 13 chiffres. Les chiffres 1 et 2 indiquent le pays, (la France: de 30 a 39, Maroc 61) les chiffres 3,4,5,6 et 7 indiquent le fabricant du pays. Cela signifie 99999 entreprises différentes possibles. Les chiffres 8,9,10,11 et 12 indiquent le produit du fabricant (99999 produits possibles). Le 13e est un chiffre de vérification-II est calcule comme suit:


Si l'on numérote les 12 chiffres depuis la gauche, on ajoute tous les chiffres d'ordre impairs, cela donne la variable a; on additionne tous les chiffres d'ordre pairs cela donne la variable b; puis on calcule a+3b, on soustrait ce résultat du prochain plus grand multiple de 10 et cela donne le 13e chiffre.


Exemple:


La bouteille d'eau minérale de 150 cl de marque Sidi Ali s'écrira dans le système EAN-13 6111035000058. 6 et 1 indiquent le pays, le Maroc; 11035 le fabricant " Les Eaux Minérales d'Oulmes";00005 le produit.


Indications:


Pour calculer a on considère les positions impairs. Cela signifie 6 + 1 + 0 + 5 + 0 + 0 = 12.


Pour la variable b on prend les positions paires, cela signifie 1 + 1 + 3 + 0 + 0 + 5 = 10.





a + 3b = 42. Or, 50 est le plus grand multiple de 10 le plus proche de 42.


50 - 42 = 8, donc le 13e chiffre est la valeur 8.





La façon dont on code a partir de ces chiffres est la suivante: on considère une clé. La clé est donnée par le premier chiffre. Ici, dans notre exemple, il s'agit du nombre . On considère alors la ligne correspondante (ici, 6) dans la table de décodage des codes barres. On a dans la ligne correspondante la description du 13e chiffre.





Ainsi le 13e chiffre de la ligne 6 nous indique la clé ABBBAA.


Les six chiffres suivants sont pris dans la table conformément a la clé. Dans l'exemple, les chiffres suivants seront pris dans les lignes des chiffres(111035) et dans les colonnes A, B, puis B, puis B, puis A, puis A. Chacune de ces entrées dans la table est sous la forme de sept bits. Il y aura donc 6x7= 42 bits qui seront codes de cette façon-la. Ensuite, les six chiffres restant(000058) sont codes en prenant les entrées dans la colonne C et on obtient 42 bits supplémentaires. Afin de permettre de repérer les positions de début, de milieu et de fin. On ajoute la séquence 101 au début, 01010 au milieu, et 101 a la fin. On aura donc un total de 95 bits qui représentent le code.





au niveau graphique, il s'agira tout simplement de considérer que, dans cette suite de 95 bits, les 0 correspondent a un espace vide et les 1 a une ligne ou bande noire.





La table de code est données ci-dessous :






Chiffre

,
Groupe A

,
Groupe B

,
Groupe C

,
13e chiffre

,
----

0

,
0001101

,
0100111

,
1110010

,
AAAAAA

,
----

1

,
0011001

,
0110011

,
1100110

,
AABABB

,
----

2

,
0010011

,
0011011

,
1101100

,
AABBAB

,
----

3

,
0111101

,
0100001

,
1000010

,
AABBBA

,
----

4

,
0100011

,
0011101

,
1011100

,
ABAABB

,
----

5

,
0110001

,
0111001

,
1001110

,
ABBAAB

,
----

6

,
0101111

,
0000101

,
1010000

,
ABBBAA

,
----

7

,
0111011

,
0010001

,
1000100

,
ABABAB

,
----

8

,
0110111

,
0001001

,
1001000

,
ABABBA

,
----

9

,
0001011

,
0010111

,
1110100

,
ABBABA





Travail a faire :


Pour construire le code barre, il faut demander à l’utilisateur de taper les douze premiers chiffres, puis de vérifier le treizième .


Ensuite, il faut utiliser la table de codage pour convertir en 95 bits ces 13 chiffres.


Pour la représentation graphique, il suffit de faire une boucle qui parcourt le code et d’indiquer une barre verticale pour les bits à 1. Afin d’être sur que l’écran représente correctement les informations, il faudra ajuster la taille à l’écran.

6 réponses

Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
4
Salut!

J'ai fait un script qui t'aideras certainement a avancé. Pour ce qui est de l'ajustement de la taille de l'écran, je n'ai pas trop saisie.


<html>
<head>
<title>Untitled</title>

<STYLE
type= "
text/
css">

. n0
{background-
color:#ffffff;height:40px;width:2px;float:left;}

.n1
{background-
color:#000000;height:40px;width:2px;float:left;}

</STYLE>

<script type ="text/javascript">

var bitsCode
=
new Array
(10);
bitsCode
[0]
=
new Array
('
0001101'
,'
0100111'
,'
1110010'
,'
000000'
);
bitsCode
[1]
=
new Array
('
0011001'
,'
0110011'
,'
1100110'
,'
001011'
);
bitsCode
[2]
=
new Array
('
0010011'
,'
0011011'
,'
1101100'
,'
001101'
);
bitsCode
[3]
=
new Array
('
0111101'
,'
0100001'
,'
1000010'
,'
001110'
);
bitsCode
[4]
=
new Array
('
0100011'
,'
0011101'
,'
1011100'
,'
010011'
);
bitsCode
[5]
=
new Array
('
0110001'
,'
0111001'
,'
1001110'
,'
011001'
);
bitsCode
[6]
=
new Array
('
0101111'
,'
0000101'
,'
1010000'
,'
011100'
);
bitsCode
[7]
=
new Array
('
0111011'
,'
0010001'
,'
1000100'
,'
010101'
);
bitsCode
[8]
=
new Array
('
0110111'
,'
0001001'
,'
1001000'
,'
010110'
);
bitsCode
[9]
=
new Array
('
0001011'
,'
0010111'
,'
1110100'
,'
011010'
);

function EAN13
()
{
cb
= document
.form
.codeBarre
.value;
divEAN
= document
.getElementById
("EAN13CODE");
divEAN
.innerHTML
="";
codes
=
new Array
();

for
(var i
=a
=b
=0;i
<12;i
++)
{
codes
[i
]
= eval
(cb
.charAt
(i
));

if
(i
%2)
b
+= codes
[i
];

else
a
+=codes
[i
];

}
codes
[12]
=
10-((a
+(b
*3))%10);

var bits
= getBits
(codes
);
bit
= bits
.split
("");

for
(var i
=0;i

</head>

<form name=
"form">

</form>

"EAN13CODE">

</html>

A+, Ghislain
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
4
Oups... un petit bug!

Remplacer cet ligne :

codes[12]
=
10-((a
+(b
*3))%10);

par ceci :

reste
=
((a
+(b
*3))%10);
codes
[12]
=
10-(reste
0?
10:reste
);

A+, Ghislain
Messages postés
289
Date d'inscription
vendredi 11 mars 2005
Statut
Membre
Dernière intervention
3 avril 2008
4
Bonjour!

J'ai eu le temps de fignoler le script pour l'affichage des nombres et allonger les lignes séparatrices.


<html>
<head>
<title>Untitled</title>

<STYLE
type= "
text/
css">

. n0
{background-
color:#ffffff;height:40px;width:1px;float:left;}

.n1
{background-
color:#000000;height:40px;width:1px;float:left;}

.l1
{background-
color:#000000;height:50px;width:1px;float:left;}

.nombre
{position:absolute;font-
size:14px;font-
family:times
new
roman}

.nombre1
{position:relative;font-
size:14px;font-
family:times
new
roman;float:left;top:40px;}

.barreCode
{position:absolute;top:50px;left:50px;}

</STYLE>

<script type ="text/javascript">

var bitsCode
=
new Array
(10);
bitsCode
[0]
=
new Array
('
0001101'
,'
0100111'
,'
1110010'
,'
000000'
);
bitsCode
[1]
=
new Array
('
0011001'
,'
0110011'
,'
1100110'
,'
001011'
);
bitsCode
[2]
=
new Array
('
0010011'
,'
0011011'
,'
1101100'
,'
001101'
);
bitsCode
[3]
=
new Array
('
0111101'
,'
0100001'
,'
1000010'
,'
001110'
);
bitsCode
[4]
=
new Array
('
0100011'
,'
0011101'
,'
1011100'
,'
010011'
);
bitsCode
[5]
=
new Array
('
0110001'
,'
0111001'
,'
1001110'
,'
011001'
);
bitsCode
[6]
=
new Array
('
0101111'
,'
0000101'
,'
1010000'
,'
011100'
);
bitsCode
[7]
=
new Array
('
0111011'
,'
0010001'
,'
1000100'
,'
010101'
);
bitsCode
[8]
=
new Array
('
0110111'
,'
0001001'
,'
1001000'
,'
010110'
);
bitsCode
[9]
=
new Array
('
0001011'
,'
0010111'
,'
1110100'
,'
011010'
);

function EAN13
()
{
cb
= document
.form
.codeBarre
.value;

if
(isNaN
(cb
)||cb
.length
!= 12)
{ alert
("Un nombre de 12 chiffres seulement");
return
false;
}
divEAN
= document
.getElementById
("EAN13CODE");
divEAN
.innerHTML
= "";
codes
=
new Array
();

for
(var i
=a
=b
=0;i
<12;i
++)
{
codes
[i
]
= eval
(cb
.charAt
(i
));

if
(i
%2)
b
+= codes
[i
];

else
a
+=codes
[i
];

}
reste
=
(a
+(b
*3))%10;
codes
[12]
=
10-(reste
0?
10 : reste
);

var bits
= getBits
(codes
);
bit
= bits
.split
("");
el
= document
.createElement
("div");
el
.innerHTML
= cb
.charAt
(0);
el
.className
=
"nombre1";
divEAN
.appendChild
(el
);

for
(var i
=0;i

</head>

<form name=
"form">

</form>

"barreCode" id=
"EAN13CODE">

</html>

A+, Ghislain
Messages postés
4
Date d'inscription
lundi 5 mai 2003
Statut
Membre
Dernière intervention
31 mars 2005

Bonjour;
C'est trés gentil pour votre aide, si j'aurai besoin de quelque chose puis je vous contacter?
Voici mon e-mail: [mailto:taofiq_f@hotmail.com taofiq_f@hotmail.com]

merci infiniment.
Messages postés
1
Date d'inscription
mardi 2 mai 2006
Statut
Membre
Dernière intervention
2 mai 2006

Bonjour

si j'ai une image qui contient des barres codes , comment je peux decoder cette image.je travaille mon projet sur le vb.net Veuillez m'aider, merci infiniment.
bonjour Bachir ,
cet année j'ai un projet qui ressemble à le votre ,
je dois realiser une application qui permet a partir d'une image , detecter la presence de code a barre dans cet image (quelque soit le typde du code 1d ou 2d)
et puis faire l'analyse necessaire a ce code .
merci pour votre aide