using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace kektura
{
struct Szakasz
{
public String Kezdet;
public String Vég;
public Double Táv;
public int Emelkedés;
public int Lejtés;
public bool Pecsételőhely;
public Szakasz(string[]
m)
{
Kezdet = m[0];
Vég = m[1];
Táv = double.Parse(m[2]);
Emelkedés = int.Parse(m[3]);
Lejtés = int.Parse(m[4]);
Pecsételőhely
= m[5] == "i";
}
//6.feladat:
public bool HianyosNev_pm
{
get
{
if (Pecsételőhely)
{
if (Vég.Contains("pecsetelohely")) return false;
else return true;
}
return false;
}
}
public override string ToString()
{
string NemHiányosNév =
Vég;
if (HianyosNev_pm) NemHiányosNév += "pecsetohely";
return String.Format("{0};{1};{2};{3};{4};{5}",
Kezdet, NemHiányosNév,
Táv, Emelkedés, Lejtés, Pecsételőhely ? 'i' : 'n');
}
}
class kektura
{
static void Main(string[] args)
{
Console.WriteLine("Készítette:
Pecsenye Márton ");
Console.WriteLine();
List<Szakasz> sz = new List<Szakasz>();
string[] forras_pm = File.ReadAllLines("kektura.csv");
int tszfm = int.Parse(forras_pm[0]); //kiindulópont
tengerszint feletti magassága
for (int i
= 1; i < forras_pm.Length;
i++)
{
sz.Add(new Szakasz(forras_pm[i].Split(';')));
}
Console.WriteLine("3.feladat:Szakaszok
száma:{0} db" , sz.Count);
//4.feladat:A
túra teljes hossza
double hossz_pm =
0;
foreach (var i in sz)
{
hossz_pm += i.Táv;
}
Console.WriteLine("4.feladat:
A túra teljes hossza:{0} km", hossz_pm);
//5.feladat:A
legrövidebb szakasz adatai
int mini_pm =
0;
for (int i
= 0; i < sz.Count;
i++)
{
if (sz[i].Táv
< sz[mini_pm].Táv) mini_pm =
i;
}
Console.WriteLine("5.feladat:A
legrövidebb szakasz adatai: ");
Console.WriteLine("\tKezdete:
{0}", sz[mini_pm].Kezdet);
Console.WriteLine("\tVége:
{0}", sz[mini_pm].Vég);
Console.WriteLine("\tTávolság:
{0} km", sz[mini_pm].Táv);
//7.feladat:
Hiányos állomásnevek
Console.WriteLine("7.feladat:
Hiányos állomásnevek: ");
bool voltHiányos = false;
for (int i
= 0; i < sz.Count;
i++)
{
if (sz[i].HianyosNev_pm)
{
Console.WriteLine("\t{0}", sz[i].Vég);
voltHiányos = true;
}
}
if (!voltHiányos) Console.WriteLine("Nincs
hiányos állomásnév");
//8.feladat:A
túra legmagasabban fekvő végpontja
int aktMagasság_pm = tszfm + sz[0].Emelkedés
- sz[0].Lejtés;
int maxMagasság_pm = aktMagasság_pm;
int maxi
= 0;
for (int i
= 1; i < sz.Count;
i++)
{
aktMagasság_pm += sz[i].Emelkedés
- sz[i].Lejtés;
if (aktMagasság_pm>maxMagasság_pm)
{
maxMagasság_pm = aktMagasság_pm;
maxi =
i;
}
}
Console.WriteLine("8.feladat:
A túra legmagasabban fekvő végpontja: ");
Console.WriteLine("\tA végpont
neve: {0}", sz[maxi].Vég);
Console.WriteLine("\tA végpont
tengerszint feletti magassága: {0} m",maxMagasság_pm);
//9.feladat:
kektura.2csv állomány
List<string>
sorok = new List<string>();
sorok.Add(tszfm.ToString());
foreach (var i in sz)
{
sorok.Add(i.ToString());
}
File.WriteAllLines("kektura2.csv",
sorok);
Console.ReadKey();
}
}
}