pasar de c a c++
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;
}
#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;
}