Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.34 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. using System.Threading;
  8.  
  9. namespace OP2_K1_try
  10. {
  11. class Studentas
  12. {
  13. public string Pavarde { get; set; }
  14. public string Vardas { get; set; }
  15. public string Grupe { get; set; }
  16. public int[] Kreditai { get; set; }
  17.  
  18. public Studentas(string pavarde, string vardas, string grupe, int[] kreditai)
  19. {
  20. Pavarde = pavarde;
  21. Vardas = vardas;
  22. Grupe = Grupe;
  23. Kreditai = kreditai;
  24. }
  25.  
  26. public int KredituSuma()
  27. {
  28. int sum = 0;
  29. for (int i = 0; i < Kreditai.Length; i++)
  30. {
  31. sum += Kreditai[i];
  32. }
  33.  
  34. return sum;
  35. }
  36.  
  37.  
  38.  
  39. public static bool operator < (Studentas lhs, Studentas rhs)
  40. {
  41. if (lhs.Grupe != null && rhs.Grupe != null)
  42. {
  43. if (String.Compare(lhs.Grupe, rhs.Grupe) < 0)
  44. {
  45. return true;
  46. }
  47. else if (String.Compare(lhs.Grupe, rhs.Grupe) == 0)
  48. {
  49. if (String.Compare(lhs.Pavarde, rhs.Pavarde) < 0)
  50. {
  51. return true;
  52. }
  53. else return false;
  54. }
  55. else
  56. return false;
  57. }
  58. else
  59. return false;
  60. }
  61.  
  62. public static bool operator >(Studentas lhs, Studentas rhs)
  63. {
  64. if (lhs.Grupe != null && rhs.Grupe != null)
  65. {
  66. if (String.Compare(lhs.Grupe, rhs.Grupe) > 0)
  67. {
  68. return true;
  69. }
  70. else if (String.Compare(lhs.Grupe, rhs.Grupe) == 0)
  71. {
  72. if (String.Compare(lhs.Pavarde, rhs.Pavarde) > 0)
  73. {
  74. return true;
  75. }
  76. else return false;
  77. }
  78. else
  79. return false;
  80. }
  81. else
  82. return false;
  83. }
  84. }
  85.  
  86. class Fakultetas
  87. {
  88. private const int MaxSkaiciusStudentu = 30;
  89. private string FakultetoPavadinimas { get; set; }
  90. private int KredituSkaicius { get; set; }
  91. private int ModuliuSkaicius { get; set; }
  92. private Studentas[] Studentai;
  93. public int Count { get; private set; }
  94.  
  95. public Fakultetas(string fakPav, int kredSkc, int modSkc)
  96. {
  97. FakultetoPavadinimas = fakPav;
  98. KredituSkaicius = kredSkc;
  99. ModuliuSkaicius = modSkc;
  100. Studentai = new Studentas[MaxSkaiciusStudentu];
  101. }
  102.  
  103. public void PridetiStudenta(Studentas stud)
  104. {
  105. Studentai[Count] = stud;
  106. Count++;
  107. }
  108.  
  109. public Studentas GautiStudenta(int index)
  110. {
  111. return Studentai[index];
  112. }
  113.  
  114. public void NustatytiStudenta(int index, Studentas stud)
  115. {
  116. Studentai[index] = stud;
  117. }
  118.  
  119. public string GautiPavadinima()
  120. {
  121. return FakultetoPavadinimas;
  122. }
  123. public int GautiKredituSkaiciu()
  124. {
  125. return KredituSkaicius;
  126. }
  127. public int GautiModuliuSkaicius()
  128. {
  129. return ModuliuSkaicius;
  130. }
  131.  
  132. public static void RikiuotiBurbulas(Fakultetas fak)
  133. {
  134. Studentas temp;
  135. for (int i = 0; i < fak.Count-1; i++)
  136. {
  137. for (int j = 0; j < fak.Count-i-1; j++)
  138. {
  139. if (fak.GautiStudenta(i) > fak.GautiStudenta(j))
  140. {
  141. temp = fak.GautiStudenta(i);
  142. fak.NustatytiStudenta(i,fak.GautiStudenta(j));
  143. fak.NustatytiStudenta(j, temp);
  144. }
  145. }
  146. }
  147. }
  148.  
  149. public static void RikiuotiIsrinkimas(Fakultetas fak)
  150. {
  151. Studentas temp;
  152. int min;
  153. for (int i = 0; i < fak.Count-1; i++)
  154. {
  155. min = i;
  156. for (int j = i + 1 ; j < fak.Count; j++)
  157. {
  158. if (fak.GautiStudenta(j) > fak.GautiStudenta(min))
  159. {
  160. min = j;
  161. }
  162. }
  163.  
  164. temp = fak.GautiStudenta(i);
  165. fak.NustatytiStudenta(i, fak.GautiStudenta(min));
  166. fak.NustatytiStudenta(min, temp);
  167.  
  168. }
  169. }
  170.  
  171. public static bool operator <(Fakultetas lhs, Fakultetas rhs)
  172. {
  173. if (lhs.KredituSkaicius < rhs.KredituSkaicius)
  174. {
  175. return true;
  176. }
  177. else
  178. return false;
  179. }
  180. public static bool operator >(Fakultetas lhs, Fakultetas rhs)
  181. {
  182. if (lhs.Count > rhs.Count)
  183. {
  184. return true;
  185. }
  186. else
  187. return false;
  188. }
  189.  
  190. public static bool operator ==(Fakultetas lhs, Fakultetas rhs)
  191. {
  192. if (lhs.Count == rhs.Count)
  193. {
  194. return true;
  195. }
  196. else
  197. return false;
  198. }
  199.  
  200. public static bool operator !=(Fakultetas lhs, Fakultetas rhs)
  201. {
  202. if (lhs.Count != rhs.Count)
  203. {
  204. return true;
  205. }
  206. else
  207. return false;
  208. }
  209. }
  210.  
  211.  
  212. class Program
  213. {
  214. public const int MaxModuliuSkaicius = 10;
  215. static void Main(string[] args)
  216. {
  217. string data1 = @"../../Fakultetas1.txt";
  218. string data2 = @"../../Fakultetas2.txt";
  219. string result = @"../../Rezultatas.txt";
  220.  
  221. Fakultetas pirmas = Skaitymas(data1);
  222. Fakultetas antras = Skaitymas(data2);
  223.  
  224. Fakultetas filtruotasPirmas = AtrinktiVirsijancius(pirmas);
  225. Fakultetas filtruotasAntras = AtrinktiVirsijancius(antras);
  226.  
  227. Rasymas(pirmas, antras, filtruotasPirmas, filtruotasAntras, result);
  228. Console.ReadKey();
  229.  
  230.  
  231. }
  232.  
  233. static Fakultetas Skaitymas(string data)
  234. {
  235. string[] Duomenys = File.ReadAllLines(data);
  236. string[] FakultetoInfo = Duomenys[1].Split(' ');
  237. Fakultetas fak = new Fakultetas(FakultetoInfo[0], int.Parse(FakultetoInfo[1]), int.Parse(FakultetoInfo[2]));
  238. for (int i = 1; i < Duomenys.Length; i++)
  239. {
  240. string[] StudentoDuomenys = Duomenys[i].Split(' ');
  241. string pavarde = StudentoDuomenys[0];
  242. string vardas = StudentoDuomenys[1];
  243. string grupe = StudentoDuomenys[2];
  244. int[] kreditai = new int[MaxModuliuSkaicius];
  245. for (int j = 3; j < StudentoDuomenys.Length; j++)
  246. {
  247. int k = 0;
  248. kreditai[k] = int.Parse(StudentoDuomenys[j]);
  249. k++;
  250. }
  251.  
  252. Studentas stud = new Studentas(pavarde, vardas, grupe, kreditai);
  253. fak.PridetiStudenta(stud);
  254. }
  255.  
  256. return fak;
  257. }
  258.  
  259. static Fakultetas AtrinktiVirsijancius(Fakultetas fak)
  260. {
  261. Fakultetas filtruotas = new Fakultetas(fak.GautiPavadinima(), fak.GautiKredituSkaiciu(), fak.GautiModuliuSkaicius());
  262. for (int i = 0; i < fak.Count; i++)
  263. {
  264. if (fak.GautiStudenta(i).KredituSuma() > fak.GautiKredituSkaiciu())
  265. {
  266. filtruotas.PridetiStudenta(fak.GautiStudenta(i));
  267. }
  268. }
  269.  
  270. return filtruotas;
  271. }
  272.  
  273. static string KurisDaugiau(Fakultetas lhs, Fakultetas rhs)
  274. {
  275. if (lhs > rhs)
  276. {
  277. return "Pirmas fakultetas turi daugiau studentu virsijanciu maksimalu fakulteto kreditu skaiciu";
  278. }
  279. else if (lhs < rhs)
  280. {
  281. return "Antras fakultetas turi daugiau studentu virsijanciu maksimalu fakulteto kreditu skaiciu";
  282. }
  283. else
  284. {
  285. return "Abu fakultetai turi vienodai studentu virsijanciu maksimalu fakulteto kreditu skaiciu";
  286. }
  287. }
  288.  
  289. static void Rasymas(Fakultetas Pirmas, Fakultetas Antras, Fakultetas filtruotasPirmas, Fakultetas filtruotasAntras, string rezultatas)
  290. {
  291. using (StreamWriter w = new StreamWriter(rezultatas))
  292. {
  293. w.WriteLine("Pradiniai duomenys:");
  294. w.WriteLine("");
  295. w.WriteLine("{0}", Pirmas.GautiPavadinima());
  296. for (int i = 0; i < Pirmas.Count; i++)
  297. {
  298. w.Write("| {0} | {1} | {2} | ", Pirmas.GautiStudenta(i).Pavarde, Pirmas.GautiStudenta(i).Vardas, Pirmas.GautiStudenta(i).Grupe);
  299. for (int j = 0; j < Pirmas.GautiStudenta(i).Kreditai.Length; j++)
  300. {
  301. w.Write("{0} | ", Pirmas.GautiStudenta(i).Kreditai[j]);
  302. }
  303. w.WriteLine("");
  304. }
  305.  
  306. w.WriteLine("{0}", Antras.GautiPavadinima());
  307. for (int i = 0; i < Pirmas.Count; i++)
  308. {
  309. w.Write("| {0} | {1} | {2} | ", Antras.GautiStudenta(i).Pavarde, Antras.GautiStudenta(i).Vardas, Antras.GautiStudenta(i).Grupe);
  310. for (int j = 0; j < Antras.GautiStudenta(i).Kreditai.Length; j++)
  311. {
  312. w.Write("{0} | ", Antras.GautiStudenta(i).Kreditai[j]);
  313. }
  314. w.WriteLine("");
  315. }
  316.  
  317. w.WriteLine("Rezultatai");
  318. w.WriteLine("");
  319. w.WriteLine(KurisDaugiau(filtruotasPirmas, filtruotasAntras));
  320. w.WriteLine("");
  321. for (int i = 0; i < filtruotasPirmas.Count; i++)
  322. {
  323. w.Write("| {0} | {1} | {2} | ", filtruotasPirmas.GautiStudenta(i).Pavarde, filtruotasPirmas.GautiStudenta(i).Vardas, filtruotasPirmas.GautiStudenta(i).Grupe);
  324. for (int j = 0; j < filtruotasPirmas.GautiStudenta(i).Kreditai.Length; j++)
  325. {
  326. w.Write("{0} | ", filtruotasPirmas.GautiStudenta(i).Kreditai[j]);
  327. }
  328. w.WriteLine("");
  329. }
  330.  
  331. w.WriteLine("{0}", filtruotasAntras.GautiPavadinima());
  332. for (int i = 0; i < Pirmas.Count; i++)
  333. {
  334. w.Write("| {0} | {1} | {2} | ", filtruotasAntras.GautiStudenta(i).Pavarde, filtruotasAntras.GautiStudenta(i).Vardas, filtruotasAntras.GautiStudenta(i).Grupe);
  335. for (int j = 0; j < filtruotasAntras.GautiStudenta(i).Kreditai.Length; j++)
  336. {
  337. w.Write("{0} | ", filtruotasAntras.GautiStudenta(i).Kreditai[j]);
  338. }
  339. w.WriteLine("");
  340. }
  341. }
  342. }
  343. }
  344. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement