新手散分:关于基础图形的有关问题

新手散分:关于基础图形的问题
这是一个朋友课程设计的题,我对C++不太懂,还得壮着胆子给他做,不怕丢人
在这请高手们指导下,帮着写点代码.小弟在这先谢谢了

题目是这样的:实现实线直线,矩形,圆形,正余旋曲线等基本图形元素的绘制,并要给出该图元的几何特征,既何种图形,长度或周长,或面积多少等信息,要求用类,操作提示简明明了.

我也不会啊,就大概写了点,就当是算法了
#include "stdafx.h "
#include "iihgraphics.h "

using   namespace.iih;

class   line{
line(int   x1,int   y1,int   x2,int   y2);//线段的函数
int   l;//l为周长
l=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)0;
}
class   rectangle{       //矩形
rectangle(int   x1,int   y1,int   x2,int   y2);//矩形的函数其中x1y1为左上角坐标
int   c,s;//c为周长,s为面积
c=2*((x1-x2)+(y1+y2));//好像应该用绝对值
s=(x1-x2)*(y1-y2);
}
class   circular{
const   float   PI=3.14159;
ellipse(int   x1,int   y1,int   x2,int   y2);
//椭圆和圆的原函数,其中坐标为外接矩形的左上角和右下角坐标,这个比较笨,没找到圆的~~~
int   c,s;
c=PI*(x1-x2);
s=PI*(x1-x2)/2;
}
正余旋的没找到,不知道怎么写,类这个东西我不会,对题目的理解也不知道对不对
请高手给点启示,小弟在此感激不尽.

------解决方案--------------------
using namespace.iih;
这里的“.”是干什么的?

还有,
class line{
line(int x1,int y1,int x2,int y2);//线段的函数
int l;//l为周长
l=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)0;
}
这里,你的“l=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)0;”应该是个成员函数,而且l是“险段的长度”,而非“周长”。如果你经常取用线段长度,则可以向你写得那样,将l作为一个私有成员,如果l被取用的几率很小,则没必要设置私有成员,完全可以“在需要时计算”,即所谓的“lazy evaluation”。

其他的也都类似了。
------解决方案--------------------
基本作图:(楼主再根据这个思想,封装成类即可)

#include "stdio.h "
#include "graphics.h "

#define u 0.25

void line1(int xa, int ya, int xb, int yb) /*画线函数*/
{
float delta_x,delta_y,x,y;
int dx,dy,steps,k;
dx=xb-xa;
dy=yb-ya;
if(abs(dx)> abs(dy))
steps=abs(dx);
else steps=abs(dy);
delta_x=(float)dx/(float)steps;
delta_y=(float)dy/(float)steps;
x=xa;
y=ya;
putpixel(x,y,3);
for(k=1;k <=steps;k++)
{ x+=delta_x;
y+=delta_y;
putpixel(x,y,3);
}
}

void circle1(int xc1,int yc1,int r) /*画圆函数*/
{ int x1,y1,p,c;
c=3;
x1=0;
y1=r;
p=3-2*r;
while(x1 <y1){
plot_circle_points(xc1,yc1,x1,y1,c);/*调用画点函数*/
if(p <0) p=p+4*x1+6;
else{
p=p+4*(x1-y1)+10;
y1-=1;
}
x1+=1;
}
if(x1==y1) plot_circle_points(xc1,yc1,x1,y1,c);
}

int plot_circle_points(int xc,int yc,int x,int y,int c) /*画点函数*/
{ putpixel(xc+x,yc+y,c);
putpixel(xc-x,yc+y,c);
putpixel(xc+x,yc-y,c);
putpixel(xc-x,yc-y,c);
putpixel(xc+y,yc+x,c);
putpixel(xc-y,yc+x,c);
putpixel(xc+y,yc-x,c);
putpixel(xc-y,yc-x,c);
}

void drawline() /*画线前的提示处理函数*/
{int x1,y1,x2,y2;
int gd = DETECT, gm = 0;
registerbgidriver(EGAVGA_driver);
initgraph(&gd, &gm, " ");
printf( "\n\n*******************This is drawing a line display platform********************** ");
printf( "\n\n\n\n\tplease input two points(X(i),Y(j)): ");
scanf( "%d,%d,%d,%d ",&x1,&y1,&x2,&y2);
initgraph(&gd,&gm, " ");
cleardevice();
line1(x1,y1,x2,y2);
getch();
closegraph();
}
void drawcircle() /*画圆前的提示处理函数*/
{int x1,y1,r;
int gd = DETECT, gm = 0;
registerbgidriver(EGAVGA_driver);
initgraph(&gd, &gm, " ");