Witam, mam do wykonania projekt w c++, lecz niestety miałem na tyle żałosnych nauczycieli informatyki, że nie miałem szansy nauczyć się programowania na lekcjach. Podstaw uczę się z symfonii c++ Grębosza, lecz to tylko podstawy. W związku z tym mam prośbę do ludzi znających się na C++ : czy mógłby mi ktoś napisać kod źródłowy (Z przykładowym napisem AB123), dać szczegółowe wytyczne jak zrobić poniższe zadanie lub podać jakiś link do strony w której wszystko będzie przejrzyście napisane?
Zadanie
Zadanie polega na napisaniu programu rysującego znaki na ekranie w trybie tekstowym. Tekst ma być napisany literami składającymi się z wielu znaków ASCII i składać się z dwóch liter - inicjałów (jeśli obie litery są identyczne - wybrać następną w alfabecie) - oraz trzech ostatnich cyfr numeru indeksu.
Każdy ze znaków musi składać się z przynajmniej 3 wyraźnych odcinków - zbudowanych z pojedynczych znaków na ekranie. Litery powinny być czytelne i mieć około 10 wierszy wysokości. Polskie "ogonki" mogą być pominięte.
Środowisko, wymagania
Środowiskiem realizacji zadania jest Microsoft Visual C++ - aplikacja konsolowa Win32. Aby uniknąć kłopotów z korzystaniem z funkcji systemu Windows obsługujących konsolę przygotowano szablon projektu - z bardzo prostą biblioteką upraszczającą pisanie po ekranie. Korzystanie z tego projektu jest wskazane (zwłaszcza dla osób rozpoczynających naukę) - ale nie jest obowiązkowe.
Szablon VS 2008
Całość kodu rozwiązania ma znajdować się w jednym pliku .cpp, podczas oddawania projektu
Punktacja
liczba punktów
wymagana funkcjonalność
dodatkowe uwagi
2
funkcjonalność podstawowa narysowanie na środku ekranu inicjałów i trzech ostatnich cyfr numeru indeksu
naciśnięcie klawisza ESC powoduje wyjście z programu,
pozostałe klawisze są ignorowane
+1
zmiana stylu kursywa w lewo (góra przesunięta o około połowę szerokości znaku w lewo)
Naciśnięcie klawisza 'C' ma przełączać wyświetlanie - pomiędzy stylem normalnym a określonym w zadaniu.
+1
kolorowanie tęcza po skosie
Należy wykorzystać przynajmniej 5 różnych kolorów.
+1
animacja napis przesuwa sie w dół, chowa się i wyjeżdża z góry strony
Naciśnięcie spacji uruchamia animację. Przed animacją styl może automatycznie zmienić się na normalny (bez pogrubienia/kursywy), ale napis musi pozostać kolorowy (aby otrzymać po pełnym punkcie i za kolorowanie i za animację).
+2 skalowanie
rozciąganie w poziomie: znaki rozciągane są względem lewej krawędzi (tzn. nie zmienia ona pozycji - napis rozszerza się w prawo), naciśnięcie klawisza zwiększa/zmniejsza szerokość calego napisu o 1 kolumnę
Zwiększanie napisu: '+', zmniejszanie: '-'. Program powinien limitować zarówno minimalny rozmiar (tak aby napis pozostawał czytelny), jak i maksymalny (aby nie wyjeżdżał poza ekran). Znaki mają być skalowane (to znaczy, że nie wystarczy zmieniać odstępów pomiędzy nimi).
mini-FAQ
- Nazywam się Jan/Iwan/Tomasz, co mam zrobić?
Litery I, J, T powinny wyglądać tak:
.......................
..***....***..*******..
...*.......*..*..*..*..
...*.......*.....*.....
...*.......*.....*.....
...*...*...*.....*.....
..***...***.....***....
.......................
- Na moim Windows 7 nie program nie przełącza się w tryb pełnoekranowy, co zrobić?
W tej chwili system Windows 7 nie obsługuje pełnoekranowej konsoli tekstowej. Dla nas istotne jest jak program działa w laboratorium.
- Jak ma wygladac animacja? Czy napis ma od razu pojawiac sie w miare znikania?
Napis ma najpierw znikac linia po linii (z drugiej strony nic sie nie pojawia), przez chwile ma go w ogole nie byc na ekranie, a nastepnie powinien pojawiac sie linia po linii.
http://odsiebie.com/pokaz/6432790---33e0.html <Załącznik który jest do pobrania wraz z projektem.
Cały weekend próbuje coś z tego zrobić i znalazłem tylko, że napis powinien być wykonany z wektorów, co prawda znalazłem trochę informacji o wektorach ale sporo informacji jest ze sobą sprzecznych i przez to jestem w kropce. Pomóżcie proszę. Będę bardzo wdzięczny nawet za pierwszą część zadania (sam napis, bez żadnych opcji, nie licząc kolorów oraz skalowania powinienem poradzić sobie z resztą).