Instrukcja Case w c++

0

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:

#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);

}

#include <stdio.h>

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

int getLetterValue(char letter)
{
int i;
for (i=0; i<letterValuesLen; i++)
{
if (letter == letterValues[i])
{
return i;
}
}
return -1;
}

int main()
{
char id[100];
int i=0;
int checkSum;

  printf("Prosze o podanie numeru dowodu osobistego, NALEZY PODAC DUZE LITERY!\n");
  scanf("%s", id);

  if (strlen(id) != 9)

{
printf("Nieprawidlowa dlugosc numeru\n");
return -1;
}

for (i=0; i<3; i++)
{
if (getLetterValue(id[i]) < 10)
{
printf("Nieprawidlowa seria dowodu\n");
return -1;
}
}
for (i=3; i<9; i++)
{
if (getLetterValue(id[i]) < 0 || 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);
}

#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);
}

0

50 złotych, gotowe byłoby na jutro wieczorem, pisz na PW.

1 użytkowników online, w tym zalogowanych: 0, gości: 1