Pascal/Turbo Pascal - Archivo e cuentas corrientes

 
Vista:
sin imagen de perfil

Archivo e cuentas corrientes

Publicado por Horacio Daniel Belardita (53 intervenciones) el 23/11/2011 20:08:19
hola buenos tardes accedo una vez mas al foro para que me ayuden con este problema:

*Se tiene un archivo con las cuentas corrientes de un banco. De cada cuenta se conoce: Número de Cuenta, Nombre del Cliente, Saldo y Código de Movimiento (1-Deudor, 2- Acreedor).

Se pide realizar un listado de cuentas corrientes(imprimir en pantalla)

Número de Cuenta Nombre del Cliente Saldo Deudor Saldo Acreedor
xxxxxxxxxxxxx xxxxxxx xxxxx xxxx

Cantidad de cuentas con saldo deudor: XXXX
Cantidad de cuentas con saldo acreedor: XXXX

considerando que pueden venir MAS DE UN REGISTRO para cada cuenta(cualquier numero por ej 10 cuentas). Aclaracion: si el saldo es positivo, corresponde SALDO DEUDOR; si el saldo es negativo, corresponde SALDO ACREEDOR. archivos de datos.dat

bueno desde ya gracias y saludos a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Archivo e cuentas corrientes

Publicado por ramon (2158 intervenciones) el 28/11/2011 17:52:24
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
{Esto valdrá}
 
program cuentaco;
 uses
    crt;
 type
    regcliente = record
            NCuenta : string[50];
            Nombre : string;
            Saldo : real;
            Movimiento : integer;
          end;
     string12 = string[12];
 
  const
     archivo : string12 = 'c:\tp\datos.dat';
 
  var
     f : file of regcliente;
     dato : regcliente;
     cuentas : array[1..10] of regcliente;
 
 
 
  procedure mobimientocuenta;
  var
     numer : string[50];
     regis, vusc : longint;
     encontrado : boolean;
  begin
      writeln('N§ Cuenta : ');
      readln(numer);
      assign(f,archivo);
   {$I-} reset(f); {$I+}
   if ioresult <> 0 then
   halt(1);
   vusc := 0;
   encontrado := false;
  repeat
  seek(f,vusc);
  read(f,dato);
  if dato.ncuenta = numer then
  begin
     encontrado := true;
  end
 else
   begin
     vusc := vusc + 1;
   end;
  until (vusc > filesize(f) - 1) or (encontrado = true);
    if encontrado = true then
    begin
      clrscr;
      regis := vusc;
      writeln('N§ Cuenta : ',dato.ncuenta,'   ','Nombre : ',dato.nombre,'   ',
      'Saldo : ',dato.saldo:12:4,'   ','Estado : ',dato.Movimiento);
      readln;
    end;
    close(f);
 end;
 
 
 procedure leerarchivo(archi : string12);
 var
    cont : longint;
    result : string[8];
    deu, acr : integer;
 begin
      assign(f,archivo);
   {$I-} reset(f); {$I+}
   if ioresult <> 0 then
   begin
       writeln('Falta Archibo = ',archivo);
       delay(140);
       halt(1);
   end;
     cont := 0;
     deu := 0;
     acr := 0;
   repeat
   seek(f,cont);
   read(f,dato);
   case dato.Movimiento of
 1 : begin
      result := 'Deudor';
      deu := deu + 1;
      end;
 2 : begin
      result := 'Acreedor';
      acr := acr + 1;
      end;
  end;
   writeln(dato.NCuenta,'   ',dato.Nombre,'   ',result);
   cont := cont + 1;
   until cont > filesize(f) - 1;
   writeln;
   writeln('Cuentas con saldo deudor  : ',deu);
   writeln('Cuentas con saldo acreedor: ',acr);
   readln;
   close(f);
 end;
 
  procedure entradadatos;
  var
     guar, contador : integer;
     mas : char;
  begin
      contador := 1;
   repeat
   writeln('N§ Cuenta : ');
   readln(cuentas[contador].ncuenta);
   writeln('Nombre : ');
   readln(cuentas[contador].nombre);
   writeln('Saldo : ');
   readln(cuentas[contador].saldo);
   if cuentas[contador].saldo > 0 then
   cuentas[contador].Movimiento := 1;
   if cuentas[contador].saldo < 0 then
   cuentas[contador].Movimiento := 2;
   writeln;
   writeln('Desea Entrar Mas Cuentas Corrientes [S/N]');
   mas := readkey;
   clrscr;
   if mas in['s','S'] then
   contador := contador + 1;
   until mas in['n','N'];
      assign(f,archivo);
   {$I-} reset(f); {$I+}
   if ioresult <> 0 then
   begin
       rewrite(f);
       for guar := 1 to contador do
       begin
       seek(f,guar - 1);
       write(f,cuentas[guar]);
       end;
       close(f);
   end
  else
     begin
       for guar := 1 to contador do
       begin
       seek(f,filesize(f) + guar - 1);
       write(f,cuentas[guar]);
       end;
       close(f);
     end;
  end;
 
  procedure menu;
  var
     tecla : char;
     fin : boolean;
  begin
     fin := false;
     repeat
     clrscr;
     writeln;
     writeln('**** Menu Jeneral ****');
     writeln;
     writeln(' 1 : Entrada Datos');
     writeln(' 2 : Leer Datos');
     writeln(' 3 : Modificar Datos');
     writeln(' 4 : Salir');
     tecla := readkey;
     clrscr;
  case tecla of
 #49 : entradadatos;
 #50 : leerarchivo(archivo);
 #51 : mobimientocuenta;
 #52 : fin := true;
   end;
   until fin = true;
  end;
 
 begin
    clrscr;
    menu;
 end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Archivo e cuentas corrientes

Publicado por Horacio Daniel Belardita (53 intervenciones) el 28/11/2011 19:41:09
Mil gracias nuevamente Ramon por tu ayuda.Que sigas bien y exitos.saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Archivo e cuentas corrientes

Publicado por cristian (2 intervenciones) el 22/11/2012 00:52:06
necesito que me ayuden puede ser :

se procesa un archivo de cuentas corrientes, de cada cuenta se conoce el número de cuenta, nombre y saldo. Informar
a) _por cada cliente el estado de cuenta acreedor o deudor
b) _cantidad de cuentas con el saldo acreedor
c) _cantidad de cuentas con el saldo deudor
d) _cliente con mayor saldo acreedor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Archivo e cuentas corrientes

Publicado por cristian (2 intervenciones) el 22/11/2012 01:11:02
pero a donde se pone todos esos codigos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Archivo e cuentas corrientes

Publicado por ramon (2158 intervenciones) el 22/11/2012 19:14:02
1
2
3
4
5
6
7
8
9
10
11
12
{Esto seria la base de  donde se pone todos esos codigos}
 
type
   cuenta = record         {registro de cuenta}
                 numerocuent : word;
                  nombre : string[80];
                  saldo     : real;
              end;
 
  var
     f : file of cuenta;   {para el archivo}
     datos : cuenta;     {para los datos}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar