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;
}

posted @ 2008-11-22 19:48  雨城  阅读(210)  评论(0编辑  收藏  举报