0% encontró este documento útil (0 votos)
13 vistas7 páginas

Codigo

es un código en c

Cargado por

rosarull40
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
13 vistas7 páginas

Codigo

es un código en c

Cargado por

rosarull40
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

include <iostream>

#include <iomanip>

#include <string>

using namespace std;

const int NUM_ALUMNOS = 50;

// Estructura para almacenar los datos de un alumno

struct Alumno {

string nombre;

string cedula;

float son datos ;

float notaMatematicas#;

float notaFisica;

float promedio;

};

// Funciones prototypes

void cargarDatos(Alumno alumnos[], int n);

void mostrarTabla(const Alumno alumnos[], int n);

void ordenarPorPromedio(Alumno alumnos[], int n);

void buscarPorCedula(const Alumno alumnos[], int n);

void mostrarMejorAlumno(const Alumno alumnos[], int n);

int main() {

Alumno alumnos[NUM_ALUMNOS];

int cantidad = 0; // Para registrar cuántos alumnos se han cargado

int opcion;
do {

cout << "\nMenu:\n";

cout << "1) Cargar en forma de tabla

";

cout << "2) Ordenar de forma ascendente por promedio

";

cout << "3) Mostrar datos de un alumno por cedula

";

cout << "4) Mostrar el estudiante con mayor promedio

";

cout << "5) Mostrar toda la tabla

";

cout << "6) Salir

";

cout << "Seleccione una opcion: ";

cin >> opcion;

switch(opcion) {

case 1:

if (cantidad == 0) {

cargarDatos(alumnos, NUM_ALUMNOS);

cantidad = NUM_ALUMNOS;

} else {

cout << "Los datos ya han sido cargados.\n";

break;

case 2:

if (cantidad > 0)

ordenarPorPromedio(alumnos, cantidad);

else

cout << "Por favor cargue los datos primero.\n";


break;

case 3:

if (cantidad > 0)

buscarPorCedula(alumnos, cantidad);

else

cout << "Por favor cargue los datos primero.\n";

break;

case 4:

if (cantidad > 0)

mostrarMejorAlumno(alumnos, cantidad);

else

cout << "Por favor cargue los datos primero.\n";

break;

case 5:

if (cantidad > 0)

mostrarTabla(alumnos, cantidad);

else

cout << "Por favor cargue los datos primero.\n";

break;

case 6:

cout << "Saliendo...\n";

break;

default:

cout << "Opcion invalida. Intente nuevamente.\n";

} while (opcion != 6);

return 0;

}
// Función para cargar datos de los alumnos

void cargarDatos(Alumno alumnos[], int n) {

cout << "Cargando datos de " << n << " alumnos.\n";

for (int i = 0; i < n; i++) {

cout << "\nAlumno " << i + 1 << ":\n";

cout << "Nombre: ";

[Link](); // Para limpiar el buffer

getline(cin, alumnos[i].nombre);

cout << "Cedula: ";

getline(cin, alumnos[i].cedula);

cout << "Nota de Computacion: ";

cin >> alumnos[i].notaComputacion;

cout << "Nota de Matematicas: ";

cin >> alumnos[i].notaMatematicas;

cout << "Nota de Fisica: ";

cin >> alumnos[i].notaFisica;

// Calcular promedio

alumnos[i].promedio = (alumnos[i].notaComputacion + alumnos[i].notaMatematicas +


alumnos[i].notaFisica) / 3.0;

// Función para mostrar toda la tabla

void mostrarTabla(const Alumno alumnos[], int n) {

cout << "\n" << setw(15) << "Nombre" << setw(12) << "Cedula"

<< setw(12) << "Computacion" << setw(12) << "Matematicas" << setw(12) << "Fisica" <<
setw(10) << "Promedio" << "\n";

for (int i = 0; i < n; i++) {

cout << setw(15) << alumnos[i].nombre

<< setw(12) << alumnos[i].cedula


<< setw(12) << alumnos[i].notaComputacion

<< setw(12) << alumnos[i].notaMatematicas

<< setw(12) << alumnos[i].notaFisica

<< setw(10) << fixed << setprecision(2) << alumnos[i].promedio

<< "\n";

// Función para ordenar por promedio en forma ascendente

void ordenarPorPromedio(Alumno alumnos[], int n) {

for (int i = 0; i < n -1; i++) {

for (int j = 0; j < n - i -1; j++) {

if (alumnos[j].promedio > alumnos[j+1].promedio) {

swap(alumnos[j], alumnos[j+1]);

cout << "Tabla ordenada por promedio en forma ascendente.\n";

// Función para buscar alumno por cedula

void buscarPorCedula(const Alumno alumnos[], int n) {

string cedulaBuscada;

cout << "Ingrese la cedula del alumno a buscar: ";

[Link]();

getline(cin, cedulaBuscada);

bool encontrado = false;

for (int i = 0; i < n; i++) {

if (alumnos[i].cedula == cedulaBuscada) {

cout << "\nDatos del alumno:\n";


cout << "Nombre: " << alumnos[i].nombre << "\n";

cout << "Cedula: " << alumnos[i].cedula << "\n";

cout << "Nota de Computacion: " << alumnos[i].notaComputacion << "\n";

cout << "Nota de Matematicas: " << alumnos[i].notaMatematicas << "\n";

cout << "Nota de Fisica: " << alumnos[i].notaFisica << "\n";

cout << "Promedio: " << fixed << setprecision(2) << alumnos[i].promedio << "\n";

encontrado = true;

break;

if (!encontrado)

cout << "Alumno con cedula " << cedulaBuscada << " no encontrado.\n";

// Función para mostrar el alumno con mayor promedio

void mostrarMejorAlumno(const Alumno alumnos[], int n) {

if (n == 0) {

cout << "No hay datos cargados.\n";

return;

int indexMax = 0;

for (int i = 1; i < n; i++) {

if (alumnos[i].promedio > alumnos[indexMax].promedio) {

indexMax = i;

cout << "\nAlumno con mayor promedio:\n";

cout << "Nombre: " << alumnos[indexMax].nombre << "\n";

cout << "Cedula: " << alumnos[indexMax].cedula << "\n";

cout << "Nota de Computacion: " << alumnos[indexMax].notaComputacion << "\n";

cout << "Nota de Matematicas: " << alumnos[indexMax].notaMatematicas << "\n";


cout << "Nota de Fisica: " << alumnos[indexMax].notaFisica << "\n";

cout << "Promedio: " << fixed << setprecision(2) << alumnos[indexMax].promedio << "\n";

También podría gustarte