Zadanie: zaimplementować aplikację „okienkową”, która sprawdza poprawność wpisanych danych z dokumentów:

- numer karty kredytowej,

- numer PESEL,

- seria i numer dowodu osobistego,

- dowód rejestracyjny pojazdu.

Elementy niezbędne:

za elementy niezbędne (patrz wyżej) można dostać 10 punktów;

kolejne punkty (5) za wprowadzenie dodatkowej kontroli (walidacji):

- usunięcie ewentualnych spacji i myślników,

- sprawdzanie czy wszystkie znaki są cyframi

za poprawną i przemyślaną implementację obsługi każdego innego dokumentu (wyliczyłam je na wstępie) można dostać (w zależności od jakości rozwiązania) po 5 punktów. Proponuję przemyśleć wtedy interfejs użytkownika (np. formatka z kartami, menu, ikonki….. - przyciski na formatce do wyboru opcji już dawno nie są standardem)

Teoretycznie więc można dostać nie 20 punktów (jak w założeniach na początku semestru) ale 35 punktów!!!

0x01 graphic

Poniżej przydatne informacje i linki:

Algorytm Luhna Wystarczy zaimplementować sprawdzanie czy podany numer jest poprawny przez sprawdzenie sumy z algorytmu Luhna)

(ciekawostka: jego patent z 1960 roku do oglądnięcia na stronie: http://www.pat2pdf.org/patents/pat2950048.pdf )

opis i implementacja w wikipedii albo na temat weryfikacji numerów kart kredytowych na stronie: http://blog.konieczny.be (czerwiec 2006) (tam też sprawdzanie poprawności numeru konta bankowego, jeśli to kogoś interesuje - jak najbardziej można zaimpelmentować)

Numer PESEL jest to 11-cyfrowy, stały symbol numeryczny, jednoznacznie identyfikujący określoną osobę fizyczną.

· na pozycji 1-2 umieszczone są dwie ostatnie cyfry roku urodzenia,

· na pozycji 3-4 umieszczone są dwie cyfry miesiąca urodzenia,

· na pozycji 5-6 umieszczone są dwie cyfry dnia urodzenia,

· na pozycji 7-10 umieszczony jest liczba porządkowa z oznaczeniem płci,

· na pozycji 11 umieszczona jest liczba kontrolna.

Dla osób urodzonych w latach 1900 do 1999 - miesiąc zapisywany jest w sposób naturalny (bez zmian); dla odróżnienia osób urodzonych w innych latach niż 1900 - 1999 do numeru miesiąca dodawane są następujące wielkości:

    dla lat 1800 - 1899 - 80

    dla lat 2000 - 2099 - 20

    dla lat 2100 - 2199 - 40

    dla lat 2200 - 2299 - 60

Informacja o płci osoby, której zestaw informacji jest identyfikowany zawarta jest na 10 pozycji numeru PESEL: cyfry 0, 2, 4, 6, 8 - oznaczają płeć żeńską, pozostałe - męską.

Sposób obliczania liczby kontrolnej w numerze ewidencyjnym PESEL:

Każdą pozycję numeru ewidencyjnego mnoży się przez odpowiednią wagę: 1-3-7-9-1-3-7-9-1-3 (modulo 10). Utworzone iloczyny sumuje się (modulo 10). Wartość ostatniej otrzymanej liczby należy odjąć od 10 (dopełnienie 10); wynik odejmowania stanowi liczbę kontrolną danego numeru ewidencyjnego.  

Np.: numer ewidencyjny ma postać: 0207080362 - dotyczy więc osoby urodzonej 8 lipca 1902 roku, płci żeńskiej (parzysta końcówka numeru z serii - 0362). Obliczenie liczby kontrolnej:

     0207080362

x 1379137913

0+6+0+3+0+4+0+7+6+6=32 10-2=8 Liczba kontrolna=8

 Pełny numer ewidencyjny ma więc postać: 02070803628

Kodowanie danych w dowodzie osobistym i innych dokumentach - sprawdzanie poprawności podanego numeru wraz z serią

Można znaleźć pod adresem: http://chemeng.p.lodz.pl/zylla/ut/paszport.html