Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///Kaune pardavinejimu namu informacija
- ///Autorius: Ignas Zubavicius
- using System;
- using System.IO;
- using System.Collections.Generic;
- namespace ParduodamiNamai
- {
- class Namas
- {
- /// <summary>
- /// Klase apraso parduodama nama
- /// </summary>
- public string Rajonas { get; set; }//Parduodamo namo mikrorajonas
- public string Gatve { get; set; }//Parduodamo namo gatve
- public int Numeris { get; set; }//Parduodamo namo numeris
- public string Tipas { get; set; }//Parduodamo namo tipas
- public int Metai { get; set; }//Parduodamo namo statybos metai
- public double Plotas { get; set; }//Parduodamo namo plotas
- public int Kambariai { get; set; }//Parduodamo namo kambariu skaicius
- public int Kiekis;//Naudojama randant kiek kiekvienoje gatveje yra parduodamu namu
- public Namas()
- {
- }
- public Namas(string rajonas, string gatve, int numeris, string tipas, int metai, double plotas, int kambariai)
- {
- Rajonas = rajonas;
- Gatve = gatve;
- Numeris = numeris;
- Tipas = tipas;
- Metai = metai;
- Plotas = plotas;
- Kambariai = kambariai;
- }
- /// <summary>
- /// Duotu duomenu skaitymas ir issaugojimas
- /// </summary>
- /// <returns></returns>Grazina parduodamu namu sarasa, kuri galima naudoti kituose metoduose
- List<Namas> perskaitytiNamuInfo()
- {
- List<Namas> namai = new List<Namas>();
- string[] lines = File.ReadAllLines(@"Duomenys.csv");
- foreach (string line in lines)
- {
- string[] values = line.Split(';');
- string rajonas = values[0];
- string gatve = values[1];
- int numeris = int.Parse(values[2]);
- string tipas = values[3];
- int metai = int.Parse(values[4]);
- double plotas = double.Parse(values[5]);
- int kambariai = int.Parse(values[6]);
- Namas namas = new Namas(rajonas, gatve, numeris, tipas, metai, plotas, kambariai);
- namai.Add(namas);
- }
- return namai;
- }
- /// <summary>
- /// Suranda seniausios statybos nama sarase
- /// </summary>
- /// <returns></returns>Grazina issaugota seniausio namo rinkini
- Namas surastiSeniausiaNama()
- {
- Namas t = new Namas();
- List<Namas> namai = t.perskaitytiNamuInfo();
- Namas seniausiasNamas = null;
- seniausiasNamas = namai[0];
- foreach (Namas namas in namai)
- {
- if (namas.Metai < seniausiasNamas.Metai)
- {
- seniausiasNamas = namas;
- }
- }
- return seniausiasNamas;
- }
- /// <summary>
- /// Suranda kokie murinio tipo namai turi didesni nei 100 kv. m plota
- /// </summary>
- /// <param name="namai"></param>
- /// <returns></returns>Grazina muriniu namu su didesniu nei 100 kv. m plotu rinkinius
- List<Namas> muriniaiNamai(List<Namas> namai)
- {
- List<Namas> nameliai2 = new List<Namas>();
- Namas murinis = null;
- murinis = namai[0];
- foreach (Namas namas in namai)
- {
- if (namas.Tipas == "murinis" && namas.Plotas > 100)
- {
- murinis = namas;
- nameliai2.Add(namas);
- }
- }
- return nameliai2;
- }
- /// <summary>
- /// Suranda kokie blokinio tipo namai turi didesni nei 150 kv. m plota
- /// </summary>
- /// <param name="namai"></param>
- /// <returns></returns>Grazina muriniu namu su didesniu nei 150 kv. m plotu rinkinius
- List<Namas> blokiniaiNamai(List<Namas> namai)
- {
- List<Namas> nameliai = new List<Namas>();
- Namas blokinis = null;
- blokinis = namai[0];
- foreach (Namas namas in namai)
- {
- if (namas.Tipas == "blokinis" && namas.Plotas > 150)
- {
- blokinis = namas;
- nameliai.Add(namas);
- }
- }
- return nameliai;
- }
- /// <summary>
- /// Suranda kurioje gatveje yra daugiausiai parduodamu namu
- /// </summary>
- /// <param name="namai"></param>
- /// <returns></returns>Grazina rinkini, kuriame yra gatve su daugiausiai parduodamu
- /// namu ir parduodamu namu skaicius
- public Namas kuriojeGatvejeDaugiausiaiNamu(List<Namas> namai)
- {
- Namas daugiausiaNamu = new Namas();
- int max = 0;
- foreach (Namas namas in namai)
- {
- if (namas.Kiekis > max)
- {
- max = namas.Kiekis;
- daugiausiaNamu = namas;
- }
- }
- return daugiausiaNamu;
- }
- /// <summary>
- /// Suranda po kiek namu yra kiekvienoje gatveje
- /// </summary>
- /// <param name="namai"></param>
- void poKiekNamuGatvese(List<Namas> namai)
- {
- foreach (Namas namas in namai)
- {
- foreach (Namas namas2 in namai)
- {
- if (namas.Gatve == namas2.Gatve)
- namas.Kiekis++;
- }
- }
- }
- /// <summary>
- /// Spausdina i tekstini faila sarasa visu parduodamu muriniu namu, kuriu plotas yra didesnis nei 100 kv. m.
- /// Jeigu tokiu namu nera metodas isveda atitinkama atsakyma.
- /// </summary>
- void spausdintiMuriniusNamus()
- {
- Namas t = new Namas();
- List<Namas> namai = t.perskaitytiNamuInfo();
- List<Namas> nameliai2 = t.muriniaiNamai(namai);
- int a = 0;
- using (StreamWriter rasymas = new StreamWriter(@"M100.csv"))
- {
- rasymas.WriteLine("Mikrorajonas;Gatve;Namo numeris;Tipas;Pastatymo metai;Plotas;Kambariu skaicius");
- foreach (Namas namas in nameliai2)
- {
- rasymas.WriteLine("{0}, {1}, {2}, {3}, {4}, {5}, {6}", namas.Rajonas, namas.Gatve, namas.Numeris, namas.Tipas,
- namas.Metai, namas.Plotas, namas.Kambariai);
- a++;
- }
- }
- if (a == 0)
- {
- using (StreamWriter rasymas2 = new StreamWriter(@"M100.csv"))
- {
- rasymas2.WriteLine("Muriniu namu su plotu didesniu nei 100 kv. m nera.");
- }
- }
- }
- /// <summary>
- /// Spausdina i tekstini faila sarasa visu blokiniu namu, kuriu plotas yra didesnis nei 150 kv. m.
- /// Jeigu tokiu namu nera metodas isveda atitinkama atsakyma.
- /// </summary>
- void spausdintiBlokiniusNamus()
- {
- Namas t = new Namas();
- List<Namas> namai = t.perskaitytiNamuInfo();
- List<Namas> nameliai = t.blokiniaiNamai(namai);
- int a = 0;
- using (StreamWriter rasymas = new StreamWriter(@"B150.csv"))
- {
- rasymas.WriteLine("Mikrorajonas;Gatve;Namo numeris;Tipas;Pastatymo metai;Plotas;Kambariu skaicius");
- foreach (Namas namas in nameliai)
- {
- rasymas.WriteLine("{0}, {1}, {2}, {3}, {4}, {5}, {6}", namas.Rajonas, namas.Gatve, namas.Numeris,
- namas.Tipas, namas.Metai, namas.Plotas, namas.Kambariai);
- a++;
- }
- }
- if (a == 0)
- {
- using (StreamWriter rasymas2 = new StreamWriter(@"B150.csv"))
- {
- rasymas2.WriteLine("Blokiniu namu su didesniu nei 150 kv. m plotu nera.");
- }
- }
- }
- /// <summary>
- /// Spausdina pradinius duomenis i tekstini faila lenteles stiliumi
- /// </summary>
- void spausdintiPradiniusDuomenis()
- {
- Namas t = new Namas();
- List<Namas> namai = t.perskaitytiNamuInfo();
- using (StreamWriter rasymas = new StreamWriter(@"PradiniaiDuomenys.csv"))
- {
- rasymas.WriteLine("--------------------------------------------" +
- "--------------------------------------------" +
- "--------------------------");
- rasymas.WriteLine("*************************************** P" +
- " R A D I N I A I D U O M E N Y S *******" +
- "********************************");
- rasymas.WriteLine("--------------------------------------------" +
- "--------------------------------------------" +
- "--------------------------");
- rasymas.WriteLine("/ MIKRORAJONAS GATVĖ NAMO NU" +
- "MERIS TIPAS PASTATYMO METAI PLOTAS KAMBARIŲ " +
- "SKAIČIUS / ");
- rasymas.WriteLine("--------------------------------------------" +
- "--------------------------------------------" +
- "--------------------------");
- foreach (Namas namas in namai)
- {
- {
- rasymas.WriteLine("/ {0,-14} | {1,-16} | {2,11:d} | {3,-9} | {4,16:d} | {5,8:f2} | {6,17:d} /", namas.Rajonas, namas.Gatve,
- namas.Numeris, namas.Tipas, namas.Metai, namas.Plotas, namas.Kambariai);
- }
- }
- }
- }
- /// <summary>
- /// Spausdina seniausia parduodama nama, apibudina ji
- /// </summary>
- void spausdintiSeniausiaNama()
- {
- Namas t = new Namas();
- List<Namas> namai = t.perskaitytiNamuInfo();
- Namas seniausiasNamas = t.surastiSeniausiaNama();
- Console.WriteLine("Seniausiam namui yra {0} metai, jis yra {1} {2}, {3} tipas, plotas - {4} kv. m",
- 2018 - seniausiasNamas.Metai, seniausiasNamas.Gatve,
- seniausiasNamas.Numeris, seniausiasNamas.Tipas, seniausiasNamas.Plotas);
- }
- /// <summary>
- /// Spausdina kurioje kiek ir kurioje gatveje yra daugiausiai parduodamu namu
- /// </summary>
- void spausdintiKuriojeGatvejeDaugiausiaiNamu()
- {
- Namas t = new Namas();
- List<Namas> namai = t.perskaitytiNamuInfo();
- t.poKiekNamuGatvese(namai);
- Namas Skaiciuoti = t.kuriojeGatvejeDaugiausiaiNamu(namai);
- Console.WriteLine("Daugiausiai parduodamu namu - {0} Joje yra {1} parduodami namai.", Skaiciuoti.Gatve, Skaiciuoti.Kiekis);
- }
- /// <summary>
- /// Ivykdo visus spausdinimo metodus
- /// </summary>
- /// <param name="args"></param>
- static void Main(string[] args)
- {
- Namas p = new Namas();
- p.spausdintiMuriniusNamus();
- p.spausdintiBlokiniusNamus();
- p.spausdintiPradiniusDuomenis();
- p.spausdintiSeniausiaNama();
- p.spausdintiKuriojeGatvejeDaugiausiaiNamu();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement