[ Pobierz całość w formacie PDF ]
.SetSize(newWidth, newLength);83: DoDrawRect(theRect);84: break;85: case Quit:86: fQuit = true;87: cout << "\nWyjscie.\n\n";88: break;89: default:90: cout << "Blad wyboru!\n";91: fQuit = true;92: break;93: } // koniec instrukcji switch94: } // koniec petli while95: return 0;96: } // koniec funkcji main97:98: int DoMenu()99: {100: int choice;101: cout << "\n\n *** Menu *** \n";102: cout << "(1) Rysuj prostokat\n";103: cout << "(2) Obszar\n";104: cout << "(3) Obwod\n";105: cout << "(4) Zmien rozmiar\n";106: cout << "(5) Wyjscie\n";107:108: cin >> choice;109: return choice;110: }111:112: void DoDrawRect(Rectangle theRect)113: {114: int height = theRect.GetHeight();115: int width = theRect.GetWidth();116:117: for (int i = 0; i<height; i++)118: {119: for (int j = 0; j< width; j++)120: cout << "*";121: cout << "\n";122: }123: }124:125:126: void DoGetArea(Rectangle theRect)127: {128: cout << "Obszar: " << theRect.GetArea() << endl;129: }130:131: void DoGetPerim(Rectangle theRect)132: {133: cout << "Obwod: " << theRect.GetPerim() << endl;134: }Wynik*** Menu ***(1) Rysuj prostokat(2) Obszar(3) Obwod(4) Zmien rozmiar(5) Wyjscie1********************************************************************************************************************************************************* Menu ***(1) Rysuj prostokat(2) Obszar(3) Obwod(4) Zmien rozmiar(5) Wyjscie2Obszar: 150*** Menu ***(1) Rysuj prostokat(2) Obszar(3) Obwod(4) Zmien rozmiar(5) Wyjscie3Obwod: 70*** Menu ***(1) Rysuj prostokat(2) Obszar(3) Obwod(4) Zmien rozmiar(5) Wyjscie4Nowa szerokosc: 10Nowa wysokosc: 8*********************************************************************************** Menu ***(1) Rysuj prostokat(2) Obszar(3) Obwod(4) Zmien rozmiar(5) Wyjscie2Obszar: 80*** Menu ***(1) Rysuj prostokat(2) Obszar(3) Obwod(4) Zmien rozmiar(5) Wyjscie3Obwod: 36*** Menu ***(1) Rysuj prostokat(2) Obszar(3) Obwod(4) Zmien rozmiar(5) Wyjscie5Wyjscie.AnalizaTen program wykorzystuje wiÄ™kszość wiadomoÅ›ci, jakie zdobyÅ‚eÅ› czytajÄ…c poprzednie rozdziaÅ‚y.PowinieneÅ› umieć wpisać, skompilować, poÅ‚Ä…czyć i uruchomić program, a ponadto zrozumieć w jaki sposób dziaÅ‚a (pod warunkiem że uważnie czytaÅ‚eÅ› dotychczasowe rozdziaÅ‚y).Sześć pierwszych linii przygotowuje nowe typy i definicje, które bÄ™dÄ… używane w programie.W liniach od 6.do 26.jest zadeklarowana klasa Rectangle (prostokÄ…t).Zawiera ona publiczne akcesory przeznaczone do odczytywania i ustawiania wysokoÅ›ci i szerokoÅ›ci prostokÄ…ta, a także metody obliczania jego obszaru i obwodu.Linie od 29.do 40.zawierajÄ… definicje tych funkcji klasy, które nie zostaÅ‚y zdefiniowane inline.Prototypy funkcji dla funkcji globalnych znajdujÄ… siÄ™ w liniach od 44.do 47., zaÅ› sam program zaczyna siÄ™ w linii 49.DziaÅ‚anie programu polega na wygenerowaniu prostokÄ…ta, a nastÄ™pnie wypisaniu menu, zawierajÄ…cego pięć opcji: rysowanie prostokÄ…ta, obliczanie jego obszaru, obliczanie jego obwodu, zmiana rozmiarów prostokÄ…ta oraz wyjÅ›cie.W linii 55.ustawiany jest znacznik (flaga)[Author ID1: at Mon Oct 22 16:34:00 2001]; jeÅ›li wartoÅ›ciÄ… tego znacznika jest false, dziaÅ‚anie pÄ™tli jest kontynuowane.Wartość true jest przypisywana do tego znacznika tylko wtedy, gdy użytkownik wybierze z menu polecenie WyjÅ›cie.Inne opcje, z wyjÄ…tkiem ZmieÅ„ rozmiar, wywoÅ‚ujÄ… odpowiednie funkcje.DziÄ™ki temu dziaÅ‚anie instrukcji switch jest bardziej przejrzyste.Opcja ZmieÅ„ rozmiar nie może wywoÅ‚ywać funkcji, gdyż zmieniÅ‚oby to rozmiary prostokÄ…ta.JeÅ›li prostokÄ…t zostaÅ‚by przekazany (przez wartość) do funkcji takiej, jak na przykÅ‚ad DoChangeDimensions() (zmieÅ„ rozmiary), wtedy rozmiary zostaÅ‚yby zmienione jedynie w lokalnej kopii prostokÄ…ta w tej funkcji i nie zostaÅ‚yby odzwierciedlone w prostokÄ…cie w [Author ID1: at Mon Oct 22 16:35:00 2001]funkcji main().Z rozdziaÅ‚u 8., „Wskaźniki,” oraz rozdziaÅ‚u 10., „Funkcje zaawansowane,” dowiesz siÄ™, w jaki sposób ominąć to ograniczenie.Na razie jednak zmiana rozmiarów odbywa siÄ™ bezpoÅ›rednio w funkcji main() [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • igraszki.htw.pl