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();
}
}
}