Advertisement
Guest User

Untitled

a guest
May 30th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 9.21 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace kontr
  8. {
  9.    
  10.     class Studentas
  11.     {
  12.         public string Vardas { get; set; }
  13.         public string Pavarde { get; set; }
  14.         public string Group { get; set; }
  15.         const int MaxModuliai = 100;
  16.         int Counter = 0;
  17.         int[] ModulKreditai = new int[MaxModuliai];
  18.         int VisiKreditai = 0;
  19.         public Studentas()
  20.         {
  21.  
  22.         }
  23.         public Studentas(string pavarde, string vardas,string group)
  24.         {
  25.             Vardas = vardas;
  26.             Pavarde = pavarde;
  27.             Group = group;
  28.         }
  29.         public int Moduliai()
  30.         {
  31.             return Counter;
  32.         }
  33.         public int Kreditai()
  34.         {
  35.             return VisiKreditai;
  36.         }
  37.         public void ModulDeti(int a)
  38.         {
  39.             ModulKreditai[Counter++] = a;
  40.            
  41.         }
  42.         public int ModulImti(int i)
  43.         {
  44.            return ModulKreditai[i];
  45.         }
  46.         public void CreditCal()
  47.         {
  48.             CountCredits(0);
  49.         }
  50.         public void CountCredits(int i)
  51.         {
  52.             if (i > Counter)
  53.                 return;
  54.             VisiKreditai = VisiKreditai + ModulKreditai[i];
  55.             CountCredits(i + 1);
  56.         }
  57.         public override string ToString()
  58.         {
  59.             string line = string.Format("|{0,-10} |{1,-10} |{2,-6}", Pavarde,Vardas,Group);
  60.             return line;
  61.         }
  62.     }
  63.    
  64.     class Fakultetas
  65.     {
  66.         const int MaxStudent = 100;
  67.         public string Pav { get; set; }
  68.         public int Kreditai { get; set; }
  69.         public int Moduliai { get; set; }
  70.         public int StudentCount;
  71.         public int BStudentCount;
  72.         Studentas[] Studentai = new Studentas[MaxStudent];
  73.         Studentas[] BStudentai = new Studentas[MaxStudent];
  74.         public Fakultetas()
  75.         {
  76.  
  77.         }
  78.        
  79.         public void AddStudent(Studentas student)
  80.         {
  81.             Studentai[StudentCount++] = student;
  82.         }
  83.         public void SortStudents()
  84.         {
  85.             for(int i=0;i<StudentCount-1;i++)
  86.             {
  87.                 for (int j = i + 1; j < StudentCount; j++)
  88.                 {
  89.                     if (String.Compare(Studentai[i].Group, Studentai[j].Group) > 0)
  90.                     {
  91.                         Studentas temp = Studentai[j];
  92.                         Studentai[j] = Studentai[i];
  93.                         Studentai[i] = temp;
  94.                     }
  95.                     else if(Studentai[i].Group== Studentai[j].Group)
  96.                     {
  97.                         if (String.Compare(Studentai[i].Pavarde, Studentai[j].Pavarde) > 0)
  98.                         {
  99.                             Studentas temp = Studentai[j];
  100.                             Studentai[j] = Studentai[i];
  101.                             Studentai[i] = temp;
  102.                         }
  103.                     }
  104.                 }
  105.             }
  106.         }
  107.         public void Edit(int i)
  108.         {
  109.             Studentai = Studentai.Where(w => w != Studentai[i]).ToArray();
  110.             StudentCount--;
  111.         }
  112.         public void AddBStudent(Studentas student)
  113.         {
  114.             BStudentai[BStudentCount++] = student;
  115.         }
  116.         public Studentas GetStudent(int i)
  117.         {
  118.             return Studentai[i];
  119.         }
  120.         public Studentas GetBStudent(int i)
  121.         {
  122.             return BStudentai[i];
  123.         }
  124.         public override bool Equals(object obj)
  125.         {
  126.             return base.Equals(obj as Fakultetas);
  127.         }
  128.         public bool Equals(Fakultetas fak)
  129.         {
  130.             if (object.ReferenceEquals(fak, null))
  131.             {
  132.                 return false;
  133.             }
  134.             if (this.GetType() != fak.GetType())
  135.             {
  136.                 return false;
  137.             }
  138.             return (BStudentCount == fak.BStudentCount);
  139.         }
  140.         public override int GetHashCode()
  141.         {
  142.             return BStudentCount.GetHashCode();
  143.         }
  144.         public static bool operator ==(Fakultetas lhs,Fakultetas rhs)
  145.         {
  146.             if(object.ReferenceEquals(lhs,null))
  147.             {
  148.                 if (object.ReferenceEquals(rhs, null))
  149.                 {
  150.                     return true;
  151.                 }
  152.                 return false;
  153.             }
  154.             return lhs.Equals(rhs);
  155.         }
  156.         public static bool operator !=(Fakultetas lhs, Fakultetas rhs)
  157.         {
  158.             return !(lhs == rhs);
  159.         }
  160.         public static bool operator <(Fakultetas lhs, Fakultetas rhs)
  161.         {
  162.             return (lhs.BStudentCount < rhs.BStudentCount);
  163.         }
  164.         public static bool operator >(Fakultetas lhs, Fakultetas rhs)
  165.         {
  166.             return (lhs.BStudentCount > rhs.BStudentCount);
  167.         }
  168.     }
  169.  
  170.     class Program
  171.     {
  172.         static void Main(string[] args)
  173.         {
  174.             const string CFd = "..\\..\\Fakultetas1.txt";
  175.             const string CFb = "..\\..\\Fakultetas2.txt";
  176.             const string CFr = "..\\..\\Rezultatai.txt";
  177.             if (File.Exists(CFr))
  178.                 File.Delete(CFr);
  179.             Fakultetas fak = new Fakultetas();
  180.             Fakultetas fak2 = new Fakultetas();
  181.             ReadData(fak, CFd);
  182.             ReadData(fak2, CFb);
  183.             using (var fr = File.AppendText(CFr))
  184.             {
  185.                 fr.WriteLine("Pradiniai Duomenis");
  186.             }
  187.             WriteData(CFr, fak);
  188.             WriteData(CFr, fak2);
  189.             Atranka(fak);
  190.             Atranka(fak2);
  191.             Lyginti(fak, fak2);
  192.             Edit(fak);
  193.             Edit(fak2);
  194.             Sort(fak,fak2);
  195.             using (var fr = File.AppendText(CFr))
  196.             {
  197.                 fr.WriteLine("Rezultatai");
  198.             }
  199.             WriteData(CFr, fak);
  200.             WriteData(CFr, fak2);
  201.             Console.Read();
  202.         }
  203.         static void WriteData(string fv, Fakultetas fak)
  204.         {
  205.             string Bruksnys = new string('-', 43);
  206.             string Bruksnys2 = new string('*', fak.Pav.Length+2);
  207.             using (var fr = File.AppendText(fv))
  208.             {
  209.                 fr.WriteLine(Bruksnys2);
  210.                 fr.WriteLine("*{0}*",fak.Pav);
  211.                 fr.WriteLine(Bruksnys2);
  212.                 fr.WriteLine(Bruksnys);
  213.                 fr.WriteLine("|Pavarde    |Vardas     |Grupe  |Kreditai |");
  214.                 fr.WriteLine(Bruksnys);
  215.                 for (int i=0;i<fak.StudentCount;i++)
  216.                 {
  217.                     fr.Write(fak.GetStudent(i).ToString());
  218.                     for(int j=0;j<fak.GetStudent(i).Moduliai();j++)
  219.                     {
  220.                         fr.Write("|{0,-2}", fak.GetStudent(i).ModulImti(j));
  221.                     }
  222.                     fr.WriteLine();
  223.                 }
  224.                 fr.WriteLine(Bruksnys);
  225.             }
  226.         }
  227.         static void Sort(Fakultetas fak,Fakultetas fak2)
  228.         {
  229.             fak.SortStudents();
  230.             fak2.SortStudents();
  231.         }
  232.         static void ReadData(Fakultetas fak,string fd)
  233.         {
  234.            
  235.             using (StreamReader reader = new StreamReader(fd))
  236.             {
  237.                 string line=null;
  238.                 line = reader.ReadLine();
  239.                 string[] parts = line.Split(' ');
  240.                 fak.Pav = parts[0];
  241.                 fak.Kreditai = int.Parse(parts[1]);
  242.                 fak.Moduliai = int.Parse(parts[2]);
  243.                 while (null != (line = reader.ReadLine()))
  244.                 {
  245.                     string[] val = line.Split(' ');
  246.                     string lName = val[0];
  247.                     string name = val[1];
  248.                     string group = val[2];
  249.                     Studentas student = new Studentas(lName, name, group);
  250.                     for (int i = 3; i < val.Length; i++)
  251.                     {
  252.                         if (val[i] != null)
  253.                         {
  254.                             int kreditas = int.Parse(val[i]);
  255.                             student.ModulDeti(kreditas);
  256.                         }
  257.                     }
  258.                     fak.AddStudent(student);
  259.                 }              
  260.             }
  261.         }
  262.  
  263.         static public void Atranka(Fakultetas fak)
  264.         {
  265.             for(int i=0;i<fak.StudentCount;i++)
  266.             {
  267.                 fak.GetStudent(i).CreditCal();
  268.                 if (fak.GetStudent(i).Kreditai()>fak.Kreditai)
  269.                 {
  270.                     fak.AddBStudent(fak.GetStudent(i));
  271.                 }
  272.             }          
  273.         }
  274.  
  275.         static public string Lyginti(Fakultetas fak,Fakultetas fak2)
  276.         {
  277.             string line=null;
  278.             if(fak>fak2)
  279.             {
  280.                 line = "pirmas";
  281.             }
  282.             else
  283.             {
  284.                 line = "antras";
  285.             }
  286.             return line;
  287.         }
  288.  
  289.  
  290.         static public void Edit(Fakultetas fak)
  291.         {
  292.             for(int i=0;i<fak.StudentCount;i++)
  293.             {
  294.                 if(fak.GetStudent(i).Moduliai()>fak.Moduliai)
  295.                 {
  296.                     fak.Edit(i);
  297.                     i = i - 1;
  298.                 }
  299.             }
  300.         }
  301.     }
  302. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement