Spis treści. Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7



Podobne dokumenty
Spis treści WSTĘP CZĘŚĆ I. PASCAL WPROWADZENIE DO PROGRAMOWANIA STRUKTURALNEGO. Rozdział 1. Wybór i instalacja kompilatora języka Pascal

Programowanie strukturalne i obiektowe : podręcznik do nauki zawodu technik informatyk / Adam Majczak. Gliwice, cop

Programowanie w C++ Wykład 6. Katarzyna Grzelak. 1 kwietnia K.Grzelak (Wykład 6) Programowanie w C++ 1 / 43

Wprowadzenie do programowania

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania interfejsu automatyzacji OLE w systemie CAx

Zapisywanie algorytmów w języku programowania

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Programowanie i techniki algorytmiczne

Podstawy programowania. Wprowadzenie

Szablony funkcji i szablony klas

Wyjątki. Streszczenie Celem wykładu jest omówienie tematyki wyjątków w Javie. Czas wykładu 45 minut.

Implementacja aplikacji sieciowych z wykorzystaniem środowiska Qt

Wykład 2 Składnia języka C# (cz. 1)

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Temat 20. Techniki algorytmiczne

Programowanie Obiektowe GUI

Informatyka, I stopień. Programowanie (PRO300.2)

Programowanie w C++ Wykład 7. Katarzyna Grzelak. 23 kwietnia K.Grzelak (Wykład 7) Programowanie w C++ 1 / 40

Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki

Programowanie obiektowe - 1.

Zacznij Tu! Poznaj Microsoft Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe

Dokumentacja końcowa projektu z ZPR

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013

Wyjątki (exceptions)

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Języki C i C++ Wykład: 2. Wstęp Instrukcje sterujące. dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Szablony funkcji i klas (templates)

Utworzenie pliku. Dowiesz się:

Wykład 8: klasy cz. 4

Od programowania wizualnego do tekstowego

Programowanie i struktury danych

Działanie systemu operacyjnego

lekcja 8a Gry komputerowe MasterMind

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

Zad. 3: Rotacje 2D. Demonstracja przykładu problemu skończonej reprezentacji binarnej liczb

Król Łukasz Nr albumu:

Ewolucja projektowania aplikacji w PHP na bazie frameworka Symfony 2

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład 5 Wybrane zagadnienia programowania w C++ (c.d.)

WYKORZYSTANIE PORTALU DYDAKTYCZNEGO W NAUCE JĘZYKÓW PROGRAMOWANIA

1 Podstawy c++ w pigułce.

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

Wskaźniki i dynamiczna alokacja pamięci. Spotkanie 4. Wskaźniki. Dynamiczna alokacja pamięci. Przykłady

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Zad. 4: Rotacje 2D. 1 Cel ćwiczenia. 2 Program zajęć. 3 Opis zadania programowego

Szablony klas, zastosowanie szablonów w programach

INFORMATYKA TECHNICZNA Metody wprowadzania obiektów w programie AutoCAD za pomocą języka AutoLISP

Pracownia internetowa w każdej szkole (edycja Jesień 2007)

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Instrukcja automatycznego tworzenia pozycji towarowych SAD na podstawie danych wczytywanych z plików zewnętrznych (XLS).

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Język programowania C C Programming Language. ogólnoakademicki

Kryteria oceniania z Technologii Informacyjnej

dr inż. Jarosław Forenc

Programowanie MorphX Ax

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

2.2 Opis części programowej

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 5. Karol Tarnowski A-1 p.

Wprowadzenie do biblioteki klas C++

Podstawy Programowania 2

Wykład z Technologii Informacyjnych. Piotr Mika

16) Wprowadzenie do raportowania Rave

Algorytmika i pseudoprogramowanie

Rok akademicki: 2016/2017 Kod: JFT s Punkty ECTS: 5. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Działanie systemu operacyjnego

Pliki. Operacje na plikach w Pascalu

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Podstawy programowania. Wykład: 5. Instrukcje sterujące c.d. Stałe, Typy zmiennych c.d. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 7 maja K.Grzelak (Wykład 8) Programowanie w C++ 1 / 31

