Sistema de Gestión Universitaria es una aplicación en Java para la administración de cursos, estudiantes y profesores en una universidad. La aplicación permite gestionar cursos, inscripciones de estudiantes y asignaciones de profesores de manera eficiente.
El sistema está diseñado para gestionar cursos con capacidad fija, estudiantes que pueden estar inscritos en un número limitado de cursos y profesores que pueden ser asignados a un máximo de cursos.
Una universidad de TI desea desarrollar un sistema de gestión de cursos. Los cursos tienen capacidades fijas y los estudiantes solo pueden inscribirse en un número limitado de cursos si la capacidad lo permite.
courseId | courseName | courseLevel |
---|---|---|
1 | java_beginner | bachelor |
2 | java_intermediate | bachelor |
3 | python_basics | bachelor |
4 | algorithms | master |
5 | advanced_programming | master |
6 | mathematical_analysis | master |
7 | computer_vision | master |
memberId | memberName | enrolledCourses |
---|---|---|
1 | Alice | java_beginner, java_intermediate, python_basics |
2 | Bob | java_beginner, algorithms |
3 | Alex | advanced_programming |
memberId | memberName | enrolledCourses |
---|---|---|
4 | Ali | java_beginner, java_intermediate |
5 | Ahmed | python_basics, advanced_programming |
6 | Andrey | mathematical_analysis |
- Java: Lenguaje de programación utilizado para implementar la lógica del sistema.
- Scanner: Para la entrada de datos desde la consola.
Para ejecutar este proyecto en tu máquina local, sigue estos pasos:
-
Clona el repositorio:
git clone https://github.com/LatinGladiador/University-Courses-Management-System.git
-
Navega al directorio del proyecto:
cd University-Courses-Management-System
-
Compila el proyecto:
javac Main.java
-
Ejecuta la aplicación:
java Main
- La aplicación lee comandos desde la entrada estándar.
- Los comandos disponibles incluyen
course
,student
,professor
,enroll
,drop
,teach
, yexempt
.
- fillInitialData(): Carga las instancias iniciales con los datos proporcionados en las tablas.
- teach(Course): Asigna un profesor para enseñar un curso si no lo está enseñando ya y no ha alcanzado su límite de carga de cursos.
- exempt(Course): Exime al profesor de enseñar un curso si actualmente lo está enseñando.
- enroll(Course): Inscribe al estudiante en un curso si no está ya inscrito, no ha alcanzado el número máximo de inscripciones y el curso no está lleno.
- drop(Course): Da de baja al estudiante de un curso si está inscrito en él.
- isFull(): Verifica si el curso ha alcanzado su capacidad de inscripción.
- Cada curso tiene una capacidad de 3 estudiantes.
- Un estudiante no puede estar inscrito en el mismo curso más de una vez.
- Un estudiante no puede estar inscrito en más de 3 cursos.
- Un estudiante no puede inscribirse en un curso que esté lleno (ya tiene 3 estudiantes inscritos).
- Un profesor no puede ser asignado a un curso que ya está enseñando.
- Un profesor no puede ser asignado para enseñar más de 2 cursos.
- Un profesor no puede ser eximido de un curso si no lo está enseñando.
Los comandos se representan a través de la entrada estándar. El programa lee la entrada línea por línea. Verifica la corrección de cada línea de entrada; si es correcta, espera la siguiente línea, de lo contrario, imprime un mensaje de error y termina el programa. La ejecución se detiene cuando se encuentra una línea vacía. Los comandos pueden ser múltiples.
- Añadir curso:
course courseName courseLevel
- Añadir estudiante:
student memberName
- Añadir profesor:
professor memberName
- Inscribir a un curso:
enroll memberId courseId
- Dar de baja de un curso:
drop memberId courseId
- Asignar a un curso:
teach memberId courseId
- Eximir de un curso:
exempt memberId courseId
Cada línea de salida se genera para cada comando de entrada leído y realizado.
Comando | Mensaje |
---|---|
course | Añadido exitosamente |
student | Añadido exitosamente |
professor | Añadido exitosamente |
enroll | Inscrito exitosamente |
drop | Dado de baja exitosamente |
exempt | Profesor eximido exitosamente |
teach | Profesor asignado exitosamente para enseñar este curso |
- Curso existe
- Estudiante ya está inscrito en este curso
- Se alcanzó el máximo de inscripciones para el estudiante
- Curso está lleno
- Estudiante no está inscrito en este curso
- Carga del profesor completa
- Profesor ya está enseñando este curso
- Profesor no está enseñando este curso
- Entradas incorrectas
course
Java_advanced
master
Añadido exitosamente
enroll
1
1
Estudiante ya está inscrito en este curso
student
siba
enroll
7
5
enroll
7
6
enroll
7
4
enroll
7
2
Añadido exitosamente
Inscrito exitosamente
Inscrito exitosamente
Inscrito exitosamente
Se alcanzó el máximo de inscripciones para el estudiante
El uso de @SuppressWarnings
para el plugin Checkstyle será considerado como una violación de las normas del proyecto.
Las contribuciones al proyecto son bienvenidas. Si deseas contribuir, sigue estos pasos:
- Fork el repositorio.
- Crea una rama para tus cambios (
git checkout -b mi-rama
). - Haz un commit de tus cambios (
git commit -am 'Añadí algo'
). - Push a la rama (
git push origin mi-rama
). - Crea un Pull Request en GitHub.
Este proyecto fue creado y es mantenido por LatinGladiador.
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.