Pereiti prie turinio

C# naujas masyvas klasėje (konteineris)


Rekomenduojami pranešimai

Sveiki, susidūriau su tokia problema, kad niekaip neina atrinkti iš masyvo duomenų kurie pasikartoja ir juos įdėti į naują masyvą su vidurkiu..

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Collections;

namespace savarankiskas_2
{
   //---------------------------------
   /** Klase studento duomenims saugoti
    * @class Studentas
    */
   class Studentas
   {
       private string pavarde, //studento pavarde
                      vardas, //studento vardas
                      grupe; //mokymosi grupe
       private ArrayList paz; //pazymiu masyvas
       private double vidurkis;
       //-------------------------------
       //** Pradiniai studeno duomenys, isskyrus pazymius
       //------------------------------
       public Studentas()
       {
           pavarde = "";
           vardas = "";
           grupe = "";
           vidurkis = 0;
           paz = new ArrayList();
       }
       //** Studento duomenu irasymas
       public void Deti(string pav, string vard, string grup, ArrayList ######)
       {
           pavarde = pav;
           vardas = vard;
           grupe = grup;
           foreach (int sk in ######)
               paz.Add(sk);
       }
       public void Deti2(string grup, double vid)
       {
           grupe = grup;
           vid = vidurkis;
       }
       public string ImtiPavarde() { return pavarde; }
       public string ImtiGrupe() { return grupe; }
       public ArrayList ImtiArray() { return paz; }
       //---------------------
       //Spausdinimo metodas
       //------------------
       public override string ToString()
       {
           string eilute;
           eilute = string.Format("{0,-12} {1,-9} {2,-7}",
               pavarde, vardas, grupe);
           foreach(int sk in paz)
               eilute=eilute + string.Format("{0,3:d}", sk);
           return eilute;
       }

       public double pazymiuSuma()
       {
           double sum = 0; int count = 0;
           foreach (int sk in paz)
           {
               sum = sum + sk;
               count++;
           }
           return sum/count;
       }
   }
   class Fakultetas
   {
       const int CMax = 100; //Maksimalus stundentu skaicius
       private Studentas[] St; //Studentu duomenys
       private int n; //Studentu skaicius
       private Studentas[] Sm;
       private int m;
       public Fakultetas()
       {
           n = 0;
           m = 0;
           St = new Studentas[CMax];
           Sm = new Studentas[CMax];
       }
       public int Imti() { return n; }
       public Studentas Imti(int i) { return St[i]; }
       public void Deti(Studentas ob) { St[n++] = ob; }

       public int Imti2() { return m; }
       public Studentas Imti2(int i) { return Sm[i]; }
       public void Deti2(Studentas ob) { Sm[m++] = ob; }
       public double ImtiMokiniuPaz(int i) { return St[i].pazymiuSuma(); }

   }
   class Program
   {
       const string CFd = "..\\..\\Duom.txt";
       const string CFr = "..\\..\\Rezultatai.txt";

       static void Main(string[] args)
       {
           Fakultetas grupes = new Fakultetas();
           Fakultetas grupesVid = new Fakultetas();
           string fakultetoPav;
           if (File.Exists(CFr))
               File.Delete(CFr);

           Skaityti(ref grupes, CFd, out fakultetoPav);
           string antraste = fakultetoPav;

           Spausdinti(grupes, CFr, antraste);
           Vidurkis(grupes, ref grupesVid);

           Spausdinti(grupesVid, CFr, "Naujas bandymas");


       }
       static void Vidurkis(Fakultetas grupes, ref Fakultetas N)
       {

           int count = 0; double suma = 0;
           for (int i = 0; i < grupes.Imti(); i++)
           {
               if (grupes.Imti(i).ImtiGrupe() == grupes.Imti(i).ImtiGrupe())
               {
                   suma = suma + grupes.ImtiMokiniuPaz(i);
                   Studentas stud = new Studentas();
                   stud.Deti2(grupes.Imti(i).ImtiGrupe(), suma);
                   N.Deti2(stud);

               }
               //Console.WriteLine(grupes.ImtiMokiniuPaz(i));
           }



       }
       static void Spausdinti(Fakultetas grupe, string fv, string antraste)
       {
           string virsus =
           "-----------------------------------------------\r\n"
              + " Pavarde     Vardas    Grupe     pazymiai   \r\n"
              + "----------------------------------------------";
           using (var fr = File.AppendText(fv))
           {
               fr.WriteLine(antraste);
               fr.WriteLine(virsus);
               for (int i = 0; i < grupe.Imti(); i++)
                   fr.WriteLine("{0}", grupe.Imti(i).ToString());
               fr.WriteLine("-----------------------\r\n");
           }
       }
       static void Skaityti(ref Fakultetas grupe, string fv, out string fakultetoPav)
       {
           string pv, vrd, grp;
           ArrayList ###### = new ArrayList();
           using(StreamReader r = new StreamReader(fv))
           {
               string eilinis;
               eilinis = r.ReadLine();
               fakultetoPav = eilinis;
           }

           string[] lines = File.ReadAllLines(fv, Encoding.GetEncoding(1257));
           int n = lines.Length;
           for(int i=1; i<=n-1; i++)
           {
               string[] parts = lines[i].Split(';');
               pv = parts[0].Trim();
               vrd = parts[1].Trim();
               grp = parts[2].Trim();
               //Pazymiai
               string[] eil = parts[3].Trim().Split(new[] { ' ' },
                   StringSplitOptions.RemoveEmptyEntries);
               ######.Clear();
               foreach (string eilute in eil)
               {
                   int aa = int.Parse(eilute);
                   ######.Add(aa);
               }
               Studentas stud = new Studentas();
               stud.Deti(pv, vrd, grp, ######);
               grupe.Deti(stud);
           }
       }
   }
}

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Su Linq nemėginai?

 

List<int> test = new List<int>();
test.Add(1);
test.Add(2);
test.Add(3);
test.Add(1);

var distinctList = test.GroupBy(x => x)
                  .Select(g => g.First())
                  .ToList();
foreach (int i in distinctList)
{
    Console.WriteLine(i);
}

 

Jei nori jį kažkur išsisaugoti, tiesiog pasinaudok

distinctList.ToArray();

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...