Advertisement
csaki

II_2 3. gyak házi

Feb 26th, 2013
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.99 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5.  
  6. namespace II_3_gyak_1
  7. {
  8.  
  9.     class Konyvespolc
  10.     {
  11.         // Házi: könyvespolc objektumosztály (class konyvespolc), egy lista van benne könyvekről
  12.         // - protected List<Konyv> K = new List<Konyv>();
  13.         // 1: nem adhatunk hozzá nullt
  14.         // 2: nem lehet 2x ugyanaz a könyv
  15.         // 3: public hozzaad() fuggvény!
  16.         //      {
  17.         //          if () ...
  18.         //      }
  19.         //
  20.         // Adatbázis-szerű elérés a könyvespolcról! public List<Konyv> kereses(string s)
  21.         //  - Olyan függvény írása, ami public. Átadok egy írót, és visszaadja az író könyveinek listáját !!
  22.         //
  23.         // Egy readonly property, ami megmondja a könyvek árát! get { return -összeg- }
  24.  
  25.         protected List<Konyv> polc = new List<Konyv>();
  26.  
  27.         public int osszar
  28.         {
  29.             get
  30.             {
  31.                 int sum = 0;
  32.                 foreach (var x in polc)
  33.                 {
  34.                     sum += x.ar;
  35.                 }
  36.                 return sum;
  37.             }
  38.         }
  39.  
  40.         public void hozzaad(Konyv k)
  41.         {
  42.             if (k != null)
  43.             {
  44.                 foreach (Konyv x in polc)
  45.                 {
  46.                     if (x == k)
  47.                     {
  48.                         Console.WriteLine("Ez a könyv már rajta van a polcon!");
  49.                         break;
  50.                     }                  
  51.                 }
  52.                 polc.Add(k);
  53.             }
  54.             else throw new Exception("Null érték nem megengedett!");
  55.         }
  56.  
  57.         public void iro_kereses(string s)
  58.         {
  59.             foreach (var x in polc)
  60.             {
  61.                 Console.WriteLine("A keresés eredménye:");
  62.                 if (x.iro == s)
  63.                 {                  
  64.                     Console.WriteLine("Író: {0}, Cím: {1}, Műfaja: {2}, Kiadás éve: {3}, Ára: {4} Ft",
  65.                     x.iro, x.cim, x.mufaj, x.ev, x.ar);
  66.                 }
  67.             }
  68.         }
  69.         public void cim_kereses(string s)
  70.         {
  71.             Console.WriteLine("A keresés eredménye:");
  72.             foreach (var x in polc)
  73.             {              
  74.                 if (x.cim == s)
  75.                 {                  
  76.                     Console.WriteLine("Író: {0}, Cím: {1}, Műfaja: {2}, Kiadás éve: {3}, Ára: {4} Ft",
  77.                     x.iro, x.cim, x.mufaj, x.ev, x.ar);
  78.                 }
  79.             }
  80.         }
  81.         public void ev_kereses(int s)
  82.         {
  83.             Console.WriteLine("A keresés eredménye:");
  84.             foreach (var x in polc)
  85.             {          
  86.                 if (x.ev == s)
  87.                 {              
  88.                     Console.WriteLine("Író: {0}, Cím: {1}, Műfaja: {2}, Kiadás éve: {3}, Ára: {4} Ft",
  89.                     x.iro, x.cim, x.mufaj, x.ev, x.ar);
  90.                 }
  91.             }
  92.         }
  93.         public void ar_kereses(int s)
  94.         {
  95.             Console.WriteLine("A keresés eredménye:");
  96.             foreach (var x in polc)
  97.             {          
  98.                 if (x.ar == s)
  99.                 {              
  100.                     Console.WriteLine("Író: {0}, Cím: {1}, Műfaja: {2}, Kiadás éve: {3}, Ára: {4} Ft",
  101.                     x.iro, x.cim, x.mufaj, x.ev, x.ar);
  102.                 }
  103.             }
  104.         }
  105.         public void ev_kereses(mufajok s)
  106.         {
  107.             Console.WriteLine("A keresés eredménye:");
  108.             foreach (var x in polc)
  109.             {              
  110.                 if (x.mufaj == s)
  111.                 {                  
  112.                     Console.WriteLine("Író: {0}, Cím: {1}, Műfaja: {2}, Kiadás éve: {3}, Ára: {4} Ft",
  113.                     x.iro, x.cim, x.mufaj, x.ev, x.ar);
  114.                 }
  115.             }
  116.         }
  117.     }
  118.  
  119.  
  120.     public enum mufajok { Mese, Regény, Történelmi, Szakkönyv }
  121.  
  122.     class Konyv
  123.     {
  124.         protected string _iro;
  125.         protected string _cim;
  126.         protected int _ev;
  127.         protected int _ar;
  128.         public mufajok mufaj;
  129.  
  130.         // constructors
  131.         public Konyv(string piro, string pcim, int pev, int par, mufajok pmufaj)
  132.         {
  133.             _iro = piro;
  134.             _cim = pcim;
  135.             _ev = pev;
  136.             _ar = par;
  137.             mufaj = pmufaj;
  138.         }
  139.  
  140.         public Konyv(string piro, string pcim, int par, mufajok pmufaj)
  141.             : this(piro, pcim, DateTime.Now.Year, par, pmufaj) { }
  142.  
  143.  
  144.         // properties
  145.         public string iro
  146.         {
  147.             get
  148.             {
  149.                 return _iro;
  150.             }
  151.             set
  152.             {
  153.                 if (value != null)
  154.                 {
  155.                     if (value.Length > 5 && value.Length < 50)
  156.                     {
  157.                         _iro = value;
  158.                     }
  159.                 }
  160.                 else throw new Exception("Nem megfelelő író névhossz!");
  161.             }
  162.         }
  163.  
  164.         public string cim
  165.         {
  166.             get
  167.             {
  168.                 return _cim;
  169.             }
  170.             set
  171.             {
  172.                 if (value != null)
  173.                 {
  174.                     if (value.Length > 5 && value.Length < 50)
  175.                     {
  176.                         _cim = value;
  177.                     }
  178.                 }
  179.                 else throw new Exception("Nem megfelelő címhossz!");
  180.             }
  181.         }
  182.  
  183.         public int ev
  184.         {
  185.             get
  186.             {
  187.                 return _ev;
  188.             }
  189.             set
  190.             {
  191.                 if (1100 <= value && value <= DateTime.Now.Year)
  192.                 {
  193.                     _ev = value;
  194.                 }
  195.                 else throw new Exception("Nem megfelelő év!");
  196.             }
  197.         }
  198.         public int ar
  199.         {
  200.             get
  201.             {
  202.                 return _ar;
  203.             }
  204.             set
  205.             {
  206.                 if ((value <= 0 && 0 <= 15000) && value % 5 == 0)
  207.                 {
  208.                     _ar = value;
  209.                 }
  210.                 else throw new Exception("Nem megfelelő ár!");
  211.             }
  212.         }
  213.     }
  214.  
  215.     class Program
  216.     {
  217.         static void Main(string[] args)
  218.         {
  219.             Random rand = new Random();
  220.             List<Konyv> konyvespolc = new List<Konyv>();
  221.             Konyvespolc kp = new Konyvespolc();
  222.  
  223.             string iro, cim;
  224.             int ev, ar;
  225.             for (int i = 0; i < 20; i++)
  226.             {
  227.                 iro = "Író" + rand.Next(100, 510).ToString();
  228.                 cim = String.Format("cím{0}", rand.Next(100, 901));
  229.                 ev = rand.Next(1100, DateTime.Now.Year + 1);
  230.                 ar = rand.Next(600, 1601) * 5;
  231.                 mufajok mufaj = (mufajok)rand.Next(0, 4);
  232.  
  233.                 Konyv k = new Konyv(iro, cim, ev, ar, mufaj);
  234.                 konyvespolc.Add(k);
  235.                 kp.hozzaad(k);
  236.             }
  237.  
  238.             foreach (var x in konyvespolc)
  239.             {
  240.                 Console.WriteLine("Író: {0}, Cím: {1}, Műfaja: {2}, Kiadás éve: {3}, Ára: {4} Ft",
  241.                     x.iro, x.cim, x.mufaj, x.ev, x.ar);
  242.             }
  243.             while (true)
  244.             {
  245.                 Console.WriteLine(Environment.NewLine);
  246.                 Console.WriteLine(Environment.NewLine);
  247.                 Console.WriteLine("Menü:");
  248.                 Console.WriteLine("1. A könyvespolc könyvei árának összege");
  249.                 Console.WriteLine("2. Keresés");
  250.  
  251.                 int menü = int.Parse(Console.ReadLine());
  252.                 // Konyvespolc kp = new Konyvespolc();
  253.                 switch (menü)
  254.                 {
  255.                     case 1:
  256.                     Console.WriteLine(Environment.NewLine);
  257.                     Console.WriteLine("A könyvek ára összesen {0}", kp.osszar);
  258.                     break;
  259.  
  260.                     case 2:
  261.                     Console.WriteLine(Environment.NewLine);
  262.                     Console.WriteLine("Mi szerint végezzem a keresést?");
  263.                     Console.WriteLine("\t1. Író szerint");
  264.                     Console.WriteLine("\t2. Cím szerint");
  265.                     Console.WriteLine("\t3. Év szerint");
  266.                     Console.WriteLine("\t4. Ár szerint");
  267.  
  268.                     menü = int.Parse(Console.ReadLine());
  269.                     string keres_szo;
  270.                     int keres_szam;
  271.                     Console.WriteLine(Environment.NewLine);
  272.  
  273.                     switch (menü)
  274.                     {
  275.                         case 1:
  276.                         Console.Write("Keresett szó: ");
  277.                         keres_szo = Console.ReadLine();
  278.                         Console.WriteLine();
  279.                         kp.iro_kereses(keres_szo);
  280.                         break;
  281.  
  282.                         case 2:
  283.                         Console.Write("Keresett szó: ");
  284.                         keres_szo = Console.ReadLine();
  285.                         Console.WriteLine();
  286.                         kp.cim_kereses(keres_szo);
  287.                         break;
  288.  
  289.                         case 3:
  290.                         Console.Write("Keresett évszám: ");
  291.                         keres_szam = int.Parse(Console.ReadLine());
  292.                         Console.WriteLine();
  293.                         kp.ev_kereses(keres_szam);
  294.                         break;
  295.  
  296.                         case 4:
  297.                         Console.Write("Keresett ármennyiség: ");
  298.                         keres_szam = int.Parse(Console.ReadLine());
  299.                         Console.WriteLine();
  300.                         kp.ar_kereses(keres_szam);
  301.                         break;
  302.  
  303.                         default:
  304.                         Console.WriteLine("Hibás menüpont!");
  305.                         break;
  306.                     }
  307.                     break;
  308.  
  309.                     default:
  310.                     Console.WriteLine("Hibás menüpont!");
  311.                     break;
  312.                 }
  313.  
  314.                 Console.ReadLine();
  315.             }
  316.         }
  317.     }
  318. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement