Fizyka szkoła podstawowa
Fizyka: wzory, prawa i teoria. Rozwiązania zadań z omówieniem

Rozwązanie zadania:

Struktury i listy w Visual Studio C#. Część 1

Czym jest struktura danych? Struktura danych to rozbudowany typ wartościowy, który pozwala przy pomocy jednej zmiennej przechowywać wiele zmiennych o różnych wartościach.

Struktura danych odpowiada pojedynczemu wierszowi dowolnej tabeli, w której to kolumny są typami danych przechowywanych w takim wierszu tabeli.

Lista, jest to typ danych odpowiadający kolekcji przypisanych elementów. Elementami danych mogą być typy proste, typy złożone- struktury, klasy. Listy ułatwiają pracę ze zbirami danych.

Cel: Napisz aplikację przechowującą dane w postaci: nazwisko, imię, klasa, które są dodawane do listy

struktury i listy danych w c# visual studio

Krok 1. Układ komponentów

  • GroupBox- sztuk 3
  • StatusStrip- sztuk 1
  • Label- sztuk 3
  • Button- sztuk 3
  • TextBox- sztuk 4

Proponowane rozmieszczenie kontrolek przedstawia poniższy rysunek

układ kontrolek c#

W kontrolce StatusStrip uaktywniamy kontrolkę toolStripStatusLabel1

W kontrolce StatusStrip uaktywniamy kontrolkę toolStripStatusLabel1

W tym miejscy będziemy wyświetlać informację o aktualnej ilości wpisanych rekordów danych do listy

Całą listę danych będziemy pokazywać w jednej z kontrolek TextBox. Wybranej kontrolce właściwość pola Dock ustaw na Fill

fill visual studio

Przypisz tryb pracy w układzie wielu linii.

multiline

Dodaj możliwość przewijania zawartości w pionie

scrolbars

Krok 2. Deklarujemy strukturę danych

Deklaracja typu sktrukturalnego odbywa się na podobnych zasadach co innych typów zmiennych. Podajemy nazwę tworzonej struktury oraz nazwę przechowywanych pól, którym nadajemy status publiczny (dzięki czemu będą dostępne spoza struktury)

using System.Windows.Forms;
struct Dane
{
public string nazwisko;
public string imie;
public string klasa;
}

Krok 3. Deklaracja zmiennej strukturalnej i listy

Kod tworzonej aplikacji wymaga zadeklarowania zmiennej utworzonej na zadeklarowanej strukturze danych oraz listy opartej na tej strukturze.

public partial class Form1 : Form
{
private Dane d;
private List<Dane> lista = new List<Dane>();
public Form1()

Po skompilowaniu i uruchomieniu projektu nic nie będzie wykonywane przez program, dopóki nie zaprogramujemy dodawania i wyświetlania elementów listy danych

Krok 4. Funkcja dodająca dane do listy

Napiszemy dwie funkcje pracujące na utworzonej strukturze danych. Jedna z funkcji będzie czyścić zmienną opisaną strukturze, a druga przypisywać jej nowe wartości i dodawać jako kolejny element do listy

private void czyscDana()
{
d.nazwisko = "";
d.imie = "";
d.klasa = "";
}

Funkcja czyscDana() wywołana jest w funkcji dodaj()


private void dodaj()
{
//wyczysc stare dane
czyscDana();
//przypisz nowe dane
d.nazwisko = textBox1.Text;
d.imie = textBox2.Text;
d.klasa = textBox3.Text;
//dodaj do listy
lista.Add(d);
}

Skompiluj program i sprawdź czy nie zawiera błędów kompilacji

Krok 5. Dodajemy kolejne rekordy danych do listy

W zdarzeniu Click przycisku button1 wywołamy funkcje dodającą rekordy danych oraz wyświetlimy informacje o ilości dodanych elementów

private void Button1_Click(object sender, EventArgs e)
{
dodaj();
toolStripStatusLabel1.Text = lista.Count.ToString();
}

Uruchom program i sprawdź jak zmienia się licznik dodawanych elementów

jak zmienia się licznik dodawanych elementów

Krok 6. Wyświetlamy całą zawartość listy

Wyświetlenie na ekranie monitora kolejnych elementów listy wymaga użycia dowolnej pętli, która odczyta zgromadzone dane i pokaże je w wybranej kontrolce TextBox, która będzie podawana do ciała funkcji jako jej parametr

Proponowany kod ma postać


private void pokazListe(TextBox tb)
{
tb.Clear();
for(int i = 0; i < lista.Count;i++)
{
tb.AppendText((i+1).ToString()+"*******************"+ Environment.NewLine);
tb.AppendText(lista[i].nazwisko + Environment.NewLine);
tb.AppendText(lista[i].imie + Environment.NewLine);
tb.AppendText(lista[i].klasa + Environment.NewLine);
}
}

Wywołanie tej funkcji przypiszemy do zdarzenia Click przycisku button2

private void button2_Click(object sender, EventArgs e)
{
pokazListe(textBox4);
}

Skompiluj program i sprawdź efekt działania

pokazListe(TextBox tb)

Ćwiczenie sprawdzające: Dopisz funkcję czyszczącą pola edycyjne


Dobra książka

Zobacz przepis na wyśmienite gofry