====== SMS ====== using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; namespace sms { class Uzenet { public int ora; public int perc; public string szam; public string szoveg; } class Program { static Uzenet[] smsek; static int uzenetDb; static void beolvasas() { StreamReader be = new StreamReader("sms.txt"); uzenetDb = Convert.ToInt32(be.ReadLine()); smsek = new Uzenet[uzenetDb]; for (int i = 0; i < uzenetDb; i++) { string[] mezok = be.ReadLine().Split(' '); smsek[i] = new Uzenet(); smsek[i].ora = Convert.ToInt32(mezok[0]); smsek[i].perc = Convert.ToInt32(mezok[1]); smsek[i].szam = mezok[2]; smsek[i].szoveg = be.ReadLine(); } be.Close(); // Kiírás for (int i = 0; i < uzenetDb; i++) { Console.WriteLine("{0} {1} - {2}:\n{3}", smsek[i].ora, smsek[i].perc, smsek[i].szam, smsek[i].szoveg); } } static void feladat2() { Console.WriteLine("\n2. feladat:"); // legfrissebb eltárolt üzenet int legfrissebb; if (uzenetDb > 9) legfrissebb = 9; else legfrissebb = uzenetDb - 1; Console.WriteLine(smsek[legfrissebb].szoveg); } static void feladat3() { Console.WriteLine("\n3. feladat:"); // A leghosszabb és legrövidebb SMS adatai int maxIndex = 0; int minIndex = 0; for (int i = 1; i < uzenetDb; i++) { if (smsek[maxIndex].szoveg.Length < smsek[i].szoveg.Length) maxIndex = i; if (smsek[minIndex].szoveg.Length > smsek[i].szoveg.Length) minIndex = i; } Console.WriteLine("Leghosszabb (óra, perc, szám, szöveg):\n{0}, {1}, {2}, {3}", smsek[maxIndex].ora, smsek[maxIndex].perc, smsek[maxIndex].szam, smsek[maxIndex].szoveg); Console.WriteLine("Legrövidebb (óra, perc, szám, szöveg):\n{0}, {1}, {2}, {3}", smsek[minIndex].ora, smsek[minIndex].perc, smsek[minIndex].szam, smsek[minIndex].szoveg); } static void feladat4() { Console.WriteLine("\n4. feladat:"); // Az sms-ek hossz szerinti eloszlása int[] eloszlas = new int[5]; for (int i = 0; i < uzenetDb; i++) eloszlas[(smsek[i].szoveg.Length - 1) / 20]++; for (int i = 0; i < 5; i++) Console.WriteLine("{0}-{1}: {2} db", i*20+1, (i+1)*20, eloszlas[i]); } static void feladat5() { Console.WriteLine("\n5. feladat:"); // Hangpostára érkező sms-ek száma int hDb = 0; int oraDb = 1; int elozoOra = smsek[0].ora; for (int i = 1; i < uzenetDb; i++) { if (elozoOra == smsek[i].ora) { oraDb++; } else { if (oraDb > 10) hDb += oraDb - 10; oraDb = 1; elozoOra = smsek[i].ora; } } if (oraDb > 10) hDb += oraDb - 10; Console.WriteLine("A hangpostán tárolt sms-ek száma: {0}", hDb); } static void Main(string[] args) { beolvasas(); feladat2(); feladat3(); feladat4(); feladat5(); Console.ReadKey(); } } }