Pues me tira error y no lo puedo solucionar! quiero saber cual es el error aqui los codigos:
MAIN
#include "LibroCalificaciones.h"
int main()
{
LibroCalificaciones miLibroCalificaciones ("101 Programacion en c++");
miLibroCalificaciones.mostrarMensaje();
miLibroCalificaciones.determinarPromedioClase();
return 0;
}
LibroCalificaciones.cpp
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
using std::fixed; // asegura que se muestre el punto decimal
#include <iomanip> // manipuladores de flujo parametrizados
using std::setprecision; // establece la precision numerica de salida
// incluye la definicion de la clase LibroCalificaciones de LibroCalificaciones.h
#include "LibroCalificaciones.h"
// el constructor inicializa a nombreCurso con la cadena que se sumistra como argumento
LibroCalificaciones::LibroCalificaciones(string nombre)
{
establecerNombreCurso(nombre); // valida y almacena nombreCurso
}
//funcion para establecer nombre del Curso
//asegura que el nombre del curso tenga cuando mucho 25 caracteres
void LibroCalificaciones::establecerNombreCurso (string nombre)
{
if (nombre.length() <= 25) // si tiene 25 caractere so menos
{
nombreCurso = nombre; // almacena el nombre del curso en el objeto
}
else // si el nombre es mayor de 25 caracteres
{
nombreCurso = nombre.substr (0 , 25); // seleciona los primeros 25 caracteres
cout << "el nombre \"" << nombre << "\" exede la longitud maxima (25).\n"
<< "se limito nombreCurso a los primeros 24 caracteres.\n" << endl;
} // fin de if ... else
} // fin de la funcion establecer NombreCurso
// funcion para obtener el nombre del curso
string LibroCalificaciones::obtenerNombreCurso()
{
return nombreCurso;
} // fin de la funcion obtenerNombreCurso
//muestra un mensaje de bienvenida al usuario de LibroCalificaciones
void LibroCalificaciones::mostrarMensaje()
{
cout << "Bienvenido al libro de calificaciones para\n" << obtenerNombreCurso() << "!\n"
<< endl;
} // fin de la funcion mostrarMensaje
//determina el promedio de la clase con base en las 10 calificaciones escritas por el usuario
void LibroCalificaciones::determinarPromedioClase()
{
int total; // suma de las calificaciones introducidad por el usuario
int contadorCalif; // numero de calificaciones introducidas
int calificacion; // valor de la calificacion
double promedio; // numero con punto decimal para el promedio
//fase de inicializacion
total = 0; // inicializa el total
contadorCalif = 0; // inicializa el contador del ciclo
//fase de procesamiento
//pide la entrada y lee la calificacion del usuario
cout << "Escriba la calificacion o -1 para salir: ";
cin >> calificacion; // recibe como entrada la calificacion o el valor centinela
//itera hasta leer el valor centinela del usuario
while ( calificacion != -1) // mientras calificacion no sea -1
{
total = total + calificacion; // suma la calificacion al total
contadorCalif = contadorCalif + 1; // incrementa el contador
//pide la entrada y lee la siguiente calificacion del usuario
cout << "Escriba la calificacion o -1 para salir: ";
cin >> calificacion; // recibe como entrada la calificacion o el valor centinela
} // fin de while
//fase de terminacion
if ( contadorCalif != 0) // si el usuario introdujo al menos una calificacion....
{
//calcula el promedio de todas las calificaciones introducidas
promedio = static_cast < double > (total) / contadorCalif;
//muestra el total y el promedio (con dos digitos de precision)
cout << "\nEl total de las " << contadorCalif << " calificaciones introducidas es "
<< total << endl;
cout << "El promedio de la clase es " << setprecision(2) << fixed << promedio
<< endl;
} // fin de if
else // no se introdujeron calificaciones , por lo que imprime el mensaje apropiado
cout << "No se introdujeron calificaciones" << endl;
} // fin de la funcion determinarPromedioClase
LibroCalificaciones.h
#include <string>
using std::string;
class LibroCalificaciones
{
public:
LibroCalificaciones(string); // el constructor inicializa el nombre del curso
void establecerNombreCurso (string); //funcion para establecer el nombre del curso
string obtenerNombreCurso (); //funcion para obtener el nombre del curso
void mostrarMensaje(); // muestra un mensaje de bienvenida
void determinarPromedioClase(); // promedia las calificaciones escritas por el usuario
private:
string nombreCurso(); // nombre del curso para este LibroCalificaciones
}; // fin de la clase LibroCalificaciones
ACA esta lo que me aparece en visual c++ 2010
1>------ Operación Generar iniciada: proyecto: dellibro, configuración: Debug Win32 ------
1> LibroCalificaciones.cpp
1>c:\documents and settings\administrador\mis documentos\visual studio 2010\projects\dellibro\dellibro\librocalificaciones.cpp(27): error C2659: '=' : función como operando izquierdo
1>c:\documents and settings\administrador\mis documentos\visual studio 2010\projects\dellibro\dellibro\librocalificaciones.cpp(31): error C2659: '=' : función como operando izquierdo
1>c:\documents and settings\administrador\mis documentos\visual studio 2010\projects\dellibro\dellibro\librocalificaciones.cpp(40): error C3867: 'LibroCalificaciones::nombreCurso': falta la lista de argumentos de la llamada a la función; utilice '&LibroCalificaciones::nombreCurso' para crear un puntero al miembro
1>c:\documents and settings\administrador\mis documentos\visual studio 2010\projects\dellibro\dellibro\librocalificaciones.cpp(40): error C2664: 'std::basic_string<_Elem,_Traits,_Ax>::basic_string(const std::basic_string<_Elem,_Traits,_Ax> &)' : no se puede convertir el parámetro 1 de 'std::string (__thiscall LibroCalificaciones::* )(void)' a 'const std::basic_string<_Elem,_Traits,_Ax> &'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
1> Razón: no se puede realizar la conversión de 'std::string (__thiscall LibroCalificaciones::* )(void)' a 'const std::basic_string<_Elem,_Traits,_Ax>'
1> with
1> [
1> _Elem=char,
1> _Traits=std::char_traits<char>,
1> _Ax=std::allocator<char>
1> ]
1> Ningún constructor ha podido aceptar el tipo de origen o bien la resolución de sobrecarga del constructor era ambigua
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
agradezco la ayuda, pues no puedo seguir estudiando pasando esto por arriba