Guest User

info érettségi 2012

a guest
Apr 1st, 2014
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.37 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Globalization;
  4. using System.IO;
  5. using System.Linq;
  6.  
  7. namespace Fuvar
  8. {
  9.     public class TripData
  10.     {
  11.         public TripData(int day, int tripNo, int kilometers)
  12.         {
  13.             Day = day;
  14.             TripNo = tripNo;
  15.             Kilometers = kilometers;
  16.         }
  17.  
  18.         public int Day { get; private set; }
  19.         public int TripNo { get; private set; }
  20.         public int Kilometers { get; private set; }
  21.     }
  22.  
  23.     public class Program
  24.     {
  25.         public static void Main(string[] args)
  26.         {
  27.             var trips = new List<TripData>();
  28.  
  29.             using (var reader = new StreamReader("tavok.txt"))
  30.             {
  31.                 string line;
  32.                 while ((line = reader.ReadLine()) != null)
  33.                 {
  34.                     var parts = line.Split(' ');
  35.                     trips.Add(new TripData(int.Parse(parts[0]), int.Parse(parts[1]), int.Parse(parts[2])));
  36.                 }
  37.             }
  38.  
  39.             var tripsByDay = (from trip in trips
  40.                 group trip by trip.Day into day
  41.                 orderby day.Key
  42.                 select new
  43.                 {
  44.                     Day = day.Key,
  45.                     Trips = day.OrderBy(t => t.TripNo).ToList(),
  46.                     Total = day.Sum(t => t.Kilometers)
  47.                 }).ToList();
  48.  
  49.             Console.WriteLine("2. feladat: {0} kilométeres az első fuvar.", tripsByDay.First().Trips.First().Kilometers);
  50.             Console.WriteLine("3. feladat: {0} kilométeres az utolsó fuvar.", tripsByDay.Last().Trips.Last().Kilometers);
  51.             Console.WriteLine("4. feladat: a következő napokon nem dolgozott a futár: {0}.", string.Join(", ", Enumerable.Range(1, 7).Except(tripsByDay.Select(t => t.Day)).Select(d => d.ToString(CultureInfo.InvariantCulture))));
  52.             Console.WriteLine("5. feladat: a legtöbb fuvart a {0}. napon tette meg a futár.", tripsByDay.OrderByDescending(d => d.Trips.Count()).First().Day);
  53.  
  54.             Console.WriteLine("6. feladat:");
  55.             for (var i = 1; i <= 7; i++)
  56.             {
  57.                 var day = tripsByDay.FirstOrDefault(d => d.Day == i);
  58.                 Console.WriteLine("{0}. nap: {1} km", i, day != null ? day.Total : 0);
  59.             }
  60.  
  61.             Console.Write("7. feladat: kérem a távolságot (szám): ");
  62.             var price = GetPriceForDistance(int.Parse(Console.ReadLine()));
  63.             Console.WriteLine("Az út {0} forintba kerülne.", price);
  64.  
  65.             using (var writer = new StreamWriter("dijazas.txt"))
  66.             {
  67.                 foreach (var day in tripsByDay)
  68.                 {
  69.                     foreach (var trip in day.Trips)
  70.                     {
  71.                         writer.WriteLine("{0}. nap {1}. út: {2} Ft", day.Day, trip.TripNo, GetPriceForDistance(trip.Kilometers));
  72.                     }
  73.                 }
  74.             }
  75.  
  76.             Console.WriteLine("8. feladat: dijazas.txt létrehozva!");
  77.             Console.Write("A program gombnyomásra kilép...");
  78.             Console.ReadKey();
  79.         }
  80.  
  81.         private static int GetPriceForDistance(int distance)
  82.         {
  83.             if (distance <= 2) return 500;
  84.             if (distance <= 5) return 700;
  85.             if (distance <= 10) return 900;
  86.             if (distance <= 20) return 1400;
  87.             return 2000;
  88.         }
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment