#03wpfduzezadanieuczniowie
Opis Przykładowe większe zadanie WPF: dodawanie uczniów, liczenie średniej i wyświetlanie listy.
#MainWindow.xaml
XML<Window x:Class="Uczniowie.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Uczniowie" Height="400" Width="500">
<StackPanel Margin="20">
<TextBlock Text="Dodaj ucznia" FontSize="24" Margin="0 0 0 15"/>
<TextBox x:Name="ImieTextBox" Margin="0 0 0 10" Text="Kuba"/>
<TextBox x:Name="OcenaTextBox" Margin="0 0 0 10" Text="5"/>
<Button Content="Dodaj ucznia" Click="Dodaj_Click" Margin="0 0 0 10"/>
<TextBlock x:Name="InfoTextBlock" Margin="0 0 0 10"/>
<ListBox x:Name="UczniowieListBox" Height="150" Margin="0 0 0 10"/>
<Button Content="Oblicz średnią" Click="Srednia_Click"/>
<TextBlock x:Name="SredniaTextBlock" FontSize="18" Margin="0 10 0 0"/>
</StackPanel>
</Window>
#MainWindow.xaml.cs
CSHARPusing System.Collections.Generic;
using System.Windows;
namespace Uczniowie
{
public partial class MainWindow : Window
{
List<Uczen> uczniowie = new List<Uczen>();
public MainWindow()
{
InitializeComponent();
}
private void Dodaj_Click(object sender, RoutedEventArgs e)
{
string imie = ImieTextBox.Text;
if (!int.TryParse(OcenaTextBox.Text, out int ocena))
{
InfoTextBlock.Text = "Ocena musi być liczbą";
return;
}
if (imie.Length < 2)
{
InfoTextBlock.Text = "Imię jest za krótkie";
return;
}
if (ocena < 1 || ocena > 6)
{
InfoTextBlock.Text = "Ocena musi być od 1 do 6";
return;
}
Uczen nowy = new Uczen(imie, ocena);
uczniowie.Add(nowy);
UczniowieListBox.Items.Add(nowy.Pokaz());
InfoTextBlock.Text = "Dodano ucznia";
}
private void Srednia_Click(object sender, RoutedEventArgs e)
{
if (uczniowie.Count == 0)
{
SredniaTextBlock.Text = "Brak uczniów";
return;
}
double suma = 0;
foreach (Uczen uczen in uczniowie)
{
suma += uczen.Ocena;
}
double srednia = suma / uczniowie.Count;
SredniaTextBlock.Text = "Średnia ocen: " + srednia.ToString("0.00");
}
}
public class Uczen
{
public string Imie { get; set; }
public int Ocena { get; set; }
public Uczen(string imie, int ocena)
{
Imie = imie;
Ocena = ocena;
}
public string Pokaz()
{
return Imie + " - ocena: " + Ocena;
}
}
}