algorytm.org

Implementacja w C/C++



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

UPC-A - Implementacja w C/C++
Ocena użytkownikóww: *****  / 1
SłabyŚwietny
Nadesłany przez Tomasz Lubiński, 28 sierpnia 2007 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

upca_c.c:
/**
 * @author Tomasz Lubinski
 * www.algorym.org
 * (c) 2007
 *
 * UPC-A
 */

#include <stdio.h>
#include <stdlib.h>

short UPCA[12];
int valid = 0;

static char* Systems[] = {
                "zwykly kod UPC", "zarezerwowany", "waga prduktow wazonych w sklepie",
	        "lekarstwa", "artykul nie bedacy zywnoscia", "kupony", "zarezerwowany",
	        "zwykly kod UPC", "zarezerwowany", "zarezerwowany"
	};

int checkSum(short *UPCA) {
	int sum = 3 * UPCA[0] +
		  1 * UPCA[1] +
		  3 * UPCA[2] +
		  1 * UPCA[3] +
		  3 * UPCA[4] +
		  1 * UPCA[5] +
		  3 * UPCA[6] +
		  1 * UPCA[7] +
		  3 * UPCA[8] +
		  1 * UPCA[9] +
		  3 * UPCA[10];
		
        sum %= 10;
        sum = 10 - sum;
        sum %= 10;
        
		if (sum == UPCA[11]) {
			return 1;
		}
		else {
			return 0;
		}
}

void UPCAValidator(char* UPCANumber) {
        int i;

	if (strlen(UPCANumber) != 12) {
		valid = 0;
	}
	else {
		for (i = 0; i < 12; i++){
			UPCA[i] = UPCANumber[i] - 48;
		}
		if (checkSum(UPCA)) {
			valid = 1;
		}
		else {
			valid = 0;
		}
	}
}




void main(void)
{
        char UPCAString[200];

        printf("Podaj numer UPC-A (bez spacji i myslinikow)\n");
        scanf("%s", UPCAString);

        UPCAValidator(UPCAString);

        if (valid) {
        	printf("Numer UPC-A jest prawidłowy\n");
        	printf("System: %s\n", Systems[UPCA[0]]);

        }
        else {
        	printf("Numer UPC-A jest nieprawidłowy\n");
        }

	return;
}
Dodaj komentarz