Inżynieria Programowania - Lab1

Transkrypt

Inżynieria Programowania - Lab1
Inżynieria Programowania
Laboratorium 1
Wprowadzenie do Visual Studio i C#
Paweł Paduch [email protected]
08-03-2013
Rozdział 1
Wstęp
1.1
Na początek
Pierwsze zajęcia laboratoryjne z Inżynierii Programowania mają charakter
wprowadzający. Na początku studenci po otrzymaniu od prowadzącego loginów i haseł zostaną poproszeni o zalogowanie się. Pierwsze logowanie powinno
odbywać się pod systemem Windows. W okienku logowania należy zaznaczyć
„Zaloguj do: KIN”. Po wprowadzeniu pierwszy raz hasła należy hasło zmienić
na swoje indywidualne. Hasło należy zapamiętać (lub nawet zapisać) gdyż indywidualny login i hasło będą używane przez cały semestr. Zalogowani studenci
mają swoją przestrzeń na dysku sieciowym Z: tam też proszę zamieszczać swoje
prace.
1.2
Uczestnictwo
Zajęcia laboratoryjne są obowiązkowe. Każdy student ma obowiązek wpisać
się na listę obecności, co będzie potwierdzeniem jego uczestnictwa na zajęciach.
Spóźnienie powyżej 15min traktowane jest jako nieobecność. Odrabiać można
jedynie nieobecności pisemnie usprawiedliwione (np. zwolnienie lekarskie, pismo urzędowe). Usprawiedliwienie należy okazać niezwłocznie (pierwszy zjazd
po okresie nieobecności) i umówić się na termin odróbczy. Usprawiedliwienia
typu: „musiałem być w pracy”, „uciekł mi autobus/pociąg/taksówka”, „źle się
czułem”, „nie miałem z kim dziecka zostawić” nie będą honorowane. Zgodnie
z regulaminem studiów „Nieobecność studenta nawet usprawiedliwiona, na więcej niż 1/3 zajęć, może być podstawą do niezaliczenia tych zajęć.” Kolejne 3
nieobecności będą zgłaszane do dziekana w celu weryfikacji listy studentów.
1.3
Zasady zaliczenia
Na każdych zajęciach laboratoryjnych studenci wykonują zadania przedstawione przez prowadzącego. Zadania te są oceniane w skali od 0 do 5 punktów. Po każdych laboratoriach student powinien przesłać sprawozdanie z zajęć. Sposób przekazania i termin ustala prowadzący. Za prawidłowe sprawozdanie student może otrzymać maksymalnie 1 punkt. Podczas zajęć mogą od-
1
bywać się sprawdziany weryfikujące nabytą wiedzę. Ocena ze sprawdzianów to
około 50% całkowitej oceny. Dla przykładu przy 6 zajęciach mamy 6*5(zajęcia)+6*1(sprawozdania)+36(sprawdziany)=72pkt. przy 8 zajęciach mieli byśmy
punktów 96. Próg zaliczenia to połowa możliwych do uzyskania punktów. W wyjątkowych sytuacjach maksymalna liczba punktów może ulec zmianie (np. niemożność przeprowadzenia zajęć z powodu awarii sprzętu).
1.4
Poprawy
Student, który nie uzyskał zaliczenia w trakcie trwania semestru może się
o nie ubiegać dwukrotnie w trakcie trwania sesji egzaminacyjnej, w tym raz
podczas sesji poprawkowej. Poprawa będzie polegała na napisaniu sprawdzianu
(przynajmniej na połowę punktów) oraz wykonaniu części praktycznej.
1.5
Moodle
Każdy student powinien mieć założone konto na wydziałowej platformie edukacyjnej http://weaii-moodle.tu.kielce.pl/ Hasła do kursu poda prowadzący.
1.6
zasady korespondencji
Zasady korespondencji opisałem pod adresem
http://achilles.tu.kielce.pl/Members/ppaduch/ogolne-zasady-korespondencji-mailowej/
Należy przede wszystkim pamiętać o:
• prawidłowej konfiguracji programu pocztowego tak aby w polu nadawca
widniało imię i nazwisko
• zamieszczeniu tematu maila łącznie z podaniem nazwy grupy np. 1ID11A
• podaniu treści maila wraz z podpisem
1.7
Sprawozdania
Po każdych zajęciach laboratoryjnych należy przesłać sprawozdanie. Czas na
oddanie sprawozdania jest do końca poniedziałku, czyli do godziny 23:59:59,99.
Sprawozdanie powinno być w formie .odt (plik Open/Libre Office). W sprawozdaniu umieszczamy jedynie fragmenty kodu (nie przekraczające strony). Kod o
większej objętości należy wysłać jako osobne załączniki. Sprawozdanie ma być
formą dokumentu co zrobione zostało na zajęciach, nie pracą domową. Punkty,
które nie zostały wykonane na zajęciach takie też pozostają w sprawozdaniu.
1.8
Prace domowe
Jeżeli na kolejne zajęcia jest zadana praca domowa (np. przemyśleć projekt bazy danych, spisać wymagania projektu itp.), należy ją także przesłać na
maila zgodnie z zasadami korespondencji najpóźniej do czwartku bezpośrednio
poprzedzającego zjazd.
2
1.9
Zasady podczas pisania sprawdzianów
Sprawdziany będą przeprowadzane na platformie moodle. Maksymalny czas
przeznaczony na sprawdzian zależny będzie od jego zawartości, zwykle kilka
minut. Na pytania opisowe należy udzielać odpowiedzi precyzyjnie (sprawdzane
są z automatu). Pytania testowe są wielokrotnego wyboru. Nie ma punktów
ujemnych.
Przed rozpoczęciem testu należy:
• wyłączyć i schować telefony komórkowe
• usunąć z uszu, szyi czy głowy i schować wszelkiego rodzaju słuchawki
(osoby niedosłyszące proszę zgłosić fakt posiadania aparatu słuchowego,
na czas testu aparat ten nie będzie potrzebny)
• usunąć wszystkie zbędne rzeczy z biurka (portfele, długopisy, kartki, zeszyty, torebki, kalkulatory, napoje, jedzenie, maskotki itp.).
• zamknąć lub odłożyć w miejsce niedostępne wszelkie torby i plecaki.
Podczas testu nie jest dozwolone:
• korzystanie z Internetu (za wyjątkiem strony moodle)
• korzystanie z innych aplikacji niż przeglądarka internetowa (np. komunikatory, terminale, programy LibreOffice, kalkulatory itp.)
• korzystanie z telefonów komórkowych
• korzystanie z kalkulatorów
• używanie pamięci przenośnych
• używanie rejestratorów dźwiękowych jak i wizyjnych
• udostępnianie zasobów komputera swojego lub korzystanie z zasobów innych komputerów
• odwracanie się, zerkanie na sąsiedni monitor, rozglądanie lub rozmawianie
• używanie ściąg
W przypadku naruszenia powyższych zasad lub przejawu innego nieuczciwego
zachowania w trakcie sprawdzianu, student może otrzymać ocenę 0 w trybie
natychmiastowym bez możliwości poprawy w późniejszym terminie!
1.10
Materiały pomocniczne
Do zajęć przydatne mogą być materiały udostępniane przez prowadzących
wykłady. Książki związane z tematyką UML. Np. „UML przewodnik użytkownika” autorstwa Booch G., Rumbaugh J., Jacobson I, „Inżynieria systemów informacyjnych” Beynon-Davies P. „Język C# 2010 i platforma .NET“ Andrew
Troelsena.
3
Rozdział 2
Uruchomie VS
Po zalogowaniu się z menu start odnajdujemy program Microsoft Visual Studio 2010. Przy pierwszym uruchomieniu poproszeni zostaniemy o wybór preferowanego języka, będzie nim C#.
Z górnego menu wybieramy: File->New Project. W okienku jak na rysun-
Rysunek 2.1: Okienko wybierania nowego projektu
ku 2.1 zaznaczamy Visual C#->Windows Windows Form Application. Na dole
wpisujemy nazwę projektu Lab1, potwierdzamy OK.
Utworzony zostanie prosty formularz bez kontrolek. Już teraz program można skompilować i zobaczyć jak działa
Kompilacja i uruchomienie ctrl+F5 lub F5 - w trybie debugowania. Formatka
jak i inne kontrolki mają swoje właściwości między innymi nazwa wyświetlana
czy nazwa obiektu, rozmiar, kolor, położenie czy akcje wywoływane z chwilą
pojawienia się różnych eventów. Właściwości domyślnie znajdziemy z prawej
strony. (rys. 2.2. Gdyby okienko było zamknięte, można je włączyć klikając
4
prawym klawiszem myszy i wybierając z menu kontekstowego Properties.
Rysunek 2.2: Okienko właściwości
We właściwościach formatki zmienimy Text na Laboratorium 1 Name na MainForm. Gdy klikniemy dwukrotnie w formatkę otworzy nam się kod programu
z wygenerowaną metodą podpiętą pod event wywoływany podczas ładowania
danej formatki MainForm_Load. Tu można umieścić kod wykonywany gdy formatka jest ładowana.
Listing 2.1: Form1.cs
1
2
3
4
5
6
7
8
using
using
using
using
using
using
using
using
System
System
System
System
System
System
System
System
;
.
.
.
.
.
.
.
Collections . Generic ;
ComponentModel ;
Data ;
Drawing ;
Linq ;
Text ;
Windows . Forms ;
9
10
11
12
13
14
namespace L a b 1
{
public partial c l a s s MainForm : Form
{
public MainForm ()
5
{
15
InitializeComponent () ;
16
}
17
18
p r i v a t e void MainForm_Load ( o b j e c t sender ,
{
MessageBox . Show ( " Startujemy ! " ) ;
}
19
20
21
22
}
23
24
EventArgs e )
}
W linii 21 wywołujemy okienko dialogowe z informacją Startujemy. Wracamy
do zakładki z projektem formatki ctrl+tab lub klikamy odpowiednią zakładkę
na górze ekranu. Teraz dodamy analogiczne okienko podczas zamykania naszej
formatki. W tym celu w okienku właściwości formatki przechodzimy do zakładki Events oznaczonej „piorunkiem”. Tam odnajdujemy FormClosing i klikamy
dwukrotnie w polu obok. Wygeneruje nam się szkielet funkcji w którym możemy
uzupełnić kod wywoływane w momencie zamknięcia.
Listing 2.2: Form1.cs modyfikacja
1
2
3
4
p r i v a t e v o i d M a i n F o r m _ F o r m C l o s i n g ( o b j e c t s e n d e r , ←FormClosingEventArgs e )
{
M e s s a g e B o x . S h o w ( " Kończymy ! " ) ;
}
6
Rozdział 3
Projekt Formatki
We właściwościach formatki ustawić Size na 640;480 Z Toolbox->Menus &
Toolbars wybieramy MenuStrip i umieszczamy na górze formatki. Z Toolbox>Containers wybieramy TabControl i umieszczamy po środku formatki. Wchodzimy we właściwości TabControl1 i wybieramy Dock (Rys. 3.1) a tam zaznaczamy środkowe pole (Fill). W tym momencie obiekt TabControl1 wypełni całą
dostępną przestrzeń w formatce. Odnajdujemy kolekcję TabPages i zmieniamy
nazwy zakładek na Tekst i WWW. Dodajemy do TabControll (na pierwszej zakładce) obiekt RichTextBox. Analogicznie ustawiamy jego właściwości tak by
wypełnił cały dostępny obszar w pierwszej zakładce.
Rysunek 3.1: Wybór zakotwiczenia
Na zakładce WWW wstawiamy kolejno elementy TextBox, Button oraz WebBrowser tak jak na rysunku 3.2.
Zmieniamy tekst guzika na Idź a jego nazwę na buttonIdz. Można sobie
skompilować i uruchomić co jakiś czas aby zobaczyć skutki naszego projektowania. Na uruchomionym programie przejdźmy do zakładki WWW i zmieńmy
rozmiar okienka. Widzimy pewne nieprawidłowości w skalowaniu i rozmieszczeniu elementów. Trzeba to zmienić. Anchor okienka tekstowego ustalamy na
Top,Left,Right, guzika na Top,Right a przeglądarki na Top,Bottom,Left,Right.
Ustalamy w ten sposób, które boki będą rozciągane podczas skalowania okna.
Po kliknięciu w puste okienko w górnym menu formatki, możemy wpisać
nazwę elementu menu. Wpiszmy tam Plik. Jak widać mamy teraz możliwość
dodania kolejnych elementów podmenu Plik albo dodanie kolejnych elementów
menu. Dodajmy w podmenu Plik jeszcze Zapisz. Gdy wejdziemy we właściwości plikToolStripMenuItem odszukamy kolekcje DropDownMenuItem możemy ją
7
Rysunek 3.2: Zakładka WWW1
otworzyć do edycji klikając na guziczek z trzema kropkami.
Rysunek 3.3: Edytor kolekcji elementów menu
Jak widać na rysunku 3.3 można tam też dodać separatory czy pola typu
Combo. Dodajmy jeden separator a pod nim jeszcze jedną pozycję Zakończ.
1 Okienko
jest celowo pomniejszone aby lepiej zmieściło się w tym dokumencie.
8
Rozdział 4
Obsługa
Teraz przejdziemy do oprogramowania zdarzeń. Chcemy aby na pierwszej
zakładce tekst można było odczytać dowolny plik tekstowy. Plik ten będzie
można także zapisać. Pod pozycję Plik->Otwórz podpinamy kod za pomocą
którego tworzymy okno dialogowe otwierania pliku OpenFileDialog. Następnie
po wyborze ścieżki podany plik jest ładowany do obiektu richTextBox1. Tak jak
na listingu 4.1.
Listing 4.1: Otwieranie pliku
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
p r i v a t e v o i d o t w o r z T o o l S t r i p M e n u I t e m _ C l i c k ( o b j e c t s e n d e r , ←EventArgs e )
{
O p e n F i l e D i a l o g o f d = new O p e n F i l e D i a l o g ( ) ; // s t w ó r z ←okno d i a l o g o w e
o f d . F i l t e r = " Tekstowe ( t x t ) | ∗ . t x t " ; // ustaw f i l t r ←plików
i f ( o f d . S h o w D i a l o g ( ) == D i a l o g R e s u l t . O K ) // pokaż okno ←dialogowe
{
try
{
r i c h T e x t B o x 1 . L o a d F i l e ( o f d . F i l e N a m e , ←RichTextBoxStreamType . PlainText ) ;
}
catch ( E x c e p t i o n ex )
{
M e s s a g e B o x . S h o w ( " Uuups ! Błąd p o d c z a s ←o t w i e r a n i a p l i k u : " + ex . M e s s a g e ) ;
}
}
}
Podobną czynność wykonujemy w celu zapisu. Tym razem wykorzystamy
okno dialogowe SaveFileDialog. Widzimy też konstrukcję try catch ponieważ
przy operacja odczytu i zapisu często możemy napotkać błędy. W obu listingach
możemy też zauważyć, że klasa SaveFileDialog oraz LoadFileDialog posiadają
filtr umożliwiający wybór plików z odpowiednim rozszerzeniem.
Listing 4.2: Zapis do pliku pliku
1
2
p r i v a t e v o i d z a p i s z T o o l S t r i p M e n u I t e m _ C l i c k ( o b j e c t s e n d e r , ←EventArgs e )
{
9
S a v e F i l e D i a l o g s f d = new S a v e F i l e D i a l o g ( ) ;
s f d . F i l t e r = " Tekstowe ( t x t ) | ∗ . t x t " ; // ustaw f i l t r ←plików
i f ( s f d . S h o w D i a l o g ( ) == D i a l o g R e s u l t . O K ) // pokaż okno ←dialogowe
{
try
{
r i c h T e x t B o x 1 . S a v e F i l e ( s f d . F i l e N a m e , ←RichTextBoxStreamType . PlainText ) ;
}
catch ( E x c e p t i o n ex )
{
M e s s a g e B o x . S h o w ( " Uuups ! Błąd p o d c z a s ←zapisywania p l i k u : " + ex . M e s s a g e ) ;
}
}
3
4
5
6
7
8
9
10
11
12
13
14
15
16
}
Na drugiej zakładce zrobimy prymitywną przeglądarkę stron WWW. Oprogramowujemy kliknięcie guzika Idź tak jak to pokazane w listingu 4.3.
Listing 4.3: Wczytanie strony o podanym adresie
1
2
3
4
5
6
7
8
9
10
11
p r i v a t e void buttonIdz_Click ( o b j e c t sender , EventArgs e )
{
try
{
webBrowser1 . Navigate ( textBox1 . Text ) ;
}
catch ( E x c e p t i o n ex )
{
M e s s a g e B o x . S h o w ( " Błąd p r z e g l ą d a r k i : " + e x . M e s s a g e ) ;
}
}
W linii 5 przekazujemy tekst wpisany w textBox1 do metody Navigate obiektu
webBrowser1. Jeżeli podany adres istnieje naszym oczą ukaże się podana strona.
Do oprogramowania została opcja w menu Zakończ. Przydałoby się dorobić
funkcjonalność polegająca na tym, że strona jest otwierana po wciśnięciu klawisza Enter. Można też wprowadzić ograniczenia na rozmiar minimalny formatki.
Zaznajomiliśmy się ze środowiskiem Visual Studio C#. Kolejne zadanie należy wykonac samodzielnie. Stworzyć trzecią zakładkę i nazwać ją kalkulator.
Na niej umieścić 2 pola typu TextBox, 2 pola typu Label (zwykły napis) oraz 4
guziki. Pola powinny być ułożone w jednej lini w kolejności TB L TB L. Pod
nimi guziki. Pola tekstowe będą służyły do wpisania liczb pierwsze pole Label
będzie miało 4 teksty w zależności od tego jaki guzik naciśniemy (+,-,*,/). Drugi
label będzie miał tekst „=” Guziki będą oznaczone odpowiednio +,-,* i /. Powinny być tak oprogramowane, żeby wykonały operacje jakie na nich widniejąc
biorąc jako parametry liczby wpisane w okienka, wpisały do pierwszego Labela
rodzaj operacji oraz wpisały wynik do drugiego Labela. Należy też przechwycić
wyjątki.
10

Podobne dokumenty