Diskuze: C# Nefunguje volání metody z jiné třídy
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Protože v Shop si vytváříš novou instanci třídy Main. Instanci Main si předej skrz kontruktor, když zakládáš Shop
Plus tam nemáš privátní člen peníze. Měl by si to mít třeba třídu Pokladna a v ní _stavPenez a Obchod by v příadě prodeje zboží a nebo naopak koupení zboží udělat event zmena v pokladně. A ještě abys to měl pěkné, by se nesmělo stát, že by se nakupovalo zboží, když by v pokladně nic nebylo.
Děkuju za radu, ale sám to tak napsat neumím . Nemohl by jsi zkopírovat můj kód,
upravit a hodit ho sem prosím.
P.S.: Vím, že jsem otravnej ale jsem začátečník.
Ahoj, já sem Ti to chtěl ráno poslat, ale nemám už na to čas to dělat, není to uplně správně a je to tak na půl cesty, ale aby si viděl jak to fungovat. Do Formu si dej dva buttony ( Button1 a Button2) dva Textbox jeden label a panel na kreslení, aby si viděl regal.
public partial class Form1 : Form
{
Regal r;
Pokladna pokladna;
Zbozi z;
public Form1()
{
InitializeComponent();
pokladna = new Pokladna(100);
z = new Zbozi(5);
r = new Regal(20);
AktualizaceOkna();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsDigit(e.KeyChar))
{
}
else if (e.KeyChar.ToString() == "\b")
{
if (textBox1.Text.Length > 0)
{
textBox1.Text.Remove(textBox1.Text.Length - 1);
}
}
else
{
// Swallow this invalid key and beep
e.Handled = true;
// MessageBeep();
}
}
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsDigit(e.KeyChar))
{
}
else if (e.KeyChar.ToString() == "\b")
{
if (textBox1.Text.Length > 0)
{
textBox1.Text.Remove(textBox1.Text.Length - 1);
}
}
else
{
// Swallow this invalid key and beep
e.Handled = true;
// MessageBeep();
}
}
private void button1_Click(object sender, EventArgs e)
{
int pocetProdanehoZbozi = Convert.ToInt32(textBox1.Text);
if (pocetProdanehoZbozi > r._pocetZbozi)
{
MessageBox.Show("tolik zobží není ");
}
else
{
pokladna.ProdaneZbozi(z, pocetProdanehoZbozi);
r.OdebratZRegalu(pocetProdanehoZbozi);
AktualizaceOkna();
}
}
private void AktualizaceOkna()
{
panel1.Refresh();
label1.Text = Convert.ToString(pokladna._stavPenez);
}
private void button2_Click(object sender, EventArgs e)
{
int pocetKoupenehoZbozi = Convert.ToInt32(textBox2.Text);
pokladna.KoupeneZbozi(z, pocetKoupenehoZbozi);
r.PridatDoRegalu(pocetKoupenehoZbozi);
AktualizaceOkna();
}
private void panel1_Paint(object sender, PaintEventArgs e)
{
int x = 0;
int y = 0;
Graphics kp = e.Graphics;
for (int i = 0; i < r._pocetZbozi; i++)
{
if(x >100)
{
x = 0;
y += 10;
}
kp.DrawRectangle(Pens.Red, x, y, 5, 5);
x += 10;
}
}
}
public class Zbozi
{
public int _cenaZbozi { private set; get; }
public Zbozi(int cenaZbozi)
{
_cenaZbozi = cenaZbozi;
}
}
public class Pokladna
{
public int _stavPenez { private set; get; }
public Pokladna(int stavPenez)
{
_stavPenez = stavPenez;
}
public void ProdaneZbozi(Zbozi z, int pocetProdanehoZbozi)
{
_stavPenez += z._cenaZbozi * pocetProdanehoZbozi;
}
public void KoupeneZbozi(Zbozi z, int pocetProdanehoZbozi)
{
_stavPenez -= z._cenaZbozi * pocetProdanehoZbozi;
}
}
public class Regal
{
public int _pocetZbozi { private set; get; }
public Regal(int pocetZbozi)
{
_pocetZbozi = pocetZbozi;
}
public void PridatDoRegalu(int pocetZbozi)
{
_pocetZbozi += pocetZbozi;
}
public void OdebratZRegalu(int pocetZbozi)
{
_pocetZbozi -= pocetZbozi;
}
}
Nemáš vůbec zač, kdyby si chtěl něco poradit nebo se na něco zeptat napiš to sem. Příjdou sem i kolegové, co budou mít lepší nápady než já
Zobrazeno 7 zpráv z 7.