Advertisement
Guest User

Untitled

a guest
Dec 14th, 2018
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 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. printf("%d\n", saldo);
  65. valitse_toiminto();
  66. }else{
  67. printf("Tiedostoa ei loytynyt!\n");
  68. }
  69. }
  70. return(0);
  71. }
  72.  
  73. int valitse_toiminto(){
  74.  
  75. int lopeta = 0;
  76.  
  77. while (lopeta == 0){
  78.  
  79. int toiminto = 0;
  80.  
  81. printf("Valitse toiminto: \n(1) Nosta rahaa\n(2) Katso saldo\n(3) Talleta rahaa\n(4) Lopeta\n");
  82. scanf("%d", &toiminto);
  83.  
  84. if (toiminto == 1){
  85. nosta_rahaa();
  86. }else if (toiminto == 2){
  87. katso_saldo();
  88. }else if (toiminto == 3){
  89. talleta_rahaa();
  90. }else if (toiminto == 4){
  91. lopeta = 1;
  92. }else
  93. printf("hupsista!");
  94. }
  95. if (lopeta == 1){
  96. printf("Kiitos asioinnista!\n");
  97. }
  98. return(0);
  99. }
  100.  
  101. int katso_saldo(){
  102.  
  103. printf("Tilillasi on %d euroa rahaa.", saldo);
  104. return(0);
  105. }
  106.  
  107. void talleta_rahaa(){
  108.  
  109. int summa;
  110.  
  111. printf("Syota talletettava summa: ");
  112. scanf("%d", &summa);
  113. saldo = saldo+summa;
  114. paivita_saldo();
  115. }
  116.  
  117. void lueRoskat(void){
  118.  
  119. while(fgetc(stdin) != '\n');
  120.  
  121. }
  122.  
  123. void nosta_rahaa(void){
  124.  
  125. int nosto, kakskyt, viiskyt;
  126.  
  127. printf("Syota nostettava summa: ");
  128. scanf("%d", &nosto);
  129.  
  130. if (saldo < nosto){
  131. printf("Uppsalaa, ei ole tililla tarpeeksi rahhaa!\n");
  132. }else{
  133. viiskyt = nosto / 50;
  134. kakskyt = (nosto%50)/20;
  135.  
  136. if (nosto < 20 || nosto > 1000){
  137. printf("Sallitut nostot: 20-1000e.\n");
  138. }else if (nosto == 30){
  139. printf("Kiusallinen summa. Valitettavasti automaatti ei pysty tata antamaan.\n");
  140. }else if (nosto % 50 == 0){
  141. printf("Automaatti antaa %d x 50e setelia.\n", viiskyt);
  142. saldo = saldo-nosto;
  143. paivita_saldo();
  144. }else if ((nosto % 50)%20 == 0){
  145. printf("Automaatti antaa %d x 50e seteleita ja %d x 20e seteleita.\n", viiskyt, kakskyt);
  146. saldo = saldo-nosto;
  147. paivita_saldo();
  148. }else if (nosto % 50 == 30 || nosto % 50 == 10){
  149. viiskyt = viiskyt - 1;
  150. kakskyt = kakskyt + 3;
  151. printf("Automaatti antaa %d x 50e seteleita ja %d x 20e seteleita.\n", viiskyt, kakskyt);
  152. saldo = saldo-nosto;
  153. paivita_saldo();
  154. }else{
  155. printf("Lukua ei voi antaa 20e ja 50e seteleina.\n");
  156. }
  157. }
  158. }
  159.  
  160. void paivita_saldo(void){
  161.  
  162. if (NULL != (tiliKirjoita = fopen(tilinumero, "w"))){
  163. fprintf(tiliKirjoita, "%s\n%d", oikea_salasana, saldo);
  164. fclose(tiliKirjoita);
  165. }else{
  166. printf("Tiedosto hukassa!\n");
  167. }
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement