Języki i metodologia programowania.

 

Ćwiczenie 11

 

Programowanie w języku C#

Opis zadania

Wstęp

W trakcie laboratorium stworzymy interfejs w systemie Windows do obsługi kont bankowych, które zrealizowaliśmy w trakcie Ćwiczenia 9 i 10.

Zadania do wykonania

Cel

Celem laboratorium jest zapoznanie się z możliwościami pisania aplikacji w systemie Windows za pomocą języka C#.

Zadania do wykonania

1.      Uruchomić Microsoft Visual Studio .NET. Ze strony startowej wybrać New Project. Wybrać następujące parametry projektu:

Project types:   Visual C# Projects
Tamlates:         Windows Application
Name:              TestKontaWin
Location:          swój katalog domowy
Create directory for solution

Zostanie utworzony nowy project z pustą formą o nazwie Form1.

2.      Należy pobrać ze strony WWW: pliki KontoBankowe.cs. Pobrany program należy zapisać w katalogu nowo utworzonego projektu (~\TestKontaWin).

3.      Należy ustawić właściwości formy Form1. Kliknij na formę i ustaw odpowiednie parametry w oknie Properties: (Name) Ramka, Text Konta Bankowe, Size 382; 263.

4.      Zmień domyślną nazwę klasy. Z menu View wybierz opcję Code (F7). W metodzie Main zmień parametr Application.Run na Ramka().Odpowiednia linijka kodu powinna być zapisana:

Application.Run(new Ramka());

5.      Zmień nazwę pliku z Form1.cs na Ramka.cs. Skompiluj i uruchom program.

6.      Dodaj kontrolki do widoku projektu. Przełącz na Ramka.cs [Design]. Przeciągnij kontrolkę Button z menu Toolbox  na Ramkę. W oknie Properties kliknij właściwości Location i wpisz 0; 0. Następnie ustaw Size na 123; 59. W podobny sposób dodaj jeszcze 4 przyciski pod Button1.

7.      Na prawo od Button1 umieść ComboBox.

8.      Ustaw następujące właściwości elementów formularza:

Kontrolka

Właściwość

Wartość

button1

(Name)
Text
Location
Size

utworz
Utwórz
0; 0
123; 59

button2

(Name)
Text
Location
Size

kasuj
Kasuj
0; 59
123; 59

button3

(Name)
Text
Location
Size

wplata
Wpłata
0; 118
123; 59

button4

(Name)
Text
Location
Size

wyplata
Wypłata
0; 178
123; 59

ComboBox1

(Name)
DropDownStyle
Location
Size

konta
DropDownList
128; 0
248; 24

9.      Skompilować i uruchomić projekt. Po uruchomieniu powinno się otrzymać następujący formularz:

10.  Następnie dodać metody obsługi do poszczególnych klawiszy.

11.  Zacznij od obsługi klawisza Utwórz.

12.  Najpierw dodaj do stworzonego projektu klasę KontoBankowe. W tym celu kliknij prawym klawiszem myszy na TestKontaWin w Solution Explorer. Z menu wybierz Add ® Add Existing Item i otwórz plik KontoBankowe.cs. Klasa KontoBankowe zostanie dołączona do projektu.

13.  Stwórz nową formę RamkaNoweKonto, która będzie służyła do zbierania informacji o tworzonym koncie. W tym celu kliknij prawym klawiszem myszy na TestKontaWin w Solution Explorer. Z menu wybierz Add ® Add New Item, a następnie Categories: Local Project Items, Templates: Windows Form, Name: RamkaNoweKonto.cs.

14.  Ustaw właściwości nowo stworzonego formularza: (Name) RamkaNoweKonto, (Text) Nowe konto, (Size) 296; 162. Do formularza dodaj następujące elementy:

Kontrolka

Właściwość

Wartość

label1

(Name)
Text
Location

typNowegoKonta
Rodzaj konta
0; 8

ComboBox1

(Name)
DropDownStyle
Location
Size

rodzajKonta
DropDownList
80; 0
205; 21

label2

(Name)
Text
Location

saldo
Saldo
0; 49

TextBox1

(Name)
Text
Location
Size

stan
(wartość pusta)
80; 42
205; 20

button1

(Name)
Text
Location
Size

dodaj
Dodaj
12; 87
92; 39

button2

(Name)
Text
Location
Size

anuluj
Anuluj
174; 87
92; 39

 

Po ustawieniu powyższych wartości ramka powinna mieć postać:

15.  Przełączyć na edycję kodu formy RamkaNoweKonto. Przed konstruktorem dodać pole prywatne typu Ramka o nazwie ramkaGlowna, które stworzy połączenie z ramką nadrzędną. Dodać do konstruktora klasy parametr Ramka r, a wewnątrz konstruktora instrukcję przypisania polu ramkaGlowna wartości r. Następnie dodać do klasy metodę Reset (private void) inicjującą formularz zbierania informacji o koncie.

