Advertisement
Guest User

Untitled

a guest
Dec 14th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.02 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement