Sotun tarkastus

/*Esimerkki sotun tarkastuksesta*/

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#include <conio.h>

#include <tchar.h>

int LuvunSyotto(int Minimi,int Maksimi);

void SotunTarkastus(char*);

void main()

{

char Sotu[100];

SotunTarkastus(Sotu);

printf("Sotu on %s",Sotu);

getch();

}

void SotunTarkastus(char* Sotu)

{

int JarjNo;

char Apu[100];

char Merkki;

int SyntAika,Indeksi,Paiva,Kk,Vuosi;

char TarkJono[]="0123456789ABCDEFHJKLMNPRSTUVWXY";

printf("\nAnna paiva: ");

Paiva = LuvunSyotto(1,31);

printf("\nAnna kuukausi: ");

Kk = LuvunSyotto(1,12);

printf("\nAnna vuosi: ");

Vuosi = LuvunSyotto(0,99);

printf("\nAnna vuoden jalkeiset KOLME numeroa: ");

JarjNo = LuvunSyotto(1,999);

printf("\nAnna viimeinen merkki huom! ISO KIRJAIN: ");

Merkki=getche();

SyntAika=Paiva*10000000+Kk*100000+Vuosi*1000+JarjNo;

Indeksi=SyntAika%31;

if(Merkki==TarkJono[Indeksi])

{

itoa(SyntAika,Apu,10);//Muutetaan luku merkkijonoksi

if(SyntAika<100000000) strcpy(Sotu,"0");//jos päivä<10 lisätään 0 alkuun

else strcpy(Sotu,"");//muuten tyhjennetään merkkijono

strcat(Sotu,Apu);//lisätään merkkijonoon syntaika ja järjestysnumero

Sotu[8]=Merkki;//laitetaan tarkastusmerkki loppuun

Sotu[9]=0;//päätetäään merkkijono

printf("\nOikein, sotu oli %s",Sotu);

}

else

{

printf("\nVÄÄRIN");

}

}

int LuvunSyotto(int Minimi,int Maksimi)

{

int Paikka=0;

int Luku=0;

char Merkki=0;

char Merkkijono[20];

do{

Merkki=getche();//getche kysyy ja näyttää merkin

Merkkijono[Paikka]=Merkki;

Paikka++;//lisätään paikkaa yhdellä= siirrytään seuraavaan kohtaan

//merkkijonossa

}while(Paikka < 8 && Merkki!=13);//13=ENTER //while silmukka loppuu Merkkijono[Paikka]=0;//laitetaan viimeiseksi merkkijonon lopetusmerkki=0

Paikka=0;

Luku=atoi(Merkkijono);//muutetaan merkkijono luvuksi

if (Luku > Maksimi)//tarkastus onko liian suuri

{

Luku=0;

printf("\nLiian suuri Anna uudelleen\n");

Luku = LuvunSyotto(Minimi,Maksimi);

}

if (Luku < Minimi)//tarkastus onko liian pieni

{

Luku=0;

printf("\nLiian pieni Anna uudelleen\n");

Luku = LuvunSyotto(Minimi,Maksimi);

}

return Luku;

}