Advertisement
Guest User

Untitled

a guest
Sep 20th, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 11.81 KB | None | 0 0
  1. ///Kaune pardavinejimu namu informacija
  2. ///Autorius: Ignas Zubavicius
  3. using System;
  4. using System.IO;
  5. using System.Collections.Generic;
  6.  
  7.  
  8.  
  9. namespace ParduodamiNamai
  10. {
  11.     class Namas
  12.     {
  13.         /// <summary>
  14.         /// Klase apraso parduodama nama
  15.         /// </summary>
  16.         public string Rajonas { get; set; }//Parduodamo namo mikrorajonas
  17.         public string Gatve { get; set; }//Parduodamo namo gatve
  18.         public int Numeris { get; set; }//Parduodamo namo numeris
  19.         public string Tipas { get; set; }//Parduodamo namo tipas
  20.         public int Metai { get; set; }//Parduodamo namo statybos metai
  21.         public double Plotas { get; set; }//Parduodamo namo plotas
  22.         public int Kambariai { get; set; }//Parduodamo namo kambariu skaicius
  23.         public int Kiekis;//Naudojama randant kiek kiekvienoje gatveje yra parduodamu namu
  24.  
  25.         public Namas()
  26.         {
  27.         }
  28.  
  29.         public Namas(string rajonas, string gatve, int numeris, string tipas, int metai, double plotas, int kambariai)
  30.         {
  31.             Rajonas = rajonas;
  32.             Gatve = gatve;
  33.             Numeris = numeris;
  34.             Tipas = tipas;
  35.             Metai = metai;
  36.             Plotas = plotas;
  37.             Kambariai = kambariai;
  38.         }
  39.         /// <summary>
  40.         /// Duotu duomenu skaitymas ir issaugojimas
  41.         /// </summary>
  42.         /// <returns></returns>Grazina parduodamu namu sarasa, kuri galima naudoti kituose metoduose
  43.         List<Namas> perskaitytiNamuInfo()
  44.         {
  45.             List<Namas> namai = new List<Namas>();
  46.             string[] lines = File.ReadAllLines(@"Duomenys.csv");
  47.             foreach (string line in lines)
  48.             {
  49.                 string[] values = line.Split(';');
  50.                 string rajonas = values[0];
  51.                 string gatve = values[1];
  52.                 int numeris = int.Parse(values[2]);
  53.                 string tipas = values[3];
  54.                 int metai = int.Parse(values[4]);
  55.                 double plotas = double.Parse(values[5]);
  56.                 int kambariai = int.Parse(values[6]);
  57.                 Namas namas = new Namas(rajonas, gatve, numeris, tipas, metai, plotas, kambariai);
  58.                 namai.Add(namas);
  59.             }
  60.             return namai;
  61.         }
  62.         /// <summary>
  63.         /// Suranda seniausios statybos nama sarase
  64.         /// </summary>
  65.         /// <returns></returns>Grazina issaugota seniausio namo rinkini
  66.         Namas surastiSeniausiaNama()
  67.         {
  68.             Namas t = new Namas();
  69.             List<Namas> namai = t.perskaitytiNamuInfo();
  70.             Namas seniausiasNamas = null;
  71.             seniausiasNamas = namai[0];
  72.                 foreach (Namas namas in namai)
  73.                 {
  74.                     if (namas.Metai < seniausiasNamas.Metai)
  75.                     {
  76.                         seniausiasNamas = namas;
  77.                     }
  78.                 }
  79.             return seniausiasNamas;
  80.         }
  81.         /// <summary>
  82.         /// Suranda kokie murinio tipo namai turi didesni nei 100 kv. m plota
  83.         /// </summary>
  84.         /// <param name="namai"></param>
  85.         /// <returns></returns>Grazina muriniu namu su didesniu nei 100 kv. m plotu rinkinius
  86.         List<Namas> muriniaiNamai(List<Namas> namai)
  87.         {
  88.             List<Namas> nameliai2 = new List<Namas>();
  89.             Namas murinis = null;
  90.             murinis = namai[0];
  91.                 foreach (Namas namas in namai)
  92.                 {
  93.                     if (namas.Tipas == "murinis" && namas.Plotas > 100)
  94.                     {
  95.                         murinis = namas;
  96.                         nameliai2.Add(namas);
  97.                     }
  98.                 }
  99.             return nameliai2;
  100.         }
  101.         /// <summary>
  102.         /// Suranda kokie blokinio tipo namai turi didesni nei 150 kv. m plota
  103.         /// </summary>
  104.         /// <param name="namai"></param>
  105.         /// <returns></returns>Grazina muriniu namu su didesniu nei 150 kv. m plotu rinkinius
  106.         List<Namas> blokiniaiNamai(List<Namas> namai)
  107.         {
  108.             List<Namas> nameliai = new List<Namas>();
  109.             Namas blokinis = null;
  110.             blokinis = namai[0];
  111.                 foreach (Namas namas in namai)
  112.                 {
  113.                     if (namas.Tipas == "blokinis" && namas.Plotas > 150)
  114.                     {
  115.                         blokinis = namas;
  116.                         nameliai.Add(namas);
  117.                     }
  118.                 }
  119.             return nameliai;
  120.         }
  121.         /// <summary>
  122.         /// Suranda kurioje gatveje yra daugiausiai parduodamu namu
  123.         /// </summary>
  124.         /// <param name="namai"></param>
  125.         /// <returns></returns>Grazina rinkini, kuriame yra gatve su daugiausiai parduodamu
  126.         /// namu ir parduodamu namu skaicius
  127.         public Namas kuriojeGatvejeDaugiausiaiNamu(List<Namas> namai)
  128.         {
  129.             Namas daugiausiaNamu = new Namas();
  130.             int max = 0;
  131.                 foreach (Namas namas in namai)
  132.                 {
  133.                     if (namas.Kiekis > max)
  134.                     {
  135.                         max = namas.Kiekis;
  136.                         daugiausiaNamu = namas;
  137.                     }
  138.                 }
  139.             return daugiausiaNamu;
  140.         }
  141.         /// <summary>
  142.         /// Suranda po kiek namu yra kiekvienoje gatveje
  143.         /// </summary>
  144.         /// <param name="namai"></param>
  145.         void poKiekNamuGatvese(List<Namas> namai)
  146.         {
  147.             foreach (Namas namas in namai)
  148.             {
  149.                 foreach (Namas namas2 in namai)
  150.                 {
  151.                     if (namas.Gatve == namas2.Gatve)
  152.                         namas.Kiekis++;
  153.                 }
  154.             }
  155.         }
  156.         /// <summary>
  157.         /// Spausdina i tekstini faila sarasa visu parduodamu muriniu namu, kuriu plotas yra didesnis nei 100 kv. m.
  158.         /// Jeigu tokiu namu nera metodas isveda atitinkama atsakyma.
  159.         /// </summary>
  160.         void spausdintiMuriniusNamus()
  161.         {
  162.             Namas t = new Namas();
  163.             List<Namas> namai = t.perskaitytiNamuInfo();
  164.             List<Namas> nameliai2 = t.muriniaiNamai(namai);
  165.             int a = 0;
  166.                 using (StreamWriter rasymas = new StreamWriter(@"M100.csv"))
  167.                 {
  168.                     rasymas.WriteLine("Mikrorajonas;Gatve;Namo numeris;Tipas;Pastatymo metai;Plotas;Kambariu skaicius");
  169.                     foreach (Namas namas in nameliai2)
  170.                     {
  171.                         rasymas.WriteLine("{0}, {1}, {2}, {3}, {4}, {5}, {6}", namas.Rajonas, namas.Gatve, namas.Numeris, namas.Tipas,
  172.                         namas.Metai, namas.Plotas, namas.Kambariai);
  173.                         a++;
  174.                     }
  175.                 }
  176.                     if (a == 0)
  177.                     {
  178.                         using (StreamWriter rasymas2 = new StreamWriter(@"M100.csv"))
  179.                         {
  180.                             rasymas2.WriteLine("Muriniu namu su plotu didesniu nei 100 kv. m nera.");
  181.                         }
  182.                     }
  183.         }
  184.         /// <summary>
  185.         /// Spausdina i tekstini faila sarasa visu blokiniu namu, kuriu plotas yra didesnis nei 150 kv. m.
  186.         /// Jeigu tokiu namu nera metodas isveda atitinkama atsakyma.
  187.         /// </summary>
  188.         void spausdintiBlokiniusNamus()
  189.         {
  190.             Namas t = new Namas();
  191.             List<Namas> namai = t.perskaitytiNamuInfo();
  192.             List<Namas> nameliai = t.blokiniaiNamai(namai);
  193.             int a = 0;
  194.                 using (StreamWriter rasymas = new StreamWriter(@"B150.csv"))
  195.                 {
  196.                     rasymas.WriteLine("Mikrorajonas;Gatve;Namo numeris;Tipas;Pastatymo metai;Plotas;Kambariu skaicius");
  197.                         foreach (Namas namas in nameliai)
  198.                         {
  199.                             rasymas.WriteLine("{0}, {1}, {2}, {3}, {4}, {5}, {6}", namas.Rajonas, namas.Gatve, namas.Numeris,
  200.                             namas.Tipas, namas.Metai, namas.Plotas, namas.Kambariai);
  201.                             a++;
  202.                         }
  203.                 }
  204.                 if (a == 0)
  205.                 {
  206.                     using (StreamWriter rasymas2 = new StreamWriter(@"B150.csv"))
  207.                     {
  208.                         rasymas2.WriteLine("Blokiniu namu su didesniu nei 150 kv. m plotu nera.");
  209.                     }
  210.                 }
  211.         }
  212.         /// <summary>
  213.         /// Spausdina pradinius duomenis i tekstini faila lenteles stiliumi
  214.         /// </summary>
  215.         void spausdintiPradiniusDuomenis()
  216.         {
  217.             Namas t = new Namas();
  218.             List<Namas> namai = t.perskaitytiNamuInfo();
  219.             using (StreamWriter rasymas = new StreamWriter(@"PradiniaiDuomenys.csv"))
  220.             {
  221.                 rasymas.WriteLine("--------------------------------------------" +
  222.                                     "--------------------------------------------" +
  223.                                         "--------------------------");
  224.                 rasymas.WriteLine("*************************************** P" +
  225.                                 " R A D I N I A I D U O M E N Y S *******" +
  226.                                             "********************************");
  227.                 rasymas.WriteLine("--------------------------------------------" +
  228.                             "--------------------------------------------" +
  229.                                     "--------------------------");
  230.                 rasymas.WriteLine("/ MIKRORAJONAS        GATVĖ           NAMO NU" +
  231.                 "MERIS  TIPAS       PASTATYMO METAI    PLOTAS     KAMBARIŲ " +
  232.                 "SKAIČIUS / ");
  233.                 rasymas.WriteLine("--------------------------------------------" +
  234.                 "--------------------------------------------" +
  235.                 "--------------------------");
  236.                 foreach (Namas namas in namai)
  237.                 {
  238.                     {
  239.                         rasymas.WriteLine("/ {0,-14} | {1,-16} | {2,11:d} | {3,-9} | {4,16:d} | {5,8:f2} | {6,17:d} /", namas.Rajonas, namas.Gatve,
  240.                             namas.Numeris, namas.Tipas, namas.Metai, namas.Plotas, namas.Kambariai);
  241.                     }
  242.                 }
  243.             }
  244.         }
  245.         /// <summary>
  246.         /// Spausdina seniausia parduodama nama, apibudina ji
  247.         /// </summary>
  248.         void spausdintiSeniausiaNama()
  249.         {
  250.             Namas t = new Namas();
  251.             List<Namas> namai = t.perskaitytiNamuInfo();
  252.             Namas seniausiasNamas = t.surastiSeniausiaNama();
  253.             Console.WriteLine("Seniausiam namui yra {0} metai, jis yra {1} {2}, {3} tipas, plotas - {4} kv. m",
  254.                 2018 - seniausiasNamas.Metai, seniausiasNamas.Gatve,
  255.                 seniausiasNamas.Numeris, seniausiasNamas.Tipas, seniausiasNamas.Plotas);
  256.         }
  257.         /// <summary>
  258.         /// Spausdina kurioje kiek ir kurioje gatveje yra daugiausiai parduodamu namu
  259.         /// </summary>
  260.         void spausdintiKuriojeGatvejeDaugiausiaiNamu()
  261.         {
  262.             Namas t = new Namas();
  263.             List<Namas> namai = t.perskaitytiNamuInfo();
  264.             t.poKiekNamuGatvese(namai);
  265.             Namas Skaiciuoti = t.kuriojeGatvejeDaugiausiaiNamu(namai);
  266.             Console.WriteLine("Daugiausiai parduodamu namu - {0} Joje yra {1} parduodami namai.", Skaiciuoti.Gatve, Skaiciuoti.Kiekis);
  267.         }
  268.         /// <summary>
  269.         /// Ivykdo visus spausdinimo metodus
  270.         /// </summary>
  271.         /// <param name="args"></param>
  272.         static void Main(string[] args)
  273.         {
  274.             Namas p = new Namas();
  275.             p.spausdintiMuriniusNamus();
  276.             p.spausdintiBlokiniusNamus();
  277.             p.spausdintiPradiniusDuomenis();
  278.             p.spausdintiSeniausiaNama();
  279.             p.spausdintiKuriojeGatvejeDaugiausiaiNamu();
  280.         }
  281.     }
  282. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement