Advertisement
Guest User

Untitled

a guest
Oct 12th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.74 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement