Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

Instrukcja Case w c++

#1
Instrukcja Case w c++
Witam! Czy mógłby ktoś mi połączyć te trzy programy tak, aby móc wybierać sobie pomiędzy nimi za pomocą case. Proszę o napisanie kodu w komentarzach. Oto te 3 programy:

1.

Kod:
include <stdio.h>
    include <stdlib.h>


short PESEL[12];
int valid = 0;

int getBirthYear() {
        int year;
    int month;
    year = 10 * PESEL[0];
    year += PESEL[1];
    month = 10 * PESEL[2];
    month += PESEL[3];
    if (month > 80 && month < 93) {
        year += 1800;
    }
    else if (month > 0 && month < 13) {
        year += 1900;
    }
    else if (month > 20 && month < 33) {
        year += 2000;
    }
    else if (month > 40 && month < 53) {
        year += 2100;
    }
    else if (month > 60 && month < 73) {
        year += 2200;
    }
    return year;
}

int getBirthMonth() {
    int month;
    month = 10 * PESEL[2];
    month += PESEL[3];
    if (month > 80 && month < 93) {
            month -= 80;
    }
    else if (month > 20 && month < 33) {
        month -= 20;
    }
    else if (month > 40 && month < 53) {
        month -= 40;
    }
    else if (month > 60 && month < 73) {
        month -= 60;
    }
    return month;
}

int getBirthDay() {
    int day;
    day = 10 * PESEL[4];
    day += PESEL[5];
    return day;
}

char* getSex() {
    if (valid) {
        if (PESEL[9] % 2 == 1) {
            return "Mezczyzny";
        }
        else {
            return "Kobiety";
        }
    }
    else {
        return "Bóg wie jeden kto ;)";
    }
}

int checkSum() {
    int sum = 1 * PESEL[0] +
              3 * PESEL[1] +
          7 * PESEL[2] +
          9 * PESEL[3] +
          1 * PESEL[4] +
          3 * PESEL[5] +
          7 * PESEL[6] +
          9 * PESEL[7] +
          1 * PESEL[8] +
          3 * PESEL[9];
    sum %= 10;
    sum = 10 - sum;
    sum %= 10;

    if (sum == PESEL[10]) {
        return 1;
    }
    else {
        return 0;
    }
}

int checkMonth() {
    int month = getBirthMonth();
    if (month > 0 && month < 13) {
        return 1;
    }
    else {
        return 0;
    }
}

int checkDay() {
    int year = getBirthYear();
    int month = getBirthMonth();
    int day = getBirthDay();
    if ((day >0 && day < 32) &&
        (month == 1 || month == 3 || month == 5 ||
         month == 7 || month == 8 || month == 10 ||
         month == 12)) {
        return 1;
    }
    else if ((day >0 && day < 31) &&
        (month == 4 || month == 6 || month == 9 ||
         month == 11)) {
        return 1;
    }
    else if ((day >0 && day < 30 && leapYear(year)) ||
                 (day >0 && day < 29 && !leapYear(year))) {
        return 1;
    }
    else {
        return 0;
    }
}

int leapYear(int year) {
    if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0)
            return 1;
    else
                return 0;
}

void PeselValidator(char *PESELNumber) {
        int i;

        if (strlen(PESELNumber) != 11){
        valid = 0;
    }
    else {
        for (i = 0; i < 11; i++){
            PESEL[i] = PESELNumber[i] - 48;
        }
        if (checkSum() && checkMonth() && checkDay()) {
            valid = 1;
        }
        else {
            valid = 0;
        }
    }
}

void main(void)
{
        char PESEL[11];

        printf("Podaj numer PESEL\n");
        scanf("%s", PESEL);

        PeselValidator(PESEL);
      
        if (valid == 1) {
            printf("Numer: %s jest prawidlowy dla %s\n",PESEL, getSex());
            printf("Osoba ta urodzona jest w dniu: %d, w miseiacu: %d, w roku: %d \n",getBirthDay(), getBirthMonth(), getBirthYear());            
        }
        else {
            printf("Numer PESEL jest nieprawidlowy\n");
        }
    getch(0);
}

2.

Kod:
include <stdio.h>


char *letterValues = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int letterValuesLen = 36;

int getLetterValue(char letter)
{
   int i;
   for (i=0; i<lettervalueslen; i++)="i++)" {="{" if="if" (letter="=" return="return" i;="i;" }="}" -1;="-1;" int="int" main()="main()" char="char" id[100];="id[100];" i="0;" o="o" podanie="podanie" numeru="numeru" dowodu="dowodu" osobistego,="osobistego," scanf("%s",="scanf(&quot;%s&quot;," id);="id);" (strlen(id)="(strlen(id)" !="9)" dlugosc="dlugosc" numeru\n");="numeru\n&quot;);" for="for" (i="3;" i<3;="i&lt;3;" <="&lt;" 10)="10)" seria="seria" dowodu\n");="dowodu\n&quot;);" i<9;="i&lt;9;" lettervalues[i])="letterValues[i])" checksum;="checkSum;" printf("prosze="printf(&quot;Prosze" nalezy="NALEZY" podac="PODAC" duze="DUZE" litery!\n");="LITERY!\n&quot;);" printf("nieprawidlowa="printf(&quot;Nieprawidlowa" (getlettervalue(id[i])="(getLetterValue(id[i])" getlettervalue(id[i])="getLetterValue(id[i])"> 9)
      {
         printf("Nieprawidlowy numer dowodu\n");
         return -1;
      }
   }


   checkSum = 7 * getLetterValue(id[0]);
   checkSum += 3 * getLetterValue(id[1]);
   checkSum += 1 * getLetterValue(id[2]);
   checkSum += 7 * getLetterValue(id[4]);
   checkSum += 3 * getLetterValue(id[5]);
   checkSum += 1 * getLetterValue(id[6]);
   checkSum += 7 * getLetterValue(id[7]);
   checkSum += 3 * getLetterValue(id[8]);
   checkSum %= 10;
   if (checkSum != getLetterValue(id[3]))
   {
      printf("Podany numer dowodu jest niepoprawny\n");
   }
   else
   {
      printf("Podany numer dowodu jest poprawny\n");
   }

  getch(0);
}

3.

Kod:
include <stdio.h>
    include <string.h>
    include <stdlib.h>
    include <time.h>
    include <math.h>
    include<conio.h>


char DoubleArray[10] = {0, 2, 4, 6, 8, 1, 3, 5, 7, 9};


int luhnCheckDigit(char *number) {
int i;
int sum = 0;
int length = strlen(number);

for (i=2; i<=length; i++) {
if (i%2 != 0) {
sum += number[length - i] - 48;
} else {
sum += DoubleArray[number[length - i] - 48];
}
}

sum %= 10;
sum = 10 - sum;
sum %= 10;

return sum;
}

int luhnCheck(char *number) {
int i;
int sum = 0;
int length = strlen(number);

for (i=1; i<=length; i++) {
if (i%2 != 0) {
sum += number[length - i] - 48;
} else {
sum += DoubleArray[number[length - i] - 48];
}
}

if (sum % 10 == 0) {
return 1;
}
return 0;
}

int main(void)
{
char number[1000];

printf("Podaj numer do sprawdzenia\n");
scanf("%s", number);

if (luhnCheck(number))
{
printf("Numer jest prawidlowy\n");
}
else
{
printf("Numer jest nieprawidlowy\n");
}

getch(0);
}

// Proszę umieszczać kod w znacznikach
Kod PHP:
[code][/code
 System operacyjny: windows_seven Przeglądarka: firefox
 Reklamy Google
Programy: Polecane / Nowe / Inne



Wiadomości w tym wątku (Instrukcja Case w c++)
Instrukcja Case w c++ - Chojnak1996 - 31.05.2015, 12:22


Podobne wątki (Instrukcja Case w c++)
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
Cry Szesnastkowy na dwójkowy switch case pawel13031997 1 3932 25.10.2014, 11:49
Ostatni post: Rincewind
  [C++] Jak po wykonaniu instrukcji case powrócić do "menu"? GRIZZLY 3 4244 21.01.2014, 09:39
Ostatni post: GRIZZLY
  Błąd w programie PASCAL (CASE OF) gabusiek 3 2787 15.11.2012, 17:47
Ostatni post: bingo009

Skocz do: