Első óránkon töri próbaérettségi volt.
Aztán folytattuk a városos programot. Házi feladat befejezni.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace _2022._03._09
{
class Varos
{
public string nev;
public int lakossag;
public int tavolsag;
public bool megyeszekhely;
public Varos( string sor)
{
List<string> atmeneti = sor.Split(" ").ToList();
nev = atmeneti[0];
lakossag =Convert.ToInt32( atmeneti[1]);
tavolsag= Convert.ToInt32(atmeneti[2]);
if (atmeneti.Count==3)
{
megyeszekhely = true;
}
else
{
if (atmeneti.Count==4)
{
megyeszekhely = false;
}
}
}
public void kiir()
{
Console.WriteLine("Városnév: {0} Lakosság: {1} távolság: {2}",nev,lakossag,tavolsag,megyeszekhely);
if (megyeszekhely)
{
Console.WriteLine("megyeszékhely");
}
}
}
class Program
{
static void nemMegyeszekhely3(List<Varos>v)
{
bool van = false;
for (int i = 0; i <v.Count; i++)
{
if (!v[i].megyeszekhely)
{
Console.WriteLine($"Neve: {v[i].nev} Népessége: {v[i].lakossag}");
van = true;
}
}
if (!van)
{
Console.WriteLine("Minden település megyeszékhely.");
}
}
static bool nemMegyeszekhely3fv(List<Varos> v)
{
bool van = false;
for (int i = 0; i < v.Count; i++)
{
if (!v[i].megyeszekhely)
{
Console.WriteLine($"Neve: {v[i].nev} Népessége: {v[i].lakossag}");
van = true;
}
}
return van;
}
static int legtavolabbi4(List<Varos>v)
{
int max =v[0].tavolsag;
int index = 0;
for (int i = 1; i < v.Count; i++)
{
if (v[i].tavolsag>max)
{
max = v[i].tavolsag;
index = i;
}
}
return index;
}
static int minimum(List<Varos> v)
{
int min = v[0].lakossag;
int index = 0;
for (int i = 1; i < v.Count; i++)
{
if (v[i].lakossag < min)
{
min = v[i].lakossag;
index = i;
}
}
return index;
}
static void lakos(List<Varos> v,int fel)
{
for (int i = 0; i < v.Count; i++)
{
if (v[i].lakossag>fel)
{
Console.WriteLine(v[i].nev);
}
}
if (fel > 164000)
{
Console.WriteLine("hiba");
}
}
static void BP(List<Varos>v )
{
int szam = 180;
int i = 0;
bool igaz = false;
while (i<v.Count && !igaz)
{
if (v[i].tavolsag>szam)
{
Console.WriteLine("Ez a varos tavolabb van mint 180km {0}",v[i].nev);
igaz = true;
}
i++;
}
if (!igaz)
{
Console.WriteLine("Nincs 180km-nél tavolabbi varos");
}
}
static void olvas(List<Varos>v)
{
StreamWriter sr = new StreamWriter("Varosok2.txt");
int i = 0;
while (i<v.Count)
{
sr.Write("{0}", v[i].nev.ToUpper());
if (v[i].megyeszekhely==true)
{
sr.WriteLine(" megyeszékhely");
}
else
{
sr.WriteLine(" nem megyeszékhely");
}
i++;
}
sr.Close();
}
static void Main(string[] args)
{
//A program neve legyen: varosok.
//A tanult objektum-orientált programszerkezetet használd a megoldásnál.
//Minden képernyőre író feladat előtt írjuk ki a főprogramban a feladat sorszámát.
//A fájl most 5 sort tartalmaz, de a programod készüljön fel arra,
//hogy hosszabb, és más tartalmú fájlt is fel tudjon dolgozni.
//A programban városok adatait tároljuk.
//Az adatok soronként: a város neve, lakosainak száma, Budapesttől mért távolsága,
//illetve amelyik város nem megyeszékhely, ott még ez is szerepel: NO.
//Ez legyen a varosok.txt tartalma:
/*
Békéscsaba 59000 210
Szolnok 72000 119
Kecskemét 112000 93
Nyíregyháza 118000 230 NO
Miskolc 164000 182
*/
//1.feladat:
//Olvasd be a fájlt, és tárold a tartalmukat egy osztálypéldányokat tartalmazó listában.
Console.WriteLine("1.feladat");
List<Varos> varosok = new List<Varos>();
foreach (var item in File.ReadAllLines("varosok.txt"))
{
varosok.Add(new Varos(item));
}
//2.feladat:
Console.WriteLine("2.feladat");
//Írd ki az adatokat a képernyőre, egy sorba egy város adatait.
for (int i = 0; i < varosok.Count; i++)
{
varosok[i].kiir();
}
//3.feladat:
Console.WriteLine("3.feladat");
//Írd ki a képernyőre annak a városnak a nevét, és a népességét, amely nem megyeszékhely.
//(Ha több ilyen lenne, mindet ki kéne írni.) Ha nincs ilyen, írj ki hibaüzenetet.
nemMegyeszekhely3(varosok);
Console.WriteLine("3.feladat függvénnyel");
if (!nemMegyeszekhely3fv(varosok))
{
Console.WriteLine("Minden település megyeszékhely.");
}
//4.feladat:
Console.WriteLine("4.feladat");
//Írd ki a Budapesttől legtávolabbi város nevét a képernyőre. A feladatot lehetőleg függvénnyel valósítsd meg. Ha nem függvénnyel valósítod meg, kaphatsz részpontokat.
int ind = legtavolabbi4(varosok);
Console.WriteLine($"A Budapesttől legtávolabbi város neve: {varosok[ind].nev} és távolsága: {varosok[legtavolabbi4(varosok)].tavolsag} km");
//5.feladat:
Console.WriteLine("5.feladat");
//Írd ki a legkevesebb lakosú város nevét a képernyőre. A feladatot lehetőleg függvénnyel valósítsd meg. Ha nem függvénnyel valósítod meg, kaphatsz részpontokat.
Console.WriteLine($" A legkevesebb lakosú város neve: {varosok[minimum(varosok)].nev}");
//6.feladat:
Console.WriteLine("6.feladat");
//Kérd meg a felhasználót a főprogramban, hogy adjon meg egy lakosságszámot. Írd ki a felhasználó által beírt érték fölötti lakosságszámnál nagyobb lakosságú városok neveit, soronként egyet.
//Ha nincs ilyen, írj ki hibaüzenetet.
Console.WriteLine("Adj meg egy lakosságszámot");
int fel = Convert.ToInt32(Console.ReadLine());
lakos(varosok, fel);
//7.feladat:
Console.WriteLine("7.feladat");
//Döntsd el, hogy van-e 180 km-nél távolabbi város. Ha találsz ilyet,
//írd ki az elsőnek a nevét és a hozzá tartozó km-t.
//Ha nincs ilyen, írj ki hibaüzenetet.
BP(varosok);
//8. feladat:
//mögéjük vesszővel elválasztva azt a szót,
//hogy megyeszékhely/nem megyeszékhely
//Írd ki egy új fájlba a városok neveit nagybetűsen,
//(a valóságnak megfelelően)
olvas(varosok);
}
}
}