Pascal/Turbo Pascal - Archivo y Corte de Control

 
Vista:
sin imagen de perfil

Archivo y Corte de Control

Publicado por Felipe (2 intervenciones) el 22/09/2013 18:55:33
Hola quisiera saber si me pueden ayudar con este problema para la universidad .. que el contenido de archivos no fue enseñado bien y estoy bastante complicado.
Se requiere construir una aplicación en Pascal que permita realizar lo
siguiente:
1. Ingresar notas finales de cada alumno de la universidad y con los siguientes datos:
| Facultad | Escuela | Carrera | ApellidoPaterno | ApellidoMaterno | Nombre | Nota |
Se requiere que el archivo permanezca ordenado por Facultad, Escuela, Carrera, App, Apm,
Nombre
2. Permitir generar el archivo Estadísticas con los siguientes datos:
• Nota mejor alumno por carrera
• Promedio de Notas por carrera
• Nota mejor alumno por Escuela
• Promedio de Notas por Escuela
• Nota mejor alumno por Facultad
• Promedio de Notas por Facultad
• Nota mejor alumno de la Universidad
• Promedio de Notas de la Universidad

en síntesis hay que generar un archivo si es que no existe , ingresar alumnos con sus datos Facultad, Escuela, Carrera, App, Apm,Nombre, y que se mantenga ordenado el archivo , y por ultimo saber cual es el mejor por carrera etc etc .

Gracias por responder :)
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 y Corte de Control

Publicado por ramon (2158 intervenciones) el 23/09/2013 14:40:27
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
{Algo de esto podría irte sirviendo}
 
 program archivos;
 uses
    crt;
  const
     ordenacion : array[1..6] of string[8] = ('Facultad','Escuela','Carrera',
                               'App','Apm','Nombre');
 
  type
    alumnos = ^regalumno;
    regalumno = record
          Facultad : string[40];
           Escuela : string[40];
           Carrera : string[60];
   ApellidoPaterno : string[40];
   ApellidoMaterno : string[40];
            Nombre : string[40];
              Nota : real;
               sig : alumnos;
            end;
 
    informe = record
         Notamejoralumnoporcarrera      : real;
         PromediodeNotasporcarrera      : real;
         NotamejoralumnoporEscuela      : real;
         PromediodeNotasporEscuela      : real;
         NotamejoralumnoporFacultad     : real;
         PromediodeNotasporFacultad     : real;
         NotamejoralumnodelaUniversidad : real;
         PromediodeNotasdelaUniversidad : real;
       end;
 
  var
    datos : regalumno;
    f : file of regalumno;
    actu, primer, anter : alumnos;
    tecla : char;
    t, i, x, y : integer;
    puntuac : real;
 
 
   procedure entramoslosdatos;
   begin
       with actu^ do
       begin
          write('Introduzca La Facultad      : ');
          readln(Facultad);
          write('Introduzca La Escuela       : ');
          readln(Escuela);
          write('Introduzca La Carrera       : ');
          readln(Carrera);
          write('Introduzca Apellido Paterno : ');
          readln(ApellidoPaterno);
          write('Introduzca Apellido Materno : ');
          readln(ApellidoMaterno);
          write('Introduzca El Nombre        : ');
          readln(Nombre);
          write('Introduzca Nota Alcanzada   : ');
          readln(Nota);
       end;
   end;
 
   procedure entragistroalumno;
   begin
   if primer = nil then
   begin
       new(actu);
       entramoslosdatos;
       primer := actu;
       actu^.sig := nil;
      end
   else
      begin
          anter := actu;
          new(actu);
          entramoslosdatos;
          anter^.sig := actu;
          actu^.sig := nil;
      end;
    end;
 
  procedure presentadatos;
  var
      ver : alumnos;
    begin
       ver := primer;
       while ver <> nil do
       begin
          with ver^ do
          writeln(Facultad,'  ',Escuela,'  ',Carrera,'  ',ApellidoPaterno,
                           '  ',ApellidoMaterno,'  ',Nombre,'  ',Nota:0:2);
          ver := ver^.sig;
        end;
     end;
 
  procedure ordenaporpresenta(tipo : string);
  var
    paso, tem, ac, an : alumnos;
    mnot : real;
    carr : string[60];
    alumn : string[40];
    cual : string[40];
  begin
      if primer <> nil then
      begin
      tem := nil;
      paso := primer;
      while paso <> nil do
      begin
          if paso^.carrera = tipo then
          begin
              if tem = nil then
              begin
                 new(ac);
                 ac := paso;
                 tem := ac;
                 ac := ac^.sig;
              end
            else
                begin
                   an := ac;
                   new(ac);
                   ac := paso;
                   an^.sig := ac;
                   ac^.sig := nil;
                end;
            end;
         end;
       paso := tem;
       mnot := 0.0;
       carr := ' ';
       while paso <> nil do
       begin
        if (carr = paso^.Carrera) and (mnot < paso^.nota) then
        begin
        carr := paso^.Carrera;
        mnot := paso^.nota;
        alumn := paso^.nombre;
        end;
        paso := paso^.sig;
       end;
  writeln('La Mejor Nota Por Carrera Es : ',carr,'   ',alumn,'   ',mnot);
  if ac <> nil then
  dispose(ac);
  end
 else
    begin
       clrscr;
       writeln('No Datos Presentes Pulse Una Tecla');
       readkey;
    end;
  end;
 
 
 
 
  begin
     clrscr;
     primer := nil;
     entragistroalumno;
     presentadatos;
     writeln;
     writeln('Pulse Una Tecla');}
     readkey;
     if actu <> nil then
     dispose(actu);
  end.
 
 
{Es para Seguir por este camino}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Archivo y Corte de Control

Publicado por Felipe (2 intervenciones) el 23/09/2013 23:30:23
Te pasaste Ramon, muuuchas 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