Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: noob2012 en 21 Mayo 2013, 01:15 AM

Título: ¿Cómo ejecuto en codeblocks?
Publicado por: noob2012 en 21 Mayo 2013, 01:15 AM
Hola a todos, soy nuevo con este compilador, quería saber qué pasos tengo que seguir para ejecutar estos 3 archivos.

// Fig. 4.8: LibroCalificaciones.h
// Definición de la clase LibroCalificaciones que determina el promedio de una clase.
// Las funciones miembro se definen en LibroCalificaciones.cpp
#include <string> // el programa usa la clase string estándar de C++
using std::string;

// definición de la clase LibroCalificaciones
class LibroCalificaciones
{
public:
   LibroCalificaciones( string ); // el constructor inicializa el nombre del curso
   void establecerNombreCurso( string ); // función para establecer el nombre del curso
   string obtenerNombreCurso(); // función 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


// Fig. 4.9: LibroCalificaciones.cpp
// Definiciones de funciones miembro para la clase LibroCalificaciones que resuelve
// el programa del promedio de la clase con repetición controlada por contador.
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

#include "LibroCalificaciones.h" // incluye la definición de la clase LibroCalificaciones

// el constructor inicializa a nombreCurso con la cadena que se suministra como argumento
LibroCalificaciones::LibroCalificaciones( string nombre )
{
   establecerNombreCurso( nombre ); // valida y almacena nombreCurso
} // fin del constructor de LibroCalificaciones

// función para establecer el nombre del curso;
// asegura que el nombre del curso tenga cuando menos 25 caracteres
void LibroCalificaciones::establecerNombreCurso( string nombre )
{
   if ( nombre.length() <= 25 ) // si nombre tiene 25 caracteres o menos
      nombreCurso = nombre; // almacena el nombre del curso en el objeto
   else // si nombre es mayor de 25 caracteres
   { // establece nombreCurso a los primeros 25 caracteres del parámetro nombre
      nombreCurso = nombre.substr( 0, 25 ); // selecciona los primeros 25 caracteres
      cout << "El nombre \"" << nombre << "\" excede la longitud maxima (25).\n"
         << "Se limito nombreCurso a los primeros 25 caracteres.\n" << endl;
   } // fin de if...else
} // fin de la función establecerNombreCurso

// función para obtener el nombre del curso
string LibroCalificaciones::obtenerNombreCurso()
{
   return nombreCurso;
} // fin de la función 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 función 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 introducidas por el usuario
   int contadorCalif; // nuúmero de la calificación a introducir a continuación
   int calificacion; // el valor de la calificacion introducida por el usuario
   int promedio; // promedio de calificaciones

   // fase de inicialización
   total = 0; // inicializa el total
   contadorCalif = 1; // inicializa el contador del ciclo

   // fase de procesamiento
   while ( contadorCalif <= 10 ) // itera 10 veces
   {
      cout << "Escriba una calificacion: "; // pide la entrada
      cin >> calificacion; // recibe como entrada la siguiente calificación
      total = total + calificacion; // suma la calificación al total
      contadorCalif = contadorCalif + 1; // incrementa el contador por 1
   } // fin de while

   // fase de terminación
   promedio = total / 10; // la división de enteros produce un resultado entero

   // muestra el total y el promedio de las calificaciones
   cout << "\nEl total de las 10 calificaciones es " << total << endl;
   cout << "El promedio de la clase es " << promedio << endl;
} // fin de la función determinarPromedioClase

// Fig. 4.10: fig04_10.cpp
// Crea un objeto LibroCalificaciones e invoca a su función determinarPromedioClase.
#include "LibroCalificaciones.h" // incluye la definición de la clase LibroCalificaciones

int main()
{
   // crea un objeto LibroCalificaciones llamado miLibroCalificaciones y
   // pasa el nombre del curso al constructor
   LibroCalificaciones miLibroCalificaciones( "CS101 Programacion en C++" );

   miLibroCalificaciones.mostrarMensaje(); // muestra el mensaje de bienvenida
   miLibroCalificaciones.determinarPromedioClase(); // busca el promedio de 10 calificaciones
   return 0; // indica que el programa terminó correctamente
} // fin de main
Título: Re: ¿Cómo ejecuto en codeblocks?
Publicado por: noob2012 en 21 Mayo 2013, 01:18 AM
Desde ya agradezco la ayuda
Título: Re: ¿Cómo ejecuto en codeblocks?
Publicado por: leosansan en 21 Mayo 2013, 07:50 AM
Cita de: noob2012 en 21 Mayo 2013, 01:18 AM
Desde ya agradezco la ayuda

Creo que aquí te lo aclaranbien:

http://www.elrincondelc.com/nuevorincon/foros/viewtopic.php?t=19908

Saluditos!. ... ..(http://[http://st.forocoches.com/foro/images/smilies/aaaaa.gifs/aaaaa.gif)
Título: Re: ¿Cómo ejecuto en codeblocks?
Publicado por: noob2012 en 22 Mayo 2013, 00:20 AM

Hice todos los pasos que me indicaste pero me sale error de compilación.

(http://s2.subirimagenes.com/imagen/previo/thump_8449362dassadsad.png) (http://www.subirimagenes.com/imagen-dassadsad-8449362.html)
Título: Re: ¿Cómo ejecuto en codeblocks?
Publicado por: amchacon en 22 Mayo 2013, 00:29 AM
"Undefinided reference" significa que no se ha encontrado la implementación de una función. Ergo:

- Te has olvidado de linkar alguna librería (por los nombres me da a mi que no es eso).
- Te has olvidado algun cpp
Título: Re: ¿Cómo ejecuto en codeblocks?
Publicado por: noob2012 en 22 Mayo 2013, 00:37 AM
Cita de: amchacon en 22 Mayo 2013, 00:29 AM
"Undefinided reference" significa que no se ha encontrado la implementación de una función. Ergo:

- Te has olvidado de linkar alguna librería (por los nombres me da a mi que no es eso).
- Te has
olvidado algun cpp

¿Que librería me pude haber olvidado man?, por favor ayúdame!!!
Título: Re: ¿Cómo ejecuto en codeblocks?
Publicado por: noob2012 en 22 Mayo 2013, 00:53 AM
El ejemplo lo saque de un libro, no falta ningun cpp!!, tiene que ser entonces una librería u otra cosa
Título: Re: ¿Cómo ejecuto en codeblocks?
Publicado por: amchacon en 22 Mayo 2013, 01:03 AM
Te digo y te aseguro que esta vez no se refiere a ninguna librería (Que librería tiene una clase LibroCalificaciones?).

Se te ha olvidado añadir un cpp al proyecto de codeblocks (ponerlo en la carpea no vale). Prueba también a darle a "reconstruir todo" (no confundir con compilar).
Título: Re: ¿Cómo ejecuto en codeblocks?
Publicado por: KaL3o en 5 Junio 2013, 19:15 PM
date una pasada por este link, seguramente te ayudara a resolver el problema

http://www.jusuchyne.com/codingchyne/2011/03/codeblocks-failed-to-find-the-header-file/

salu2 :)