[C++] Projekt, napis.

0

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ą).

0
bio napisał(a)

... co prawda znalazłem trochę informacji o wektorach ale sporo informacji jest ze sobą sprzecznych i przez to jestem w kropce.

A co jest tam takie sprzeczne, że uniemożliwia Ci napisanie kodu? Przytocz kilka tych sprzecznosci bo sam jestem ciekawy jak to nas próbują oszukać wciskając sprzeczności

0

A chociażby taka, że spotkałem się z opiniami że tylko na wektorach da się wykonać napis który mógłby ulegać skalowaniu, mimo że inni twierdzą, że nie da się tak tego zrobić, bo wektory służą do innych celów. Może źle sformułowałem te sprzeczności, po prostu ludzie których pytałem mają sprzeczne zdania (albo da się tylko na wektorach, albo na wektorach nie da się wcale), lecz nikt nie chce mi podać przykładu jak wykonać chociaż jeden "pasek" wykonany na wektorze.

0

@bio:
Co masz na myśli mówiąc "wektor"? W C++ (razem z jego biblioteką standardową) wyraz ten może mieć kilka znaczeń i bardzo możliwe, że stąd mogą wynikać te... "sprzeczności".

0

Jeśli mówisz ( tak jak wspomniał mój przedmówca bswierczynski ), o wektorach jako składnikach biblioteki STL języka C++ to odpowiedź brzmi : tak, można to zrobić za pomocą wektorów.

Poszukaj w Internecie informacji o tzw. ASCII Art - temat dość pokrewny i jest sporo przykładów realizacji przeróżnych dziwactw :-)

0

Tak, słyszałem o tym ASCII Art, ale nie wiem w jaki sposób to wykorzystać (znalazłem nawet stronę do generowania takich kodów http://www.network-science.de/ascii/). Co do owych wektorów, to niestety nawet nie dostałem żadnej informacji o kilku znaczeniach i nie bardzo wiem jak tego użyć, a jestem na takim etapie, że jedyne co mi przychodzi do głowy to cout, a tego użyć nie mogę ;/. Powiedzcie proszę jak opisać wektorami jakąkolwiek literę, nawet najprostszą, np B lub C.

0

Kolego student, jak nie potrafisz nawet zajrzeć do dokumentacji - ile byłbyś skory za to zapłacić?

0

Wektory jako takie, nie są ukierunkowane na "pisanie liter", to tylko narzędzie które daje pewne możliwości.

Jeśli chcesz ich używać, musisz zrozumieć mechanizmy, z jakich są zbudowane.

Na tej http://www.unit1.pl/165,txt stronie znajdziesz podstawy.

A tutaj http://www.cplusplus.com/reference/stl/vector/ dokumentacja tego "pojemnika" biblioteki STL.

1 użytkowników online, w tym zalogowanych: 0, gości: 1