Pascal/Turbo Pascal - Ayuda con ejercicio de examen

 
Vista:
sin imagen de perfil

Ayuda con ejercicio de examen

Publicado por Matias (4 intervenciones) el 30/08/2016 03:00:54
Hola a todos, me pueden dar una mano? necesito una ayuda en un ejercicio de examen, voy casi terminando el ejercicio pero me queda algo que no puedo solucionar, subo el codigo fuente aca y la consigna

Consigna
El ejercicio consiste en crear una estructura(registro y archivo) capaz de gestionar las cuentas corrientes de los clientes de un banco, sabiendo que como máximo puede haber 1000 clientes y tener cada cliente tres cuentas como máximo. La información que deberá contener será: Código cliente, Titular, Nº de cuenta (8 dígitos) y Saldo.

Generar un programa que cargue el archivo (altas), permita observar los datos (consulta) y además se deberán crear un procedimiento Modificar que dados la estructura anterior, el código, el nº de cuenta y una cantidad, permita actualizar el saldo respecto a la cantidad indicada y a la cuenta de ese cliente.


Tengo casi todo listo, no necesito un nuevo codigo fuente, sino arreglar o corregir una parte de mi algoritmo
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
PRogram examen4;
 uses crt;
  type
      cuentas = record
        codcli:  integer;
        titular: string[20];
        nrocuenta: integer;
        saldo: real;
      end;
  var
   op,cli:integer;
   arch: file of cuentas;
   c:cuentas;
 
Procedure ALTA;
  Var
     codcli : integer;
     ncuentas,i : Integer;
     o:string[1];
    Begin
     clrscr;
     writeln('ALTAS DE CLIENTES');
     Assign(arch,'C:\Users\martt\Desktop\clientes');
     Reset(arch);
       If(IoResult<>0) Then
         Rewrite(arch);
         writeln('"NUEVO CLIENTE"');
         writeln('INGRESE NUMERO DE CLIENTE: ');
         readln(codcli);
         c.codcli:=0;
          For i:=FileSize(arch)+1 to codcli Do
            Begin
             Seek(arch,i);
             Write(arch,c);
            End;
          Seek(arch,codcli);
          Read(arch,c);
 
          If(c.codcli=codcli) Then
             Begin
              writeln('CLIENTE YA EXISTENTE !!!');
              writeln('<<< Presione una tecla para continuar >>>');
              Close(arch);
              Readkey;
              Exit;
             End;
              write('Titular : ');
              readln(c.titular);
              ncuentas:=0;
               repeat
                write('Numero de Cuenta : ');
                readln(c.nrocuenta);
                write('Saldo :');
                readln(c.saldo);
                ncuentas:=ncuentas+1;
                 if  ncuentas <3 then
                  begin
                   writeln('Usted puede crear ',3-ncuentas,' cuentas mas,¿desea crear una nueva cuenta? (S/N):');
                   readln(o);
                  end;
               until (ncuentas=3)or(o= 'N') or (o= 'n');
               Readln;
               c.codcli:=codcli;
               Seek(arch,c.codcli);
               Write(arch,c);
               Close(arch);
               writeln('Cuenta registrada !!!');
               writeln('<<< Presione una tecla para continuar >>>');
               readkey;
          End;
 
Procedure CONSULTA;
   Var codcli: integer;
    Begin
     Clrscr;
     writeln('CONSULTA DE CUENTAS DE CLIENTES');
     Assign(arch,'C:\Users\martt\Desktop\clientes');
     Reset(arch);
 
     If(IoResult<>0) Then
      Begin
       writeln('No existe cliente !!!');
       writeln('<<< Presione una tecla para continuar >>>');
       Readkey;
       Exit;
      End;
       Repeat
        write('Numero de cliente: ');
        Read(codcli);
       Until codcli<=FileSize(arch);
       Seek(arch,codcli);
       Read(arch,c);
 
         If(c.codcli=codcli) Then
          Begin
           writeln('Codigo de Cliente: ',c.codcli:1);   writeln('Titular: ',c.titular:3);   writeln('Numero/s de Cuenta/s: ',c.nrocuenta:1);   writeln('Saldo: ',c.saldo:3:2,'$');
           writeln('     ');
           writeln('<<< Presione una tecla para continuar >>>');
           Close(arch);
           Readkey;
           Exit;
          End
           Else
            Close(arch);
            writeln('<<< Presione una tecla para continuar >>>');
            Readkey;
         end;
 
Procedure MODIFICACION;
 Var codcli : integer;
  Begin
   Clrscr;
   writeln('MODIFICACION DE CUENTAS DE CLIENTES');
   Assign(arch,'C:\Users\martt\Desktop\clientes');
   Reset(arch);
 
    If(IoResult<>0) Then
     Begin
      writeln('No existe el archivo !!!');
      writeln('<<< Presione una tecla para continuar >>>');
      Readkey;
      Exit;
     End;
       Repeat
        write('Numero de cliente: ');
        Read(codcli);
       Until codcli<=FileSize(arch);
        Seek(arch,codcli);
        Read(arch,c);
         If(c.codcli=codcli) Then
          Begin
           writeln('Codigo de Cliente: ',c.codcli:1);   writeln('Titular: ',c.titular:3);   writeln('Numero/s de Cuenta/s: ',c.nrocuenta:1);   writeln('Saldo: ',c.saldo:3:2,'$');
           writeln('     ');
           writeln('Anote el nuevo saldo ...');
           write('Saldo: ');
           Readln(c.saldo);
           Seek(arch,FilePos(arch)-1);
           Write(arch,c);
           Close(arch);
           writeln('Saldo modificado !!!');
           writeln('<<< Presione una tecla para continuar >>>');
           Readkey;
           Exit;
         End
          Else
          writeln('No existe ese cliente !!!');
          Close(arch);
          writeln('<<< Presione una tecla para continuar >>>');
          Readkey;
    End;
 
begin
 repeat
  writeln('MENU DE OPCIONES:');
  writeln('1. ALTA DE UN NUEVO CLIENTE');
  writeln('2. MODIFICACION DE SALDO');
  writeln('3. CONSULTA INFORMACION DE UN CLIENTE');
  writeln('4. SALIR');
  writeln(' ');
  write('POR FAVOR INGRESE UNA OPCION: ');
  read(op);
   case op of
    1: ALTA;
    2: MODIFICACION;
    3: CONSULTA;
    4: EXIT;
   end;
    cli:=cli+1;
 until (cli=1000) or (op=4);
    readln;
end.

necesito que en el procedure "consulta" muestre los numeros de cuenta, compilo ejecuto creo las cuentas ,pero lo que me pasa es que me muestra la ultima cuenta creada y no las cuentas que quiero , si pueden ayudarme les agradeceria desde ya gracias
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
sin imagen de perfil
Val: 2
Ha aumentado su posición en 17 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Ayuda con ejercicio de examen

Publicado por lucas (1 intervención) el 20/07/2018 23:34:45
hola amigo a mi me pidieron el mismo ejercicio que el tuyo solamente que la actividad me pide altas y consultas, no modificacion pero quisiera saber si lo tenes terminando me lo podrias copiar y pegar y pasar, muchas gracias.
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