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.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

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