Parte 1: Paso 1 | 0 1 2 3 4 5 6 7 8 9 10

En primer lugar cree un nuevo programa en blanco (o si utilizó una plantilla presione Ctrl+A para seleccionar todo el contenido y luego Supr para eliminarlo).
A continuación copie y pegue el siguiente código. Para copiar seleccionelo y utilize el botón correspondiente de la barra de herramientas que se encuentra en la parte superior de esta ventana. Para pegar puede seleccionar la opción Pegar del menú Editar o presionar Ctrl+V. Observe que a pesar de que el texto copiado no está correctamente indentado (esto es, no tiene los margenes de acuerdo al anidamiento de los bloques de código), ZinjaI reacomoda el código al pegarlo generando las tabulaciones correspondientes. (Si necesita hacer esto con un bloque de código ya ingresado puede seleccionarlo y presionar Ctrl+I).

`#include <iostream> using namespace std; #define MAX_ALUMNOS 100 #define MAX_NOTAS 30 class Curso {
string nombres[MAX_ALUMNOS];
int notas[MAX_ALUMNOS,MAX_NOTAS];
int cant_notas[MAX_ALUMNOS];
float promedios[MAX_ALUMNOS];
int cant_alumnos;
public:
Curso() {
cant_alumnos = 0;
}
void CargarDato(string nombre, int nota) {
int i;
for (i=0; i<cant_alumnos; i++) {
if (nombres[i]==nombre) {
notas[i,cant_notas[i]]]=nota;
cant_notas[i]++;
break;
}
}
if (i==cant_alumnos) {
nombres[cant_alumnos] = nombre;
notas[cant_alumnos,0] = nota;
cant_notas[cant_alumnos] = 1;
cant_alumnos++;
}
}
void CalcularPromedios() {
for (int i=0; i<cant_alumnos; i++) {
float suma = 0;
for (int j=0;j<cant_notas[i];j++) {
suma+=notas[i,j];
}
promedios[i]=suma/cant_notas[i];
}
}
int CantidadAlumnos() {
return cant_alumnos;
}
int CantidadNotas(int i) {
return cant_notas[i];
}
float VerPromedio(int i) {
return promedios[i];
}
string VerNombre(int i) {
return nombres[i];
}
float VerNota(int i, int j) {
return notas[i,j];
}
};
void main() {
Curso oCurso;
string nombre;
int nota;
cout<<"Ingrese el nombre: ";
getline(cin,nombre);
while (nombre!="") {
cout<<"Ingrese la nota: ";
cin>>nota;
cin.ignore(255,'\n');
oCurso.CargarDato(nombre,nota);
cout<<"Ingrese el nombre: ";
getline(cin,nombre);
}
//oCurso.CargarDato("Torvalds, Linus", 10);
//oCurso.CargarDato("Gates, William",7);
//oCurso.CargarDato("Allen, Paul",8);
//oCurso.CargarDato("Wozniack, Steve",4);
//oCurso.CargarDato("Norton, Peter",4);
//oCurso.CargarDato("Jobs, Steve",8);
//oCurso.CargarDato("Stallman, Richard",10);
//oCurso.CargarDato("Gates, William",4);
//oCurso.CargarDato("Allen, Paul",6);
//oCurso.CargarDato("Wozniack, Steve", 9);
//oCurso.CargarDato("Torvalds, Linus", 9);
//oCurso.CargarDato("Stallman, Richard",8);
//oCurso.CargarDato("Norton, Peter",2);
//oCurso.CargarDato("Stallman, Richard",10);
//oCurso.CargarDato("Wozniack, Steve",10);
//oCurso.CargarDato("Jobs, Steve",9);
oCurso.CalcularPromedios();
cout<<endl<<" Nombre Promedio"<<endl;
cout<<setprecision(2)<<fixed<<setfill('_');
for (int i=0;i<oCurso.CantidadAlumnos();i++) {
cout<<setfill(' ')<<right<<setw(3)<<i+1<<"__"
<<setfill('_')<<left<<setw(20)<<oCurso.VerNombre(i)
<<right<<setw(6)<<oCurso.VerNota(i)<<endl;
}
}`

Puede utilizar las opciones de plegado (los + y - en el margen izquierdo que permitan ocultar o mostrar bloques de código) para visualizar rápidamente la estructura del archivo. Presione Ctrl+1 para plegar todos los bloques más externos. De esta forma visualizará los nombres de clases y funciones (en este caso "Curso" y "main"). A continuación despliegue la clase "Curso" haciendo click en el + de su izquierda y presione Ctrl+2 para plegar todos los bloques segundos en la jerarquía. De esta forma visualizará los nombres de los métodos de la clase. Para desplegarlos a todos juntos presione Alt+2.
Para volver a desplegar todos los niveles y subniveles al mismo y visualizar el código completo presione Alt+0.
Volver... Continuar...