SHARE
TWEET

Untitled

a guest Dec 14th, 2018 56 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <string.h> //KÄYTÄNNÖSSÄ TOIMII, POISTA VAIN ERRORMESSAGET JA SIISTI NÄTIX
  3.  
  4. void nosta_rahaa();
  5. int katso_saldo();
  6. int valitse_toiminto();
  7. int kysy_salasana();
  8. void talleta_rahaa();
  9. void lueRoskat();
  10. void paivita_saldo();
  11. static int saldo;
  12. static char tilinumero[250];
  13. FILE * tili;
  14. FILE * tiliKirjoita;
  15. char oikea_salasana[100];
  16.  
  17. int main(void){
  18.  
  19.     kysy_salasana();
  20. }
  21.  
  22. int kysy_salasana(){
  23.  
  24.     char koodi[4];
  25.     char salasana[100];
  26.     int result;
  27.  
  28.     while(1){
  29.  
  30.         printf("Anna tilinumero: ");
  31.         fgets(tilinumero, 250, stdin);
  32.  
  33.         if( tilinumero[ strlen(tilinumero) -1] == '\n'){
  34.            tilinumero[ strlen(tilinumero) -1] = '\0';
  35.         }else{
  36.           lueRoskat();
  37.         }
  38.  
  39.         strcat(tilinumero, ".tili");
  40.  
  41.         if( ( tili = fopen( tilinumero, "r" ))!=NULL){
  42.  
  43.             fgets( oikea_salasana, 100, tili );
  44.  
  45.             if( oikea_salasana[ strlen(oikea_salasana) -1] == '\n'){
  46.                 oikea_salasana[ strlen(oikea_salasana) -1] = '\0';}
  47.  
  48.            do {
  49.  
  50.             printf("Anna pinkoodi: ");
  51.  
  52.             fgets( salasana, 100, stdin );
  53.  
  54.             if( salasana[ strlen(salasana) -1] == '\n'){
  55.             salasana[ strlen(salasana) -1] = '\0';}
  56.  
  57.             if( (result = strcmp( salasana, oikea_salasana ))  == 0 ){
  58.                 fscanf(tili, "%d", &saldo);
  59.                 fclose(tili);
  60.              }else
  61.                 printf("Vaara pin-koodi, yrita uudelleen!\n");
  62.  
  63.               }while( result != 0 );
  64.         valitse_toiminto();
  65.         }else{
  66.         printf("Tiedostoa ei loytynyt!\n");
  67.         }
  68.     }
  69.     return(0);
  70. }
  71.  
  72. int valitse_toiminto(){
  73.  
  74.     int lopeta = 0;
  75.  
  76.     while (lopeta == 0){
  77.  
  78.         int toiminto = 0;
  79.  
  80.         printf("\n(1) Nosta rahaa\n(2) Katso saldo\n(3) Talleta rahaa\n(4) Lopeta\n\nValitse toiminto: ");
  81.         scanf("%d", &toiminto);
  82.  
  83.         if (toiminto == 1){
  84.             nosta_rahaa();
  85.         }else if (toiminto == 2){
  86.             katso_saldo();
  87.         }else if (toiminto == 3){
  88.             talleta_rahaa();
  89.         }else if (toiminto == 4){
  90.             lopeta = 1;
  91.         }else
  92.             printf("hupsista!");
  93.     }
  94.     if (lopeta == 1){
  95.         printf("Kiitos asioinnista!\n");
  96.     }
  97.     return(0);
  98. }
  99.  
  100. int katso_saldo(){
  101.  
  102.     printf("Tilillasi on %d euroa rahaa.", saldo);
  103.     return(0);
  104. }
  105.  
  106. void talleta_rahaa(){
  107.  
  108.   int summa;
  109.  
  110.   printf("\nSyota talletettava summa: ");
  111.   scanf("%d", &summa);
  112.   saldo = saldo+summa;
  113.   paivita_saldo();
  114. }
  115.  
  116. void lueRoskat(void){
  117.  
  118.    while(fgetc(stdin) != '\n');
  119. }
  120.  
  121. void nosta_rahaa(void){
  122.  
  123.   int nosto, kakskyt, viiskyt;
  124.  
  125.   printf("\nSyota nostettava summa: ");
  126.   scanf("%d", &nosto);
  127.  
  128.   if (saldo < nosto){
  129.       printf("Uppsalaa, ei ole tililla tarpeeksi rahhaa!\n");
  130.   }else{
  131.       viiskyt = nosto / 50;
  132.       kakskyt = (nosto%50)/20;
  133.  
  134.       if (nosto < 20 || nosto > 1000){
  135.         printf("Sallitut nostot: 20-1000e.\n");
  136.       }else if (nosto == 30){
  137.         printf("Kiusallinen summa. Valitettavasti automaatti ei pysty tata antamaan.\n");
  138.       }else if (nosto % 50 == 0){
  139.         printf("Automaatti antaa %d x 50e setelia.\n", viiskyt);
  140.         saldo = saldo-nosto;
  141.         paivita_saldo();
  142.       }else if ((nosto % 50)%20 == 0){
  143.         printf("Automaatti antaa %d x 50e seteleita ja %d x 20e seteleita.\n", viiskyt, kakskyt);
  144.         saldo = saldo-nosto;
  145.         paivita_saldo();
  146.       }else if (nosto % 50 == 30 || nosto % 50 == 10){
  147.         viiskyt = viiskyt - 1;
  148.         kakskyt = kakskyt + 3;
  149.         printf("Automaatti antaa %d x 50e seteleita ja %d x 20e seteleita.\n", viiskyt, kakskyt);
  150.         saldo = saldo-nosto;
  151.         paivita_saldo();
  152.       }else{
  153.         printf("Lukua ei voi antaa 20e ja 50e seteleina.\n");
  154.       }
  155.   }
  156. }
  157.  
  158. void paivita_saldo(void){
  159.  
  160.     if (NULL != (tiliKirjoita = fopen(tilinumero, "w"))){
  161.         fprintf(tiliKirjoita, "%s\n%d", oikea_salasana, saldo);
  162.         fclose(tiliKirjoita);
  163.     }else{
  164.         printf("Tiedosto hukassa!\n");
  165.     }
  166. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top