Advertisement
Guest User

Untitled

a guest
Jul 28th, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.08 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace Feladat_2
  7. {
  8. public enum Alapanyag
  9. {
  10. Liszt, Vaj, Tej, Rizs, Hus, Hagyma, Tojas
  11. }
  12.  
  13. public class Hozzavalo
  14. {
  15. Alapanyag alapanyag;
  16.  
  17. public Alapanyag Alapanyag
  18. {
  19. get { return alapanyag; }
  20. }
  21.  
  22. float mennyiseg;
  23.  
  24. public float Mennyiseg
  25. {
  26. get { return mennyiseg; }
  27. set { mennyiseg = value; }
  28. }
  29.  
  30. public Hozzavalo(Alapanyag alapanyag, float mennyiseg)
  31. {
  32. this.alapanyag = alapanyag;
  33. this.mennyiseg = mennyiseg;
  34. }
  35.  
  36. public override string ToString()
  37. {
  38. return alapanyag.ToString() + " (" + mennyiseg + ")";
  39. }
  40. }
  41.  
  42. public class Recept
  43. {
  44. string nev;
  45.  
  46. public string Nev
  47. {
  48. get { return nev; }
  49. }
  50.  
  51. Hozzavalo[] hozzavalok;
  52.  
  53. public Hozzavalo[] Hozzavalok
  54. {
  55. get { return hozzavalok; }
  56. }
  57.  
  58. public Recept(string nev, Hozzavalo[] hozzavalok)
  59. {
  60. this.nev = nev;
  61. this.hozzavalok = hozzavalok;
  62. }
  63.  
  64. public override string ToString()
  65. {
  66. return nev;
  67. }
  68.  
  69. public bool TartalmazAlapanyagot(Alapanyag alapanyag)
  70. {
  71. int i = 0;
  72. while (i < hozzavalok.Length && hozzavalok[i].Alapanyag != alapanyag) i++;
  73. return (i < hozzavalok.Length);
  74. }
  75.  
  76. public float ReceptOsszMennyiseg()
  77. {
  78. float ossz = 0; int i;
  79. for (i = 0; i < hozzavalok.Length; i++) ossz += hozzavalok[i].Mennyiseg;
  80. return ossz;
  81. }
  82. public int KulonbozoAlapanyagokSzama() {
  83. int i = 0; int j = 0; int n = 0;
  84. for (i = 0; i < hozzavalok.Length; i++) {
  85. if (i > 0) for (j = 0; j < i; j++) {
  86. if(hozzavalok[j].Alapanyag==hozzavalok[i].Alapanyag) n--;}
  87. n++;
  88. }
  89. return n;
  90. }
  91.  
  92. // public Hozzavalo[] HozzavalokOsszesitve()
  93.  
  94.  
  95. public bool MegvalosithatoHozzavalokbol(Hozzavalo[] raktar) {
  96. int i = 0; int j=0; int n=0;
  97. for (i = 0; i < hozzavalok.Length; i++) {
  98. for(j=0;j<hozzavalok.Length;j++){
  99. if (hozzavalok[i].Alapanyag == raktar[j].Alapanyag)
  100. if (hozzavalok[i].Mennyiseg <= raktar[i].Mennyiseg) n++;
  101. }}
  102. return (n == i);
  103. }
  104.  
  105. //public float MennyireSikeres(Vendeg[] vendegek)
  106. }
  107.  
  108. public class ReceptKonyv
  109. {
  110. Recept[] receptek;
  111.  
  112. public ReceptKonyv(Recept[] receptek)
  113. {
  114. this.receptek = receptek;
  115. }
  116.  
  117. public Recept ReceptKivalasztas(string nev) {
  118. int i=0;
  119. while(i<receptek.Length && receptek[i].Nev != nev) i++;
  120. return receptek[i];
  121.  
  122. }
  123.  
  124.  
  125. /* public int HanyReceptNemtartalmazAlapanyagot(Alapanyag alapanyag) {
  126.  
  127. }*/
  128.  
  129. //public Recept[] AlapanyagotTartalmazoReceptek(Alapanyag alapanyag)
  130.  
  131. public Recept LegbonyolultabbRecept() {
  132. int max=0; int i=0;
  133. foreach (Recept recept in receptek) {
  134. if(recept.KulonbozoAlapanyagokSzama()>max) max=i;
  135. i++;
  136. }
  137. return receptek[i];
  138. }
  139.  
  140. //public Recept SzemelyreszabottAjanlat(Vendeg vendeg)
  141.  
  142. //public Recept LegsikeresebbRecept(Vendeg[] vendegek)
  143.  
  144. public int HanyfeleReceptValosithatoMegHozzavalokbol(Hozzavalo[] raktar) {
  145. int n=0;
  146. foreach (Recept recept in receptek) {
  147. if (recept.MegvalosithatoHozzavalokbol(raktar)) n++;
  148. }
  149. return n;
  150. }
  151.  
  152. //public Recept[] MelyikReceptekValosithatokMegHozzavalokbol(Hozzavalo[] raktar)
  153. }
  154.  
  155. public class Vendeg
  156. {
  157. Alapanyag[] szereti;
  158.  
  159. public Vendeg(Alapanyag[] szereti)
  160. {
  161. this.szereti = szereti;
  162. }
  163.  
  164. //public virtual float Ertekel(Recept recept)
  165. }
  166.  
  167. public class AllergiasVendeg : Vendeg
  168. {
  169. Alapanyag[] allergias;
  170.  
  171. public AllergiasVendeg(Alapanyag[] szereti, Alapanyag[] allergias)
  172. : base(szereti)
  173. {
  174. this.allergias = allergias;
  175. }
  176.  
  177. //public bool AllergiasRa(Alapanyag anyag)
  178.  
  179. //public override float Ertekel(Recept recept)
  180. }
  181.  
  182. class Program
  183. {
  184. static ReceptKonyv MintaReceptKonyvLetrehozasa()
  185. {
  186. Recept besamel = new Recept("besamel",
  187. new Hozzavalo[] {
  188. new Hozzavalo(Alapanyag.Liszt, 50),
  189. new Hozzavalo(Alapanyag.Vaj, 50),
  190. new Hozzavalo(Alapanyag.Tej, 50),
  191. new Hozzavalo(Alapanyag.Tej, 100)});
  192. Recept tejberizs = new Recept("tejberizs",
  193. new Hozzavalo[] {
  194. new Hozzavalo(Alapanyag.Rizs, 100),
  195. new Hozzavalo(Alapanyag.Tej, 100),
  196. new Hozzavalo(Alapanyag.Tej, 200),
  197. new Hozzavalo(Alapanyag.Vaj, 10)});
  198. Recept kijevi = new Recept("kijevi",
  199. new Hozzavalo[] {
  200. new Hozzavalo(Alapanyag.Vaj, 10),
  201. new Hozzavalo(Alapanyag.Hus, 100),
  202. new Hozzavalo(Alapanyag.Vaj, 50),
  203. new Hozzavalo(Alapanyag.Hagyma, 10)});
  204. Recept rostelyos = new Recept("rostélyos",
  205. new Hozzavalo[] {
  206. new Hozzavalo(Alapanyag.Vaj, 10),
  207. new Hozzavalo(Alapanyag.Hus, 100),
  208. new Hozzavalo(Alapanyag.Liszt, 10),
  209. new Hozzavalo(Alapanyag.Hagyma, 30)});
  210. Recept rantotthus = new Recept("rántott hús",
  211. new Hozzavalo[] {
  212. new Hozzavalo(Alapanyag.Hus, 100),
  213. new Hozzavalo(Alapanyag.Liszt, 10),
  214. new Hozzavalo(Alapanyag.Tojas, 10)});
  215.  
  216. return new ReceptKonyv(new Recept[] { besamel, tejberizs, kijevi, rostelyos, rantotthus });;
  217. }
  218.  
  219. public static Vendeg[] MintaVendegekLetrehozasa()
  220. {
  221. Vendeg Teri = new Vendeg(
  222. new Alapanyag[] { Alapanyag.Hus });
  223. Vendeg Feri = new Vendeg(
  224. new Alapanyag[] { Alapanyag.Vaj, Alapanyag.Liszt, Alapanyag.Rizs });
  225. AllergiasVendeg Mari = new AllergiasVendeg(
  226. new Alapanyag[] { Alapanyag.Vaj, Alapanyag.Liszt, Alapanyag.Hus },
  227. new Alapanyag[] { Alapanyag.Tojas });
  228.  
  229. return new Vendeg[] { Teri, Feri, Mari };
  230. }
  231.  
  232. public static Hozzavalo[] MintaRaktarLetrehozasa()
  233. {
  234. return new Hozzavalo[] {
  235. new Hozzavalo(Alapanyag.Tej, 300),
  236. new Hozzavalo(Alapanyag.Vaj, 300),
  237. new Hozzavalo(Alapanyag.Liszt, 300),
  238. new Hozzavalo(Alapanyag.Rizs, 300),
  239. new Hozzavalo(Alapanyag.Hus, 50)};
  240. }
  241.  
  242. static void Main(string[] args)
  243. {
  244. ReceptKonyv receptkonyv = MintaReceptKonyvLetrehozasa();
  245. Vendeg[] vendegek = MintaVendegekLetrehozasa();
  246. Hozzavalo[] raktar = MintaRaktarLetrehozasa();
  247.  
  248. //1. kérdés - tejberizs
  249. Console.WriteLine("1. kérdés: 'tejberizs' neve");
  250. Console.WriteLine(receptkonyv.ReceptKivalasztas("tejberizs"));
  251.  
  252. //2. kérdés - 170
  253. Console.WriteLine("2. kérdés: 'kijevi' összmennyisége");
  254. Console.WriteLine(receptkonyv.ReceptKivalasztas("kijevi").ReceptOsszMennyiseg());
  255.  
  256. //3. kérdés - true
  257. Console.WriteLine("3. kérdés: 'tejberizs' tartalmaz 'vaj'-at?");
  258. Console.WriteLine(receptkonyv.ReceptKivalasztas("tejberizs").TartalmazAlapanyagot(Alapanyag.Vaj));
  259.  
  260. //4. kérdés - 3
  261. //Console.WriteLine("4. kérdés: hány recept nem tartalmaz 'tej'-et?");
  262. // Console.WriteLine(receptkonyv.HanyReceptNemtartalmazAlapanyagot(Alapanyag.Tej));
  263.  
  264. //5. kérdés - 'kijevi', 'rostélyos'
  265. //Console.WriteLine("5. kérdés: melyik receptek tartalmaznak 'hagyma'-t?");
  266. //foreach (Recept r in receptkonyv.AlapanyagotTartalmazoReceptek(Alapanyag.Hagyma)) Console.WriteLine(r);
  267.  
  268. //6. kérdés - 3
  269. Console.WriteLine("6. kérdés: hány különböző alapanyagot tartalmaz a 'besamel'?");
  270. Console.WriteLine(receptkonyv.ReceptKivalasztas("besamel").KulonbozoAlapanyagokSzama());
  271.  
  272. //7. kérdés - rostélyos
  273. Console.WriteLine("7. kérdés: melyik a legbonyolultabb recept?");
  274. Console.WriteLine(receptkonyv.LegbonyolultabbRecept());
  275.  
  276. //8. kérdés - rizs(100), tej(300), vaj(10)
  277. //Console.WriteLine("8. kérdés: mi a 'tejberizs' összesített alapanyagszükséglete?");
  278. //foreach (Hozzavalo h in receptkonyv.ReceptKivalasztas("tejberizs").HozzavalokOsszesitve()) Console.WriteLine(h);
  279.  
  280. //9. kérdés - true
  281. Console.WriteLine("9. kérdés: megvalósítható-e a 'besamel' a minta raktárkészletből?");
  282. Console.WriteLine(receptkonyv.ReceptKivalasztas("besamel").MegvalosithatoHozzavalokbol(raktar));
  283.  
  284. //10. kérdés - 2
  285. Console.WriteLine("10. kérdés: hányféle recepthez elég a minta raktárkészlet?");
  286. Console.WriteLine(receptkonyv.HanyfeleReceptValosithatoMegHozzavalokbol(raktar));
  287.  
  288. //11. kérdés - besamel, tejberizs
  289. //Console.WriteLine("11. kérdés: melyik receptekhez elég a minta raktárkészlet?");
  290. //foreach (Recept r in receptkonyv.MelyikReceptekValosithatokMegHozzavalokbol(raktar)) Console.WriteLine(r);
  291.  
  292. //12. kérdés - 100
  293. //Console.WriteLine("12. kérdés: 'Teri' mennyire értékeli a 'rostélyos'-t?");
  294. //Console.WriteLine(vendegek[0].Ertekel(receptkonyv.ReceptKivalasztas("rostélyos")));
  295.  
  296. //13. kérdés - 0
  297. //Console.WriteLine("13. kérdés: 'Mari' mennyire értékeli a 'rántott hús'-t?");
  298. //Console.WriteLine(vendegek[2].Ertekel(receptkonyv.ReceptKivalasztas("rántott hús")));
  299.  
  300. //14. kérdés - tejberizs
  301. //Console.WriteLine("14. kérdés: Melyik étel a legjobb 'Feri' számára?");
  302. //Console.WriteLine(receptkonyv.SzemelyreszabottAjanlat(vendegek[1]));
  303.  
  304. //15. kérdés - 40
  305. //Console.WriteLine("15. kérdés: Mennyire sikeres a 'rostélyos' a vendégek között?");
  306. //Console.WriteLine(receptkonyv.ReceptKivalasztas("rostélyos").MennyireSikeres(vendegek));
  307.  
  308. //16. kérdés - kijevi
  309. //Console.WriteLine("16. kérdés: Melyik a legsikeresebb recept a vendégek között?");
  310. //Console.WriteLine(receptkonyv.LegsikeresebbRecept(vendegek));
  311.  
  312. Console.ReadKey();
  313. }
  314. }
  315. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement