Advertisement
xlujiax

Lab1_2013_preg2

Sep 1st, 2016
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.77 KB | None | 0 0
  1. /*
  2.  * To change this license header, choose License Headers in Project Properties.
  3.  * To change this template file, choose Tools | Templates
  4.  * and open the template in the editor.
  5.  */
  6.  
  7. /*
  8.  * File:   main.cpp
  9.  * Author: Renzo C
  10.  * scanf(%*d) Salta todos los espacios
  11.  * Created on 8 de agosto de 2016, 04:14 PM
  12.  */
  13.  
  14. #include <cstdlib>
  15. #include <cstdio>
  16.  
  17. void printSaldoFinal (double n){
  18.     if (n < 0){
  19.         n=n*(-1);
  20.         printf("Saldo final: %10c (%5.2lf) \n\n", ' ',n);
  21.     }else
  22.         printf("Saldo final: %20.2lf \n\n", n);        
  23. }
  24.  
  25.  
  26. int main(int argc, char** argv) {
  27.     double saldoIni;
  28.     int monto;
  29.     int fin;
  30.     int totalDep, totalRet, cantRet, cantDep;
  31.     double promDep, promRet;
  32.     char finNum;
  33.     bool flagfecha;
  34.     while (1) {
  35.         char c;
  36.         printf("Cuenta No:     ");
  37.         while (1) { //Lee el codigo de la cuenta hasta encontrar un salto de linea
  38.             scanf("%c",&c);
  39.             if (c == ' ') break;
  40.             putchar(c);
  41.         }
  42.         putchar('\n');
  43.         scanf("%*d");         //Salta todos los espacios
  44.         //printf("\n");
  45.         printf("Cliente:       ");
  46.         while (1) { //Lee el nombre de la cuenta hasta encontrar un salto de linea
  47.             scanf("%c",&c);        
  48.             if (c == ' ') break;
  49.             putchar(c);
  50.         }
  51.         putchar('\n');
  52.  
  53.         scanf("%lf", &saldoIni);
  54.         printf("Saldo inicial:     %-10.2lf\n", saldoIni);
  55.         //scanf("%*d");
  56.        
  57.         printf("Movimientos:     \n");
  58.         while (1){  //Leera hasta no encontrar espacios
  59.             c = getchar();
  60.             if (c != ' ') break;
  61.         }
  62.        
  63.         totalDep = totalRet = cantDep = cantRet = 0;
  64.         while (1) {            
  65.             if (c<='9'&& c>='0') {
  66.                 putchar(c);
  67.                 while (1) { //Leer la fecha de la cuenta                    
  68.                     c = getchar();
  69.                     if (c == ' ') break;
  70.                     putchar(c);
  71.                     flagfecha = 1;
  72.                 }
  73.             } else
  74.                 break;            
  75.             while (1) {
  76.                 scanf("%*d");
  77.                 //printf("%1c", ' ');//putchar('\n');
  78.                 c = getchar();
  79.                
  80.                 if (c != 'D' && c != 'R') { //Si no es ni D ni R saldra del bucle y verificara de nuevo si hay fecha
  81.                     break;
  82.                 }
  83.                 //putchar(c);
  84.                
  85.                 while (fin = scanf("%d%c", &monto,&finNum)) {
  86.                     if (fin == EOF) break;
  87.                    
  88.                     if (finNum != '/'){
  89.                         if (c == 'R'){
  90.                             if (flagfecha)
  91.                                 printf("%30c(%d)\n",' ', monto);
  92.                             else
  93.                                 printf("%40c(%d)\n",' ', monto);
  94.                             cantRet++;
  95.                             totalRet += monto;
  96.                             flagfecha = 0;
  97.                         }
  98.                         if (c == 'D'){
  99.                             if (flagfecha)
  100.                                 printf("%30c%d\n",' ', monto);
  101.                             else
  102.                                 printf("%40c%d\n",' ', monto);
  103.                             cantDep++;
  104.                             totalDep += monto;
  105.                             flagfecha = 0;
  106.                         }                            
  107.                     }
  108.                     else{
  109.                         printf("\n");   //Estamos en una fecha debe haber salto de linea
  110.                         break;
  111.                     }                    
  112.                 }
  113.                 if (finNum == '/'){ //Si leyo parte de una fecha la termina de imprimir
  114.                     if (monto<10)                        printf("0%d/",monto);
  115.                     else
  116.                         printf("%d/",monto);
  117.                     c = getchar();
  118.                     break;
  119.                 }
  120.                 if (finNum == '\n'){      
  121.                     printf("\n");
  122.                     break;
  123.                 }                
  124.             }
  125.             if (fin == EOF) break;
  126.         }
  127.         printf("Resumen: \n");
  128.         printf("%-15s%-10s%10d\n","Depositos", "Total:", totalDep);
  129.         promDep = (double) totalDep / cantDep;
  130.         printf("%-15s%-10s%10.2lf\n"," ","Promedio",promDep);
  131.         printf("%-15s%-10s%10d\n","Retiros", "Total:", totalRet);
  132.         promRet = (double) totalRet / cantRet;
  133.         printf("%-15s%-10s%10.2lf\n"," ","Promedio",promRet);
  134.         //printf("Saldo final: %20.2lf \n\n", saldoIni + totalDep-totalRet);
  135.         printSaldoFinal(saldoIni+totalDep-totalRet);
  136.         if (fin == EOF) break;
  137.     }
  138.     return 0;
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement