学习十天的复习程序

来源:互联网 发布:ubuntu网卡驱动下载 编辑:程序博客网 时间:2024/05/17 03:12

 

#include <iostream>

using namespace std;

enum CHOICE{
             DrawRect 
= 1,
             GetArea,
             GetPerim,
             ChangeDimensions,
             Quit}
;

class Rectangle
{
public:
        Rectangle(
int width,int height);
        
~Rectangle();

        
int GetHeight() const
        
{
            
return itsHeight;
        }

        
int GetWidth() const
        
{
            
return itsWidth;
        }

        
int GetArea() const
        
{
            
return itsHeight*itsWidth;
        }

        
int GetPerim() const
        
{
            
return 2*(itsHeight+itsWidth);
        }

        
void SetSize(int newWidth,int newHeight);
     
private:
        
int itsWidth;
        
int itsHeight;
}
;

void Rectangle::SetSize(int newWidth , int newHeight)
{
    itsWidth 
= newWidth;
    itsHeight 
= newHeight;
}


Rectangle::Rectangle(
int width , int height)
{
    itsWidth 
= width;
    itsHeight 
= height;
}

Rectangle::
~Rectangle ()
{
}


int DoMenu();
void DoDrawRect(Rectangle);
void DoGetArea(Rectangle);
void DoGetPerim(Rectangle);

int main()
{
    Rectangle theRect(
30,5);
    
int choice = DrawRect;

    
int fQuit = false;

    
while(!fQuit)
    
{
        choice 
= DoMenu();

        
if(choice < DrawRect || choice > Quit )
        
{
            cout 
<< " Invaid Choice ,try again.";
            cout 
<< endl << endl;

            
continue;
        }


        
switch(choice)
        
{
             
case DrawRect:
                DoDrawRect(theRect);
                
break;
             
case GetArea:

                 DoGetArea(theRect);
                 
break;
             
case GetPerim:
                 DoGetPerim(theRect);
                 
break;
             
case ChangeDimensions:

                 
int newLength,newWidth;
                 cout 
<< " New width:";
                 cin 
>> newWidth;
                 cout 
<< " New height: ";
                 cin 
>> newLength;

                 theRect.SetSize(newWidth , newLength);
                 DoDrawRect(theRect);
                 
break;

             
case Quit:

                 fQuit 
= true;
                 cout 
<<" Exiting ... " << endl << endl;
                 
break;

             
default:
                 cout 
<< "Error in choice!"<< endl;
                 fQuit 
= true;
                 
break;
    }

    }

    
return 0;
}

int DoMenu()
{
    
int choice;
    cout 
<< endl << endl;
    cout 
<< "***** Menu*****" << endl;
    cout 
<< "(1) Draw Rectangle:"<< endl;
    cout 
<< "(2) Area:"          << endl;
    cout 
<< "(3) Perimeter:    " << endl;
    cout 
<< "(4) Resize:     "   << endl;
    cout 
<< "(5) Quit:"          << endl;

        cin 
>> choice;
    
return choice;
}


void DoDrawRect(Rectangle theRect)
{
    
int heigth = theRect.GetHeight();
    
int width = theRect.GetWidth();

    
for ( int i = 0;i < heigth; i++)
    
{
        
for (int j =0; j< width;j++)
            cout 
<<"*";
        cout 
<< endl;
    }

}


void DoGetArea(Rectangle theRect)
{
    cout 
<< "Area: " << theRect.GetArea() << endl;
}

void DoGetPerim(Rectangle theRect)
{        
    cout 
<< "Perimeter: " << theRect.GetPerim() << endl;
}