C sharp - Duda estucturas y arreglos

 
Vista:

Duda estucturas y arreglos

Publicado por Angelica (1 intervención) el 24/11/2017 18:52:07
Hola, tengo una duda con el tema de estructuras, con un ejercicio en concreto que debo realizar y no encuentro la solución, el ejercicio es el siguiente:
Escriba la definición de una clase CStudent, que debe contener la siguiente información:
Identificador un entero utilizado para identificar al estudiante Sexo un personaje ('M' forma masculina y 'F' para mujer) Marca un vector de 10 reales correspondientes a marcas de 10 sujetos
Pase un booleano (verdadero o falso) que indique si el estudiante aprueba o no el curso.
Escriba la declaración para un estudiante objeto de tipo CStudent. Luego escriba el código
para poner "verdadero" en el valor del campo Pase si el alumno aprueba más de 6 materias (para
aprobar un tema debe tener una calificación mayoro igual a 5), de lo contrario ponga "falso" en el campo "Pase"
mi solución:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
public class CStudent
        {
            public int ID;
            public string sexo;
            public int[] notas = new int[10];
        }
        public class Clista_de_estudiantes
        {
            public int num;
            public CStudent[] studi;
        }
        static void Main(string[] arg)
        {
            Clista_de_estudiantes estudiants = new Clista_de_estudiantes();
            estudiants.studi = new CStudent[MAX];
            int i = 0, conta = 0;
            int y = 0;
            Boolean encontrado = false;
 
            Console.WriteLine("escriba el numero de estudiantes: ");
            estudiants.num = Convert.ToInt32(Console.ReadLine());
            while (i < estudiants.num)
            {
                estudiants.studi[i] = new CStudent();
                i++;
            }
 
            i = 0;
            while (i < estudiants.num)
            {
                Console.Write("ID: ");
                estudiants.studi[i].ID = Convert.ToInt32(Console.ReadLine());
                Console.Write("sexo M para Masculino y F para Mujer: ");
                estudiants.studi[i].sexo = Console.ReadLine();
                i++;
                i = 0;
                Console.Write("Notas: ");
                while (i < 10)
                {
                    estudiants.studi[y].notas[i] = Convert.ToInt32(Console.ReadLine());
                    i++;
                }
            }
            i = 0;
            while (i < 5 && !encontrado)
            {
                if (estudiants.studi[y].notas[i] > 5)
                {
                    conta++;
                    if (conta == 1)
                    {
                        encontrado = true;
                    }
                }
                i++;
            }
            Console.WriteLine("listado de estudiantes");
            i = 0;
            while (i < estudiants.num)
            {
                Console.WriteLine("ID: " + estudiants.studi[i].ID + " sexo: " + estudiants.studi[i].sexo + " Pasa: " + encontrado);
                i++;
            }
            Console.ReadLine();
        }
    }
}
El problema que tengo es cuando son n estudiantes solo me pide las notas del primero y acaba el programa sin continuar con la secuencia es decir con los datos del otro estudiante.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Enrique
Val: 189
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Duda estucturas y arreglos

Publicado por Enrique (69 intervenciones) el 29/11/2017 23:41:53
Hola que tal Me gusto este ejercicio que te dejaron y te modifique bastante tu código pero funciona a la perfección:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
static void Main(string[] arg)
{
    Console.WriteLine("escriba el numero de estudiantes: ");
    int num = Convert.ToInt32(Console.ReadLine());
    CStudent[] students = new CStudent[num];
 
    for (int i = 0; i < num; i++)
    {
        students[i] = new CStudent();
        Console.Clear();
        Console.Write("Registro número: " + (i + 1));
        Console.Write("\nID: ");
        students[i].ID = Convert.ToInt32(Console.ReadLine());
        Console.Write("sexo M para Masculino y F para Mujer: ");
        students[i].sexo = Console.ReadLine();
        Console.Write("Notas: ");
        int aprueba = 0;
        for (int j = 0; j < 10; j++)
        {
            Console.Write("\nNota #" + (j + 1) + ": ");
            students[i].notas[j] = Convert.ToInt32(Console.ReadLine());
            if (students[i].notas[j] > 5){ aprueba++; }
        }
        students[i].aprub = (aprueba > 5) ? true : false;
 
    }
 
    Console.WriteLine("Listado de estudiantes");
    Console.Clear();
    for (int i = 0; i < num;i++)
    {
 
        Console.WriteLine("ID: " + students[i].ID + " Sexo: " + students[i].sexo + " Pasa: " + ((students[i].aprub) ? "Aprobo" : "Reprobo"));
    }
    Console.ReadLine();
}
public class CStudent
{
    public int ID;
    public string sexo;
    public int[] notas = new int[10];
    public bool aprub = false;
}

Espero te ayude
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Duda estucturas y arreglos

Publicado por Damian (9 intervenciones) el 01/12/2017 20:01:51
Una clase con todos sus campos públicos(y sin métodos) no es una buena praxis de la POO, deberías refactorizar eso o hacer una estructura.
PD: Que eso no quiere decir que este mal solo que son clases prácticamente vacias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Enrique
Val: 189
Bronce
Ha mantenido su posición en C sharp (en relación al último mes)
Gráfica de C sharp

Duda estucturas y arreglos

Publicado por Enrique (69 intervenciones) el 01/12/2017 23:27:42
si lo vemos del lado de MVC no aplica tu comentario; que es como se aplica acá (De cierto modo)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar