Főoldal Webprogramozás C# programozás SQL programozás Hálózati ismeretek

Kéktúra

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace kektura
{
struct szakasz_jg
{
public String kezdet_jg;
public String veg_jg;
public Double tavolsag_jg;
public int emelkedes_jg;
public int lejtes_jg;
public bool pecsetelohely_jg;
public szakasz_jg(string[] m_jg)
{
kezdet_jg = m_jg[0];
veg_jg = m_jg[1];
tavolsag_jg = double.Parse(m_jg[2]);
emelkedes_jg = int.Parse(m_jg[3]);
lejtes_jg = int.Parse(m_jg[4]);
pecsetelohely_jg = m_jg[5] == "i";
}

public bool HianyosNev_jg
{
get
{
if (pecsetelohely_jg)
{
if (veg_jg.Contains("pecsetelohely")) return false;
else return true;
} return false;
}
}
public override string ToString()
{
string NemHianyosNev_jg = veg_jg;
if (HianyosNev_jg) NemHianyosNev_jg += " pecsetelohely";
return String.Format("{0};{1};{2};{3};{4};{5}", kezdet_jg, NemHianyosNev_jg, tavolsag_jg, emelkedes_jg, lejtes_jg, pecsetelohely_jg ? 'i' : 'n');
}
}
class kektura
{
static void Main()
{
List szakasz_jg = new List(); string[] beolvas_jg = File.ReadAllLines("kektura.csv");
int magassag_jg = int.Parse(beolvas_jg[0]);

for (int i = 1; i < beolvas_jg.Length; i++)
{
szakasz_jg.Add(new szakasz_jg(beolvas_jg[i].Split(';')));
}
Console.WriteLine("3. feladat: Szakaszok száma: {0} db", szakasz_jg.Count);
double hossz_jg = 0;
foreach (var i in szakasz_jg)
{
hossz_jg += i.tavolsag_jg;
}

Console.WriteLine("4. feladat: A túra teljes hossza: {0} km", hossz_jg);
int legrovidebb_jg = 0;
for (int i = 1; i < szakasz_jg.Count; i++)
{
if (szakasz_jg[i].tavolsag_jg < szakasz_jg[legrovidebb_jg].tavolsag_jg) legrovidebb_jg = i;
}

Console.WriteLine("5. feladat: A legrövidebb szakasz adatai:");
Console.WriteLine("\tKezdete: {0}", szakasz_jg[legrovidebb_jg].kezdet_jg);
Console.WriteLine("\tVége: {0}", szakasz_jg[legrovidebb_jg].veg_jg);
Console.WriteLine("\tTávolság: {0} km", szakasz_jg[legrovidebb_jg].tavolsag_jg);
Console.WriteLine("7. feladat: Hiányos állomásnevek:");
bool VoltHianyos_jg = false;
for (int i = 0; i < szakasz_jg.Count; i++)
{
if (szakasz_jg[i].HianyosNev_jg)
{
Console.WriteLine("\t{0}", szakasz_jg[i].veg_jg);
VoltHianyos_jg = true;
}
}
if (!VoltHianyos_jg) Console.WriteLine("Nincs hiányos állomásnév!");
int jelenlegi_jg = magassag_jg + szakasz_jg[0].emelkedes_jg - szakasz_jg[0].lejtes_jg;
int maximum_jg = jelenlegi_jg;
int maximumi_jg = 0; for (int i = 1; i < szakasz_jg.Count; i++)
{
jelenlegi_jg += szakasz_jg[i].emelkedes_jg - szakasz_jg[i].lejtes_jg;
if (jelenlegi_jg > maximum_jg)
{
maximum_jg = jelenlegi_jg;
maximumi_jg = i;
}
}
Console.WriteLine("8. feladat: A túra legmagasabban fekvő végpontja:");
Console.WriteLine("\tA végpont neve: {0}", szakasz_jg[maximumi_jg].veg_jg);
Console.WriteLine("\tA végpont tengerszint feletti magassága: {0} m", maximum_jg);
List sorok_jg = new List();
sorok_jg.Add(magassag_jg.ToString());
foreach (var i in szakasz_jg)
{
sorok_jg.Add(i.ToString());
}
File.WriteAllLines("kektura2.csv", sorok_jg);
Console.ReadKey();
}
}
}