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

Fermé
cs_amazir Messages postés 4 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 31 mars 2005 - 25 mars 2005 à 10:34
 eya92 - 4 mai 2015 à 12:38
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

GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
25 mars 2005 à 19:42
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
0
GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
25 mars 2005 à 20:39
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
0
GhislainLavoie Messages postés 289 Date d'inscription vendredi 11 mars 2005 Statut Membre Dernière intervention 3 avril 2008 3
26 mars 2005 à 16:55
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
0
cs_amazir Messages postés 4 Date d'inscription lundi 5 mai 2003 Statut Membre Dernière intervention 31 mars 2005
28 mars 2005 à 12:48
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bachir18111982 Messages postés 1 Date d'inscription mardi 2 mai 2006 Statut Membre Dernière intervention 2 mai 2006
2 mai 2006 à 15:53
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.
0
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
0
Rejoignez-nous