Advertisement
tr0j4i

kektura.cs

Jan 19th, 2017
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.66 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. using System.IO;
  7.  
  8. namespace kektura
  9. {
  10.     class Szakasz
  11.     {
  12.         public string kiindulo;
  13.         public string veg;
  14.         public double hossz;
  15.         public int osszemelkedes;
  16.         public int osszlejtes;
  17.         public bool pecset;
  18.         public Szakasz(string[] sr)
  19.         {
  20.             this.kiindulo = sr[0];
  21.             this.veg = sr[1];
  22.             this.hossz = Convert.ToDouble(sr[2]);
  23.             this.osszemelkedes = Convert.ToInt32(sr[3]);
  24.             this.osszlejtes = Convert.ToInt32(sr[4]);
  25.             if (sr[5] == "i")
  26.             {
  27.                 this.pecset = true;
  28.             }
  29.             else
  30.             {
  31.                 this.pecset = false;
  32.             }
  33.         }
  34.  
  35.         public bool HianyosNev()
  36.         {
  37.             if (pecset)
  38.             {
  39.                 if (veg.Contains("pecsetelohely"))
  40.                 {
  41.                     return false;
  42.                 }
  43.                 else
  44.                 {
  45.                     return true;
  46.                 }
  47.             }
  48.             return false;
  49.         }
  50.     }
  51.  
  52.  
  53.     class Program
  54.     {
  55.         static void Main(string[] args)
  56.         {
  57.             #region beolvasas
  58.             List<Szakasz> lista = new List<Szakasz>();
  59.             string [] sr = File.ReadAllLines("kektura.csv", Encoding.UTF8); //Az első sor miatt a while(!sr.EndOfStream){...} nem tűnik jó ötletnek
  60.             int tengerszint = Convert.ToInt32(sr[0]);
  61.             for (int i = 1; i < sr.Length; i++)
  62.             {
  63.                 lista.Add(new Szakasz(sr[i].Split(';')));
  64.             }
  65.             #endregion
  66.  
  67.             Console.WriteLine("3. feladat: \nAz állományban {0}db szakasz található", lista.Count());
  68.  
  69.             #region fel4
  70.             Console.WriteLine("4. feladat: ");
  71.             double ossz = 0;
  72.             foreach (var i in lista)
  73.             {
  74.                 ossz += i.hossz;
  75.             }
  76.             Console.WriteLine("A túra teljes hossza: {0}km", ossz);
  77.             #endregion
  78.  
  79.             #region fel5
  80.             int min = 0;
  81.             for (int i = 0; i < lista.Count(); i++)
  82.             {
  83.                 if (lista[min].hossz > lista[i].hossz)
  84.                 {
  85.                     min = i;
  86.                 }
  87.             }
  88.             Console.WriteLine("5. feladat: A legrövidebb szakasz adatai: ");
  89.             Console.WriteLine("Kezdete:" + lista[min].kiindulo);
  90.             Console.WriteLine("Vége:" + lista[min].veg);
  91.             Console.WriteLine("Távolság: {0}km", lista[min].hossz);
  92.             #endregion
  93.  
  94.             #region fel7
  95.             Console.WriteLine("7. feladat: Hiányos állomásnevek: ");
  96.             bool van = false;
  97.             foreach (var i in lista)
  98.             {
  99.                 if (i.HianyosNev())
  100.                 {
  101.                     Console.WriteLine(i.veg);
  102.                     van = true;
  103.                 }
  104.             }
  105.             if (!van)
  106.             {
  107.                 Console.WriteLine("Nincs hiányos állomásnév!");
  108.             }
  109.             #endregion
  110.  
  111.             #region fel8
  112.             Console.WriteLine("8. feladat: A túra legmagasabban fekvő végpontja: ");
  113.             int max = 0;
  114.             int jelenlegi = tengerszint + lista[max].osszemelkedes - lista[max].osszlejtes;
  115.             int uj = jelenlegi;
  116.             for (int i = 1; i < lista.Count(); i++)
  117.             {
  118.                 uj += lista[i].osszemelkedes - lista[i].osszlejtes;
  119.                 Console.WriteLine(uj);
  120.                 if (uj > jelenlegi)
  121.                 {
  122.                     max = i;
  123.                     jelenlegi = uj;
  124.                 }
  125.             }
  126.             Console.WriteLine("A végpont neve: " + lista[max].veg);
  127.             Console.WriteLine("A végpont tengerszint feletti magassága: {0} m", jelenlegi);
  128.             #endregion
  129.  
  130.             #region fel9
  131.             StreamWriter sw = new StreamWriter("kektura2.csv");
  132.             foreach (var i in lista)
  133.             {
  134.                 if (i.HianyosNev())
  135.                 {
  136.                     i.veg += " pecsetelohely";
  137.                 }
  138.                 string pecsetelo = "";
  139.                 if (i.pecset)
  140.                 {
  141.                     pecsetelo = "i";
  142.                 }
  143.                 else
  144.                 {
  145.                     pecsetelo = "n";
  146.                 }
  147.                 sw.WriteLine("{0};{1};{2};{3};{4};{5}", i.kiindulo, i.veg, i.hossz, i.osszemelkedes, i.osszlejtes, pecsetelo);
  148.             }
  149.             sw.Close();
  150.             #endregion
  151.             Console.ReadKey();
  152.         }
  153.     }
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement