No hay problema, Sorrento, acá les paso lo que hice, funciona bien, solo hay que adaptarlo a las necesidades de cada uno.
#include "iostream.h"
#include "fstream.h"
#include "string.h"
#include "stdlib.h"
#include "conio.h"
float CalcularPromedio(int primero, int segundo, int tercero)
{
float promedio;
promedio = (float (primero) + float (segundo) + float (tercero)) / 3;
return promedio;
}
typedef struct{
int legajo;
char apellido[15];
char nombre[15];
int nota1;
int nota2;
int nota3;
}Registro;
class Alumno
{
public:
Alumno();
Alumno(int nl, char *ape, char *nom, int n1, int n2, int n3);
virtual ~Alumno();
void legajo(int nl);
void apellido(char *ape);
void nombre(char *nom);
void nota1(int n1);
void nota2(int n2);
void nota3(int n3);
char *verNombre();
char *verApellido();
int verLegajo();
int verNota1();
int verNota2();
int verNota3();
private:
Registro alumno;
};
Alumno::Alumno()
{
}
Alumno::Alumno(int nl, char *ape, char *nom, int n1, int n2, int n3)
{
alumno.legajo = nl;
strcpy(alumno.apellido, ape);
strcpy(alumno.nombre, nom);
alumno.nota1 = n1;
alumno.nota2 = n2;
alumno.nota3 = n3;
}
Alumno::~Alumno()
{
}
void Alumno::legajo(int nl)
{
alumno.legajo = nl;
}
void Alumno::apellido(char *ape)
{
strcpy(alumno.apellido, ape);
}
void Alumno::nombre(char *nom)
{
strcpy(alumno.nombre, nom);
}
void Alumno::nota1(int n1)
{
alumno.nota1 = n1;
}
void Alumno::nota2(int n2)
{
alumno.nota2 = n2;
}
void Alumno::nota3(int n3)
{
alumno.nota3 = n3;
}
int Alumno::verLegajo()
{
return alumno.legajo;
}
char *Alumno::verApellido()
{
char *p = alumno.apellido;
return p;
}
char *Alumno::verNombre()
{
char *p = alumno.nombre;
return p;
}
int Alumno::verNota1()
{
return alumno.nota1;
}
int Alumno::verNota2()
{
return alumno.nota2;
}
int Alumno::verNota3()
{
return alumno.nota3;
}
void main()
{
Alumno alumno1;
Alumno alumno2(2, "Hernandez", "José", 7, 8, 5);
Registro A;
float promedio;
char *token;
char cadena[sizeof(Registro)];
clrscr();
ofstream salida("c:\\temp\\Datos.txt");
if(!salida) cout << "El archivo no existe." << endl;
salida << alumno2.verLegajo() << ";";
salida << alumno2.verApellido() << ";";
salida << alumno2.verNombre() << ";";
salida << alumno2.verNota1() << ";";
salida << alumno2.verNota2() << ";";
salida << alumno2.verNota3() << ";";
salida.close();
cout << "Legajo : " << alumno2.verLegajo() << endl;
cout << "Apellido : " << alumno2.verApellido() << endl;
cout << "Nombre : " << alumno2.verNombre() << endl;
cout << "Primera nota : " << alumno2.verNota1() << endl;
cout << "Segunda nota : " << alumno2.verNota2() << endl;
cout << "Tercera nota : " << alumno2.verNota3() << endl;
ifstream entrada("c:\\temp\\Datos.txt");
entrada.getline(cadena, sizeof(Registro));
token = strtok(cadena, ";");
A.legajo = atoi(token);
alumno1.legajo(A.legajo);
token = strtok(NULL, ";");
strcpy(A.apellido, token);
alumno1.apellido(A.apellido);
token = strtok(NULL, ";");
strcpy(A.nombre, token);
alumno1.nombre(A.nombre);
token = strtok(NULL, ";");
A.nota1 = atoi(token);
alumno1.nota1(A.nota1);
token = strtok(NULL, ";");
A.nota2 = atoi(token);
alumno1.nota2(A.nota2);
token = strtok(NULL, ";");
A.nota3 = atoi(token);
alumno1.nota3(A.nota3);
cout << "Legajo : " << alumno1.verLegajo() << endl;
cout << "Apellido : " << alumno1.verApellido() << endl;
cout << "Nombre : " << alumno1.verNombre() << endl;
cout << "Primera nota : " << alumno1.verNota1() << endl;
cout << "Segunda nota : " << alumno1.verNota2() << endl;
cout << "Tercera nota : " << alumno1.verNota3() << endl;
entrada.close();
promedio = CalcularPromedio(A.nota1, A.nota2, A.nota3);
cout << "Promedio : " << promedio << endl;
cin.get();
}
Saludos a todos