示例#1
0
        public Promedio Promedios()
        {
            FileStream   fsaux = new FileStream(archivo_aux, FileMode.Create);
            StreamWriter swaux = new StreamWriter(fsaux);

            Alumno[] alumnos = gestoralumnos.OrdenarAlumnos();
            Nota[]   notas   = gestornotas.OrdenarNotas();
            Promedio p       = new Promedio();
            Promedio promedio;
            int      d = 0;

            for (int i = 0; i < alumnos.Length; i++)
            {
                int    contador   = 0;
                double acumulador = 0.0;
                for (int x = d; x < notas.Length; x++)
                {
                    if (notas[x].DNI == alumnos[i].DNI)
                    {
                        contador++;
                        acumulador += notas[x].Notas;
                    }
                    // Esto hace que termine la lista :D
                    if (notas[x].DNI > alumnos[i].DNI)
                    {
                        d = x;
                        x = notas.Length + 1;
                    }
                }
                if (contador != 0)
                {
                    p.DNI       = alumnos[i].DNI;
                    p.Apellidos = alumnos[i].Apellido;
                    p.N_notas   = contador;
                    p.Promedios = acumulador / contador;
                    promedio    = new Promedio(p.DNI, p.Apellidos, p.Promedios, p.N_notas);
                    swaux.WriteLine(promedio.ObtenerRegistro());
                    GuardarPromedio(promedio);
                }
            }
            swaux.Close();
            fsaux.Close();
            File.Delete(archivo_promedio);
            File.Move(archivo_aux, archivo_promedio);
            return(p);
        }
示例#2
0
        /*
         * public string[] ObtenerPromedio( int i)
         * {
         * Nota[] dat_notas = notas.OrdenarNotas();
         * Alumno[] dat_alumno = alumnos.OrdenarAlumnos();
         * string[] dat_promedio = new string[0];
         * string reg = "";
         * Boolean parar = false;
         *  //for (int i = I; i < dat_alumno.Length; i++)
         *  while(i <dat_alumno.Length)
         *  {
         *      int contador = 0;
         *      int acumulador = 0;
         *      for (int j =0; j < dat_notas.Length; j++)
         *      {
         *      if (dat_notas[j].DNI == dat_alumno[i].DNI)
         *      {
         *          // while que se detiene cuando el alumno ya no tiene mas notas
         *          while (!parar)
         *          {
         *              contador++;
         *              acumulador += dat_notas[j].Notas;
         *              j++;
         *              if (dat_notas[i].DNI != dat_alumno[j].DNI) parar = true;
         *          }
         *          reg = String.Format("{0},{1},{2},{3}", dat_alumno[i].DNI , dat_alumno[i].Apellido,(acumulador / contador), contador );
         *
         *          return ObtenerPromedio(i ++);
         *          }
         *      }
         *  }
         * return dat_promedio;
         * }
         * public void Promediar()
         * {
         * string[] promedios = ObtenerPromedio(0);
         * FileStream promedio = new FileStream(archivo_aux, FileMode.Create);
         * StreamWriter EscritorArchivoAux = new StreamWriter(promedio);
         * foreach (string item in promedios)
         * {
         *  EscritorArchivoAux.WriteLine(item);
         * }
         *
         * EscritorArchivoAux.Close();
         * promedio.Close();
         * File.Delete(archivo_promedio);
         * File.Move(archivo_aux, archivo_promedio);
         * } */
        public Promedio[] LeerPromedio()
        {
            Promedio[]   lista = new Promedio[1];
            FileStream   fs    = new FileStream(archivo_promedio, FileMode.OpenOrCreate, FileAccess.Read);
            StreamReader sr    = new StreamReader(fs);
            string       linea = sr.ReadLine();
            int          i     = 0;

            while (linea != null)
            {
                lista[i] = new Promedio(linea);
                linea    = sr.ReadLine();
                if (linea != null)
                {
                    //si hay mas lineas, amplio el vector.
                    Array.Resize(ref lista, lista.Length + 1);
                }
                i++;
            }
            fs.Close();
            sr.Close();

            return(lista);
        }