Tworzenie oprogramowania

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Programowanie w C++ Wykład 6. Katarzyna Grzelak. kwiecień K.Grzelak (Wykład 6) Programowanie w C++ 1 / 40

Wyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

PROGRAMOWALNE STEROWNIKI LOGICZNE

Nazwa wariantu modułu (opcjonalnie): Laboratorium programowania w języku C++

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

Zad. 1: Sterowanie mimika

Pętle. Dodał Administrator niedziela, 14 marzec :27

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Podstawy i języki programowania

Zad. 6: Sterowanie robotem mobilnym

PRZEWODNIK PO PRZEDMIOCIE

Standardy programowania protokołów komunikacyjnych Laboratorium nr 5 komunikacja multicastowa IPv6

Wyjątki. Wyjątki. Bogdan Kreczmer. Katedra Cybernetyki i Robotyki Politechnika Wrocławska

5.4. Tworzymy formularze

Programowanie Obiektowe Ćwiczenie 4

WPF 4.5 : księga eksperta / Adam Nathan. Gliwice, cop Spis treści

Zad. 5: Układ równań liniowych liczb zespolonych

Ćwiczenie 1. Kolejki IBM Message Queue (MQ)

Lekcja : Tablice + pętle

Ćwiczenia laboratoryjne. Oprogramowanie i badanie prostych metod sortowania w tablicach

Działanie systemu operacyjnego

Transkrypt:

Spis treści Wprowadzenie...n...n... 5 Jak korzystać z tej książki?...t... 6 Rozdział 1. Aplikacje konsoli w stylu ANSI C i podstawowe operacje w Visual C++... 7 Podsumowanie...t...t...15 Rozdział 2. Rozdział 3. Rozdział 4. Aplikacje konsoli w stylu ANSI C++, programowanie sekwencyjne w Visual C++...n... 17 Wprowadzanie danych w ruchu programu i rozbieżności w składni ANSI C i ANSI C++...t... 19 Podsumowanie...t...t...26 Style programowania konstruowanie aplikacji zdarzeniowych i obiektowych, firmowe przykłady VC++...n 27 Wprowadzenie...t...t...27 Pętla pobierania wiadomości o zdarzeniach w programie zdarzeniowym...29 Procedury handlery obsługi zdarzeń...i...30 Jak obiekty mogą reagować na komunikaty o zdarzeniach...i...31 Podsumowanie...t...t...42 Ewolucja sposobów tworzenia aplikacji w wizualnym środowisku Windows...43 Wprowadzenie...t...t...43 Zamiana liczb dziesiętnych na dwójkowe...i...44 Wyprowadzanie danych w trybie graficznym z zastosowaniem prostego buforowania...46 Podsumowanie...t...t...53 Rozdział 5. Szablony i obsługa wyjątków...n...n... 55 Wprowadzenie...t...t...55 Obsługa sytuacji wyjątkowych w C++...i...55 Konstruowanie i stosowanie szablonów...i...59 Podsumowanie...t...t...62 Rozdział 6. Wizualne aplikacje dla graficznego środowiska Windows... 63 Zasady programowania zdarzeniowego dla Windows wprowadzenie... 67 Rozbudowa głównej funkcji WinMain()...i...67 Konstrukcja głównej funkcji obsługującej komunikaty...i...69 Obsługa komunikatu WM_PAINT...i...71 Pętla pobierania komunikatów o zdarzeniach od Windows...i...72 Przykładowy, prosty kod aplikacji zdarzeniowej...i...73 Podsumowanie...t...t...89

4 MS Visual C++. Ćwiczenia Rozdział 7. Stosowanie biblioteki klas MFC w Visual C++...n....91 Wprowadzenie: dlaczego i w jaki sposób trzeba modyfikowatć kody generowane przez kreator Visual C++?...t... 93 Klasa Dokument a operacje plikowe...i...93 Podsumowanie...t...t...97 Rozdział 8. VisualStudio.NET ćwiczenia wprowadzające...n... 9 Podsumowanie...t...t... 104 Rozdział 9. Tworzymy aplikacje w środowisku VisualStudio.NET w C# i w C++... 105 Podsumowanie...t...t... 11 Rozdział 10. Konstruowanie wizualnych komponentów sterujących w VisualStudio.NET... 113 Podsumowanie...t...t... 120 Zakończenie...n...n... 121 I co dalej?...t...t...... 121

Rozdział 5. Szablony i obsługa wyjątków Podobnie jak w przypadku bibliotek klas (MFC, OWL, itp.) i bibliotek komponentów wizualnych (np. VCL), producenci kompilatorów C++ często dodają do IDE biblioteki szablonów (templates). W Visual C++ jest to bibliotekaa ATL (Active Template Library), popularną i szeroko dostępną wersją jest STL (Standard Templates Library). Te dość złożone zagadnienia wymagają przed przystąpieniem do ćwiczeń krótkiego wyjaśnienia i wprowadzenia. Wprowadzenie Wykorzystanie szablonów i obsługa sytuacji wyjątkowych EH (Exception Handling) to kolejne dwa elementy, które silnie wpływają na styl programowania i praktyczny sposób konstruowania aplikacji Visual C++. Zrozumienie tych zagadnień jest niezbędne do świadomego i umiejętnego korzystania z możliwości Visual C++. Mechanizmy te najłatwiej wyjaśnić i zademonstrować w najprostszych aplikacjach, dlatego to ostatni rozdział, w którym będziemy się jeszcze posługiwać znakowymi aplikacjami konsoli. W następnych rozdziałach, posiadając już w spory zasób wiedzy, umiejętności i praktycznych doświadczeń w pracy z Visual C++, wykorzystamy to wszystko, by nasze aplikacje umiejętnie wykorzystywały możliwości środowiska Windows. Obsługa sytuacji wyjątkowych w C++ W C++ wyjątek lub sytuacja wyjątkowa to w istocie obiekt, który jest przekazywany (przy okazji wraz z pewnymi informacjami) z tego obszaru w kodzie, gdzie wystąpił problem do tego obszaru w kodzie, który zajmuje się pokojowym rozwiązaniem tego

56 MS Visual C++. Ćwiczenia problemu. Określenie pokojowe rozwiązanie oznacza tu przemyślaną obsługę sytuacji konfliktowej typu: brak pamięci operacyjnej, nie istnieje potrzebny plik dyskowy, próba dzielenia przez zero, itp., która w normalnych warunkach mogłaby spowodować przerwanie działania programu i, co groźniejsze, często utratę danych trudnych do odzyskania i odtworzenia. Rodzaj wyrażenia (obiektu wyjątku) może decydować o tym, która część kodu podejmie próbę rozwiązania konfliktowej sytuacji. Zawartość tak przerzucanego obiektu-wyjątku (ang. throw-n object) może decydować o sposobie powrotu do dalszej pracy aplikacji i o sposobie informowania użytkownika o wystąpieniu i obsłudze sytuacji wyjątkowej. Podstawowe zasady logiki obsługi wyjątków sprowadzają saię do następujących działań: 1. Zidentyfikowanie tych fragmentów kodu, które potencjalniea mogą spowodować wystąpienie sytuacji wyjątkowej i ujęcie ich w bloki typau try (spróbuj). 2. Utworzenie bloków obsługi (dosł.: catch przechwyć) przewidywanych, możliwych sytuacji wyjątkowych. Z technicznego punktu widzenia bloki powinny w kodzie występować bezpośrednio po bloku. Sterowanie zostanie przekazane do bloku tylko wtedy, gdy przewidywana sytuacja wyjątkowa rzeczywiście wystąpi. Przykładowy kod pokazany poniżej ilustruje praktyczne zastosowanie najprostszego, pustego obiektu-wyjątku przeznaczonego do obsługi typowej sytuacji konfliktowej próby zapisania do macierzy elementu, dla którego nie ma przewidzianego miejsca (spoza dopuszczalnego zakresu indeksu-offsetu), co może w praktyce zagrażać przerwaniem pracy aplikacji i utratą danych. Listing 5.1 i rysunek 5.1 przedstawiają prosty przykład obsługi wyjątku. Listing 5.1. Obsługa wyjątku ExHandle1.CPP

Rozdział 5. Szablony i obsługa wyjątków 57 Rysunek 5.1. Obsługa sytuacji wyjątkowej w działaniu. Aplikacja konsoli Visual C++ o nazwie projektu ExHandle1

58 MS Visual C++. Ćwiczenia To dobra okazja, by sprawdzić, jak na zakładce ClassView w panelu struktury projektu Visual C++ prezentowana jest hierarchia klas w przykładoawej aplikacji (rysunek 5.2). Rysunek 5.2. Hierarchia klas na zakładce ClassView w panelu struktury Visual C++ Powyższy przykładowy prosty kod przy okazji demonstruje przeciążanie operatorów przy użyciu metod oraz funkcji zewnętrznej kategorii friend.

Rozdział 5. Szablony i obsługa wyjątków 59 Konstruowanie i stosowanie szablonów Szablony wymagają zastosowania słowa kluczowego C++. Szablony można stosować w odniesieniu do funkcji. Oto prosty przykład parametryzacji algorytmu sortowania bąbelkowego przy użyciu szablonu dla jednowymiarowej macierzy (wektora) stanowiącej argument funkcji sortującej. Listing 5.2. Konstrukcja i zastosowanie prostego szablonu: TemplateDeymo1.CPP Szablony zastosowane w odniesieniu do klas powodują utworzenie rodziny klas. Kompilator może następnie wygenerować samodzielnie nową klasę na podstawie zadanego szablonu. A oto prosty przykład kolejkowania z zastosowaniem szablonu wobec własnej klasy. Listing 5.3. Drugi szablon: TemplateDemo2.CPP

60 MS Visual C++. Ćwiczenia Przy okazji przykład ilustruje zastosowanie operatorów new i delete. Bufory tworzone z użyciem szablonu K mogą mieć różną wielkość i zawierać elementy różnych typów. Ta typologiczna elastyczność powoduje, że szablony są często stosowane w praktyce do tworzenia klas i obiektów -pojemników (ang. container classes). Ćwiczenie 5.1. Stan wyjściowy: poprzedni projekt zamknięty. Aby przetestować działanie obsługi wyjątków, należy wykonać kolejno wyszczególnione poniżej czynności. 1. Otwieramy nowy projekt aplikacji konsoli ExHandle1. 2. Wprowadzamy kod przykładu pierwszego do pliku ExHandle.CPP z listingu 5.1.

Rozdział 5. Szablony i obsługa wyjątków 61 3. Uruchamiamy i sprawdzamy poprawność działania aplikacji.a 4. Zamykamy projekt poleceniem File/Close Workspace. Ćwiczenie 5.2. Rysunek 5.3. Sortowanie z zastosowaniem szablonu <class V> Stan wyjściowy: poprzedni projekt zamknięty (stan wyjściaowy IDE). Aby przetestować działanie obsługi szablonów, należy wykonać kolejno wyszczególnione poniżej czynności. 1. Otwieramy nowy projekt aplikacji konsoli TemplateDemo1. 2. Wprowadzamy kod przykładowy do pliku TemplateDemo1.CPP z listingu 5.2. 3. Uruchamiamy i sprawdzamy poprawność działania aplikacji a(rysunek 5.3). 4. Zamykamy projekt poleceniem File/Close Workspace. Ćwiczenie 5.3. Stan wyjściowy: poprzedni projekt zamknięty (stan wyjściaowy IDE). Aby przetestować działanie kolejnego (drugiego) wariantu obsługi szablonów, należy wykonać kolejno wyszczególnione poniżej czynności. Rysunek 5.4. Bufor z zastosowaniem szablonów w działaniu 1. Otwieramy nowy projekt aplikacji konsoli TemplateDemo2. 2. Wprowadzamy kod przykładowy do pliku TemplateDemo2.CPP z listingu 5.3. 3. Uruchamiamy i sprawdzamy poprawność działania aplikacji a(rysunek 5.4). 4. Zamykamy bieżący projekt poleceniem File/Close Workspace.

62 MS Visual C++. Ćwiczenia Podsumowanie W ćwiczeniach z tego rozdziału prześledziliśmy ogólne zasady konstrukcji kodów, działanie prostych aplikacji konsoli wykorzystujących obsługę sytuacji wyjątkowych za pomocą obiektów i proste szablony użyte w odniesieniu do funakcji i klas.