Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.IO;
- using System.Globalization;
- namespace ellenorzes
- {
- class ellenorzes
- {
- static List<string> jarmuadatok = new List<string>();
- static int mertszakasz = 10;
- static List<string> beolvas(string fajlnev)
- {
- List<string> adatok = new List<string>(File.ReadAllLines(fajlnev));
- return adatok;
- }
- static int ForgalomNagysag()
- {
- int forgnagysag = jarmuadatok.Count;
- int db = 0;
- for (int i = forgnagysag-1; i >=0; i--)
- {
- if (jarmuadatok[i].Split(' ')[5] == "9")
- {
- db++;
- }
- }
- return forgnagysag - db;
- }
- static int AthaladKezdetiPonton(int ora, int perc)
- {
- int db = 0;
- for (int i = 0; i < jarmuadatok.Count; i++)
- {
- if (Convert.ToInt32(jarmuadatok[i].Split(' ')[1]) == ora && Convert.ToInt32(jarmuadatok[i].Split(' ')[2]) == perc)
- {
- db++;
- }
- }
- return db;
- }
- static double Atlagsebesseg(DateTime ido, int ut)
- {
- double t = (ido.Hour * 3600 + ido.Minute * 60 + ido.Second + (double)ido.Millisecond / 1000);
- return ((double)ut*1000 / t)*3.6;
- }
- static DateTime ElteltIdo(int sorszam)
- {
- return new Date
- Time() + IdostringToDateTime(jarmuadatok[sorszam], 1).Subtract(IdostringToDateTime(jarmuadatok[sorszam], 0));
- }
- static double ForgalomSuruseg(string oraperc)
- {
- int db = 0;
- for (int i = 0; i < jarmuadatok.Count; i++)
- {
- int belepperc = Convert.ToInt32(jarmuadatok[i].Split(' ')[1]) * 3600 + Convert.ToInt32(jarmuadatok[i].Split(' ')[2])*60;
- int kilepperc = Convert.ToInt32(jarmuadatok[i].Split(' ')[5]) * 3600 + Convert.ToInt32(jarmuadatok[i].Split(' ')[6])*60;
- int idopont = Convert.ToInt32(oraperc.Split(' ')[0]) * 3600 + Convert.ToInt32(oraperc.Split(' ')[1])*60;
- if (belepperc<=idopont && idopont<=kilepperc)
- {
- db++;
- }
- }
- return (double)db/ 10;
- }
- static DateTime IdostringToDateTime(string adatsor, int melyik)
- {
- int i = 0;
- if (melyik == 1) i = 4;
- string idostring = adatsor.Split(' ')[i+1] + ":" +
- adatsor.Split(' ')[i+2] + ":" +
- adatsor.Split(' ')[i+3] + "." +
- adatsor.Split(' ')[i+4];
- DateTime ido = Convert.ToDateTime(idostring);
- return ido;
- }
- static int MaxSebesseg()
- {
- int max = 0;
- double maxertek = Atlagsebesseg(ElteltIdo(max), mertszakasz);
- for (int i = 1; i < jarmuadatok.Count; i++)
- {
- if (maxertek < Atlagsebesseg(ElteltIdo(i), mertszakasz))
- {
- max = i;
- maxertek = Atlagsebesseg(ElteltIdo(max), mertszakasz);
- }
- }
- return max;
- }
- static int ElozesekSzama(int sorszam)
- {
- int elozes = 0;
- for (int i = sorszam - 1; i >= 0; i--)
- {
- if (IdostringToDateTime(jarmuadatok[sorszam], 1) <= IdostringToDateTime(jarmuadatok[i], 1))
- {
- elozes++;
- }
- }
- return elozes;
- }
- static double GyorshajtokSzazalek()
- {
- int db = 0;
- for (int i = 0; i < jarmuadatok.Count; i++)
- {
- if (90 < Atlagsebesseg(ElteltIdo(i), mertszakasz))
- {
- db++;
- }
- }
- return (double)db / jarmuadatok.Count;
- }
- static int BuntetesErteke(double sebesseg)
- {
- int buntetes = 0;
- if (sebesseg >= 104 && sebesseg < 121) buntetes = 30000;
- if (sebesseg >= 121 && sebesseg < 136) buntetes = 45000;
- if (sebesseg >= 136 && sebesseg < 151) buntetes = 60000;
- if (sebesseg >= 151) buntetes = 200000;
- return buntetes;
- }
- static void Main(string[] args)
- {
- // 1. feladat
- jarmuadatok = beolvas("meresek.txt");
- //2. feladat
- Console.WriteLine("2. feladat");
- Console.WriteLine("A mérés során {0} jármű adatait rögzítették.", jarmuadatok.Count);
- Console.WriteLine();
- //3. feladat
- Console.WriteLine("3. feladat");
- Console.WriteLine("9 óra előtt {0} jármű haladt el a végponti mérőnél.", ForgalomNagysag());
- Console.WriteLine();
- //4. feladat
- Console.WriteLine("4. feladat");
- Console.Write("Adjon meg egy óra és perc értéket! ");
- string oraperc = Console.ReadLine();
- int ora = Convert.ToInt32(oraperc.Split(' ')[0]);
- int perc = Convert.ToInt32(oraperc.Split(' ')[1]);
- int athaladtakdb = AthaladKezdetiPonton(ora, perc);
- Console.WriteLine("\ta. A kezdeti méréspontnál elhaladt járművek száma: {0} ", athaladtakdb.ToString());
- Console.WriteLine("\tb. A forgalomsűrűség: {0}", ForgalomSuruseg(oraperc).ToString("F1"));
- Console.WriteLine();
- //5. feladat
- Console.WriteLine("5. feladat");
- int max = MaxSebesseg();
- double maxv = Atlagsebesseg(ElteltIdo(max), mertszakasz);
- int elozesdb = ElozesekSzama(max);
- Console.WriteLine("A legnagyobb sebességgel haladó jármű \r\n" +
- "\trendszáma: {0} \r\n" +
- "\tátlagsebessége: {1} km/h \r\n" +
- "\táltal lehagyott járművek száma: {2}", jarmuadatok[max].Split(' ')[0], ((int)maxv).ToString(), elozesdb.ToString());
- Console.WriteLine();
- //6. feladat
- Console.WriteLine("6. feladat");
- Console.WriteLine("A járművek {0}-a volt gyorshajtó.", GyorshajtokSzazalek().ToString("P"));
- Console.WriteLine();
- //7. feladat
- FileStream fs = new FileStream("buntetes.txt", FileMode.Create);
- StreamWriter sw = new StreamWriter(fs);
- for (int i = 0; i < jarmuadatok.Count; i++)
- {
- double v = Atlagsebesseg(ElteltIdo(i), mertszakasz);
- if (104 <= v)
- {
- sw.WriteLine("{0}\t{1} km/h\t{2} Ft", jarmuadatok[i].Split(' ')[0], ((int)v).ToString(), BuntetesErteke(v));
- }
- }
- sw.Close();
- fs.Close();
- Console.WriteLine("A fájl elkészült.");
- Console.ReadLine();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement