Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace kontr
- {
- class Studentas
- {
- public string Vardas { get; set; }
- public string Pavarde { get; set; }
- public string Group { get; set; }
- const int MaxModuliai = 100;
- int Counter = 0;
- int[] ModulKreditai = new int[MaxModuliai];
- int VisiKreditai = 0;
- public Studentas()
- {
- }
- public Studentas(string pavarde, string vardas,string group)
- {
- Vardas = vardas;
- Pavarde = pavarde;
- Group = group;
- }
- public int Moduliai()
- {
- return Counter;
- }
- public int Kreditai()
- {
- return VisiKreditai;
- }
- public void ModulDeti(int a)
- {
- ModulKreditai[Counter++] = a;
- }
- public int ModulImti(int i)
- {
- return ModulKreditai[i];
- }
- public void CreditCal()
- {
- CountCredits(0);
- }
- public void CountCredits(int i)
- {
- if (i > Counter)
- return;
- VisiKreditai = VisiKreditai + ModulKreditai[i];
- CountCredits(i + 1);
- }
- public override string ToString()
- {
- string line = string.Format("|{0,-10} |{1,-10} |{2,-6}", Pavarde,Vardas,Group);
- return line;
- }
- }
- class Fakultetas
- {
- const int MaxStudent = 100;
- public string Pav { get; set; }
- public int Kreditai { get; set; }
- public int Moduliai { get; set; }
- public int StudentCount;
- public int BStudentCount;
- Studentas[] Studentai = new Studentas[MaxStudent];
- Studentas[] BStudentai = new Studentas[MaxStudent];
- public Fakultetas()
- {
- }
- public void AddStudent(Studentas student)
- {
- Studentai[StudentCount++] = student;
- }
- public void SortStudents()
- {
- for(int i=0;i<StudentCount-1;i++)
- {
- for (int j = i + 1; j < StudentCount; j++)
- {
- if (String.Compare(Studentai[i].Group, Studentai[j].Group) > 0)
- {
- Studentas temp = Studentai[j];
- Studentai[j] = Studentai[i];
- Studentai[i] = temp;
- }
- else if(Studentai[i].Group== Studentai[j].Group)
- {
- if (String.Compare(Studentai[i].Pavarde, Studentai[j].Pavarde) > 0)
- {
- Studentas temp = Studentai[j];
- Studentai[j] = Studentai[i];
- Studentai[i] = temp;
- }
- }
- }
- }
- }
- public void Edit(int i)
- {
- Studentai = Studentai.Where(w => w != Studentai[i]).ToArray();
- StudentCount--;
- }
- public void AddBStudent(Studentas student)
- {
- BStudentai[BStudentCount++] = student;
- }
- public Studentas GetStudent(int i)
- {
- return Studentai[i];
- }
- public Studentas GetBStudent(int i)
- {
- return BStudentai[i];
- }
- public override bool Equals(object obj)
- {
- return base.Equals(obj as Fakultetas);
- }
- public bool Equals(Fakultetas fak)
- {
- if (object.ReferenceEquals(fak, null))
- {
- return false;
- }
- if (this.GetType() != fak.GetType())
- {
- return false;
- }
- return (BStudentCount == fak.BStudentCount);
- }
- public override int GetHashCode()
- {
- return BStudentCount.GetHashCode();
- }
- public static bool operator ==(Fakultetas lhs,Fakultetas rhs)
- {
- if(object.ReferenceEquals(lhs,null))
- {
- if (object.ReferenceEquals(rhs, null))
- {
- return true;
- }
- return false;
- }
- return lhs.Equals(rhs);
- }
- public static bool operator !=(Fakultetas lhs, Fakultetas rhs)
- {
- return !(lhs == rhs);
- }
- public static bool operator <(Fakultetas lhs, Fakultetas rhs)
- {
- return (lhs.BStudentCount < rhs.BStudentCount);
- }
- public static bool operator >(Fakultetas lhs, Fakultetas rhs)
- {
- return (lhs.BStudentCount > rhs.BStudentCount);
- }
- }
- class Program
- {
- static void Main(string[] args)
- {
- const string CFd = "..\\..\\Fakultetas1.txt";
- const string CFb = "..\\..\\Fakultetas2.txt";
- const string CFr = "..\\..\\Rezultatai.txt";
- if (File.Exists(CFr))
- File.Delete(CFr);
- Fakultetas fak = new Fakultetas();
- Fakultetas fak2 = new Fakultetas();
- ReadData(fak, CFd);
- ReadData(fak2, CFb);
- using (var fr = File.AppendText(CFr))
- {
- fr.WriteLine("Pradiniai Duomenis");
- }
- WriteData(CFr, fak);
- WriteData(CFr, fak2);
- Atranka(fak);
- Atranka(fak2);
- Lyginti(fak, fak2);
- Edit(fak);
- Edit(fak2);
- Sort(fak,fak2);
- using (var fr = File.AppendText(CFr))
- {
- fr.WriteLine("Rezultatai");
- }
- WriteData(CFr, fak);
- WriteData(CFr, fak2);
- Console.Read();
- }
- static void WriteData(string fv, Fakultetas fak)
- {
- string Bruksnys = new string('-', 43);
- string Bruksnys2 = new string('*', fak.Pav.Length+2);
- using (var fr = File.AppendText(fv))
- {
- fr.WriteLine(Bruksnys2);
- fr.WriteLine("*{0}*",fak.Pav);
- fr.WriteLine(Bruksnys2);
- fr.WriteLine(Bruksnys);
- fr.WriteLine("|Pavarde |Vardas |Grupe |Kreditai |");
- fr.WriteLine(Bruksnys);
- for (int i=0;i<fak.StudentCount;i++)
- {
- fr.Write(fak.GetStudent(i).ToString());
- for(int j=0;j<fak.GetStudent(i).Moduliai();j++)
- {
- fr.Write("|{0,-2}", fak.GetStudent(i).ModulImti(j));
- }
- fr.WriteLine();
- }
- fr.WriteLine(Bruksnys);
- }
- }
- static void Sort(Fakultetas fak,Fakultetas fak2)
- {
- fak.SortStudents();
- fak2.SortStudents();
- }
- static void ReadData(Fakultetas fak,string fd)
- {
- using (StreamReader reader = new StreamReader(fd))
- {
- string line=null;
- line = reader.ReadLine();
- string[] parts = line.Split(' ');
- fak.Pav = parts[0];
- fak.Kreditai = int.Parse(parts[1]);
- fak.Moduliai = int.Parse(parts[2]);
- while (null != (line = reader.ReadLine()))
- {
- string[] val = line.Split(' ');
- string lName = val[0];
- string name = val[1];
- string group = val[2];
- Studentas student = new Studentas(lName, name, group);
- for (int i = 3; i < val.Length; i++)
- {
- if (val[i] != null)
- {
- int kreditas = int.Parse(val[i]);
- student.ModulDeti(kreditas);
- }
- }
- fak.AddStudent(student);
- }
- }
- }
- static public void Atranka(Fakultetas fak)
- {
- for(int i=0;i<fak.StudentCount;i++)
- {
- fak.GetStudent(i).CreditCal();
- if (fak.GetStudent(i).Kreditai()>fak.Kreditai)
- {
- fak.AddBStudent(fak.GetStudent(i));
- }
- }
- }
- static public string Lyginti(Fakultetas fak,Fakultetas fak2)
- {
- string line=null;
- if(fak>fak2)
- {
- line = "pirmas";
- }
- else
- {
- line = "antras";
- }
- return line;
- }
- static public void Edit(Fakultetas fak)
- {
- for(int i=0;i<fak.StudentCount;i++)
- {
- if(fak.GetStudent(i).Moduliai()>fak.Moduliai)
- {
- fak.Edit(i);
- i = i - 1;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement