1. Hozz létre egy
szövegfájlt, amiben 5 autó következő 3 adatát tárolod:
- autó gyártója és típusa
- évjárat
- futott km
2. Olvasd be a fájlt, és tárold 3 tömbben az adatokat.
3. Írj egy kiíró metódust, ami kiírja a képernyőre az egyes autók összetartozó adatait; egy sorba egy autót.
4. Írj egy paraméteres kiíró metódust, ami kiírja a főprogramban választható szám tömb adatait.
5. Írj egy függvényt, aminek segítségével a főprogram kiírja a legtöbb kilométert futott autóhoz tartozó futott km értékét.
6. Írj egy paraméteres függvényt, aminek segítségével a főprogram kiírja az ABC-ben legelöl levő autó gyártóját és típusát. (Az eredeti sorrendet a tömbben ne változtasd meg.)
7. Írj egy függvényt, ami kiszámolja a futott kilométerek átlagát.
8. Írj egy függvényt, ami egy új tömbbe átmásolja a 2000 előtti évjáratú autók évjáratát. A függvény adja vissza a főprogramnak, hogy hány adatot másolt át. Az átmásolt adatokat írasd ki a 4. feladatban megírt metódussal.
- autó gyártója és típusa
- évjárat
- futott km
2. Olvasd be a fájlt, és tárold 3 tömbben az adatokat.
3. Írj egy kiíró metódust, ami kiírja a képernyőre az egyes autók összetartozó adatait; egy sorba egy autót.
4. Írj egy paraméteres kiíró metódust, ami kiírja a főprogramban választható szám tömb adatait.
5. Írj egy függvényt, aminek segítségével a főprogram kiírja a legtöbb kilométert futott autóhoz tartozó futott km értékét.
6. Írj egy paraméteres függvényt, aminek segítségével a főprogram kiírja az ABC-ben legelöl levő autó gyártóját és típusát. (Az eredeti sorrendet a tömbben ne változtasd meg.)
7. Írj egy függvényt, ami kiszámolja a futott kilométerek átlagát.
8. Írj egy függvényt, ami egy új tömbbe átmásolja a 2000 előtti évjáratú autók évjáratát. A függvény adja vissza a főprogramnak, hogy hány adatot másolt át. Az átmásolt adatokat írasd ki a 4. feladatban megírt metódussal.
9. Írd ki egy új fájlba
(info.txt) az autók összesített futott km értékét. A szöveg: „ 501234 km-t
futott együtt az összes autó.” (A szám helyére a kiszámolt érték kerül.) Ne
zárd le a fájlt, mert a következő feladat is abba ír.
10. Írd ki az előző fájl
következő sorába azt az információt, hogy az autók között van-e legalább egy
FORD. (Használd az eldöntés tételét. A kiírás szövege: „Van Ford”. / ”Nincs
Ford.”) Zárd le a fájlt.
11. Vizsgáld meg az autók
futott km adatait. Írd ki egy új fájlba (szerviz.txt) minden autó szöveges
adatát, és mellé egy szöveget – a következők szerint. Ahol a futott km érték
100000 km fölötti, az az autó szervízbe megy. Ahol 50000 és 100000 között van,
azt írod mellé, hogy karbantartás; és ami 50000 alatt van, azt kell írni, hogy
nincs teendő. Ettől eltérő érték esetén jelezzünk hibát.
Cseri
Ádám javított megoldása:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace autooo
{
class SajatOsztaly
{
public const
int db = 5;
public string[]
autoNev = new string[db];
public int[]
autoEvjarat = new int[db];
public int[]
futottKm = new int[db];
public int
i;
public int
j;
public int[]
masEvjarat = new int[db];
public double
atlag;
public int
osszeg;
public bool log;
public void
F2beolvas()
{
StreamReader sr = new StreamReader("auto.txt");
string[] atmeneti;
i = 0;
while (!sr.EndOfStream)
{
atmeneti = sr.ReadLine().Split(',');
autoNev[i] = atmeneti[0];
autoEvjarat[i] = Convert.ToInt32(atmeneti[1]);
futottKm[i] = Convert.ToInt32(atmeneti[2]);
i++;
}
sr.Close();
}
public void
F3kiir()
{
j = 0;
while (j < i)
{
Console.WriteLine("Márka: {0}. Évjárat: {1}. Futott km: {2}.",
autoNev[j], autoEvjarat[j], futottKm[j]);
j++;
}
}
public void
F4kiir(int index)
{
switch (index)
{
case
1:
for
(int i = 0; i < db; i++)
{
Console.WriteLine("A név-gyártó
tömb {0}. eleme: {1}", i, autoNev[i]);
}
break;
case
2:
for
(int i = 0; i < db; i++)
{
Console.WriteLine("Az
évjárat tömb {0}. eleme: {1}", i, autoEvjarat[i]);
}
break;
case
3:
for
(int i = 0; i < db; i++)
{
Console.WriteLine("A futott km tömb {0}. eleme: {1}", i,
futottKm[i]);
}
break;
case
4:
for
(int i = 0; i < db; i++)
{
Console.WriteLine("A 2000 előtti
évjáratok tömbje {0}. eleme: {1}", i, masEvjarat[i]);
}
break;
default:
Console.WriteLine("Hibás tömb szám.");
break;
}
}
public int
F5legtobbKm()
{
int maxKm = 0;
for (int
i = 0; i < futottKm.Length; i++)
{
if
(futottKm[i] > maxKm)
maxKm = futottKm[i];
}
return maxKm;
}
public string
F6ABCelso(string[] markaTipus)
{
string[] sorrendbenTomb = new string[markaTipus.Length];
for (int
i = 0; i < markaTipus.Length; i++)
{
sorrendbenTomb[i] =
markaTipus[i];
}
Array.Sort(sorrendbenTomb);
return sorrendbenTomb[0];
}
public double
F7atlag()
{
atlag = 0;
for (int
i = 0; i < futottKm.Length; i++)
{
atlag += futottKm[i];
}
atlag /= futottKm.Length;
return atlag;
}
public int
F82000elotti()
{
j = 0;
for (int
i = 0; i < autoEvjarat.Length; i++)
{
if
(autoEvjarat[i] < 2000)
{
masEvjarat[j] =
autoEvjarat[i];
j++;
}
}
F4kiir(4);
return j;
}
public void
F9fajlbair()
{
osszeg = 0;
for (int
i = 0; i < futottKm.Length; i++)
{
osszeg += futottKm[i];
}
}
public bool
F10eldontesFORDe()
{
log = false;
for (int
i = 0; i < autoNev.Length; i++)
{
if
(autoNev[i].Contains("Ford"))
log = true;
}
return log;
}
//11. Vizsgáld meg az autók futott km adatait.
Írd ki egy új fájlba (szerviz.txt) minden autó szöveges adatát,
//és mellé egy szöveget – a következők
szerint.
//Ahol a futott km érték 100000 km fölötti, az
az autó szervízbe megy. Ahol 50000 és 100000 között van, azt írod mellé, hogy
karbantartás;
//és ami 50000 alatt van, azt kell írni, hogy
nincs teendő. Ettől eltérő érték esetén jelezzünk hibát. Ezt a feladatot
gyakorlásképpen
//kétféle módszerrel is oldd meg: egymásba ágyazott
kétágú szelekciókkal, illetve többágú szelekcióval.
//Mindkét módszerrel kiszámolt eredményhalmaz
kerüljön a fájlba.
public void
F11szerviz()
{
StreamWriter sw = new StreamWriter("szerviz.txt");
for (int
i = 0; i < autoNev.Length; i++)
{
if
(futottKm[i] >= 100000)
sw.WriteLine("{0} szervízbe megy", autoNev[i]);
else
{
if
(50000 < futottKm[i] && futottKm[i] < 100000)
sw.WriteLine("{0} karbantartás", autoNev[i]);
else
{
if (futottKm[i] <= 50000)
sw.WriteLine("{0},
nincs teendő", autoNev[i]);
else
sw.WriteLine("Hiba");
}
}
}
sw.Close();
}
}
class Program
{
static void
Main(string[] args)
{
SajatOsztaly s = new SajatOsztaly();
//
1. Hozz létre egy szövegfájlt,
amiben 5 autó következő 3 adatát tárolod:
//- autó gyártója és típusa
//- évjárat
//- futott km
//2. Olvasd be a fájlt, és tárold 3 tömbben az
adatokat.
Console.WriteLine("2. feladat: ");
s.F2beolvas();
Console.ReadLine();
//3. Írj egy kiíró metódust, ami kiírja a képernyőre
az egyes autók összetartozó adatait; egy sorba egy autót.
Console.WriteLine("3. feladat: ");
s.F3kiir();
Console.ReadLine();
//4. Írj egy paraméteres kiíró metódust, ami
kiírja a főprogramban választható szám tömb adatait.
Console.WriteLine("4. feladat: ");
Console.Write("Hanyas számú tömböt szeretnéd kiirattatni? (1/2/3) ");
int szam = Convert.ToInt16(Console.ReadLine());
s.F4kiir(szam);
Console.ReadLine();
//5. Írj egy függvényt, aminek segítségével a
főprogram kiírja a legtöbb kilométert futott autóhoz tartozó futott km értékét.
Console.WriteLine("5. feladat: ");
Console.WriteLine("A legtöbb km: {0}", s.F5legtobbKm());
Console.ReadLine();
//6. Írj egy paraméteres függvényt, aminek segítségével
a főprogram kiírja az ABC-ben legelöl levő autó gyártóját és típusát. (Az
eredeti sorrendet a tömbben ne változtasd meg.)
Console.WriteLine("6. feladat: ");
Console.WriteLine("Az ABC-ben legelöl lévő autó márkája és típusa:
{0}", s.F6ABCelso(s.autoNev));
Console.ReadLine();
//7. Írj egy függvényt, ami kiszámolja a
futott kilométerek átlagát.
Console.WriteLine("7. feladat: ");
Console.WriteLine("A futott km-ek átlaga: {0}",
s.F7atlag());
Console.ReadLine();
//8. Írj egy függvényt, ami egy új tömbbe átmásolja
a 2000 előtti évjáratú autók évjáratát.
//A függvény adja vissza a főprogramnak, hogy
hány adatot másolt át. Az átmásolt adatokat írasd ki a 4.feladatban megírt metódussal.
Console.WriteLine("8. feladat: ");
Console.WriteLine("A program {0} db adatot másolt át",
s.F82000elotti());
Console.ReadLine();
//
9. Írd ki egy új fájlba
(info.txt) az autók összesített futott km értékét.
//A szöveg: „ 501234 km-t futott együtt az összes
autó.” (A szám helyére a kiszámolt érték kerül.)
//Ne zárd le a fájlt, mert a következő feladat
is abba ír.
Console.WriteLine("9. feladat: ");
StreamWriter sw = new StreamWriter("info.txt");
s.F9fajlbair();
sw.WriteLine("{0} km-t futott együtt az
összes autó.", s.osszeg);
Console.ReadLine();
//10. Írd ki az előző fájl következő sorába
azt az információt, hogy az autók között van-e legalább egy FORD.
//(Használd az eldöntés tételét. A kiírás szövege:
„Van Ford”. / ”Nincs Ford.”) Zárd le a fájlt.
Console.WriteLine("10. feladat: ");
if (s.F10eldontesFORDe())
sw.Write("Van Ford");
else sw.Write("Nincs
Ford");
sw.Close();
Console.ReadLine();
//11. Vizsgáld meg az autók futott km adatait.
Írd ki egy új fájlba (szerviz.txt) minden autó szöveges adatát,
//és mellé egy szöveget – a következők
szerint.
//Ahol a futott km érték 100000 km fölötti, az
az autó szervízbe megy. Ahol 50000 és 100000 között van, azt írod mellé, hogy
karbantartás;
//és ami 50000 alatt van, azt kell írni, hogy
nincs teendő. Ettől eltérő érték esetén jelezzünk hibát.
Console.WriteLine("11. feladat: ");
s.F11szerviz();
Console.ReadLine();
}
}
}