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:
zaimplementowanie algorytmu Luhna do sprawdzania poprawności numeru karty kredytowej,
przycisk „weryfikuj” dostępny tylko wtedy gdy coś jest wpisane w polu tekstowym
trzykrotne sprawdzanie poprawności wprowadzonych danych - przy niepoprawnej trzeciej próbie blokada (nieaktywny przycisk weryfikacji, pole tekstowe, alert, komunikat, wyjście z systemu)
wykorzystanie elementów podstawowych typu: etykiety, pola tekstowe, funkcja MessageBox (np. do komunikatu, że to jest druga próba, masz jeszcze jedną), przyciski itp.
Po każdej próbie pole tekstowe wyczyszczone, kursor ustawiony w polu tekstowym
po poprawnym wprowadzeniu danych komunikat o właściwie zakończonym procesie weryfikacji i przejście do właściwego programu (dowolne okienko, symulujące, że coś się będzie działo)
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!!!
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