21天学通c++ 第一周总结代码
#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+2*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<<" invalid choice,try again.";
cout<<endl<<endl;
continue;
}
switch(choice)
{
case drawrect:
dodrawrect(therect);
break;
case getarea:
dogetarea(therect);
break;
case changedimensions:
int newlength,newwidth;
cout<<"\nwidth: ";
cin>>newwidth;
cout<<"\nnewheight: ";
cin>>newlength;
therect.setsize(newwidth,newlength);
dodrawrect(therect);
break;
case quit:
fquit=true;
cout<<"\nexiting..."<<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..........."<<endl;
cout<<"2..........."<<endl;
cout<<"3..........."<<endl;
cout<<"4..........."<<endl;
cout<<"5..........."<<endl;
cin>>choice;
return choice;
}
void dodrawrect(rectangle therect)
{
int height=therect.getheight();
int width=therect.getwidth();
for (int i=0;i<height;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;
}