Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace Feladat_2
- {
- public enum Alapanyag
- {
- Liszt, Vaj, Tej, Rizs, Hus, Hagyma, Tojas
- }
- public class Hozzavalo
- {
- Alapanyag alapanyag;
- public Alapanyag Alapanyag
- {
- get { return alapanyag; }
- }
- float mennyiseg;
- public float Mennyiseg
- {
- get { return mennyiseg; }
- set { mennyiseg = value; }
- }
- public Hozzavalo(Alapanyag alapanyag, float mennyiseg)
- {
- this.alapanyag = alapanyag;
- this.mennyiseg = mennyiseg;
- }
- public override string ToString()
- {
- return alapanyag.ToString() + " (" + mennyiseg + ")";
- }
- }
- public class Recept
- {
- string nev;
- public string Nev
- {
- get { return nev; }
- }
- Hozzavalo[] hozzavalok;
- public Hozzavalo[] Hozzavalok
- {
- get { return hozzavalok; }
- }
- public Recept(string nev, Hozzavalo[] hozzavalok)
- {
- this.nev = nev;
- this.hozzavalok = hozzavalok;
- }
- public override string ToString()
- {
- return nev;
- }
- public bool TartalmazAlapanyagot(Alapanyag alapanyag)
- {
- int i = 0;
- while (i < hozzavalok.Length && hozzavalok[i].Alapanyag != alapanyag) i++;
- return (i < hozzavalok.Length);
- }
- public float ReceptOsszMennyiseg()
- {
- float ossz = 0; int i;
- for (i = 0; i < hozzavalok.Length; i++) ossz += hozzavalok[i].Mennyiseg;
- return ossz;
- }
- public int KulonbozoAlapanyagokSzama() {
- int i = 0; int j = 0; int n = 0;
- for (i = 0; i < hozzavalok.Length; i++) {
- if (i > 0) for (j = 0; j < i; j++) {
- if(hozzavalok[j].Alapanyag==hozzavalok[i].Alapanyag) n--;}
- n++;
- }
- return n;
- }
- // public Hozzavalo[] HozzavalokOsszesitve()
- public bool MegvalosithatoHozzavalokbol(Hozzavalo[] raktar) {
- int i = 0; int j=0; int n=0;
- for (i = 0; i < hozzavalok.Length; i++) {
- for(j=0;j<hozzavalok.Length;j++){
- if (hozzavalok[i].Alapanyag == raktar[j].Alapanyag)
- if (hozzavalok[i].Mennyiseg <= raktar[i].Mennyiseg) n++;
- }}
- return (n == i);
- }
- //public float MennyireSikeres(Vendeg[] vendegek)
- }
- public class ReceptKonyv
- {
- Recept[] receptek;
- public ReceptKonyv(Recept[] receptek)
- {
- this.receptek = receptek;
- }
- public Recept ReceptKivalasztas(string nev) {
- int i=0;
- while(i<receptek.Length && receptek[i].Nev != nev) i++;
- return receptek[i];
- }
- /* public int HanyReceptNemtartalmazAlapanyagot(Alapanyag alapanyag) {
- }*/
- //public Recept[] AlapanyagotTartalmazoReceptek(Alapanyag alapanyag)
- public Recept LegbonyolultabbRecept() {
- int max=0; int i=0;
- foreach (Recept recept in receptek) {
- if(recept.KulonbozoAlapanyagokSzama()>max) max=i;
- i++;
- }
- return receptek[i];
- }
- //public Recept SzemelyreszabottAjanlat(Vendeg vendeg)
- //public Recept LegsikeresebbRecept(Vendeg[] vendegek)
- public int HanyfeleReceptValosithatoMegHozzavalokbol(Hozzavalo[] raktar) {
- int n=0;
- foreach (Recept recept in receptek) {
- if (recept.MegvalosithatoHozzavalokbol(raktar)) n++;
- }
- return n;
- }
- //public Recept[] MelyikReceptekValosithatokMegHozzavalokbol(Hozzavalo[] raktar)
- }
- public class Vendeg
- {
- Alapanyag[] szereti;
- public Vendeg(Alapanyag[] szereti)
- {
- this.szereti = szereti;
- }
- //public virtual float Ertekel(Recept recept)
- }
- public class AllergiasVendeg : Vendeg
- {
- Alapanyag[] allergias;
- public AllergiasVendeg(Alapanyag[] szereti, Alapanyag[] allergias)
- : base(szereti)
- {
- this.allergias = allergias;
- }
- //public bool AllergiasRa(Alapanyag anyag)
- //public override float Ertekel(Recept recept)
- }
- class Program
- {
- static ReceptKonyv MintaReceptKonyvLetrehozasa()
- {
- Recept besamel = new Recept("besamel",
- new Hozzavalo[] {
- new Hozzavalo(Alapanyag.Liszt, 50),
- new Hozzavalo(Alapanyag.Vaj, 50),
- new Hozzavalo(Alapanyag.Tej, 50),
- new Hozzavalo(Alapanyag.Tej, 100)});
- Recept tejberizs = new Recept("tejberizs",
- new Hozzavalo[] {
- new Hozzavalo(Alapanyag.Rizs, 100),
- new Hozzavalo(Alapanyag.Tej, 100),
- new Hozzavalo(Alapanyag.Tej, 200),
- new Hozzavalo(Alapanyag.Vaj, 10)});
- Recept kijevi = new Recept("kijevi",
- new Hozzavalo[] {
- new Hozzavalo(Alapanyag.Vaj, 10),
- new Hozzavalo(Alapanyag.Hus, 100),
- new Hozzavalo(Alapanyag.Vaj, 50),
- new Hozzavalo(Alapanyag.Hagyma, 10)});
- Recept rostelyos = new Recept("rostélyos",
- new Hozzavalo[] {
- new Hozzavalo(Alapanyag.Vaj, 10),
- new Hozzavalo(Alapanyag.Hus, 100),
- new Hozzavalo(Alapanyag.Liszt, 10),
- new Hozzavalo(Alapanyag.Hagyma, 30)});
- Recept rantotthus = new Recept("rántott hús",
- new Hozzavalo[] {
- new Hozzavalo(Alapanyag.Hus, 100),
- new Hozzavalo(Alapanyag.Liszt, 10),
- new Hozzavalo(Alapanyag.Tojas, 10)});
- return new ReceptKonyv(new Recept[] { besamel, tejberizs, kijevi, rostelyos, rantotthus });;
- }
- public static Vendeg[] MintaVendegekLetrehozasa()
- {
- Vendeg Teri = new Vendeg(
- new Alapanyag[] { Alapanyag.Hus });
- Vendeg Feri = new Vendeg(
- new Alapanyag[] { Alapanyag.Vaj, Alapanyag.Liszt, Alapanyag.Rizs });
- AllergiasVendeg Mari = new AllergiasVendeg(
- new Alapanyag[] { Alapanyag.Vaj, Alapanyag.Liszt, Alapanyag.Hus },
- new Alapanyag[] { Alapanyag.Tojas });
- return new Vendeg[] { Teri, Feri, Mari };
- }
- public static Hozzavalo[] MintaRaktarLetrehozasa()
- {
- return new Hozzavalo[] {
- new Hozzavalo(Alapanyag.Tej, 300),
- new Hozzavalo(Alapanyag.Vaj, 300),
- new Hozzavalo(Alapanyag.Liszt, 300),
- new Hozzavalo(Alapanyag.Rizs, 300),
- new Hozzavalo(Alapanyag.Hus, 50)};
- }
- static void Main(string[] args)
- {
- ReceptKonyv receptkonyv = MintaReceptKonyvLetrehozasa();
- Vendeg[] vendegek = MintaVendegekLetrehozasa();
- Hozzavalo[] raktar = MintaRaktarLetrehozasa();
- //1. kérdés - tejberizs
- Console.WriteLine("1. kérdés: 'tejberizs' neve");
- Console.WriteLine(receptkonyv.ReceptKivalasztas("tejberizs"));
- //2. kérdés - 170
- Console.WriteLine("2. kérdés: 'kijevi' összmennyisége");
- Console.WriteLine(receptkonyv.ReceptKivalasztas("kijevi").ReceptOsszMennyiseg());
- //3. kérdés - true
- Console.WriteLine("3. kérdés: 'tejberizs' tartalmaz 'vaj'-at?");
- Console.WriteLine(receptkonyv.ReceptKivalasztas("tejberizs").TartalmazAlapanyagot(Alapanyag.Vaj));
- //4. kérdés - 3
- //Console.WriteLine("4. kérdés: hány recept nem tartalmaz 'tej'-et?");
- // Console.WriteLine(receptkonyv.HanyReceptNemtartalmazAlapanyagot(Alapanyag.Tej));
- //5. kérdés - 'kijevi', 'rostélyos'
- //Console.WriteLine("5. kérdés: melyik receptek tartalmaznak 'hagyma'-t?");
- //foreach (Recept r in receptkonyv.AlapanyagotTartalmazoReceptek(Alapanyag.Hagyma)) Console.WriteLine(r);
- //6. kérdés - 3
- Console.WriteLine("6. kérdés: hány különböző alapanyagot tartalmaz a 'besamel'?");
- Console.WriteLine(receptkonyv.ReceptKivalasztas("besamel").KulonbozoAlapanyagokSzama());
- //7. kérdés - rostélyos
- Console.WriteLine("7. kérdés: melyik a legbonyolultabb recept?");
- Console.WriteLine(receptkonyv.LegbonyolultabbRecept());
- //8. kérdés - rizs(100), tej(300), vaj(10)
- //Console.WriteLine("8. kérdés: mi a 'tejberizs' összesített alapanyagszükséglete?");
- //foreach (Hozzavalo h in receptkonyv.ReceptKivalasztas("tejberizs").HozzavalokOsszesitve()) Console.WriteLine(h);
- //9. kérdés - true
- Console.WriteLine("9. kérdés: megvalósítható-e a 'besamel' a minta raktárkészletből?");
- Console.WriteLine(receptkonyv.ReceptKivalasztas("besamel").MegvalosithatoHozzavalokbol(raktar));
- //10. kérdés - 2
- Console.WriteLine("10. kérdés: hányféle recepthez elég a minta raktárkészlet?");
- Console.WriteLine(receptkonyv.HanyfeleReceptValosithatoMegHozzavalokbol(raktar));
- //11. kérdés - besamel, tejberizs
- //Console.WriteLine("11. kérdés: melyik receptekhez elég a minta raktárkészlet?");
- //foreach (Recept r in receptkonyv.MelyikReceptekValosithatokMegHozzavalokbol(raktar)) Console.WriteLine(r);
- //12. kérdés - 100
- //Console.WriteLine("12. kérdés: 'Teri' mennyire értékeli a 'rostélyos'-t?");
- //Console.WriteLine(vendegek[0].Ertekel(receptkonyv.ReceptKivalasztas("rostélyos")));
- //13. kérdés - 0
- //Console.WriteLine("13. kérdés: 'Mari' mennyire értékeli a 'rántott hús'-t?");
- //Console.WriteLine(vendegek[2].Ertekel(receptkonyv.ReceptKivalasztas("rántott hús")));
- //14. kérdés - tejberizs
- //Console.WriteLine("14. kérdés: Melyik étel a legjobb 'Feri' számára?");
- //Console.WriteLine(receptkonyv.SzemelyreszabottAjanlat(vendegek[1]));
- //15. kérdés - 40
- //Console.WriteLine("15. kérdés: Mennyire sikeres a 'rostélyos' a vendégek között?");
- //Console.WriteLine(receptkonyv.ReceptKivalasztas("rostélyos").MennyireSikeres(vendegek));
- //16. kérdés - kijevi
- //Console.WriteLine("16. kérdés: Melyik a legsikeresebb recept a vendégek között?");
- //Console.WriteLine(receptkonyv.LegsikeresebbRecept(vendegek));
- Console.ReadKey();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement