Demo entry 6762998

kolis

   

Submitted by anonymous on Oct 18, 2018 at 10:57
Language: C#. Code size: 6.9 kB.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace Bandymas
{
    //Klasė knygos duomenims saugoti: konstruktorius su parametrais, užklotas ToString() metodas (grąžinama formatuota savybių reikšmių eilutė). Palyginimo operatorius >= (tinkamas knygų, kurių pavadinimai sutampa, kainų palyginimui).
    class Knyga
    {
        public string Platintojas { get; set; }
        public string Pavadinimas { get; set; }
        public int Kiekis { get; set; }
        public double Kaina { get; set; }

        public Knyga(string platintojas, string pavadinimas, int kiekis, double kaina)
        {
            Platintojas = platintojas;
            Pavadinimas = pavadinimas;
            Kiekis = kiekis;
            Kaina = kaina;
        }

        public Knyga(string pavadinimas, int kiekis, double kaina)
        {
            Pavadinimas = pavadinimas;
            Kaina = kaina;
            Kiekis = kiekis;
        }

        public Knyga()
        {

        }

        public override string ToString()
        {
            return string.Format("| {0,-15} | {1,-15} | {2,6} | {3,6} |", Platintojas, Pavadinimas, Kiekis, Kaina);
        }



        public static bool operator >=(Knyga lhs, Knyga rhs)
        {
            if ((lhs.Pavadinimas == rhs.Pavadinimas) && (lhs.Kaina >= rhs.Kaina))
                return true;
            return false;
        }

        public static bool operator <=(Knyga lhs, Knyga rhs)
        {
            if ((lhs.Pavadinimas == rhs.Pavadinimas) && (lhs.Kaina <= rhs.Kaina))
                return true;
            return false;
        }

    }
    //Konteinerinė klasė: statinis masyvas, konstruktorius, papildymo elementu metodas. Pinigų sumos skaičiavimo metodas.
    class Knygynas
    {
        public const int MaxKnygu = 100;
        private Knyga[] Knygos = new Knyga[MaxKnygu];
        public int Count { get; set; }

        public Knygynas(int size)
        {
            Knygos = new Knyga[size];
        }

        public void Add(Knyga knyga)
        {
            Knygos[Count++] = knyga;
        }

        public double Suma(double suma, Knyga knygos)
        {
            return (knygos.Kaina * knygos.Kiekis) + suma;
        }

        public Knyga Get(int index)
        {
            return Knygos[index];
        }

    }
    class Program
    {
        public const string CFD1 = "Knyga.csv";
        public const string CFD2 = "Parduota.csv";
        public const string CFR = "Rezultatai.csv";
        public const int CMaxKnygu = 100;

        static void Main(string[] args)
        {
            if (File.Exists(CFR))
                File.Delete(CFR);

            Knygynas KnyguKonteineris = new Knygynas(CMaxKnygu);
            Skaityti(KnyguKonteineris);
            SpausdintiFaila(KnyguKonteineris, CFR, "Knygynas");

            Knygynas Parduota = new Knygynas(CMaxKnygu);
            SkaitytiParduota(Parduota);
            SpausdintiFaila(Parduota, CFR, "Pardavimas");

            PridetiPardvimoKaina(KnyguKonteineris, Parduota);
            SpausdintiFaila(Parduota, CFR, "Parduota");

            using (StreamWriter writer = new StreamWriter(CFR, true))
            {
                writer.WriteLine("Dar reikia surinkti: {0}", ReikiaSurinkti(KnyguKonteineris, Parduota));
            }


        }

        //Programos klasė: Didžiausios kainos nurodytai knygai radimo metodas (naudoti parašytą operatorių). 1,5
        public static double DidziausiaKaina(Knygynas Knygos, Knyga knyga)
        {
            double maxKaina = 0;
            for (int i = 0; i < Knygos.Count; i++)
            {
                if (Knygos.Get(i).Pavadinimas == knyga.Pavadinimas&&Knygos.Get(i).Kaina>=knyga.Kaina)
                {
                    maxKaina = Knygos.Get(i).Kaina;
                }
            }
            return maxKaina;
        }

        //Programos klasė: Parduotų knygų sąrašo papildymo kainomis metodas. 1,5
        public static void PridetiPardvimoKaina(Knygynas Parduotos, Knygynas Knygos)
        {
            for (int i = 0; i < Knygos.Count; i++)
            {
                Knygos.Get(i).Kaina = DidziausiaKaina(Parduotos, Knygos.Get(i));
            }
        }

        public static double ReikiaSurinkti(Knygynas KnyguKonteineris, Knygynas Parduota)
        {
            double suma1 = 0;
            double suma2 = 0;
            for (int i = 0; i < KnyguKonteineris.Count; i++)
            {
                suma1 = KnyguKonteineris.Suma(suma1, KnyguKonteineris.Get(i));
            }
            for (int j = 0; j < Parduota.Count; j++)
            {
                suma2 += Parduota.Get(j).Kaina;
            }
            return suma1 - suma2;
        }
        //Programos klasė: Duomenų skaitymo metodai. 1
        public static void Skaityti(Knygynas KnyguKonteineris)
        {
            using (StreamReader reader = new StreamReader(CFD1))
            {
                string line = null;
                while ((line = reader.ReadLine()) != null)
                {
                    string[] vertes = line.Split(';');
                    string platintojas = vertes[0];
                    string pavadinimas = vertes[1];
                    int kiekis = int.Parse(vertes[2]);
                    double kaina = double.Parse(vertes[3]);
                    Knyga knyga = new Knyga(platintojas, pavadinimas, kiekis, kaina);
                    KnyguKonteineris.Add(knyga);
                }
            }
        }
        public static void SkaitytiParduota(Knygynas KnyguKonteineris)
        {
            using (StreamReader reader = new StreamReader(CFD2))
            {
                string line = null;
                while ((line = reader.ReadLine()) != null)
                {
                    string pavadinimas = line;
                    int kiekis = 1;
                    Knyga knyga = new Knyga(pavadinimas, kiekis, 0);
                    KnyguKonteineris.Add(knyga);
                }
            }
        }
        //Programos klasė: Konteinerio turinio spausdinimo lentele metodas
        public static void SpausdintiFaila(Knygynas knygos, string failoVardas, string lentelesAntraste)
        {
            using (StreamWriter writer = new StreamWriter(failoVardas, true))
            {
                writer.WriteLine("Knygu duomenys:");
                writer.WriteLine("| Platintojas     | Pavadinimas     | Kiekis | Kaina  |");
                for (int i = 0; i < knygos.Count; i++)
                {
                    writer.WriteLine(knygos.Get(i).ToString());
                }
                writer.WriteLine();
            }
        }
    }
}

This snippet took 0.02 seconds to highlight.

Back to the Entry List or Home.

Delete this entry (admin only).