A
Axe79
учу С++ по "Джесс Либерти - Освой самостоятельно С++ за 21 день"
очень доступно как для чайника))) т.е. дя мну))
и вот конец первой недели и большой листинг ... пообещали что если всё пойму то считай язык почти осилил (шучу, но было б приятно ) и вот набрал, откомпилил, (сижу под Alt Linux компилятор g++) убил все явные ошибки да только что-то не то ... по ходу переменная где-то не ловит значения ...(ниже аут вывел)
вроде как не присваивается... я и так экспериментировал и эдак вся конструкция понятна все метания и ростекания мыслью по коду вроде тоже... хоть дальше иди но .. не хочется оставлять нерешённый вопрос за спиной
Ну что поможете?
это аут
<!--shcode--><pre><code class='dos'>[axe@localhost cppsy]$ g++ 1wee.cpp
[axe@localhost cppsy]$ ./a.out
*** Menu ***
(1) Draw Rectangle
(2) Area
(3) Perimetr
(4) Resize
(5) Quit
1
-1075360568
134516011
*** Menu ***
(1) Draw Rectangle
(2) Area
(3) Perimetr
(4) Resize
(5) Quit
4
New width 5
New heigth 9
-1075360568
134516011
*** Menu ***
(1) Draw Rectangle
(2) Area
(3) Perimetr
(4) Resize
(5) Quit
^C
[axe@localhost cppsy]$[/CODE]
очень доступно как для чайника))) т.е. дя мну))
и вот конец первой недели и большой листинг ... пообещали что если всё пойму то считай язык почти осилил (шучу, но было б приятно ) и вот набрал, откомпилил, (сижу под Alt Linux компилятор g++) убил все явные ошибки да только что-то не то ... по ходу переменная где-то не ловит значения ...(ниже аут вывел)
вроде как не присваивается... я и так экспериментировал и эдак вся конструкция понятна все метания и ростекания мыслью по коду вроде тоже... хоть дальше иди но .. не хочется оставлять нерешённый вопрос за спиной
Ну что поможете?
C++:
#include <iostream>
using namespace std;
// intintboolfalsetrue//непонятная фигня
enum CHOICE { DrawRect=1, GetArea, GetPerim, ChangeDimensions, Quit};
class Rectangle // объявляем ректальный классс
{
public:
Rectangle(int width, int heigth); //Инициируем конструктор
~Rectangle(); //то самое с деструктором
//Методы доступа
int GetHeigth() const {return itsHeigth;}
int GetWidth() const {return itsWidth;}
int GetArea() const {return itsHeigth * itsWidth;}
int GetPerim() const {return 2 * (itsHeigth + itsWidth);}
void SetSize(int newWidth, int newHeigth);
//прочие методы
private:
int itsHeigth;
int itsWidth;
};
//выполнение методов класса
void Rectangle::SetSize(int newWidth, int newHeigth)
{
int itsWidth=newWidth;
int itsHeigth=newHeigth;
}
Rectangle::Rectangle(int Width, int Heigth)
{
int itsHeigth=Heigth;
int itsWidth=Width;
}
Rectangle::~Rectangle() {}
int DoMenu();
void DoDrawRect(Rectangle);
void DoGetArea(Rectangle);
void DoGetPerim(Rectangle);
int main()
{
//Инициализируем объект theRect класа Rectangle с параметрами 30 и 5
Rectangle theRect(30,5);
int choice = DrawRect;
int fQuit = false;
while(!fQuit)
{
choice = DoMenu();
if(choice < DrawRect || choice > Quit)
{
cout << "\n Invalid Choice, please try again.\n\n";
continue;
}
switch (choice)
{
case DrawRect:
DoDrawRect(theRect);
break;
case GetArea:
DoGetArea(theRect);
break;
case GetPerim:
DoGetPerim(theRect);
break;
case ChangeDimensions:
int newHeigth, newWidth;
cout << "\n New width ";
cin >> newWidth;
cout << "\n New heigth ";
cin >> newHeigth;
theRect.SetSize(newWidth, newHeigth);
DoDrawRect(theRect);
break;
case Quit:
fQuit = true;
cout << "\n Exiting...\n\n";
break;
default :
cout << "Eror in choice!\n";
fQuit = true;
break;
} // конец переключателя
} // конец цикла
return 0;
} // конец функции main
int DoMenu()
{
int choice;
cout <<"\n\n *** Menu ***\n";
cout <<"(1) Draw Rectangle\n";
cout <<"(2) Area\n";
cout <<"(3) Perimetr\n";
cout <<"(4) Resize\n";
cout <<"(5) Quit\n";
cin >> choice;
return choice;
}
void DoDrawRect(Rectangle theRect)
{
cout << theRect.GetHeigth()<<"\n";
cout << theRect.GetWidth()<<"\n";
int heigth = theRect.GetHeigth();
int width = theRect.GetWidth();
// for (int i = 0; i<heigth; i++)
// {
// for (int j = 0; j<width; j++)
// { cout <<"*";}
// cout << "\n";
// }
}
void DoGetArea(Rectangle theRect)
{
cout << "Area: " << theRect.GetArea() << endl;
}
void DoGetPerim(Rectangle theRect)
{
cout << "Perimetr: " << theRect.GetPerim() << endl;
}
<!--shcode--><pre><code class='dos'>[axe@localhost cppsy]$ g++ 1wee.cpp
[axe@localhost cppsy]$ ./a.out
*** Menu ***
(1) Draw Rectangle
(2) Area
(3) Perimetr
(4) Resize
(5) Quit
1
-1075360568
134516011
*** Menu ***
(1) Draw Rectangle
(2) Area
(3) Perimetr
(4) Resize
(5) Quit
4
New width 5
New heigth 9
-1075360568
134516011
*** Menu ***
(1) Draw Rectangle
(2) Area
(3) Perimetr
(4) Resize
(5) Quit
^C
[axe@localhost cppsy]$[/CODE]