using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections; //Arraylist
namespace Automobil
{
public partial class Form1 : Form
{
Auto fahrzeug;
PKW pkw_neu;
LKW lkw_neu;
ArrayList arrayList = new ArrayList();
public Form1()
{
InitializeComponent();
//Instanz einer Klasse durch Aufruf des Konstruktor
fahrzeug = new Auto();
pkw_neu = new PKW();
lkw_neu = new LKW();
}
//Tanken
private void cmd_tanken_Click(object sender, EventArgs e)
{
fahrzeug.tanken(Convert.ToDouble(txt_tanken.Text));
}
//Kilometer gefahren
private void cmd_fahren_Click(object sender, EventArgs e)
{
fahrzeug.fahren(Convert.ToInt32(txt_verbrauch.Text));
fahrzeug.verbrauch_durch();
}
//Abgespeichertes Fahrzeug anzeigen
private void cmd_anzeigen_Click(object sender, EventArgs e)
{
/*lbl_kilometer.Text = "Kilometerstand: " + fahrzeug.kilometerstand + " km";
fahrzeug.verbrauch_durch();
lbl_tankinhalt.Text = "Verbrauch: " + fahrzeug.verbrauch + " l/100km";
lbl_verbrauch.Text = "Tankinhalt: " + fahrzeug.tankinhalt + " Liter"; */
//Jedes Object in arrayliste durchsuchen
foreach (Object x in arrayList)
{
if (x.GetType() == typeof(PKW))
{
try
{
PKW pkw_puffer = (PKW)x;
if (pkw_puffer.Name == autoliste.SelectedItem.ToString())
{
lbl_sitzplaetze.Visible = true;
txt_sitzplaetze.Visible = true;
lbl_achsen.Visible = false;
txt_achsen.Visible = false;
txt_name.Text = pkw_puffer.Name;
txt_sitzplaetze.Text = Convert.ToString(pkw_puffer.Sitzplaetze);
txt_kilometerstand.Text = Convert.ToString(pkw_puffer.kilometerstand);
txt_tanken.Text = Convert.ToString(pkw_puffer.tankinhalt);
txt_verbrauch.Text = Convert.ToString(pkw_puffer.verbrauch);
}
}
catch (Exception ex)
{
MessageBox.Show("Bitte Fahrzeug in Liste auswählen!\n" + ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
else if (x.GetType() == typeof(LKW))
{
LKW lkw_puffer = (LKW)x;
try
{
if (lkw_puffer.Name == autoliste.SelectedItem.ToString())
{
lbl_achsen.Visible = true;
txt_achsen.Visible = true;
lbl_sitzplaetze.Visible = false;
txt_sitzplaetze.Visible = false;
txt_name.Text = lkw_puffer.Name;
txt_achsen.Text = Convert.ToString(lkw_puffer.Achsen);
txt_kilometerstand.Text = Convert.ToString(lkw_puffer.kilometerstand);
txt_tanken.Text = Convert.ToString(lkw_puffer.tankinhalt);
txt_verbrauch.Text = Convert.ToString(lkw_puffer.verbrauch);
}
}
catch (Exception ex)
{
MessageBox.Show("Bitte Fahrzeug in Liste auswählen!\n" + ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
}
private void cmd_speichern_Click(object sender, EventArgs e)
{
if (rb_lkw.Checked)
{
//Wenn falsche Werte eingegeben werden, erscheint ein Fehler
try
{
lkw_neu = new LKW();
lkw_neu.Name = txt_name.Text;
lkw_neu.Achsen = Convert.ToInt32(txt_achsen.Text);
lkw_neu.kilometerstand = Convert.ToInt32(txt_kilometerstand.Text);
lkw_neu.tankinhalt = Convert.ToInt32(txt_tanken.Text);
lkw_neu.verbrauch = Convert.ToDouble(txt_verbrauch.Text);
autoliste.Items.Add(lkw_neu.Name);
arrayList.Add(lkw_neu);
}
catch (Exception ex)
{
MessageBox.Show("Fehler\n" + ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
else if (rb_pkw.Checked)
{
//Wenn falsche Werte eingegeben werden, erscheint ein Fehler
try
{
pkw_neu = new PKW();
pkw_neu.Name = txt_name.Text;
pkw_neu.Sitzplaetze = Convert.ToInt32(txt_sitzplaetze.Text);
pkw_neu.kilometerstand = Convert.ToInt32(txt_kilometerstand.Text);
pkw_neu.tankinhalt = Convert.ToInt32(txt_tanken.Text);
pkw_neu.verbrauch = Convert.ToDouble(txt_verbrauch.Text);
autoliste.Items.Add(pkw_neu.Name);
arrayList.Add(pkw_neu);
}
catch (Exception ex)
{
MessageBox.Show("Fehler: " + ex.Message);
}
}
else
{
MessageBox.Show("Bitte einen Autotypen wählen!", "",MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
private void rb_pkw_CheckedChanged(object sender, EventArgs e)
{
lbl_sitzplaetze.Visible = true;
txt_sitzplaetze.Visible = true;
lbl_achsen.Visible = false;
txt_achsen.Visible = false;
}
private void rb_lkw_CheckedChanged(object sender, EventArgs e)
{
lbl_achsen.Visible = true;
txt_achsen.Visible = true;
lbl_sitzplaetze.Visible = false;
txt_sitzplaetze.Visible = false;
}
private void label2_Click(object sender, EventArgs e)
{
}
}
}
####################################
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Automobil
{
public class Auto
{
public Auto()
{}
public int kilometerstand =0;
public double verbrauch =0;
public double tankinhalt =0;
public string Name;
public void tanken(double tankfuellmenge)
{
tankinhalt = tankinhalt + tankfuellmenge;
}
public void fahren(int kilometer_gefahren)
{
kilometerstand = kilometerstand + kilometer_gefahren;
tankinhalt = tankinhalt - (verbrauch/100)*kilometer_gefahren;
}
public void verbrauch_durch()
{
verbrauch = tankinhalt / kilometerstand;
}
}
}
###################################
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Automobil
{
public class LKW : Auto
{
public int Achsen;
}
}