Título: problemas con una linea de codigo c++ Publicado por: max9100 en 8 Abril 2014, 08:04 am buenas tengo un programa con lo siguiente esto es lo que me pieden
Escribir un programa que contenga los siguientes elementos: 1. Dos constantes de tipo entero cNotas = 3 y cEstudiantes = 100 2. Dos estructuras una llamada Estudiante y la otra llamada Notas. 3. La estructura Estudiante debe contener los siguientes atributos: a. string cuenta b. string nombre c. int edad d. char sexo 4. La estructura Estudiante debe contener los siguientes métodos: a. Registrar_Estudiante: Donde se ingresan los datos del estudiante. 5. La Estructura RegistroNotas debe contener los siguientes atributos: a. Estudiante alumno[cEstudiantes] b. int notas[cNotas] 6. La Estructura RegistroNotas, debe recibir la cantidad de estudiantes a procesar, además debe contener los siguientes métodos: a. Registrar_Notas: Que realiza las siguientes acciones: i. Un ciclo para operar la cantidad de Estudiantes. ii. Invocar el método Registrar_Estudiante del objeto alumno. iii. Solicitar las tres notas parciales b. Calcular_NotaFinal: Que obtendrá el promedio de las tres notas c. Imprimir_CuadroNotas: Debe recibir la cantidad de estudiantes procesados, donde se imprimirá el cuadro de Notas, los datos a imprimir son los siguientes: i. cuenta ii. nombre iii. notas (se imprimirá las tres notas) iv. nota final v. El programa determinará quién es el estudiante con mayor Nota y el número de aprobados y reprobados. 7. Crear un procedimiento principal que realice las siguientes acciones a. Crear un objeto de RegistroNotas RN b. Solicitar el número de estudiantes a procesar c. Invocar el método Registrar_Notas del objeto RN, pasando el número de estudiantes a procesar. d. Invocar el método Imprimir_CuadroNotas del objeto RN, pasando el número de estudiantes procesados. este es mi codigo Código: #include<iostream> tengo el siguiente problema Código: void imprimir(int nestudiante){ Código: calcular_nta_final Código: &Notas::calcular_nta_final Título: Re: problemas con una linea de codigo c++ Publicado por: eferion en 8 Abril 2014, 08:57 am Con todos mis respetos, el que te está enseñando a programar no tiene ni la más remota idea de cómo se ha de estructurar un programa:
* En C++ lo lógico es usar "class" en vez de "struct"... son bastante parecidas, pero no iguales. * No tiene sentido usar clases o estructuras sin conocer, al menos, el uso de los constructores por defecto. En tu práctica ni se menciona este elemento. * No tienen ningún sentido que una clase almacene datos y se comunique con el usuario a la vez. * Las variables de una clase o estructura deberían estar, como norma general, siempre en la parte privada. Para interactuar con ellas se implementan funciones para leer y modificar dichas variables. * En C++ existen un tipo de clases, denominadas contenedores, que te permiten almacenar colecciones de elementos de una forma sencilla y rápida. Los arrays de C, como los que te propone usar, dan muchísimos problemas si no se usan con extremo cuidado. Alguno me podrá decir que sí, pero que estás aprendiendo... razón de más para asentar una buena base desde el principio... en vez de llenar la cabeza con ideas que no sirven de mucho. Vale, ya me he desahogado, ahora, retomando tu práctica te comento: Código: 5. La Estructura RegistroNotas debe contener los siguientes atributos: Vamos a ver, si para cada alumno hay que almacenar tres notas... que (perdón por la expresión) ***** de diseño es este?? Ahí únicamente hay 2 vectores independientes... es como tener una lista de tus amigos por un lado y, por otro, una lista de teléfonos (contando con que para cada amigo puedes tener varios números ) ... no hay relación entre ellos. Podría tener más sentido un diseño tal que Código
Sigo defendiéndolo... quien te está enseñando no tiene ni idea y encima se explica fatal. Ahora, partiendo de este diseño... Código
la forma de acceder a las variables no es con el operador '::' eso está reservado para el caso de miembros estáticos. En tu caso es con el operador '.' Código
"registroNotas" es el nombre del array, el que he puesto antes. Como "registroNotas" es un array, necesito usar "nEstudiante" para acceder a una posición concreta... en esta posición me voy a encontrar con una estructura de tipo "RegistroNotas", que contiene un miembro "alumno" que es de tipo "Estudiante" y un array de tipo int llamado "notas"... el resto del código sigue la misma lógica. En cualquier caso, dado que el número de notas viene definido por la constante "cNotas", la impresión debería quedar tal que: Código
Así, si cambias la constante cNotas, el código se adaptará de forma automática. Título: Re: problemas con una linea de codigo c++ Publicado por: max9100 en 8 Abril 2014, 09:18 am bueno gracias por tu sugerencia pero me sale el siguiente error en lo primero que dices
Código: struct Registro_Notas{ el erroe es el siguiente Código: error C2143: syntax error : missing ';' before '[' Título: Re: problemas con una linea de codigo c++ Publicado por: eferion en 8 Abril 2014, 09:26 am cambia estudiante por Estudiante...
y luego Registro_Notas registorNotas[cEstudiantes ]; Título: Re: problemas con una linea de codigo c++ Publicado por: max9100 en 8 Abril 2014, 09:33 am lo e cambiado pero sigue en lo mismo solo se puede con el array o tengo que cambiar la srtruct a class???
errores solo de ese cambio a array Código: error C2337: 'cEstudiantes' : attribute not found Título: Re: problemas con una linea de codigo c++ Publicado por: max9100 en 8 Abril 2014, 09:33 am lo e cambiado pero sigue en lo mismo solo se puede con el array o tengo que cambiar la srtruct a class???
errores solo de ese cambio a array Código: error C2337: 'cEstudiantes' : attribute not found Título: Re: problemas con una linea de codigo c++ Publicado por: eferion en 8 Abril 2014, 09:38 am cEstudiantes es la constante que tienes que tener definida al inicio del programa.
En qué línea te da el error?? que código tienes en esa línea?? y en las anteriores?? Título: Re: problemas con una linea de codigo c++ Publicado por: max9100 en 8 Abril 2014, 09:43 am Código: #include<iostream> Código: struct registroNotas{ Código: registroNotas [cEstudiantes ] registroNotas ; Código: error C2143: syntax error : missing ';' before '[' Título: Re: problemas con una linea de codigo c++ Publicado por: eferion en 8 Abril 2014, 09:46 am cambia estudiante por Estudiante... y luego Registro_Notas registroNotas[cEstudiantes ]; El segundo cambio no lo has aplicado Título: Re: problemas con una linea de codigo c++ Publicado por: max9100 en 8 Abril 2014, 09:58 am :D :Dlisto yya me quito el error
pero me sige sacando un error en el siguiente linea de codigo Código: for (int i=0;nestudiante>i;i++) Código: registroNotas[i].alumno.registrar_estudiantes ; Código: error C3867: 'Estudiante::registrar_estudiantes': function call missing argument list; use '&Estudiante::registrar_estudiantes' to create a pointer to member ese error sige aparecieondo y no c porque y en la parte de sacar el promedio no se si esta bien la linea de codigo Código: int calcular_nta_final(){ Título: Re: problemas con una linea de codigo c++ Publicado por: eferion en 8 Abril 2014, 10:14 am Código
si "registrar_estudiantes" es una función... tienes que llamarla con los paréntesis: Código
En cuanto al promedio... si lo almacenas en un int estarás perdiendo precisión, ya que un promedio únicamente almacena la parte entera de la operación... estás perdiendo los decimales. Además, te pasa lo mismo que te he comentado antes, si cambias el valor de cNotas, el código no funcionará ya que hace todo "a piñón fijo"... la idea es que uses un bucle para calcular el promedio desde 0 hasta cNotas. Código
Título: Re: problemas con una linea de codigo c++ Publicado por: max9100 en 8 Abril 2014, 10:33 am ok ya cambie pero al momento de llamar imprimir el main me da error
Código: for (int i=0; i<nestudiante ;i++){ Título: Re: problemas con una linea de codigo c++ Publicado por: eferion en 8 Abril 2014, 10:52 am Es que esa línea no tiene ningún sentido.
A ver, respira hondo. Se supone que estás aprendiendo... y esto es parte del proceso de aprendizaje... si te doy todo mascado no vas a aprender nada salvo a copiar. si "imprimir( )" es una función que retorna...nada, por qué le pones después ese ""?? Título: Re: problemas con una linea de codigo c++ Publicado por: max9100 en 8 Abril 2014, 11:07 am perdon estoy un poco estresado porque lla ni madres sabia que hacer y no soy tan malo en la programacion de c++ :P :P :P
bueno esto es lo que tengo en el main Código: int main(){ pero al momento de que el programa empieza a funcionar pasa algo por ejemplo pongo 2 de los cuales estudiantes quiero ingresar pero 2,1,0,1 jeje ademas no me tira el promedio ni las notas que e ingresado Título: Re: problemas con una linea de codigo c++ Publicado por: eferion en 8 Abril 2014, 11:19 am pero al momento de que el programa empieza a funcionar pasa algo por ejemplo pongo 2 de los cuales estudiantes quiero ingresar pero 2,1,0,1 Perdona pero no me he enterado de nada. ademas no me tira el promedio ni las notas que e ingresado Pon el código que tienes, que después de tantos cambios el anterior no es válido. Además, estaría bien que indicases en la etiqueta "code" que el código es de C++ "code=cpp". Así tendrá un aspecto más legible. Un último consejo... tabular el código con espacios hace que sea más legible en el foro que si usas el tabulador. Título: Re: problemas con una linea de codigo c++ Publicado por: max9100 en 8 Abril 2014, 11:30 am me refiero a esto que no me sale las notas ni promedio ademas de que el programa tiene un ciclo de 3 no de dos
Código: ingrese cantidad de estudiantes a procesar 2 Título: Re: problemas con una linea de codigo c++ Publicado por: eferion en 8 Abril 2014, 11:32 am Código
si a registrar_notas, le pasas siempre nestudiante, obviamente, la función no va a funcionar como esperas. "nestudiante" es una constante... si tu quieres iterar tienes que usar la variable adecuada, en este caso la que recorre todos los valores desde 0 hasta "nestudiante", es decir, "i". Código
Título: Re: problemas con una linea de codigo c++ Publicado por: max9100 en 8 Abril 2014, 11:40 am aqui esta el codigo completo pero me sige tirando el error de las notas y ahora el ciclo me lo tira 1 vez y lo pongo 2.
Código: #include<iostream> Título: Re: problemas con una linea de codigo c++ Publicado por: eferion en 8 Abril 2014, 12:09 pm Revisa el código, tiene comentarios con los errores que has cometido.
Código
Título: Re: problemas con una linea de codigo c++ Publicado por: max9100 en 8 Abril 2014, 12:36 pm MUCHAS GRACIAS eferion :D :D :D :D :D creo que mas los errores que tenia eran de logica :-[ :-[ :-[ :-[ pero te agradezco de sobremaner
|