16.  Do stworzonej metody Reset dodać instrukcję inicjujące wypełnienie listy kombinowanej rodzajKonta

rodzajKonta.Items.Clear();

rodzajKonta.Items.Add("Oszczędnościowe");
rodzajKonta.Items.Add("Bieżące");

 

A następnie linię inicjującą wartość początkową pola tekstowego:

 

stan.Text="0";

17.  Stworzoną metodę wywołać w konstruktorze, który po wykonaniu wszystkich operacji powinien mieć postać:

public RamkaNoweKonto(Ramka r)

                        {

                                    InitializeComponent();

                                   ramkaGlowna = r;

                        Reset();
            }

18.  Dodać metodę obsługującą zamykanie ramki. W tym celu przełączyć na widok formularza (RamkaNoweKonto [Design]), a następnie z właściwości wybrać obsługę zdarzeń (Events ). W pole Form Closing wpisać ramkaNoweKontoClosing, zostanie utworzona metoda o tej nazwie. Dodaj do niej następujące instrukcje:

DialogResult key = MessageBox.Show("Jesteś pewny?",

                                               "Potwierdzenie",MessageBoxButtons.YesNo,

                                               MessageBoxIcon.Question);
            e.Cancel = (key == DialogResult.No);

19.  Dodać metodę obsługującą przycisk Anuluj. W widoku formularza kliknąć na właściwy przycisk. We właściwościach wybrać obsługę zdarzeń, a następnie w polu Click wpisać anulujClick. Zostanie utworzona metoda o tej nazwie. Do metody dodać instrukcję zamykającą formę:

this.Close();

20.  Dodać metodę obsługującą przycisk Dodaj. W tym celu zdarzenie Click powinno zostać obsłużone przez metodę dodajClick. Zawartość metody powinna być następująca:

try

                                    {

                                               KontoBankowe noweKonto = new KontoBankowe();

                                               double tDouble = double.Parse(stan.Text);

                                               noweKonto.Ustaw(tDouble, rodzajKonta.Text);

                                               ramkaGlowna.dodajKonto(noweKonto);

                                               this.Close();

                                   }

                        catch(System.FormatException exception)

                                   {

                                               MessageBox.Show("Złe dane:\n"+exception, "Błąd",

                                                           MessageBoxButtons.OK);

                                   };

21.  Dodać obsługę stworzonego formularza do przycisku Utwórz z formularza Ramka. W tym celu wybrać obsługę zdarzeń z własności przycisku Utwórz i ustawić obsługę Click na utworzClick. Wewnątrz metody stworzyć nowy obiekt t klasy RamkaNowegoKonta korzystając z konstruktora z parametrem oznaczającym bieżącą ramkę. Dla stworzonego obiektu wywołać metodę ShowDialog(), która wyświetli formularz do zbierania danych. Właściwe linie powinny mieć postać:

RamkaNoweKonto t = new RamkaNoweKonto(this);
t.ShowDialog();

22.  Do klasy Ramka dodać metodę publiczną metodę dodajKonto, która doda nowo utworzone konto (parametr KontoBankowe konto) do listy kombinowanej. Metoda powinna zawierać instrukcję:

konta.Items.Add(konto);

Aby zapewnić poprawne wyświetlanie nowego elementu ustaw własność DisplayMember listy kombinowanej konta na Wyswietl (metoda z klasy KontoBankowe umożliwiająca wyświetlenie obiektu tej klasy).

23.  Skompilować program, poprawić ewentualne błędy i uruchomić. Sprawdzić, czy można dodać nowe konta do listy kombinowanej.

24.  Dodać kasowanie konta do przycisku Kasuj. Ustawić obsługę zdarzenia Click tego przycisku na metodę kasujClick. Wewnątrz metody zadeklaruj zmienną typu KontoBankowe, której wartość zostanie odczytana z listy kombinowanej konta przy użyciu własności SelectedItem. Następnie, jeżeli istnieje wskazane konto użytkownik powinien zostać zapytany o potwierdzenie usunięcia konta, a w przypadku odpowiedzi twierdzącej konto powinno być usunięte z listy kombinowanej. Właściwy kod powinien mieć postać:

KontoBankowe konto = (KontoBankowe) konta.SelectedItem;

                        if( konto != null )

                                   {

                                               DialogResult key = MessageBox.Show("Jesteś pewny?",

                                                           "Potwierdzenie",MessageBoxButtons.YesNo,

                                                           MessageBoxIcon.Question);

                                               if( key == DialogResult.Yes)

                                               {

                                                           konta.Items.Remove(konto);

                                               }

                                   }

25.  Samodzielnie stworzyć obsługę przycisków Wpłata i Wypłata.

26.  Ostatnim etapem ćwiczenia jest dokumentacja przeprowadzonych czynności.