Universidad de Costa Rica
Escuela de Ciencias de la
Computación e Informática
Profesor Adolfo Di Mare
CI-1201
I Semestre 2006
[<=] [home] [<>] [\/] [=>]
CI-1201 Programación II

Tarea #8 [solución]

Control de notas para el curso

      Modifique su tarea programada anterior de manera que el profesor pueda usar su programa para registrar las notas de todos los alumnos del curso. Su programa debe permitir manejar varios grupos. Debe ser posible obtener las notas ordenadas por carnet, nombre, grupo, examen, etc.

      Para almacenar las notas use varias relaciones que en conjunto formen una base de datos relacional. Utilice como llaves el número de carnet y la sigla del curso, junto con el número de grupo. Almacene todos los valores en listas, pero incluya una clase C++ de acceso a cada relación. Incluya mecanismos de acceso en sus listas de manera que sea posible obtener los datos ordenados de acuerdo a los diferentes criterios que se necesita. Use herencia para unificar el acceso a las relaciones de su base de datos. La interfaz de su programa puede ser una interfaz de programa en modo "consola", pero su programa sí debe estar construido en tres capas. En su implementación incluya los mecanismos necesarios para que los datos de sus listas queden almacenados en disco. Incluya los datos de prueba requeridos para cada uno de los componentes del programa.

Alumno                     Matrícula
- carnet <K>               - G = No.grupo <K,+>
- Nombre <K, +>            - Carnet <+,K>
- Apellidos <+,K>          - Nota final
- Sexo
- Email
- Teléfono
- Celular

Grupo                      Nota
- G = No.grupo <K>         - Carnet <K,+,+>
- Horario                  - No.G   <+,K,+>
- Aula                     - No.Sec <+,+,K>
                           - Porcentaje
                           - Nota

                    Alumno <carnet>           Grupo <No.G>
                              \               /
                           Matricula <carnet,No.G>
                                      |
                             Nota <Sec,G,carnet>


  Carnet   Nombre   Apellido Sexo   Email              Teléfono    Celular
+--------+--------+---------+-----+-------------------+----------+----------+
| A12345 | Pipino | Cuevas  | TLD | pipino@cuevas.com | 314-1516 | 888-6666 |
| A54321 | Usnavy | Pelona  | NNC | usanvy@gov.us     | 555-2525 | 880-8080 |
+--------+--------+---------+-----+-------------------+----------+----------+

      No.G   Horario    Aula            Carnet   No.G  No.Sec   %   Nota
    +-----+-----------+----------+    +--------+-----+-------+-----+-----+
    |  1  | L+J 10,11 | ECCI-313 |    | A12345 |  1  |   1   | 20% |  70 |
    |  2  | L+J 12,13 | ECCI-303 |    | A12345 |  1  |   2   | 10% |  35 |
    +-----+-----------+----------+    | A12345 |  1  |   3   | 15% |  32 |
                                      | A12345 |  1  |   4   |  5% |  30 |
                                      | A12345 |  1  |   5   |  5% |  90 |
      No.G   Carnet   Nota Final      | A12345 |  1  |   6   |  5% | 100 |
    +------+--------+------------+    | A12345 |  1  |   7   | 12% | 100 |
    |  1   | A12345 |            |    | A12345 |  1  |   8   | 19% | 120 |
    |  2   | A54321 |            |    |        |     |       |     |     |
    +------+--------+------------+    | A54321 |  1  |   1   | 20% |  70 |
                                      | A54321 |  1  |   2   | 10% |   0 |
                                      | A54321 |  1  |   3   | 15% |     |
                                      +--------+-----+-------+-----+-----+

      Entregue su tarea por correo electrónico, como lo hizo anteriormente.

[mailto:] Entrega de Tareas

Tiempo de entrega: 14 días
Entregue su documentación en la primera fecha, y luego entregue el programa completo en la segunda fecha.
Primera etapa: 7 días
Modalidad: En parejas

Soluciones

[mailto:] Adolfo Di Mare <adolfo@di-mare.com>.
Copyright © 2006
Derechos de autor reservados © 2006
[home] <> [/\]