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();
        }
    }
}
oktatas/informatika/programozas/erettsegi/2008-05.txt · Utolsó módosítás: 2019/06/04 14:17 szerkesztette: barnkopf
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0