Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Globalization;
- using System.IO;
- using System.Linq;
- namespace Fuvar
- {
- public class TripData
- {
- public TripData(int day, int tripNo, int kilometers)
- {
- Day = day;
- TripNo = tripNo;
- Kilometers = kilometers;
- }
- public int Day { get; private set; }
- public int TripNo { get; private set; }
- public int Kilometers { get; private set; }
- }
- public class Program
- {
- public static void Main(string[] args)
- {
- var trips = new List<TripData>();
- using (var reader = new StreamReader("tavok.txt"))
- {
- string line;
- while ((line = reader.ReadLine()) != null)
- {
- var parts = line.Split(' ');
- trips.Add(new TripData(int.Parse(parts[0]), int.Parse(parts[1]), int.Parse(parts[2])));
- }
- }
- var tripsByDay = (from trip in trips
- group trip by trip.Day into day
- orderby day.Key
- select new
- {
- Day = day.Key,
- Trips = day.OrderBy(t => t.TripNo).ToList(),
- Total = day.Sum(t => t.Kilometers)
- }).ToList();
- Console.WriteLine("2. feladat: {0} kilométeres az első fuvar.", tripsByDay.First().Trips.First().Kilometers);
- Console.WriteLine("3. feladat: {0} kilométeres az utolsó fuvar.", tripsByDay.Last().Trips.Last().Kilometers);
- 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))));
- Console.WriteLine("5. feladat: a legtöbb fuvart a {0}. napon tette meg a futár.", tripsByDay.OrderByDescending(d => d.Trips.Count()).First().Day);
- Console.WriteLine("6. feladat:");
- for (var i = 1; i <= 7; i++)
- {
- var day = tripsByDay.FirstOrDefault(d => d.Day == i);
- Console.WriteLine("{0}. nap: {1} km", i, day != null ? day.Total : 0);
- }
- Console.Write("7. feladat: kérem a távolságot (szám): ");
- var price = GetPriceForDistance(int.Parse(Console.ReadLine()));
- Console.WriteLine("Az út {0} forintba kerülne.", price);
- using (var writer = new StreamWriter("dijazas.txt"))
- {
- foreach (var day in tripsByDay)
- {
- foreach (var trip in day.Trips)
- {
- writer.WriteLine("{0}. nap {1}. út: {2} Ft", day.Day, trip.TripNo, GetPriceForDistance(trip.Kilometers));
- }
- }
- }
- Console.WriteLine("8. feladat: dijazas.txt létrehozva!");
- Console.Write("A program gombnyomásra kilép...");
- Console.ReadKey();
- }
- private static int GetPriceForDistance(int distance)
- {
- if (distance <= 2) return 500;
- if (distance <= 5) return 700;
- if (distance <= 10) return 900;
- if (distance <= 20) return 1400;
- return 2000;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment