Fuvarok feladat
A feladatatot lista és tömb segítségével oldottam meg:
A forrás csv fájl innen letölthető: fuvar.csv
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
using System; using System.Collections.Generic; using System.IO; namespace taxis { class Fuvarok { public int Taxi_id; public DateTime Indulasi_Ido; public int Utazasi_Ido; public double Megtett_Tav; public double Vitel_Dij; public double Borravalo; public string Fizetesi_Mod; //szöveg sorának darabolása public Fuvarok(string adatsor) { string[] adatsorelemek = adatsor.Split(';'); this.Taxi_id = Convert.ToInt32(adatsorelemek[0]); this.Indulasi_Ido = Convert.ToDateTime(adatsorelemek[1]); this.Utazasi_Ido = Convert.ToInt32(adatsorelemek[2]); this.Megtett_Tav = Convert.ToDouble(adatsorelemek[3]); this.Vitel_Dij = Convert.ToDouble(adatsorelemek[4]); this.Borravalo = Convert.ToDouble(adatsorelemek[5]); this.Fizetesi_Mod = adatsorelemek[6]; } } class Program { static void Main(string[] args) { //csv fájl beolvasása StreamReader Olvas = new StreamReader("fuvar.csv"); //Lista létrehozása List<Fuvarok> Fuvar = new List<Fuvarok>(); //első sor tárolása külön, mert az a fejléc string Fejlec = Olvas.ReadLine(); //a többi sor beolvasása, amíg a fájl végére nem ér while (!Olvas.EndOfStream) { Fuvar.Add(new Fuvarok(Olvas.ReadLine())); } Olvas.Close(); Console.WriteLine(Fejlec); //Összesen mennyi fuvar van? Lista elemszáma :) Fuvar.Count Console.WriteLine("3.feladat: Összesen {0} db fuvar van",Fuvar.Count); //A 6185-ös taxisnak mennyi volt a bevétele, és hány fuvarból? double bevetele = 0; int alkalom = 0; //listán végigmegyünk, és figyeljük a Taxi_id-t for (int i=1; i<Fuvar.Count; i++) { if (Fuvar[i].Taxi_id == 6185) { alkalom++; bevetele += Fuvar[i].Vitel_Dij; } } Console.WriteLine("4.feladat: {0} db fuvar, {1} $",alkalom,bevetele); //6. feladat: összes megtett táv kiszámítása double ossztav = 0; for (int i = 1; i < Fuvar.Count; i++) ossztav += Fuvar[i].Megtett_Tav; //átváltás kilométerbe: ossztav*1,6 kerekítés 2 számjegyre ossztav = Math.Round(ossztav*1.6,2); Console.WriteLine("Összes távolság: {0} km",ossztav); //7.feladat az időben leghosszabb fuvar adatai double max = 0; //1.lépés megkeresni a legtöbb ideig tartó fuvart for (int i = 1; i < Fuvar.Count; i++) if (max < Fuvar[i].Utazasi_Ido) max = Fuvar[i].Utazasi_Ido; //2.lépés, a leghosszabb fuvar adatainak lekérése for (int i = 1; i < Fuvar.Count; i++) if (Fuvar[i].Utazasi_Ido == max) { Console.WriteLine("Fuvar hossza: {0}", Fuvar[i].Utazasi_Ido); Console.WriteLine("Taxi azonosító: {0}", Fuvar[i].Taxi_id); Console.WriteLine("Távolság: {0}", Fuvar[i].Megtett_Tav); Console.WriteLine("Viteldíj: {0}", Fuvar[i].Vitel_Dij); } } } } |