SHARE
TWEET

Untitled

a guest Oct 12th, 2017 54 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.IO;
  7.  
  8. namespace Laboratorinis_darbas_2__24_
  9. {
  10.     class Program
  11.     {
  12.         const string CFr = "..\\..\\Trūkstami.csv";//tekstinis failas, kuriame bus spausdinami herojai su pasikartojančiomis savybėmis
  13.         const string CFrr = "..\\..\\Klasės.csv";//tekstinis failas, kuriame bus spausdinamos herojų klasės
  14.         const string CFrrr = "..\\..\\PradiniųDuomenųLentelė.txt";//tekstinis failas, kuriame lentelėje spausdinami pradiniai duomenys
  15.         public const int RasiųSk = 3;
  16.         public const int MaxHerojųSk = 1000;
  17.  
  18.         static void Main(string[] args)
  19.         {
  20.             Console.OutputEncoding = Encoding.UTF8;//koduotė UTF8, UTF8 standarto simboliams iššifruoti
  21.  
  22.             Rasė[] rasės = new Rasė[RasiųSk];
  23.             KlasiųKonteineris Klasės;
  24.             KlasiųKonteineris Trūkstamos0;
  25.             KlasiųKonteineris Trūkstamos1;
  26.             KlasiųKonteineris Trūkstamos2;
  27.             rasės[0] = new Rasė("žmonės", "Šiauliai");
  28.             rasės[1] = new Rasė("elfai", "Kaunas");
  29.             rasės[2] = new Rasė("burtininkai", "Vilnius");
  30.             String[] filePaths = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.csv");
  31.  
  32.             foreach (string path in filePaths)
  33.             {
  34.                 Nuskaityti(path, rasės);
  35.             }
  36.             DaugiausiaiGyvybėsTaškų(rasės);
  37.             KlasiųSąrašas(out Klasės, rasės[0]);
  38.             KlasiųSąrašas(out Klasės, rasės[1]);
  39.             KlasiųSąrašas(out Klasės, rasės[2]);
  40.             Trūkstamos0 = TrūkstamosKlasės(rasės[0], Klasės);
  41.             Trūkstamos1 = TrūkstamosKlasės(rasės[1], Klasės);
  42.             Trūkstamos2 = TrūkstamosKlasės(rasės[2], Klasės);
  43.             StreamWriter rašymas = new StreamWriter(CFr, false, Encoding.UTF8);
  44.             SpausdintiTekstiniameFaileTrūkstamos(Trūkstamos0, rasės[0].HerojųRasė, rašymas);
  45.             SpausdintiTekstiniameFaileTrūkstamos(Trūkstamos1, rasės[1].HerojųRasė, rašymas);
  46.             SpausdintiTekstiniameFaileTrūkstamos(Trūkstamos2, rasės[2].HerojųRasė, rašymas);
  47.             rašymas.Close();
  48.             StreamWriter spausdinimas = new StreamWriter(CFrrr, false, Encoding.UTF8);
  49.             SpausdintiPradiniusDuomenisLentelėje(rasės[0].HerojųRasė, rasės[0].PradinisMiestas, rasės[0], spausdinimas);
  50.             SpausdintiPradiniusDuomenisLentelėje(rasės[1].HerojųRasė, rasės[1].PradinisMiestas, rasės[1], spausdinimas);
  51.             SpausdintiPradiniusDuomenisLentelėje(rasės[2].HerojųRasė, rasės[2].PradinisMiestas, rasės[2], spausdinimas);
  52.             spausdinimas.Close();
  53.             SpausdintiTekstiniameFaileKlasės(Klasės);
  54.  
  55.             Console.Read();
  56.         }
  57.         private static Rasė ImtiRasęPagalMiestą(Rasė[] rasės, string pradinisMiestas)
  58.         {
  59.             for (int i = 0; i < RasiųSk; i++)
  60.             {
  61.                 if (rasės[i].PradinisMiestas == pradinisMiestas)
  62.                 {
  63.                     return rasės[i];
  64.                 }
  65.             }
  66.             return null;
  67.         }
  68.         public static void Nuskaityti(string file, Rasė[] rasės)//duomenų nuskaitymo funkcija
  69.         {
  70.             string herojųRasė = null;
  71.             string pradinisMiestas = null;
  72.  
  73.             using (StreamReader skaitymas = new StreamReader(@file, Encoding.UTF8))//duomenys įrašomi iš tekstinio failo
  74.             {
  75.                 string linija = null;//duomenys skaitomi linijomis
  76.                 linija = skaitymas.ReadLine();
  77.                 if (linija != null)
  78.                 {
  79.                     herojųRasė = linija;
  80.                     linija = skaitymas.ReadLine();
  81.                     pradinisMiestas = linija;
  82.                 }
  83.                 Rasė rasė = ImtiRasęPagalMiestą(rasės, pradinisMiestas);
  84.                 while ((linija = skaitymas.ReadLine()) != null)//duomenys skaitomi iki kol linijoje nėra nieko
  85.                 {
  86.                     string[] reikšmės = linija.Split(';');// reikšmės skiriamos vienos nuo kitų ';'
  87.                     string vardas = reikšmės[0];
  88.                     string klasės_pavadinimas = reikšmės[1];
  89.                     int gyvybės_taškai = int.Parse(reikšmės[2]);
  90.                     int mana = int.Parse(reikšmės[3]);
  91.                     int žalos_taškai = int.Parse(reikšmės[4]);
  92.                     int gynybos_taškai = int.Parse(reikšmės[5]);
  93.                     int jėga = int.Parse(reikšmės[6]);
  94.                     int vikrumas = int.Parse(reikšmės[7]);
  95.                     int intelektas = int.Parse(reikšmės[8]);
  96.                     string ypatinga_galia = reikšmės[9];
  97.                     Herojus herojus = new Herojus(vardas, klasės_pavadinimas, gyvybės_taškai, mana, žalos_taškai, gynybos_taškai, jėga, vikrumas, intelektas, ypatinga_galia);
  98.                     rasė.Herojai.PridėtiHerojų(herojus);
  99.                 }
  100.             }
  101.         }
  102.         private static void DaugiausiaiGyvybėsTaškų(Rasė[] Rasės)//funkcija ieškanti herojaus turinčio daugiausiai gyvybės taškų
  103.         {
  104.             Herojus Max;
  105.             for (int j = 0; j < RasiųSk; j++)
  106.             {
  107.                 Max = Rasės[j].Herojai.MaxHerojus();
  108.                 Console.WriteLine("Vardas: {0,10} Rasė: {1,14} Klasė: {2,10} Gyvybės Taškai: {3,2}", Max.Vardas, Rasės[j].HerojųRasė, Max.Klasė, Max.GyvybėsTaškai);
  109.  
  110.             }
  111.         }
  112.         public static void KlasiųSąrašas(out KlasiųKonteineris Klasės, Rasė Rasė)// metodas klasių sąrašui užpildyti
  113.         {
  114.             Klasės = new KlasiųKonteineris(10);
  115.             for (int i = 0; i < Rasė.Herojai.Kiekis; i++)
  116.             {
  117.                 Klasės.PridėtiKlasęJeiNeegzistuoja(Rasė.Herojai.ImtiHerojų(i).Klasė);
  118.             }
  119.         }
  120.         public static KlasiųKonteineris TrūkstamosKlasės(Rasė rasė, KlasiųKonteineris Klasės)
  121.         {
  122.             KlasiųKonteineris Trūkstamos = new KlasiųKonteineris(10);
  123.             for (int i = 0; i < rasė.Herojai.Kiekis; i++)
  124.             {
  125.                 if (!Klasės.EgzistuojaKonteineryje(rasė.Herojai.ImtiHerojų(i).Klasė))
  126.                 {
  127.                     Trūkstamos.PridėtiKlasę(rasė.Herojai.ImtiHerojų(i).Klasė);
  128.                 }
  129.             }
  130.             return Trūkstamos;
  131.         }
  132.  
  133.         static void SpausdintiTekstiniameFaileTrūkstamos(KlasiųKonteineris Trūkstamos, string rasė, StreamWriter rašymas)// rezultatų spausdinimas į tekstinį failą "Trūkstamos.csv"
  134.         {
  135.  
  136.             rašymas.WriteLine("{0}:", rasė);
  137.             if (Trūkstamos.Kiekis != 0)
  138.             {
  139.                 for (int i = 0; i < Trūkstamos.Kiekis; i++)
  140.                 {
  141.                     rašymas.WriteLine("{0}", Trūkstamos.ImtiKlasę(i));
  142.                 }
  143.             }
  144.             else rašymas.WriteLine("VISI");
  145.         }
  146.         static void SpausdintiTekstiniameFaileKlasės(KlasiųKonteineris Klasės)// rezultatų spausdinimas į tekstinį failą "Klasės.csv"
  147.         {
  148.             StreamWriter rašymas = new StreamWriter(CFrr, false, Encoding.UTF8);
  149.  
  150.             if (Klasės.Kiekis != 0)
  151.             {
  152.                 for (int i = 0; i < Klasės.Kiekis; i++)
  153.                 {
  154.                     rašymas.WriteLine("{0}", Klasės.ImtiKlasę(i));
  155.                 }
  156.             }
  157.             else rašymas.WriteLine("Klasių nėra");
  158.             rašymas.Close();
  159.         }
  160.         static void SpausdintiPradiniusDuomenisLentelėje(string Rasė, string miestas, Rasė rasės, StreamWriter spausdinimas)//pradinių duomenų spausdinimas į lentelę tekstiniame faile
  161.         {
  162.             spausdinimas.WriteLine("Rasė: {0}\nPradinis Miestas: {1}", Rasė, miestas);
  163.             const string viršus = "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _\r\n"
  164.               + "|  Vardas   |Klasė   |Gyvybės taškai|Mana|Žalos taškai|Gynybos taškai|Jėga|Vikrumas|Intelektas|Ypatinga galia|\r\n"
  165.               + "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _";
  166.             spausdinimas.WriteLine(viršus);
  167.             {
  168.                 for (int j = 0; j < rasės.Herojai.Kiekis; j++)
  169.                 {
  170.                     //kintamųjų formatavimas
  171.                     spausdinimas.WriteLine(rasės.ToString());
  172.                 }
  173.             }
  174.             spausdinimas.WriteLine("_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _");
  175.         }
  176.     }
  177. }
RAW Paste Data
Top