Ma egy videót kell megnéznetek s megoldani vele párhuzamosan a feladatot.
A videót a tavalyiaknak csináltam, ezt vegyétek figyelembe. Azért adom közre, hogy aki az OOP miatt
nem akart programozás feladatot megoldani, az lásson egy nem OOP-s megoldást, ami pontot ér.
Vigyázz, nem kaphatsz rá max. pontot!
Ez egy nem objektum-orientált, ezáltal könnyebben érthető, struktúrás megoldás.
A struktúrás megoldás a videóban elhangzottakkal ellentétben nem ér teljes pontot 2021-ben,
illetve tudni kell, hogy nektek lesznek kifejezetten oop-s feladatok is benne.
Ezen felül pedig rövidebb lesz a feladatsor, és a második fele grafikus programozás lesz.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ultrabalaton
{
class Program
{
public struct ultrabalaton
{
public string versenyzo;
public int rajtszam;
public string kategoria;
public string versenyido;
public int tavszazalek;
}
static List<ultrabalaton> lista = new List<ultrabalaton>();
static void kettes()
{
Console.WriteLine("Beolvasás...");
StreamReader sr = new StreamReader("ub2017egyeni.txt");
string[] atmeneti;
sr.ReadLine();
while (!sr.EndOfStream)
{
atmeneti = sr.ReadLine().Split(';');
ultrabalaton u = new ultrabalaton();
u.versenyzo = atmeneti[0];
u.rajtszam = Convert.ToInt32(atmeneti[1]);
u.kategoria = atmeneti[2];
u.versenyido =atmeneti[3];
u.tavszazalek = Convert.ToInt32(atmeneti[4]);
lista.Add(u);
}
sr.Close();
//for (int i = 0; i < lista.Count; i++)
//{
// Console.WriteLine("{0} {1} {2} {3} {4}", lista[i].versenyzo, lista[i].rajtszam, lista[i].kategoria, lista[i].versenyido, lista[i].tavszazalek);
//}
}
static void harmas()
{
Console.WriteLine("\n3. feladat: Egyéni indulók: {0} fő",lista.Count);
}
static void negyes()
{
Console.WriteLine();
int db = 0;
for (int i = 0; i < lista.Count; i++)
{
if (lista[i].kategoria=="Noi" && lista[i].tavszazalek==100)
{
db++;
}
}
Console.WriteLine("4. feladat: Célba érkező női sportolók: {0} fő",db);
}
static void otos()
{
Console.WriteLine();
Console.Write("5. feladat: Kérem a sportoló nevét: ");
string bekert = Console.ReadLine();
int i = 0;
while (i<lista.Count && bekert != lista[i].versenyzo)
{
i++;
}
Console.Write("\tIndult egyéniben a sportoló? ");
if (i == lista.Count)
Console.WriteLine("Nem");
else
{
Console.WriteLine("Igen");
Console.Write("\tTeljesítette a teljes távot? ");
if (lista[i].tavszazalek == 100)
{
Console.WriteLine("Igen");
}
else
{
Console.WriteLine("Nem");
}
}
}
static double IdoOraban(string ido)
{
double i = 0;
string[] tomb = ido.Split(':');
i = i + double.Parse(tomb[0]);
i = i + double.Parse(tomb[1])/60;
i = i + double.Parse(tomb[2]) / 3600;
return i;
}
static void hetes()
{
Console.WriteLine();
int db = 0;
double atlag = 0;
for (int i = 0; i < lista.Count; i++)
{
if (lista[i].kategoria=="Ferfi" && lista[i].tavszazalek==100)
{
atlag = IdoOraban(lista[i].versenyido) + atlag;
db++;
}
}
Console.WriteLine("7. feladat: Átlagos idő: {0} óra",atlag/db);
}
static void nyolcas()
{
Console.WriteLine("8. feladat: Verseny győztesei");
double gyoztesNoiIdo = double.MaxValue;
double gyoztesFerfiIdo = double.MaxValue;
string noiNev = String.Empty;
int noiRajtsz = 0;
string noiIdo = String.Empty;
string ferfiNev = String.Empty;
int ferfiRajtsz = 0;
string ferfiIdo = String.Empty;
foreach (var i in lista)
{
if (i.kategoria == "Noi" && i.tavszazalek == 100 && IdoOraban(i.versenyido) < gyoztesNoiIdo)
{
gyoztesNoiIdo = IdoOraban(i.versenyido);
noiNev = i.versenyzo;
noiRajtsz = i.rajtszam;
noiIdo = i.versenyido;
}
else
{
if (i.kategoria == "Ferfi" && i.tavszazalek == 100 && IdoOraban(i.versenyido) < gyoztesFerfiIdo)
{
gyoztesFerfiIdo = IdoOraban(i.versenyido);
ferfiNev = i.versenyzo;
ferfiRajtsz = i.rajtszam;
ferfiIdo = i.versenyido;
}
}
}
Console.WriteLine("\tNők: {0} ({1}.) - {2}", noiNev, noiRajtsz, noiIdo);
Console.WriteLine("\tFérfiak: {0} ({1}.) - {2}", ferfiNev, ferfiRajtsz, ferfiIdo);
}
static void Main(string[] args)
{
kettes();
harmas();
negyes();
otos();
hetes();
nyolcas();
Console.ReadKey();
}
}
}
Megjegyzések
Megjegyzés küldése