Személyes eszközök
Keresés

 

A InfoWiki wikiből


Feladat megoldása

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace Neptun_v2
{
    class diak
    {
        public string nev;
        public int eletkor;
        public int osztondij;
        public double atlag;
    }
 
    class Program
    {
        static Random rnd = new Random();
        //.................................................................
        static diak egy_rekord_random()
        {
            diak r = new diak();
            r.nev = String.Format("diak {0}", rnd.Next(1, 1000));
            r.eletkor = rnd.Next(18, 50);
            r.osztondij = rnd.Next(50, 500) * 100;
            r.atlag = rnd.Next(10, 51) / 10d;
            return r;
        }
        //.................................................................
        static diak egy_rekord_bill()
        {
            diak r = new diak();
 
            r.nev = Console.ReadLine();
            r.eletkor = int.Parse(Console.ReadLine());
            r.osztondij = int.Parse(Console.ReadLine());
            r.atlag = double.Parse(Console.ReadLine());
            return r;
        }
        //.................................................................
        static void feltoltes(List<diak> l, bool veletlenszeruen)
        {
            for (int i = 0; i < 20; i++)
            {
                diak d ;
                if (veletlenszeruen) d=egy_rekord_random();
                else d = egy_rekord_bill();
                l.Add(d);
            }
        }
        //.................................................................
        static void kiiras(List<diak> l)
        {
            foreach (diak r in l)
                Console.WriteLine("{0,6}, {1,-10}, {2}, {3}", 
                    r.osztondij, r.nev, r.eletkor, r.atlag );
        }
        //.................................................................
        static diak legoregebb(List<diak> l)
        {
            diak m = l[0];
            foreach (diak x in l)
                if (x.eletkor > m.eletkor)
                    m = x;
            return m;
        }
        //.................................................................
        static int legoregebb_indexe(List<diak> l, diak p)
        {
            for (int i = 0; i < l.Count; i++)
                if (l[i] == p)
                    return i;
            return -1;
        }
        //.................................................................
        static void rendezes(List<diak> elso, List<diak> masodik)
        {
            while (elso.Count > 0)
            {
                diak p = legoregebb(elso);
                masodik.Add(p);
                int i = legoregebb_indexe(elso, p);
                if (i != -1) elso.RemoveAt(i);
                else break;
            }
        }
        //.................................................................
        static void atvalogat(List<diak> e, List<diak> m, int also, int felso)
        {
            foreach (diak r in e)
                if (also <= r.eletkor && r.eletkor <= felso)
                    m.Add(r);
        }
        //.................................................................
        static int oszt_osszege(List<diak> l)
        {
            int ossz = 0;
            foreach (diak r in l)
                ossz = ossz + r.osztondij;
            return ossz;
        }
        //.................................................................
        static void oszt_kiir(int sum)
        {
            Console.WriteLine("az osztondijak osszege={0}",sum);
        }
        //.................................................................
        static void Main(string[] args)
        {
            List<diak> elso = new List<diak>();
            feltoltes(elso, true);
            // kiiras(elso);
            //---
            // Console.WriteLine("------");
            List<diak> masodik = new List<diak>();
            rendezes(elso, masodik);
            kiiras(masodik);
            //---
            List<diak> harm = new List<diak>();
            atvalogat(masodik, harm,20,40);
            // Console.WriteLine("------");
            // kiiras(harm);
            int sum = oszt_osszege(harm);
            oszt_kiir(sum);
            Console.ReadLine();
        }
    }
}


Hernyák Zoltán
A lap eredeti címe: „http://wiki.ektf.hu/wiki/Mp1/page515
Nézetek
nincs sb_3.146.65.212 cikk