pasar de c a c++

jorge0enprogramacion
24 de Marzo del 2010
Hola alguien sabria como seria este codigo en c++?


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <conio.h> /* No Ansi C */

#define MAX 3

typedef struct stAlumno {
char apellidos[100];
char nombre[30];
char dni[8 + 1]; /* aquí en mi pais el DNI consta de 8 dígitos */
float practica;
float teorica;
float final;
} Alumno;

/* prototipos */
void iniciarLista( Alumno alumnos[] );
int menu( void );
void crear( Alumno alumnos[] );
void buscar( Alumno alumnos[] );
void borrar( Alumno alumnos[] );
void ordenar( Alumno alumnos[] );
void ponerNotas( Alumno alumnos[] );
int listar( Alumno alumnos[] );


int main( void )
{
Alumno alumnos[MAX];
int opcion;

iniciarLista( alumnos );

while ( (opcion = menu()) != 7 ) {
switch ( opcion ) {
case 1:
crear( alumnos );
break;
case 2:
borrar( alumnos );
break;
case 3:
buscar( alumnos );
break;
case 4:
ordenar( alumnos );
break;
case 5:
ponerNotas( alumnos );
break;
case 6:
listar( alumnos );
break;
default:
printf( "n Opcion no valida..." );
}
printf( "nnnt PULSE UNA TECLA PARA IR AL MENU ... " );
getch();
}

return 0;
}


/* IMPLEMENTACIÓN DE FUNCIONES */


void iniciarLista( Alumno alumnos[] )
{
register int i;

for ( i = 0; i < MAX; i++ ) {
alumnos[i].dni[0] = '';
alumnos[i].practica = 0.0f;
alumnos[i].teorica = 0.0f;
alumnos[i].final = 0.0f;
}
}

int menu( void )
{
int c;

clrscr();
printf( "n MENU PRINCIPALn ==============nn"
"t 1. Dar de alta un Alumnon"
"t 2. Borrar un Alumnon"
"t 3. Buscar un Alumnon"
"t 4. Ordenarn"
"t 5. Poner notasn"
"t 6. Mostrar listadon"
"t 7. SALIRnn"
" ELIJA UNA OPCION: " );

fflush( stdin );
scanf( "%d", &c );
clrscr();

return c;
}

void crear( Alumno alumnos[] )
{
/* prototipos */
int buscarLibre( Alumno alumnos[] );
int verificaDup( Alumno alumnos[], const char s[] );

int pos, valido;
char dni[80];

pos = buscarLibre( alumnos );

if ( pos != -1 ) {
printf( "n CREAR FICHA:n ===========nn" );

do {
printf( "n DNI : " );
fflush( stdin );
gets( dni );
if ( !dni[0] )
printf( "t Este dato es necesarion" );
else {
valido = verificaDup( alumnos, dni );
if ( !valido ) printf( "t Error: DNI ya registrado, verifiquen" );
}
} while ( !valido || !dni[0] );

strcpy( alumnos[pos].dni, dni );

printf( "n Apellidos: " );
fflush( stdin );
gets( alumnos[pos].apellidos );

printf( "n Nombre : " );
fflush( stdin );
gets( alumnos[pos].nombre );
}
else
printf ( "nt Error: Lista llenann" );
}

void buscar( Alumno alumnos[] )
{
printf( "n buscar...n" );
}

void borrar( Alumno alumnos[] )
{
int buscarPos( Alumno alumnos[], const char s[] ); /* prototipo */

char dni[80];
char confirma;
int pos;

if ( listar( alumnos ) ) {
printf( "n Introduzca numero de dni: " );
fflush( stdin );
gets( dni );

pos = buscarPos( alumnos, dni );

if ( pos != -1 ) {
printf( "nt Esta seguro de borrar el registro S/N?: " );
while ( confirma = (char)toupper(getch()), !strchr("SN", confirma) );
printf( "n" );

if ( confirma == 'N' ) return;

alumnos[pos].dni[0] = '';
printf( "n Registro borradon" );

listar( alumnos );
}
else
printf( "n No existe el registron" );
}
}

void ordenar( Alumno alumnos[] )
{
printf( "n Ordenar...n" );
}

void ponerNotas( Alumno alumnos[] )
{
int buscarPos( Alumno alumnos[], const char s[] ); /* prototipo */

char dni[80];
int pos;

if ( listar( alumnos ) ) {
printf( "n Ingrese #DNI: " );
fflush( stdin );
gets( dni );

pos = buscarPos( alumnos, dni );

if ( pos != -1 ) {

printf( "nt %s %sn", strupr(alumnos[pos].apellidos), alumnos[pos].nombre );
printf( "n Nota Practica: " );
scanf( "%f", &alumnos[pos].practica );

printf( "n Nota Teorica : " );
scanf( "%f", &alumnos[pos].teorica );

printf( "n Nota Final : " );
scanf( "%f", &alumnos[pos].final );
}
else
printf( "n No existe el registron" );
}
}

int listar( Alumno alumnos[] )
{
int estaVacia( Alumno alumnos[] ); /* prototipos */

register int i;

if ( !estaVacia( alumnos ) ) {
printf( "n %-11s%-14s%-23s%-11s%-9s%-8s", "DNI", "NOMBRE", "APELLIDOS", "PRACTICA", "TEORIA", "FINAL" );
printf( "n -------------------------------------------------------------------------nn" );

for ( i = 0; i < MAX; ++i ) {
if ( alumnos[i].dni[0] ) {
printf( " %-11s%-14s%-23s%-11.2f%-9.2f%-8.2fn", alumnos[i].dni, alumnos[i].nombre,
alumnos[i].apellidos, alumnos[i].practica, alumnos[i].teorica, alumnos[i].final );
}
}
return 1;
}

printf( "n Lista vacian" );
return 0;
}

int buscarLibre( Alumno alumnos[] )
{
register int t;

for ( t = 0; alumnos[t].dni[0] && t < MAX; ++t );

if ( t != MAX ) return t;

return -1; /* No hay sitio libre */
}

int buscarPos( Alumno alumnos[], const char s[] )
{
register int i;

for ( i = 0; i < MAX; ++i )
if ( !strcmp(alumnos[i].dni, s) ) return i;

return -1;
}

int verificaDup( Alumno alumnos[], const char s[] )
{
register int i;

for ( i = 0; i < MAX; ++i )
if ( !strcmp(alumnos[i].dni, s) ) return 0;

return 1;
}

int estaVacia( Alumno alumnos[] )
{
register int i;

for ( i = 0; i < MAX; ++i )
if ( alumnos[i].dni[0] ) return 0;

return 1;
}