Advertisement
Guest User

Untitled

a guest
Jun 21st, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.91 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 testk2
  8. {
  9.     public class Auto
  10.     {
  11.         public string Gamintojas { get; set; }
  12.         public string Modelis { get; set; }
  13.         public double Kaina { get; set; }
  14.         public Auto(string Gamintojas, string Modelis, double Kaina)
  15.         {
  16.             this.Gamintojas = Gamintojas;
  17.             this.Modelis = Modelis;
  18.             this.Kaina = Kaina;
  19.         }
  20.         public Auto() { }
  21.         public override string ToString()
  22.         {
  23.             string eilute;
  24.             eilute = string.Format("Gamintojas: {0, -20} Modelis: {1, -20} Kaina: {2,7}",
  25.                 Gamintojas,Modelis,Kaina);
  26.             return eilute;
  27.         }
  28.         static public bool operator >(Auto pirmas, Auto antras)
  29.         {
  30.             int p = String.Compare(pirmas.Modelis,antras.Modelis);
  31.             if (pirmas.Kaina > pirmas.Kaina) return true;
  32.             else if (p>0) return true;
  33.             return false;
  34.         }
  35.         static public bool operator <(Auto pirmas, Auto antras)
  36.         {
  37.             return !(pirmas > antras);
  38.         }
  39.     }
  40. }
  41.  
  42.  
  43.  
  44. using System;
  45. using System.Collections.Generic;
  46. using System.Linq;
  47. using System.Text;
  48. using System.Threading.Tasks;
  49.  
  50. namespace testk2
  51. {
  52.     public sealed class Mazgas
  53.     {
  54.         public Auto AutoMob { get; set; }
  55.         public Mazgas Kitas { get; set; }
  56.         public Mazgas(Auto automob, Mazgas kitas)
  57.         {
  58.             AutoMob = automob;
  59.             Kitas = kitas;
  60.         }
  61.     }
  62. }
  63.  
  64.  
  65.  
  66. using System;
  67. using System.Collections.Generic;
  68. using System.Linq;
  69. using System.Text;
  70. using System.Threading.Tasks;
  71.  
  72. namespace testk2
  73. {
  74.     public sealed class Modeliai
  75.     {
  76.         private Mazgas pr; // sąrašo pradžia
  77.         private Mazgas pb; // sąrašo pabaiga
  78.         public Modeliai()
  79.         {
  80.             this.pr = null;
  81.             this.pb = null;
  82.         }
  83.         public Mazgas Imti()
  84.         { return pr; }
  85.         public void Deti(Auto automob) //pridėjimas studento arba dėstytojo
  86.         {
  87.             var dd = new Mazgas(automob, null);
  88.             if (pr != null)
  89.             {
  90.                 pb.Kitas = dd;
  91.                 pb = dd;
  92.             }
  93.             else
  94.             {
  95.                 pr = dd;
  96.                 pb = dd;
  97.             }
  98.         }
  99.         public void Rikiuoti()
  100.         {
  101.             if (pr == null) { return; }
  102.             bool keista = true;
  103.             while (keista)
  104.             {
  105.                 keista = false;
  106.                 var pra = pr;
  107.                 while (pra.Kitas != null)
  108.                 {
  109.                     if (pra.AutoMob > pra.Kitas.AutoMob)
  110.                     {
  111.                         Auto At = pra.AutoMob;
  112.                         pra.AutoMob = pra.Kitas.AutoMob;
  113.                         pra.Kitas.AutoMob = At;
  114.                         keista = true;
  115.                     }
  116.                     pra = pra.Kitas;
  117.                 }
  118.             }
  119.         }
  120.     }
  121. }
  122.  
  123.  
  124.  
  125. using System;
  126. using System.Collections.Generic;
  127. using System.Linq;
  128. using System.Text;
  129. using System.Threading.Tasks;
  130. namespace testk2
  131. {
  132.     class Program
  133.     {
  134.         static void Main(string[] args)
  135.         {
  136.             Modeliai Ar = new Modeliai();
  137.             Modeliai Br = new Modeliai();
  138.             string file = "..//..//Duomenys.txt";
  139.             string Rezultatai = "..//..//Rezultatai.txt";
  140.             Nuskaitymas(Ar, file);
  141.             if (System.IO.File.Exists(Rezultatai)) System.IO.File.Delete(Rezultatai);
  142.             PrintToFile(Ar, Rezultatai);
  143.             Atrinkimas(Ar, Br);
  144.             PrintToFile(Br, Rezultatai);
  145.             Br.Rikiuoti();
  146.             PrintToFile(Br, Rezultatai);
  147.         }
  148.         public static void Nuskaitymas(Modeliai model, string file)
  149.         {
  150.             string line;
  151.             using (var fv = new System.IO.StreamReader(file, Encoding.GetEncoding(1257)))
  152.             {
  153.                 while ((line = fv.ReadLine()) != null)
  154.                 {
  155.                     var values = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
  156.                     string gam = values[0];
  157.                     string mod = values[1];
  158.                     double kaina = Convert.ToDouble(values[2]);
  159.                     var auto = new Auto(gam, mod, kaina);
  160.                     model.Deti(auto);
  161.                 }
  162.             }
  163.         }
  164.         public static void Atrinkimas(Modeliai model, Modeliai atrinkti)
  165.         {
  166.             Auto max = Max(model);
  167.             double skirtumas = max.Kaina / 4;
  168.             for (Mazgas d = model.Imti(); d != null; d = d.Kitas)
  169.             {
  170.                 if ((max.Kaina - d.AutoMob.Kaina) <= skirtumas)
  171.                 {
  172.                     if (max != d.AutoMob)
  173.                         atrinkti.Deti(d.AutoMob);
  174.                 }
  175.             }
  176.         }
  177.         public static Auto Max(Modeliai model)
  178.         {
  179.             Auto max = model.Imti().AutoMob;
  180.             for (Mazgas d = model.Imti(); d != null; d = d.Kitas)
  181.             {
  182.                 if (max.Kaina < d.AutoMob.Kaina) max = d.AutoMob;
  183.             }
  184.             return max;
  185.         }
  186.         public static void PrintToFile(Modeliai print, string file)
  187.         {
  188.             string bruksnys = new string('-', 54);
  189.             using (System.IO.StreamWriter fd = System.IO.File.AppendText(file))
  190.             {
  191.                 fd.WriteLine("|{0,-20}|{1,-20}|{2,-10}|", "Gamintojas", "Modelis", "Kaina");
  192.                 fd.WriteLine(bruksnys);
  193.                 for (Mazgas d = print.Imti(); d != null; d = d.Kitas)
  194.                 {
  195.                     fd.WriteLine("|{0,-20}|{1,-20}|{2,-10}|", d.AutoMob.Gamintojas, d.AutoMob.Modelis, d.AutoMob.Kaina);
  196.                     fd.WriteLine(bruksnys);
  197.                 }
  198.                 fd.WriteLine();
  199.             }
  200.         }
  201.     }
  202. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement