MAIN
Código
#include "LibroCalificaciones.h" int main() { LibroCalificaciones miLibroCalificaciones ("101 Programacion en c++"); miLibroCalificaciones.mostrarMensaje(); miLibroCalificaciones.determinarPromedioClase(); return 0; }
LibroCalificaciones.cpp
Código
#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
Código
#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
Citar
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 ==========
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