Avatar
nosekt
Člen
Avatar
nosekt:

Ahoj, začal jsem se s pomocí vaší stránky učit C# OOP. Došel jsem do lekce s dědičností a polymorfismem, kde je napsaný, aby jsme si nejdříve procvičili práce s objekty. Rozhodl jsem se si tedy udělat nový program. Má se jednat o jednoduchou evidenci autopůjčovny. Představte si, že jste její správce a chcete evidovat kdo si jaké auto půjčil apod. Chtěl bych se zeptat, jestli je v následujícím kódu možné udělat, aby si instance zakaznik vzala parametry ze vstupu uživatele. To znamená, že by sám zadal jméno a tel. číslo a podle toho by se vytvořila instance. Děkuji

class Program
   {
       static void Main(string[] args)
       {
           Auta peugeot = new Auta("Peugeot", "s5da48s", false);
           Pujcovna pujcovna = new Pujcovna();
           Osoby zakaznik = new Osoby(**ZDE BYCH CHTĚL NAHRT DATA UŽIVATELE**);

           Console.WriteLine("Vyberte, jakou chcete provést akci(1 - Vypujcit auto, 2 - Navratit auto): ");
           int akce = int.Parse(Console.ReadLine());

           switch(akce)
           {
               case 1:
                   {

                   }
               break;
           }

       }

   }
class Pujcovna
    {
        private Auta auto;



        public void Vypujci(Auta auto)
        {
            this.auto = auto;
            auto.pujceno = true;


        }



    }
class Auta
    {
        private string znacka;
        private string spz;
        public bool pujceno = false;


        public Auta(string znacka, string spz, bool pujceno)
        {
            this.znacka = znacka;
            this.spz = spz;
            this.pujceno = pujceno;
        }
    }
class Osoby
    {

        public string jmeno;
        public int tel;





        public Osoby(string jmeno, int tel)
        {



            this.jmeno = jmeno;
            this.tel = tel;


        }
Editováno 6.5.2014 17:48
 
Odpovědět 6.5.2014 17:47
Avatar
Michal Žůrek (misaz):

no tak to vezmeš třeba z konzole, ne?

Nahoru Odpovědět  +2 6.5.2014 18:04
Nesnáším {}, proto se jim vyhýbám.
Avatar
nosekt
Člen
Avatar
nosekt:

mě napadlo jak to udělat, jen očividně nejsem schopnej to napsat aby to fungovalo

 
Nahoru Odpovědět 6.5.2014 18:52
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na nosekt
Jan Vargovský:

Zkus a když to nepůjde, tak to sem pošleš a my ti pomůžeme.

 
Nahoru Odpovědět 6.5.2014 18:56
Avatar
nosekt
Člen
Avatar
nosekt:

Už to zkouším dost dlouho :-D

 
Nahoru Odpovědět 6.5.2014 19:03
Avatar
xxxvodnikxxx
Člen
Avatar
xxxvodnikxxx:

před konstruktorem si uděláš lokální proměnný (např String jmeno, String prijmeni, nebo tak, co chceš)

následně pomocí Console.ReadLine() načteš (bacha čísla je dobrý parsovat - INTEGER.Parse (string odkud) ... tak nějak (google ) )

následně ty proměnný pošleš do konstruktoru osoby
(předpokládám že tam chceš jméno a číslo když to máš v konstruktoru a třídě)

...
String jmeno = Console.Readline();
int cislo = Integer.parse­Int(Console.Re­adline());

následně

Osoby zakaznik = new Osoby(jmeno,cislo);

thats all :) (y)

Btw vytváříš jenom jednu instanci půjčovny- to je jako ok
ale stejně tak v ní máš jen jednu instaci auta a stejně tak v mainu vytváříš jenom jednu instanci osoby ;)

Pokud jich tam chceš víc, tak z toho udělej buďto pole osob a aut, nebo v lepším případě ArrayList, / LinkedList :)

//EDIT
koukám že už tam načítáš a parsuješ tu akci, takže tyhle proměnný uděláš stejným způsobem

Editováno 6.5.2014 19:22
Nahoru Odpovědět 6.5.2014 19:22
Unix- svět, kde chcete být nulou :) (UID)
Avatar
nosekt
Člen
Avatar
nosekt:
Osoby zakaznik = new Osoby(jmeno, tel);

U téhle části mi to píše u obou parametrů: does not exist in a current context

 
Nahoru Odpovědět 6.5.2014 20:43
Avatar
xxxvodnikxxx
Člen
Avatar
xxxvodnikxxx:

no, tam nemáš asi ty proměnný :)

String jmeno = Console.Readline();
int tel = Integer.parse­Int(Console.Re­adline());

tohle musíš mít předtím, a potom zavolat konstruktor

Osoby zakaznik = new Osoby(jmeno, tel);

Nahoru Odpovědět 6.5.2014 20:58
Unix- svět, kde chcete být nulou :) (UID)
Avatar
nosekt
Člen
Avatar
nosekt:

Aha, špatně jsem to pochopil a měl jsem je jinde, už to jde, dík :)

 
Nahoru Odpovědět  +1 6.5.2014 21:00
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.